@dynamic-labs-sdk/solana 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/SolanaWalletProvider.types.d.ts +7 -0
  2. package/dist/SolanaWalletProvider.types.d.ts.map +1 -1
  3. package/dist/{addSolanaWalletStandardExtension-MShcPN9V.esm.js → addSolanaWalletStandardExtension-Dp_OYp3g.esm.js} +2 -2
  4. package/dist/{addSolanaWalletStandardExtension-MShcPN9V.esm.js.map → addSolanaWalletStandardExtension-Dp_OYp3g.esm.js.map} +1 -1
  5. package/dist/{addSolanaWalletStandardExtension-CTdTAoA2.cjs.js → addSolanaWalletStandardExtension-oqxjn7Z-.cjs.js} +2 -2
  6. package/dist/{addSolanaWalletStandardExtension-CTdTAoA2.cjs.js.map → addSolanaWalletStandardExtension-oqxjn7Z-.cjs.js.map} +1 -1
  7. package/dist/{addWaasSolanaExtension-Cq4uO2DF.esm.js → addWaasSolanaExtension-Bc62Lmol.esm.js} +76 -8
  8. package/dist/addWaasSolanaExtension-Bc62Lmol.esm.js.map +1 -0
  9. package/dist/{addWaasSolanaExtension-D5eVYYMb.cjs.js → addWaasSolanaExtension-GhHTTRx0.cjs.js} +79 -5
  10. package/dist/addWaasSolanaExtension-GhHTTRx0.cjs.js.map +1 -0
  11. package/dist/errors/SponsorTransactionError/SponsorTransactionError.d.ts +5 -0
  12. package/dist/errors/SponsorTransactionError/SponsorTransactionError.d.ts.map +1 -0
  13. package/dist/errors/SponsorTransactionError/index.d.ts +2 -0
  14. package/dist/errors/SponsorTransactionError/index.d.ts.map +1 -0
  15. package/dist/exports/index.d.ts +2 -0
  16. package/dist/exports/index.d.ts.map +1 -1
  17. package/dist/index.cjs.js +31 -4
  18. package/dist/index.cjs.js.map +1 -1
  19. package/dist/index.esm.js +31 -6
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/{isVersionedTransaction-bqpBcWw-.esm.js → isVersionedTransaction-BIvzfTun.esm.js} +5 -5
  22. package/dist/isVersionedTransaction-BIvzfTun.esm.js.map +1 -0
  23. package/dist/{isVersionedTransaction-5O-xUm-i.cjs.js → isVersionedTransaction-DQmx8cAO.cjs.js} +6 -6
  24. package/dist/isVersionedTransaction-DQmx8cAO.cjs.js.map +1 -0
  25. package/dist/signAndSendSponsoredTransaction/index.d.ts +2 -0
  26. package/dist/signAndSendSponsoredTransaction/index.d.ts.map +1 -0
  27. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts +23 -0
  28. package/dist/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.d.ts.map +1 -0
  29. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts +3 -2
  30. package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -1
  31. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  32. package/dist/utils/fetchSolBalance/fetchSolBalance.d.ts +3 -2
  33. package/dist/utils/fetchSolBalance/fetchSolBalance.d.ts.map +1 -1
  34. package/dist/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -1
  35. package/dist/waas/utils/sponsorTransaction/index.d.ts +2 -0
  36. package/dist/waas/utils/sponsorTransaction/index.d.ts.map +1 -0
  37. package/dist/waas/utils/sponsorTransaction/sponsorTransaction.d.ts +24 -0
  38. package/dist/waas/utils/sponsorTransaction/sponsorTransaction.d.ts.map +1 -0
  39. package/dist/waas.cjs.js +3 -3
  40. package/dist/waas.esm.js +2 -2
  41. package/dist/walletConnect/createWalletProviderFromWalletConnectSolanaSession/createWalletProviderFromWalletConnectSolanaSession.d.ts.map +1 -1
  42. package/dist/walletConnect/recoverSolanaWalletConnectWalletProviders/recoverSolanaWalletConnectWalletProviders.d.ts.map +1 -1
  43. package/dist/walletStandard.cjs.js +2 -2
  44. package/dist/walletStandard.esm.js +2 -2
  45. package/package.json +5 -5
  46. package/dist/addWaasSolanaExtension-Cq4uO2DF.esm.js.map +0 -1
  47. package/dist/addWaasSolanaExtension-D5eVYYMb.cjs.js.map +0 -1
  48. package/dist/isVersionedTransaction-5O-xUm-i.cjs.js.map +0 -1
  49. package/dist/isVersionedTransaction-bqpBcWw-.esm.js.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -1,6 +1,6 @@
1
- const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-CTdTAoA2.cjs.js');
2
- const require_isVersionedTransaction = require('./isVersionedTransaction-5O-xUm-i.cjs.js');
3
- const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-D5eVYYMb.cjs.js');
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-oqxjn7Z-.cjs.js');
2
+ const require_isVersionedTransaction = require('./isVersionedTransaction-DQmx8cAO.cjs.js');
3
+ const require_addWaasSolanaExtension = require('./addWaasSolanaExtension-GhHTTRx0.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 _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -80,6 +80,30 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = (0,
80
80
  });
81
81
  };
82
82
 
83
+ //#endregion
84
+ //#region src/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.ts
85
+ /**
86
+ * Signs and sends a sponsored Solana transaction.
87
+ * The transaction will be sponsored via Dynamic's gas sponsorship API.
88
+ *
89
+ * @param params.transaction - The transaction to sponsor, sign, and send
90
+ * @param params.walletAccount - The wallet account to sign and send the transaction with
91
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
92
+ * @returns An object containing the signature
93
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider
94
+ * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction
95
+ */
96
+ const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, options }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
97
+ const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
98
+ if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
99
+ if (!provider.signAndSendSponsoredTransaction) throw new _dynamic_labs_sdk_client_core.MethodNotImplementedError("signAndSendSponsoredTransaction");
100
+ return provider.signAndSendSponsoredTransaction({
101
+ options,
102
+ transaction,
103
+ walletAccount
104
+ });
105
+ };
106
+
83
107
  //#endregion
84
108
  //#region src/signAndSendTransaction/signAndSendTransaction.ts
85
109
  /**
@@ -89,10 +113,11 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = (0,
89
113
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
90
114
  * @returns An object containing the signature
91
115
  */
92
- const signAndSendTransaction = async ({ walletAccount, transaction }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
116
+ const signAndSendTransaction = async ({ walletAccount, transaction, options }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
93
117
  const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
94
118
  if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
95
119
  return provider.signAndSendTransaction({
120
+ options,
96
121
  transaction,
97
122
  walletAccount
98
123
  });
@@ -122,11 +147,13 @@ const signTransaction = async ({ walletAccount, transaction }, client = (0, _dyn
122
147
 
123
148
  //#endregion
124
149
  exports.NotSolanaProviderError = NotSolanaProviderError;
150
+ exports.SponsorTransactionError = require_addWaasSolanaExtension.SponsorTransactionError;
125
151
  exports.addSolanaExtension = addSolanaExtension;
126
152
  exports.getSolanaConnection = require_addWaasSolanaExtension.getSolanaConnection;
127
153
  exports.isSolanaNetworkProvider = isSolanaNetworkProvider;
128
154
  exports.isSolanaWalletAccount = isSolanaWalletAccount;
129
155
  exports.signAllTransactions = signAllTransactions;
156
+ exports.signAndSendSponsoredTransaction = signAndSendSponsoredTransaction;
130
157
  exports.signAndSendTransaction = signAndSendTransaction;
131
158
  exports.signTransaction = signTransaction;
132
159
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["BaseError","packageName","packageVersion"],"sources":["../src/addSolanaExtension/addSolanaExtension.ts","../src/errors/NotSolanaProviderError/NotSolanaProviderError.ts","../src/isSolanaNetworkProvider/isSolanaNetworkProvider.ts","../src/isSolanaWalletAccount/isSolanaWalletAccount.ts","../src/isSolanaWalletProvider/isSolanaWalletProvider.ts","../src/signAllTransactions/signAllTransactions.ts","../src/signAndSendTransaction/signAndSendTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasSolanaExtension } from '../waas/addWaasSolanaExtension';\nimport { addSolanaWalletStandardExtension } from '../walletStandard/addSolanaWalletStandardExtension';\n\n/**\n * Adds the Solana extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Solana Wallet Standard extension\n * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaExtension = (client = getDefaultClient()): void => {\n addSolanaWalletStandardExtension(client);\n addWaasSolanaExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotSolanaProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_solana_provider_error',\n docsUrl: null,\n name: 'NotSolanaProviderError',\n shortMessage: 'Provider is not a Solana wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a Solana network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a Solana network provider, false otherwise.\n */\nexport const isSolanaNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is SolanaNetworkProvider => networkProvider.chain === 'SOL';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Solana wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Solana wallet account, false otherwise.\n */\nexport const isSolanaWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is SolanaWalletAccount => walletAccount.chain === 'SOL';\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaWalletProvider } from '../SolanaWalletProvider.types';\n\nexport const isSolanaWalletProvider = (\n provider: WalletProvider\n): provider is SolanaWalletProvider => {\n return provider.chain === 'SOL';\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAllTransactionsParams = {\n transactions: (Transaction | VersionedTransaction)[];\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs multiple Solana transactions\n * @param params.transactions - The transactions to sign\n * @param params.walletAccount - The wallet account to sign the transactions with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transactions\n */\nexport const signAllTransactions = async (\n { walletAccount, transactions }: SignAllTransactionsParams,\n client = getDefaultClient()\n): Promise<{ signedTransactions: (Transaction | VersionedTransaction)[] }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAllTransactions({ transactions, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAndSendTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a Solana transaction\n * @param params.transaction - The transaction to sign and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n */\nexport const signAndSendTransaction = async (\n { walletAccount, transaction }: SignAndSendTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSendTransaction({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs a Solana transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transaction\n */\nexport const signTransaction = async (\n { walletAccount, transaction }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signedTransaction: Transaction | VersionedTransaction }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ transaction, walletAccount });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addSolanaExtension } from '../addSolanaExtension';\nexport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nexport { getSolanaConnection } from '../getSolanaConnection';\nexport { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';\nexport { isSolanaWalletAccount } from '../isSolanaWalletAccount';\nexport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\nexport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\nexport { signAllTransactions } from '../signAllTransactions';\nexport { signAndSendTransaction } from '../signAndSendTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,sBAAsB,8DAA2B,KAAW;AACvE,2EAAiC,OAAO;AACxC,uDAAuB,OAAO;;;;;ACdhC,IAAa,yBAAb,cAA4CA,mCAAU;CACpD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;;;;;;;ACJ9B,MAAa,2BACX,oBAC6C,gBAAgB,UAAU;;;;;;;;;;ACFzE,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;ACRnE,MAAa,0BACX,aACqC;AACrC,QAAO,SAAS,UAAU;;;;;;;;;;;;ACa5B,MAAa,sBAAsB,OACjC,EAAE,eAAe,gBACjB,yDAA2B,KACiD;CAC5E,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,oBAAoB;EAAE;EAAc;EAAe,CAAC;;;;;;;;;;;;ACftE,MAAa,yBAAyB,OACpC,EAAE,eAAe,eACjB,yDAA2B,KACQ;CACnC,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,uBAAuB;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;ACfxE,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,yDAA2B,KAC4C;CACvE,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,gBAAgB;EAAE;EAAa;EAAe,CAAC;;;;;mEC7B5CC,qCAAaC,uCAAe"}
1
+ {"version":3,"file":"index.cjs.js","names":["BaseError","MethodNotImplementedError","packageName","packageVersion"],"sources":["../src/addSolanaExtension/addSolanaExtension.ts","../src/errors/NotSolanaProviderError/NotSolanaProviderError.ts","../src/isSolanaNetworkProvider/isSolanaNetworkProvider.ts","../src/isSolanaWalletAccount/isSolanaWalletAccount.ts","../src/isSolanaWalletProvider/isSolanaWalletProvider.ts","../src/signAllTransactions/signAllTransactions.ts","../src/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.ts","../src/signAndSendTransaction/signAndSendTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasSolanaExtension } from '../waas/addWaasSolanaExtension';\nimport { addSolanaWalletStandardExtension } from '../walletStandard/addSolanaWalletStandardExtension';\n\n/**\n * Adds the Solana extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Solana Wallet Standard extension\n * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaExtension = (client = getDefaultClient()): void => {\n addSolanaWalletStandardExtension(client);\n addWaasSolanaExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotSolanaProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_solana_provider_error',\n docsUrl: null,\n name: 'NotSolanaProviderError',\n shortMessage: 'Provider is not a Solana wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a Solana network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a Solana network provider, false otherwise.\n */\nexport const isSolanaNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is SolanaNetworkProvider => networkProvider.chain === 'SOL';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Solana wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Solana wallet account, false otherwise.\n */\nexport const isSolanaWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is SolanaWalletAccount => walletAccount.chain === 'SOL';\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaWalletProvider } from '../SolanaWalletProvider.types';\n\nexport const isSolanaWalletProvider = (\n provider: WalletProvider\n): provider is SolanaWalletProvider => {\n return provider.chain === 'SOL';\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAllTransactionsParams = {\n transactions: (Transaction | VersionedTransaction)[];\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs multiple Solana transactions\n * @param params.transactions - The transactions to sign\n * @param params.walletAccount - The wallet account to sign the transactions with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transactions\n */\nexport const signAllTransactions = async (\n { walletAccount, transactions }: SignAllTransactionsParams,\n client = getDefaultClient()\n): Promise<{ signedTransactions: (Transaction | VersionedTransaction)[] }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAllTransactions({ transactions, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport {\n MethodNotImplementedError,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n SendOptions,\n Transaction,\n VersionedTransaction,\n} from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\n\ntype SignAndSendSponsoredTransactionParams = {\n options?: SendOptions;\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a sponsored Solana transaction.\n * The transaction will be sponsored via Dynamic's gas sponsorship API.\n *\n * @param params.transaction - The transaction to sponsor, sign, and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider\n * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction\n */\nexport const signAndSendSponsoredTransaction = async (\n {\n walletAccount,\n transaction,\n options,\n }: SignAndSendSponsoredTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n if (!provider.signAndSendSponsoredTransaction) {\n throw new MethodNotImplementedError('signAndSendSponsoredTransaction');\n }\n\n return provider.signAndSendSponsoredTransaction({\n options,\n transaction,\n walletAccount,\n });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type {\n SendOptions,\n Transaction,\n VersionedTransaction,\n} from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAndSendTransactionParams = {\n options?: SendOptions;\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a Solana transaction\n * @param params.transaction - The transaction to sign and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n */\nexport const signAndSendTransaction = async (\n { walletAccount, transaction, options }: SignAndSendTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSendTransaction({\n options,\n transaction,\n walletAccount,\n });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs a Solana transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transaction\n */\nexport const signTransaction = async (\n { walletAccount, transaction }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signedTransaction: Transaction | VersionedTransaction }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ transaction, walletAccount });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addSolanaExtension } from '../addSolanaExtension';\nexport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nexport { SponsorTransactionError } from '../errors/SponsorTransactionError/SponsorTransactionError';\nexport { getSolanaConnection } from '../getSolanaConnection';\nexport { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';\nexport { isSolanaWalletAccount } from '../isSolanaWalletAccount';\nexport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\nexport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\nexport { signAllTransactions } from '../signAllTransactions';\nexport { signAndSendSponsoredTransaction } from '../signAndSendSponsoredTransaction';\nexport { signAndSendTransaction } from '../signAndSendTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,sBAAsB,8DAA2B,KAAW;AACvE,2EAAiC,OAAO;AACxC,uDAAuB,OAAO;;;;;ACdhC,IAAa,yBAAb,cAA4CA,mCAAU;CACpD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;;;;;;;ACJ9B,MAAa,2BACX,oBAC6C,gBAAgB,UAAU;;;;;;;;;;ACFzE,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;ACRnE,MAAa,0BACX,aACqC;AACrC,QAAO,SAAS,UAAU;;;;;;;;;;;;ACa5B,MAAa,sBAAsB,OACjC,EAAE,eAAe,gBACjB,yDAA2B,KACiD;CAC5E,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,oBAAoB;EAAE;EAAc;EAAe,CAAC;;;;;;;;;;;;;;;;ACHtE,MAAa,kCAAkC,OAC7C,EACE,eACA,aACA,WAEF,yDAA2B,KACQ;CACnC,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,KAAI,CAAC,SAAS,gCACZ,OAAM,IAAIC,wDAA0B,kCAAkC;AAGxE,QAAO,SAAS,gCAAgC;EAC9C;EACA;EACA;EACD,CAAC;;;;;;;;;;;;AClCJ,MAAa,yBAAyB,OACpC,EAAE,eAAe,aAAa,WAC9B,yDAA2B,KACQ;CACnC,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,uBAAuB;EACrC;EACA;EACA;EACD,CAAC;;;;;;;;;;;;ACxBJ,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,yDAA2B,KAC4C;CACvE,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,gBAAgB;EAAE;EAAa;EAAe,CAAC;;;;;mEC7B5CC,qCAAaC,uCAAe"}
package/dist/index.esm.js CHANGED
@@ -1,8 +1,8 @@
1
- import { i as version, r as name } from "./isVersionedTransaction-bqpBcWw-.esm.js";
2
- import { n as getSolanaConnection, t as addWaasSolanaExtension } from "./addWaasSolanaExtension-Cq4uO2DF.esm.js";
3
- import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-MShcPN9V.esm.js";
1
+ import { i as version, r as name } from "./isVersionedTransaction-BIvzfTun.esm.js";
2
+ import { n as SponsorTransactionError, r as getSolanaConnection, t as addWaasSolanaExtension } from "./addWaasSolanaExtension-Bc62Lmol.esm.js";
3
+ import { t as addSolanaWalletStandardExtension } from "./addSolanaWalletStandardExtension-Dp_OYp3g.esm.js";
4
4
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
- import { getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
5
+ import { MethodNotImplementedError, getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
6
6
  import { BaseError, getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
7
7
 
8
8
  //#region src/addSolanaExtension/addSolanaExtension.ts
@@ -80,6 +80,30 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = get
80
80
  });
81
81
  };
82
82
 
83
+ //#endregion
84
+ //#region src/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.ts
85
+ /**
86
+ * Signs and sends a sponsored Solana transaction.
87
+ * The transaction will be sponsored via Dynamic's gas sponsorship API.
88
+ *
89
+ * @param params.transaction - The transaction to sponsor, sign, and send
90
+ * @param params.walletAccount - The wallet account to sign and send the transaction with
91
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
92
+ * @returns An object containing the signature
93
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider
94
+ * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction
95
+ */
96
+ const signAndSendSponsoredTransaction = async ({ walletAccount, transaction, options }, client = getDefaultClient$1()) => {
97
+ const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
98
+ if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
99
+ if (!provider.signAndSendSponsoredTransaction) throw new MethodNotImplementedError("signAndSendSponsoredTransaction");
100
+ return provider.signAndSendSponsoredTransaction({
101
+ options,
102
+ transaction,
103
+ walletAccount
104
+ });
105
+ };
106
+
83
107
  //#endregion
84
108
  //#region src/signAndSendTransaction/signAndSendTransaction.ts
85
109
  /**
@@ -89,10 +113,11 @@ const signAllTransactions = async ({ walletAccount, transactions }, client = get
89
113
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
90
114
  * @returns An object containing the signature
91
115
  */
92
- const signAndSendTransaction = async ({ walletAccount, transaction }, client = getDefaultClient$1()) => {
116
+ const signAndSendTransaction = async ({ walletAccount, transaction, options }, client = getDefaultClient$1()) => {
93
117
  const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
94
118
  if (!isSolanaWalletProvider(provider)) throw new NotSolanaProviderError({ providerKey: provider.key });
95
119
  return provider.signAndSendTransaction({
120
+ options,
96
121
  transaction,
97
122
  walletAccount
98
123
  });
@@ -121,5 +146,5 @@ const signTransaction = async ({ walletAccount, transaction }, client = getDefau
121
146
  assertPackageVersion(name, version);
122
147
 
123
148
  //#endregion
124
- export { NotSolanaProviderError, addSolanaExtension, getSolanaConnection, isSolanaNetworkProvider, isSolanaWalletAccount, signAllTransactions, signAndSendTransaction, signTransaction };
149
+ export { NotSolanaProviderError, SponsorTransactionError, addSolanaExtension, getSolanaConnection, isSolanaNetworkProvider, isSolanaWalletAccount, signAllTransactions, signAndSendSponsoredTransaction, signAndSendTransaction, signTransaction };
125
150
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":["getDefaultClient","getDefaultClient","getDefaultClient","packageName","packageVersion"],"sources":["../src/addSolanaExtension/addSolanaExtension.ts","../src/errors/NotSolanaProviderError/NotSolanaProviderError.ts","../src/isSolanaNetworkProvider/isSolanaNetworkProvider.ts","../src/isSolanaWalletAccount/isSolanaWalletAccount.ts","../src/isSolanaWalletProvider/isSolanaWalletProvider.ts","../src/signAllTransactions/signAllTransactions.ts","../src/signAndSendTransaction/signAndSendTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasSolanaExtension } from '../waas/addWaasSolanaExtension';\nimport { addSolanaWalletStandardExtension } from '../walletStandard/addSolanaWalletStandardExtension';\n\n/**\n * Adds the Solana extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Solana Wallet Standard extension\n * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaExtension = (client = getDefaultClient()): void => {\n addSolanaWalletStandardExtension(client);\n addWaasSolanaExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotSolanaProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_solana_provider_error',\n docsUrl: null,\n name: 'NotSolanaProviderError',\n shortMessage: 'Provider is not a Solana wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a Solana network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a Solana network provider, false otherwise.\n */\nexport const isSolanaNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is SolanaNetworkProvider => networkProvider.chain === 'SOL';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Solana wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Solana wallet account, false otherwise.\n */\nexport const isSolanaWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is SolanaWalletAccount => walletAccount.chain === 'SOL';\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaWalletProvider } from '../SolanaWalletProvider.types';\n\nexport const isSolanaWalletProvider = (\n provider: WalletProvider\n): provider is SolanaWalletProvider => {\n return provider.chain === 'SOL';\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAllTransactionsParams = {\n transactions: (Transaction | VersionedTransaction)[];\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs multiple Solana transactions\n * @param params.transactions - The transactions to sign\n * @param params.walletAccount - The wallet account to sign the transactions with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transactions\n */\nexport const signAllTransactions = async (\n { walletAccount, transactions }: SignAllTransactionsParams,\n client = getDefaultClient()\n): Promise<{ signedTransactions: (Transaction | VersionedTransaction)[] }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAllTransactions({ transactions, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAndSendTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a Solana transaction\n * @param params.transaction - The transaction to sign and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n */\nexport const signAndSendTransaction = async (\n { walletAccount, transaction }: SignAndSendTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSendTransaction({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs a Solana transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transaction\n */\nexport const signTransaction = async (\n { walletAccount, transaction }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signedTransaction: Transaction | VersionedTransaction }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ transaction, walletAccount });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addSolanaExtension } from '../addSolanaExtension';\nexport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nexport { getSolanaConnection } from '../getSolanaConnection';\nexport { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';\nexport { isSolanaWalletAccount } from '../isSolanaWalletAccount';\nexport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\nexport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\nexport { signAllTransactions } from '../signAllTransactions';\nexport { signAndSendTransaction } from '../signAndSendTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,sBAAsB,SAAS,kBAAkB,KAAW;AACvE,kCAAiC,OAAO;AACxC,wBAAuB,OAAO;;;;;ACdhC,IAAa,yBAAb,cAA4C,UAAU;CACpD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;;;;;;;ACJ9B,MAAa,2BACX,oBAC6C,gBAAgB,UAAU;;;;;;;;;;ACFzE,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;ACRnE,MAAa,0BACX,aACqC;AACrC,QAAO,SAAS,UAAU;;;;;;;;;;;;ACa5B,MAAa,sBAAsB,OACjC,EAAE,eAAe,gBACjB,SAASA,oBAAkB,KACiD;CAC5E,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,oBAAoB;EAAE;EAAc;EAAe,CAAC;;;;;;;;;;;;ACftE,MAAa,yBAAyB,OACpC,EAAE,eAAe,eACjB,SAASC,oBAAkB,KACQ;CACnC,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,uBAAuB;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;ACfxE,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,SAASC,oBAAkB,KAC4C;CACvE,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,gBAAgB;EAAE;EAAa;EAAe,CAAC;;;;;AC7BjE,qBAAqBC,MAAaC,QAAe"}
1
+ {"version":3,"file":"index.esm.js","names":["getDefaultClient","getDefaultClient","getDefaultClient","getDefaultClient","packageName","packageVersion"],"sources":["../src/addSolanaExtension/addSolanaExtension.ts","../src/errors/NotSolanaProviderError/NotSolanaProviderError.ts","../src/isSolanaNetworkProvider/isSolanaNetworkProvider.ts","../src/isSolanaWalletAccount/isSolanaWalletAccount.ts","../src/isSolanaWalletProvider/isSolanaWalletProvider.ts","../src/signAllTransactions/signAllTransactions.ts","../src/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.ts","../src/signAndSendTransaction/signAndSendTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasSolanaExtension } from '../waas/addWaasSolanaExtension';\nimport { addSolanaWalletStandardExtension } from '../walletStandard/addSolanaWalletStandardExtension';\n\n/**\n * Adds the Solana extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Solana Wallet Standard extension\n * and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addSolanaExtension = (client = getDefaultClient()): void => {\n addSolanaWalletStandardExtension(client);\n addWaasSolanaExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotSolanaProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_solana_provider_error',\n docsUrl: null,\n name: 'NotSolanaProviderError',\n shortMessage: 'Provider is not a Solana wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a Solana network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a Solana network provider, false otherwise.\n */\nexport const isSolanaNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is SolanaNetworkProvider => networkProvider.chain === 'SOL';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Solana wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Solana wallet account, false otherwise.\n */\nexport const isSolanaWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is SolanaWalletAccount => walletAccount.chain === 'SOL';\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaWalletProvider } from '../SolanaWalletProvider.types';\n\nexport const isSolanaWalletProvider = (\n provider: WalletProvider\n): provider is SolanaWalletProvider => {\n return provider.chain === 'SOL';\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAllTransactionsParams = {\n transactions: (Transaction | VersionedTransaction)[];\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs multiple Solana transactions\n * @param params.transactions - The transactions to sign\n * @param params.walletAccount - The wallet account to sign the transactions with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transactions\n */\nexport const signAllTransactions = async (\n { walletAccount, transactions }: SignAllTransactionsParams,\n client = getDefaultClient()\n): Promise<{ signedTransactions: (Transaction | VersionedTransaction)[] }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAllTransactions({ transactions, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport {\n MethodNotImplementedError,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n SendOptions,\n Transaction,\n VersionedTransaction,\n} from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\n\ntype SignAndSendSponsoredTransactionParams = {\n options?: SendOptions;\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a sponsored Solana transaction.\n * The transaction will be sponsored via Dynamic's gas sponsorship API.\n *\n * @param params.transaction - The transaction to sponsor, sign, and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider\n * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction\n */\nexport const signAndSendSponsoredTransaction = async (\n {\n walletAccount,\n transaction,\n options,\n }: SignAndSendSponsoredTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n if (!provider.signAndSendSponsoredTransaction) {\n throw new MethodNotImplementedError('signAndSendSponsoredTransaction');\n }\n\n return provider.signAndSendSponsoredTransaction({\n options,\n transaction,\n walletAccount,\n });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type {\n SendOptions,\n Transaction,\n VersionedTransaction,\n} from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignAndSendTransactionParams = {\n options?: SendOptions;\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs and sends a Solana transaction\n * @param params.transaction - The transaction to sign and send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signature\n */\nexport const signAndSendTransaction = async (\n { walletAccount, transaction, options }: SignAndSendTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSendTransaction({\n options,\n transaction,\n walletAccount,\n });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nimport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\nimport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nimport { isSolanaWalletProvider } from '../isSolanaWalletProvider';\n\ntype SignTransactionParams = {\n transaction: Transaction | VersionedTransaction;\n walletAccount: SolanaWalletAccount;\n};\n\n/**\n * Signs a Solana transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the signed transaction\n */\nexport const signTransaction = async (\n { walletAccount, transaction }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signedTransaction: Transaction | VersionedTransaction }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSolanaWalletProvider(provider)) {\n throw new NotSolanaProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ transaction, walletAccount });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addSolanaExtension } from '../addSolanaExtension';\nexport { NotSolanaProviderError } from '../errors/NotSolanaProviderError';\nexport { SponsorTransactionError } from '../errors/SponsorTransactionError/SponsorTransactionError';\nexport { getSolanaConnection } from '../getSolanaConnection';\nexport { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';\nexport { isSolanaWalletAccount } from '../isSolanaWalletAccount';\nexport type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';\nexport type { SolanaWalletAccount } from '../SolanaWalletAccount.types';\n\nexport { signAllTransactions } from '../signAllTransactions';\nexport { signAndSendSponsoredTransaction } from '../signAndSendSponsoredTransaction';\nexport { signAndSendTransaction } from '../signAndSendTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,sBAAsB,SAAS,kBAAkB,KAAW;AACvE,kCAAiC,OAAO;AACxC,wBAAuB,OAAO;;;;;ACdhC,IAAa,yBAAb,cAA4C,UAAU;CACpD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;;;;;;;ACJ9B,MAAa,2BACX,oBAC6C,gBAAgB,UAAU;;;;;;;;;;ACFzE,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;ACRnE,MAAa,0BACX,aACqC;AACrC,QAAO,SAAS,UAAU;;;;;;;;;;;;ACa5B,MAAa,sBAAsB,OACjC,EAAE,eAAe,gBACjB,SAASA,oBAAkB,KACiD;CAC5E,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,oBAAoB;EAAE;EAAc;EAAe,CAAC;;;;;;;;;;;;;;;;ACHtE,MAAa,kCAAkC,OAC7C,EACE,eACA,aACA,WAEF,SAASC,oBAAkB,KACQ;CACnC,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,KAAI,CAAC,SAAS,gCACZ,OAAM,IAAI,0BAA0B,kCAAkC;AAGxE,QAAO,SAAS,gCAAgC;EAC9C;EACA;EACA;EACD,CAAC;;;;;;;;;;;;AClCJ,MAAa,yBAAyB,OACpC,EAAE,eAAe,aAAa,WAC9B,SAASC,oBAAkB,KACQ;CACnC,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,uBAAuB;EACrC;EACA;EACA;EACD,CAAC;;;;;;;;;;;;ACxBJ,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,SAASC,oBAAkB,KAC4C;CACvE,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,uBAAuB,SAAS,CACnC,OAAM,IAAI,uBAAuB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGjE,QAAO,SAAS,gBAAgB;EAAE;EAAa;EAAe,CAAC;;;;;AC7BjE,qBAAqBC,MAAaC,QAAe"}
@@ -3,12 +3,12 @@ import { Connection, PublicKey } from "@solana/web3.js";
3
3
 
4
4
  //#region package.json
5
5
  var name = "@dynamic-labs-sdk/solana";
6
- var version = "0.8.0";
6
+ var version = "0.10.0";
7
7
 
8
8
  //#endregion
9
9
  //#region src/utils/fetchSolBalance/fetchSolBalance.ts
10
- const fetchSolBalance = async ({ address, rpcUrl }) => {
11
- const connection = new Connection(rpcUrl);
10
+ const fetchSolBalance = async ({ address, networkData }) => {
11
+ const connection = new Connection(networkData.rpcUrls.http[0]);
12
12
  const publicKey = new PublicKey(address);
13
13
  return (await connection.getBalance(publicKey) / 1e9).toString();
14
14
  };
@@ -21,7 +21,7 @@ const createSolanaNetworkProvider = (networkData) => ({
21
21
  genesisHash: networkData.genesisHash,
22
22
  getBalance: async ({ address }) => ({ balance: await fetchSolBalance({
23
23
  address,
24
- rpcUrl: networkData.rpcUrls.http[0]
24
+ networkData
25
25
  }) })
26
26
  });
27
27
 
@@ -45,4 +45,4 @@ const isVersionedTransaction = (transaction) => !("instructions" in transaction)
45
45
 
46
46
  //#endregion
47
47
  export { version as i, registerSolanaNetworkProviderBuilder as n, name as r, isVersionedTransaction as t };
48
- //# sourceMappingURL=isVersionedTransaction-bqpBcWw-.esm.js.map
48
+ //# sourceMappingURL=isVersionedTransaction-BIvzfTun.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isVersionedTransaction-BIvzfTun.esm.js","names":[],"sources":["../package.json","../src/utils/fetchSolBalance/fetchSolBalance.ts","../src/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.ts","../src/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.ts","../src/utils/isVersionedTransaction/isVersionedTransaction.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { Connection, PublicKey } from '@solana/web3.js';\n\nexport const fetchSolBalance = async ({\n address,\n networkData,\n}: {\n address: string;\n networkData: NetworkData;\n}): Promise<string | null> => {\n // Establish a connection to the Solana network using the provided RPC URL.\n const connection = new Connection(networkData.rpcUrls.http[0]);\n\n // Convert the string address into a PublicKey object.\n const publicKey = new PublicKey(address);\n\n // Fetch the balance of the public key. The balance is in lamports.\n const balanceInLamports = await connection.getBalance(publicKey);\n\n // The getBalance method returns the balance in lamports.\n // 1 SOL = 1,000,000,000 lamports.\n const balanceInSol = balanceInLamports / 1_000_000_000;\n\n // Return the balance in SOL as a string\n return balanceInSol.toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaNetworkProvider } from '../../SolanaNetworkProvider.types';\nimport { fetchSolBalance } from '../fetchSolBalance';\n\nexport const createSolanaNetworkProvider = (\n networkData: NetworkData\n): SolanaNetworkProvider => ({\n ...createBaseNetworkProvider('SOL', networkData),\n cluster: networkData.cluster,\n genesisHash: networkData.genesisHash,\n getBalance: async ({ address }) => ({\n balance: await fetchSolBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createSolanaNetworkProvider } from '../utils/createSolanaNetworkProvider';\n\nexport const registerSolanaNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n /**\n * If the Solana network provider builder is already registered, return.\n */\n if (networkProviderBuilderRegistry.get().get('SOL')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createSolanaNetworkProvider,\n chain: 'SOL',\n });\n};\n","import type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nexport const isVersionedTransaction = (\n transaction: VersionedTransaction | Transaction\n): transaction is VersionedTransaction => !('instructions' in transaction);\n"],"mappings":";;;;;;;;;ACGA,MAAa,kBAAkB,OAAO,EACpC,SACA,kBAI4B;CAE5B,MAAM,aAAa,IAAI,WAAW,YAAY,QAAQ,KAAK,GAAG;CAG9D,MAAM,YAAY,IAAI,UAAU,QAAQ;AAUxC,SAP0B,MAAM,WAAW,WAAW,UAAU,GAIvB,KAGrB,UAAU;;;;;AClBhC,MAAa,+BACX,iBAC2B;CAC3B,GAAG,0BAA0B,OAAO,YAAY;CAChD,SAAS,YAAY;CACrB,aAAa,YAAY;CACzB,YAAY,OAAO,EAAE,eAAe,EAClC,SAAS,MAAM,gBAAgB;EAC7B;EACA;EACD,CAAC,EACH;CACF;;;;ACbD,MAAa,wCACX,WACS;CACT,MAAM,iCACJ,kCAAkC,OAAO;;;;AAK3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,MAAM,CACjD;AAGF,gCAA+B,SAAS;EACtC,SAAS;EACT,OAAO;EACR,CAAC;;;;;ACnBJ,MAAa,0BACX,gBACwC,EAAE,kBAAkB"}
@@ -1,15 +1,15 @@
1
- const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-CTdTAoA2.cjs.js');
1
+ const require_addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension-oqxjn7Z-.cjs.js');
2
2
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
3
3
  let _solana_web3_js = require("@solana/web3.js");
4
4
 
5
5
  //#region package.json
6
6
  var name = "@dynamic-labs-sdk/solana";
7
- var version = "0.8.0";
7
+ var version = "0.10.0";
8
8
 
9
9
  //#endregion
10
10
  //#region src/utils/fetchSolBalance/fetchSolBalance.ts
11
- const fetchSolBalance = async ({ address, rpcUrl }) => {
12
- const connection = new _solana_web3_js.Connection(rpcUrl);
11
+ const fetchSolBalance = async ({ address, networkData }) => {
12
+ const connection = new _solana_web3_js.Connection(networkData.rpcUrls.http[0]);
13
13
  const publicKey = new _solana_web3_js.PublicKey(address);
14
14
  return (await connection.getBalance(publicKey) / 1e9).toString();
15
15
  };
@@ -22,7 +22,7 @@ const createSolanaNetworkProvider = (networkData) => ({
22
22
  genesisHash: networkData.genesisHash,
23
23
  getBalance: async ({ address }) => ({ balance: await fetchSolBalance({
24
24
  address,
25
- rpcUrl: networkData.rpcUrls.http[0]
25
+ networkData
26
26
  }) })
27
27
  });
28
28
 
@@ -69,4 +69,4 @@ Object.defineProperty(exports, 'version', {
69
69
  return version;
70
70
  }
71
71
  });
72
- //# sourceMappingURL=isVersionedTransaction-5O-xUm-i.cjs.js.map
72
+ //# sourceMappingURL=isVersionedTransaction-DQmx8cAO.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isVersionedTransaction-DQmx8cAO.cjs.js","names":["Connection","PublicKey"],"sources":["../package.json","../src/utils/fetchSolBalance/fetchSolBalance.ts","../src/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.ts","../src/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.ts","../src/utils/isVersionedTransaction/isVersionedTransaction.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { Connection, PublicKey } from '@solana/web3.js';\n\nexport const fetchSolBalance = async ({\n address,\n networkData,\n}: {\n address: string;\n networkData: NetworkData;\n}): Promise<string | null> => {\n // Establish a connection to the Solana network using the provided RPC URL.\n const connection = new Connection(networkData.rpcUrls.http[0]);\n\n // Convert the string address into a PublicKey object.\n const publicKey = new PublicKey(address);\n\n // Fetch the balance of the public key. The balance is in lamports.\n const balanceInLamports = await connection.getBalance(publicKey);\n\n // The getBalance method returns the balance in lamports.\n // 1 SOL = 1,000,000,000 lamports.\n const balanceInSol = balanceInLamports / 1_000_000_000;\n\n // Return the balance in SOL as a string\n return balanceInSol.toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SolanaNetworkProvider } from '../../SolanaNetworkProvider.types';\nimport { fetchSolBalance } from '../fetchSolBalance';\n\nexport const createSolanaNetworkProvider = (\n networkData: NetworkData\n): SolanaNetworkProvider => ({\n ...createBaseNetworkProvider('SOL', networkData),\n cluster: networkData.cluster,\n genesisHash: networkData.genesisHash,\n getBalance: async ({ address }) => ({\n balance: await fetchSolBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createSolanaNetworkProvider } from '../utils/createSolanaNetworkProvider';\n\nexport const registerSolanaNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n /**\n * If the Solana network provider builder is already registered, return.\n */\n if (networkProviderBuilderRegistry.get().get('SOL')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createSolanaNetworkProvider,\n chain: 'SOL',\n });\n};\n","import type { Transaction, VersionedTransaction } from '@solana/web3.js';\n\nexport const isVersionedTransaction = (\n transaction: VersionedTransaction | Transaction\n): transaction is VersionedTransaction => !('instructions' in transaction);\n"],"mappings":";;;;;;;;;;ACGA,MAAa,kBAAkB,OAAO,EACpC,SACA,kBAI4B;CAE5B,MAAM,aAAa,IAAIA,2BAAW,YAAY,QAAQ,KAAK,GAAG;CAG9D,MAAM,YAAY,IAAIC,0BAAU,QAAQ;AAUxC,SAP0B,MAAM,WAAW,WAAW,UAAU,GAIvB,KAGrB,UAAU;;;;;AClBhC,MAAa,+BACX,iBAC2B;CAC3B,gEAA6B,OAAO,YAAY;CAChD,SAAS,YAAY;CACrB,aAAa,YAAY;CACzB,YAAY,OAAO,EAAE,eAAe,EAClC,SAAS,MAAM,gBAAgB;EAC7B;EACA;EACD,CAAC,EACH;CACF;;;;ACbD,MAAa,wCACX,WACS;CACT,MAAM,sGAC8B,OAAO;;;;AAK3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,MAAM,CACjD;AAGF,gCAA+B,SAAS;EACtC,SAAS;EACT,OAAO;EACR,CAAC;;;;;ACnBJ,MAAa,0BACX,gBACwC,EAAE,kBAAkB"}
@@ -0,0 +1,2 @@
1
+ export { signAndSendSponsoredTransaction } from './signAndSendSponsoredTransaction';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signAndSendSponsoredTransaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { SendOptions, Transaction, VersionedTransaction } from '@solana/web3.js';
2
+ import type { SolanaWalletAccount } from '../SolanaWalletAccount.types';
3
+ type SignAndSendSponsoredTransactionParams = {
4
+ options?: SendOptions;
5
+ transaction: Transaction | VersionedTransaction;
6
+ walletAccount: SolanaWalletAccount;
7
+ };
8
+ /**
9
+ * Signs and sends a sponsored Solana transaction.
10
+ * The transaction will be sponsored via Dynamic's gas sponsorship API.
11
+ *
12
+ * @param params.transaction - The transaction to sponsor, sign, and send
13
+ * @param params.walletAccount - The wallet account to sign and send the transaction with
14
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
15
+ * @returns An object containing the signature
16
+ * @throws {NotSolanaProviderError} If the wallet provider is not a Solana provider
17
+ * @throws {MethodNotImplementedError} If the wallet provider does not implement signAndSendSponsoredTransaction
18
+ */
19
+ export declare const signAndSendSponsoredTransaction: ({ walletAccount, transaction, options, }: SignAndSendSponsoredTransactionParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<{
20
+ signature: string;
21
+ }>;
22
+ export {};
23
+ //# sourceMappingURL=signAndSendSponsoredTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signAndSendSponsoredTransaction.d.ts","sourceRoot":"","sources":["../../src/signAndSendSponsoredTransaction/signAndSendSponsoredTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,KAAK,qCAAqC,GAAG;IAC3C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,GAAG,oBAAoB,CAAC;IAChD,aAAa,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+BAA+B,6CAKvC,qCAAqC,gEAEvC,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAqB/B,CAAC"}
@@ -1,6 +1,7 @@
1
- import type { Transaction, VersionedTransaction } from '@solana/web3.js';
1
+ import type { SendOptions, Transaction, VersionedTransaction } from '@solana/web3.js';
2
2
  import type { SolanaWalletAccount } from '../SolanaWalletAccount.types';
3
3
  type SignAndSendTransactionParams = {
4
+ options?: SendOptions;
4
5
  transaction: Transaction | VersionedTransaction;
5
6
  walletAccount: SolanaWalletAccount;
6
7
  };
@@ -11,7 +12,7 @@ type SignAndSendTransactionParams = {
11
12
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
12
13
  * @returns An object containing the signature
13
14
  */
14
- export declare const signAndSendTransaction: ({ walletAccount, transaction }: SignAndSendTransactionParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<{
15
+ export declare const signAndSendTransaction: ({ walletAccount, transaction, options }: SignAndSendTransactionParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<{
15
16
  signature: string;
16
17
  }>;
17
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"signAndSendTransaction.d.ts","sourceRoot":"","sources":["../../src/signAndSendTransaction/signAndSendTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,KAAK,4BAA4B,GAAG;IAClC,WAAW,EAAE,WAAW,GAAG,oBAAoB,CAAC;IAChD,aAAa,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,mCACD,4BAA4B,gEAE3D,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAa/B,CAAC"}
1
+ {"version":3,"file":"signAndSendTransaction.d.ts","sourceRoot":"","sources":["../../src/signAndSendTransaction/signAndSendTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,KAAK,4BAA4B,GAAG;IAClC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,GAAG,oBAAoB,CAAC;IAChD,aAAa,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,4CACQ,4BAA4B,gEAEpE,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAiB/B,CAAC"}