@dynamic-labs-sdk/sui 0.18.1 → 0.20.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 (41) hide show
  1. package/dist/{addSuiWalletStandardExtension-XDzQQEcp.esm.js → addSuiWalletStandardExtension-BU_U5BbJ.esm.js} +4 -3
  2. package/dist/addSuiWalletStandardExtension-BU_U5BbJ.esm.js.map +1 -0
  3. package/dist/{addSuiWalletStandardExtension-DJay5xWu.cjs.js → addSuiWalletStandardExtension-pCPSV4nm.cjs.js} +4 -3
  4. package/dist/addSuiWalletStandardExtension-pCPSV4nm.cjs.js.map +1 -0
  5. package/dist/{addWaasSuiExtension-Dg1TK5-k.cjs.js → addWaasSuiExtension-CrO_2A8-.cjs.js} +4 -3
  6. package/dist/addWaasSuiExtension-CrO_2A8-.cjs.js.map +1 -0
  7. package/dist/{addWaasSuiExtension-ciN8goPh.esm.js → addWaasSuiExtension-DwnwGOI3.esm.js} +4 -3
  8. package/dist/addWaasSuiExtension-DwnwGOI3.esm.js.map +1 -0
  9. package/dist/index.cjs.js +3 -3
  10. package/dist/index.esm.js +3 -3
  11. package/dist/{suiTransferAmount-DV51m-jr.cjs.js → suiTransferAmount-ByZ2sEUn.cjs.js} +67 -47
  12. package/dist/suiTransferAmount-ByZ2sEUn.cjs.js.map +1 -0
  13. package/dist/{suiTransferAmount-DMhBg2xT.esm.js → suiTransferAmount-C4-UIyUB.esm.js} +60 -46
  14. package/dist/suiTransferAmount-C4-UIyUB.esm.js.map +1 -0
  15. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  16. package/dist/utils/suiConfirmTransaction/index.d.ts +2 -0
  17. package/dist/utils/suiConfirmTransaction/index.d.ts.map +1 -0
  18. package/dist/utils/suiConfirmTransaction/suiConfirmTransaction.d.ts +12 -0
  19. package/dist/utils/suiConfirmTransaction/suiConfirmTransaction.d.ts.map +1 -0
  20. package/dist/utils/suiExecuteSwapTransaction/index.d.ts +2 -0
  21. package/dist/utils/suiExecuteSwapTransaction/index.d.ts.map +1 -0
  22. package/dist/utils/{suiExecuteCheckoutTransaction/suiExecuteCheckoutTransaction.d.ts → suiExecuteSwapTransaction/suiExecuteSwapTransaction.d.ts} +4 -4
  23. package/dist/utils/suiExecuteSwapTransaction/suiExecuteSwapTransaction.d.ts.map +1 -0
  24. package/dist/waas/utils/createWalletProviderForWaasSui/createWalletProviderForWaasSui.d.ts.map +1 -1
  25. package/dist/waas.cjs.js +2 -2
  26. package/dist/waas.esm.js +2 -2
  27. package/dist/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.d.ts.map +1 -1
  28. package/dist/walletStandard.cjs.js +2 -2
  29. package/dist/walletStandard.esm.js +2 -2
  30. package/package.json +4 -4
  31. package/dist/addSuiWalletStandardExtension-DJay5xWu.cjs.js.map +0 -1
  32. package/dist/addSuiWalletStandardExtension-XDzQQEcp.esm.js.map +0 -1
  33. package/dist/addWaasSuiExtension-Dg1TK5-k.cjs.js.map +0 -1
  34. package/dist/addWaasSuiExtension-ciN8goPh.esm.js.map +0 -1
  35. package/dist/checkoutTransaction.types.d.ts +0 -6
  36. package/dist/checkoutTransaction.types.d.ts.map +0 -1
  37. package/dist/suiTransferAmount-DMhBg2xT.esm.js.map +0 -1
  38. package/dist/suiTransferAmount-DV51m-jr.cjs.js.map +0 -1
  39. package/dist/utils/suiExecuteCheckoutTransaction/index.d.ts +0 -2
  40. package/dist/utils/suiExecuteCheckoutTransaction/index.d.ts.map +0 -1
  41. package/dist/utils/suiExecuteCheckoutTransaction/suiExecuteCheckoutTransaction.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { a as suiExecuteCheckoutTransaction, c as registerSuiNetworkProviderBuilder, t as suiTransferAmount } from "./suiTransferAmount-DMhBg2xT.esm.js";
1
+ import { i as suiConfirmTransaction, l as registerSuiNetworkProviderBuilder, r as suiExecuteSwapTransaction, t as suiTransferAmount } from "./suiTransferAmount-C4-UIyUB.esm.js";
2
2
  import { WalletProviderPriority, assertDefined, createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
3
  import { SuiClient } from "@mysten/sui/client";
4
4
  import { assertWalletAccountSigningAvailability, getActiveNetworkData } from "@dynamic-labs-sdk/client";
@@ -136,12 +136,13 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
136
136
  };
137
137
  return {
138
138
  chain: "SUI",
139
+ confirmTransaction: (args) => suiConfirmTransaction(args, dynamicClient),
139
140
  connect,
140
141
  disconnect: disconnectFeature,
141
142
  get events() {
142
143
  return getEventEmitter();
143
144
  },
144
- executeCheckoutTransaction: (args) => suiExecuteCheckoutTransaction(args, dynamicClient),
145
+ executeSwapTransaction: (args) => suiExecuteSwapTransaction(args, dynamicClient),
145
146
  getActiveNetworkId,
146
147
  getConnectedAddresses,
147
148
  getSuiClient,
@@ -198,4 +199,4 @@ const addSuiWalletStandardExtension = (client = getDefaultClient()) => {
198
199
 
199
200
  //#endregion
200
201
  export { addSuiWalletStandardExtension as t };
201
- //# sourceMappingURL=addSuiWalletStandardExtension-XDzQQEcp.esm.js.map
202
+ //# sourceMappingURL=addSuiWalletStandardExtension-BU_U5BbJ.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSuiWalletStandardExtension-BU_U5BbJ.esm.js","names":["connect: SuiWalletProvider['connect']","getActiveNetworkId: SuiWalletProvider['getActiveNetworkId']","getSuiClient: SuiWalletProvider['getSuiClient']","getConnectedAddresses: SuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction']","signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock']","signMessage: SuiWalletProvider['signMessage']","signTransaction: SuiWalletProvider['signTransaction']","signTransactionBlock: SuiWalletProvider['signTransactionBlock']","switchActiveNetwork: SuiWalletProvider['switchActiveNetwork']","terminate: SuiWalletProvider['terminate']"],"sources":["../src/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.ts","../src/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\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 { SuiClient } from '@mysten/sui/client';\nimport type {\n StandardEventsChangeProperties,\n SuiWalletFeatures,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\n\nimport type { SuiWalletProvider } from '../../../SuiWalletProvider.types';\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount';\n\ntype CreateWalletProviderFromSuiStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromSuiStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSuiStandardWalletParams): SuiWalletProvider => {\n const features = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SUI',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const runConnectFeature = async ({\n silent = false,\n }: {\n silent?: boolean;\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 });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n\n const connect: SuiWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n if (autoConnectedAccounts?.length && autoConnectedAccounts[0].address) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey?.toString(),\n },\n ],\n };\n }\n\n return runConnectFeature();\n };\n\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const getSuiClient: SuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n const client = new SuiClient({ url });\n return client;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SuiWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionMethod =\n features['sui:signAndExecuteTransaction']?.signAndExecuteTransaction;\n\n assertDefined(\n signAndExecuteTransactionMethod,\n 'signAndExecuteTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock'] =\n async ({ options, requestType, transactionBlock, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionBlockMethod =\n features['sui:signAndExecuteTransactionBlock']\n ?.signAndExecuteTransactionBlock;\n\n assertDefined(\n signAndExecuteTransactionBlockMethod,\n 'signAndExecuteTransactionBlock method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionBlockMethod({\n account,\n chain: account.chains[0],\n options,\n requestType,\n transactionBlock,\n });\n };\n\n const signMessage: SuiWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod =\n features['sui:signPersonalMessage']?.signPersonalMessage;\n\n assertDefined(\n signMessageMethod,\n 'signPersonalMessage 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 { signature } = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature };\n };\n\n const signTransaction: SuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signTransactionMethod =\n features['sui: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 return signTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signTransactionBlock: SuiWalletProvider['signTransactionBlock'] =\n async ({ transactionBlock, walletAccount }) => {\n const signTransactionBlockMethod =\n features['sui:signTransactionBlock']?.signTransactionBlock;\n\n assertDefined(\n signTransactionBlockMethod,\n 'signTransactionBlock method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n return signTransactionBlockMethod({\n account,\n chain: account.chains[0],\n transactionBlock,\n });\n };\n\n const switchActiveNetwork: SuiWalletProvider['switchActiveNetwork'] = async ({\n networkId,\n }) =>\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(\n 'change',\n ({ accounts }: StandardEventsChangeProperties) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n }\n );\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: SuiWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: SuiWalletProvider = {\n chain: 'SUI',\n confirmTransaction: (args) => suiConfirmTransaction(args, dynamicClient),\n connect,\n disconnect: disconnectFeature,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndExecuteTransaction,\n signAndExecuteTransactionBlock,\n signMessage,\n signTransaction,\n signTransactionBlock,\n switchActiveNetwork,\n terminate,\n transferAmount: (args) => suiTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n SuiWalletFeatures,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport {\n getWallets,\n isWalletWithRequiredFeatureSet,\n} from '@mysten/wallet-standard';\n\nimport { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderFromSuiStandardWallet } from '../utils/createWalletProviderFromSuiStandardWallet';\n\nexport const SUI_WALLET_STANDARD_EXTENSION_KEY = 'suiWalletStandard';\n\n/**\n * Adds the Sui Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Sui Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addSuiWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletStandardWallets = getWallets()\n .get()\n .filter((wallet) =>\n isWalletWithRequiredFeatureSet(wallet, [\n 'standard:events',\n 'standard:connect',\n 'sui:signPersonalMessage',\n ])\n ) as WalletWithFeatures<SuiWalletFeatures>[];\n\n walletStandardWallets.forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromSuiStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_suiTransferAmount = require('./suiTransferAmount-DV51m-jr.cjs.js');
1
+ const require_suiTransferAmount = require('./suiTransferAmount-ByZ2sEUn.cjs.js');
2
2
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
3
3
  let _mysten_sui_client = require("@mysten/sui/client");
4
4
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -136,12 +136,13 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
136
136
  };
137
137
  return {
138
138
  chain: "SUI",
139
+ confirmTransaction: (args) => require_suiTransferAmount.suiConfirmTransaction(args, dynamicClient),
139
140
  connect,
140
141
  disconnect: disconnectFeature,
141
142
  get events() {
142
143
  return getEventEmitter();
143
144
  },
144
- executeCheckoutTransaction: (args) => require_suiTransferAmount.suiExecuteCheckoutTransaction(args, dynamicClient),
145
+ executeSwapTransaction: (args) => require_suiTransferAmount.suiExecuteSwapTransaction(args, dynamicClient),
145
146
  getActiveNetworkId,
146
147
  getConnectedAddresses,
147
148
  getSuiClient,
@@ -203,4 +204,4 @@ Object.defineProperty(exports, 'addSuiWalletStandardExtension', {
203
204
  return addSuiWalletStandardExtension;
204
205
  }
205
206
  });
206
- //# sourceMappingURL=addSuiWalletStandardExtension-DJay5xWu.cjs.js.map
207
+ //# sourceMappingURL=addSuiWalletStandardExtension-pCPSV4nm.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSuiWalletStandardExtension-pCPSV4nm.cjs.js","names":["WalletProviderEnum","connect: SuiWalletProvider['connect']","getActiveNetworkId: SuiWalletProvider['getActiveNetworkId']","getSuiClient: SuiWalletProvider['getSuiClient']","SuiClient","getConnectedAddresses: SuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction']","signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock']","signMessage: SuiWalletProvider['signMessage']","signTransaction: SuiWalletProvider['signTransaction']","signTransactionBlock: SuiWalletProvider['signTransactionBlock']","switchActiveNetwork: SuiWalletProvider['switchActiveNetwork']","terminate: SuiWalletProvider['terminate']","suiConfirmTransaction","suiExecuteSwapTransaction","suiTransferAmount","WalletProviderPriority"],"sources":["../src/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.ts","../src/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\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 { SuiClient } from '@mysten/sui/client';\nimport type {\n StandardEventsChangeProperties,\n SuiWalletFeatures,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\n\nimport type { SuiWalletProvider } from '../../../SuiWalletProvider.types';\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount';\n\ntype CreateWalletProviderFromSuiStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromSuiStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSuiStandardWalletParams): SuiWalletProvider => {\n const features = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SUI',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const runConnectFeature = async ({\n silent = false,\n }: {\n silent?: boolean;\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 });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n\n const connect: SuiWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n if (autoConnectedAccounts?.length && autoConnectedAccounts[0].address) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey?.toString(),\n },\n ],\n };\n }\n\n return runConnectFeature();\n };\n\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const getSuiClient: SuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n const client = new SuiClient({ url });\n return client;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SuiWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionMethod =\n features['sui:signAndExecuteTransaction']?.signAndExecuteTransaction;\n\n assertDefined(\n signAndExecuteTransactionMethod,\n 'signAndExecuteTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock'] =\n async ({ options, requestType, transactionBlock, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionBlockMethod =\n features['sui:signAndExecuteTransactionBlock']\n ?.signAndExecuteTransactionBlock;\n\n assertDefined(\n signAndExecuteTransactionBlockMethod,\n 'signAndExecuteTransactionBlock method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionBlockMethod({\n account,\n chain: account.chains[0],\n options,\n requestType,\n transactionBlock,\n });\n };\n\n const signMessage: SuiWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod =\n features['sui:signPersonalMessage']?.signPersonalMessage;\n\n assertDefined(\n signMessageMethod,\n 'signPersonalMessage 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 { signature } = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature };\n };\n\n const signTransaction: SuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signTransactionMethod =\n features['sui: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 return signTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signTransactionBlock: SuiWalletProvider['signTransactionBlock'] =\n async ({ transactionBlock, walletAccount }) => {\n const signTransactionBlockMethod =\n features['sui:signTransactionBlock']?.signTransactionBlock;\n\n assertDefined(\n signTransactionBlockMethod,\n 'signTransactionBlock method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n return signTransactionBlockMethod({\n account,\n chain: account.chains[0],\n transactionBlock,\n });\n };\n\n const switchActiveNetwork: SuiWalletProvider['switchActiveNetwork'] = async ({\n networkId,\n }) =>\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(\n 'change',\n ({ accounts }: StandardEventsChangeProperties) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n }\n );\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: SuiWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: SuiWalletProvider = {\n chain: 'SUI',\n confirmTransaction: (args) => suiConfirmTransaction(args, dynamicClient),\n connect,\n disconnect: disconnectFeature,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndExecuteTransaction,\n signAndExecuteTransactionBlock,\n signMessage,\n signTransaction,\n signTransactionBlock,\n switchActiveNetwork,\n terminate,\n transferAmount: (args) => suiTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n SuiWalletFeatures,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport {\n getWallets,\n isWalletWithRequiredFeatureSet,\n} from '@mysten/wallet-standard';\n\nimport { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderFromSuiStandardWallet } from '../utils/createWalletProviderFromSuiStandardWallet';\n\nexport const SUI_WALLET_STANDARD_EXTENSION_KEY = 'suiWalletStandard';\n\n/**\n * Adds the Sui Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Sui Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addSuiWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletStandardWallets = getWallets()\n .get()\n .filter((wallet) =>\n isWalletWithRequiredFeatureSet(wallet, [\n 'standard:events',\n 'standard:connect',\n 'sui:signPersonalMessage',\n ])\n ) as WalletWithFeatures<SuiWalletFeatures>[];\n\n walletStandardWallets.forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromSuiStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_suiTransferAmount = require('./suiTransferAmount-DV51m-jr.cjs.js');
1
+ const require_suiTransferAmount = require('./suiTransferAmount-ByZ2sEUn.cjs.js');
2
2
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
3
3
  let _mysten_sui_client = require("@mysten/sui/client");
4
4
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -78,7 +78,8 @@ const createWalletProviderForWaasSui = (sdkClient) => {
78
78
  return {
79
79
  ...waasProvider,
80
80
  chain,
81
- executeCheckoutTransaction: (args) => require_suiTransferAmount.suiExecuteCheckoutTransaction(args, sdkClient),
81
+ confirmTransaction: (args) => require_suiTransferAmount.suiConfirmTransaction(args, sdkClient),
82
+ executeSwapTransaction: (args) => require_suiTransferAmount.suiExecuteSwapTransaction(args, sdkClient),
82
83
  getActiveNetworkId,
83
84
  getConnectedAddresses,
84
85
  getSuiClient,
@@ -128,4 +129,4 @@ Object.defineProperty(exports, 'addWaasSuiExtension', {
128
129
  return addWaasSuiExtension;
129
130
  }
130
131
  });
131
- //# sourceMappingURL=addWaasSuiExtension-Dg1TK5-k.cjs.js.map
132
+ //# sourceMappingURL=addWaasSuiExtension-CrO_2A8-.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSuiExtension-CrO_2A8-.cjs.js","names":["chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","getActiveNetworkId: WaasSuiWalletProvider['getActiveNetworkId']","getSuiClient: WaasSuiWalletProvider['getSuiClient']","SuiClient","switchActiveNetwork: WaasSuiWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: WaasSuiWalletProvider['signAndExecuteTransaction']","signTransaction: WaasSuiWalletProvider['signTransaction']","signMessage: WaasSuiWalletProvider['signMessage']","suiConfirmTransaction","suiExecuteSwapTransaction","suiTransferAmount","WalletProviderPriority"],"sources":["../src/waas/utils/createWalletProviderForWaasSui/createWalletProviderForWaasSui.ts","../src/waas/addWaasSuiExtension/addWaasSuiExtension.ts"],"sourcesContent":["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 { SuiClient } from '@mysten/sui/client';\n\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount/suiTransferAmount';\nimport type { WaasSuiWalletProvider } from '../../WaasSuiWalletProvider.types';\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasSui = (\n sdkClient: DynamicClient\n): WaasSuiWalletProvider => {\n const chain: Chain = 'SUI';\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: WaasSuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const getSuiClient: WaasSuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new SuiClient({ url });\n };\n\n const switchActiveNetwork: WaasSuiWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSuiWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndExecuteTransaction: WaasSuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n const { bytes, signature } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const suiClient = await getSuiClient({ walletAccount });\n\n const response = await suiClient.executeTransactionBlock({\n signature,\n transactionBlock: bytes,\n });\n\n return {\n ...response,\n bytes,\n effects: response.effects?.toString() ?? '',\n signature,\n };\n };\n\n const signTransaction: WaasSuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const suiClient = await getSuiClient({ walletAccount });\n const txBytes = await transaction.build({ client: suiClient });\n const txBytesBase64 = getBuffer().from(txBytes).toString('base64');\n const txString = getBuffer().from(txBytes).toString('hex');\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: txString,\n walletAccount,\n });\n\n return { bytes: txBytesBase64, signature };\n };\n\n const signMessage: WaasSuiWalletProvider['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 confirmTransaction: (args) => suiConfirmTransaction(args, sdkClient),\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, sdkClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\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 signAndExecuteTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n transferAmount: (args) => suiTransferAmount(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 { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderForWaasSui } from '../utils/createWalletProviderForWaasSui';\n\nexport const WAAS_SUI_EXTENSION_KEY = 'waasSui';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Sui extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Sui blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addWaasSuiExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SUI_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SUI_EXTENSION_KEY }, client);\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSui(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;;AA2BA,MAAa,kCACX,cAC0B;CAC1B,MAAMA,QAAe;CAErB,MAAM,qBAAqBC,8CAAmB;CAE9C,MAAM,iEAA8B;EAClC;EACA,aAAaC,yDAAsB;EACnC;EACD,CAAC;CAEF,MAAM,0EAAkC;EAAE;EAAO;EAAW,CAAC;CAE7D,MAAMC,qBACJ,uFAC0C;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,eAAsD,OAAO,EACjE,oBACI;EACJ,MAAM,oBAAoB,yDACxB,EAAE,eAAe,EACjB,UACD;AACD,mDAAc,mBAAmB,+BAA+B;EAEhE,MAAM,MAAM,kBAAkB,aAAa,QAAQ,KAAK;AACxD,mDAAc,KAAK,sCAAsC;AAEzD,SAAO,IAAIC,6BAAU,EAAE,KAAK,CAAC;;CAG/B,MAAMC,sBACJ,OAAO,EAAE,0FACgC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,mFALA,EAAE,OAAO,EACT,UACD,EAIA;;CAGL,MAAMC,4BACJ,OAAO,EAAE,aAAa,oBAAoB;EACxC,MAAM,EAAE,OAAO,cAAc,MAAM,gBAAgB;GACjD;GACA;GACD,CAAC;EAIF,MAAM,WAAW,OAFC,MAAM,aAAa,EAAE,eAAe,CAAC,EAEtB,wBAAwB;GACvD;GACA,kBAAkB;GACnB,CAAC;AAEF,SAAO;GACL,GAAG;GACH;GACA,SAAS,SAAS,SAAS,UAAU,IAAI;GACzC;GACD;;CAGL,MAAMC,kBAA4D,OAAO,EACvE,aACA,oBACI;EACJ,MAAM,YAAY,MAAM,aAAa,EAAE,eAAe,CAAC;EACvD,MAAM,UAAU,MAAM,YAAY,MAAM,EAAE,QAAQ,WAAW,CAAC;EAC9D,MAAM,8DAA2B,CAAC,KAAK,QAAQ,CAAC,SAAS,SAAS;EAClE,MAAM,yDAAsB,CAAC,KAAK,QAAQ,CAAC,SAAS,MAAM;EAE1D,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;GACjE,uBAAuB;GACvB;GACD,CAAC;AAEF,SAAO;GAAE,OAAO;GAAe;GAAW;;CAG5C,MAAMC,cAAoD,OAAO,EAC/D,SACA,oBACI;AACJ,mDAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAAE;GAAS;GAAe,CAAC;;AAG7D,QAAO;EACL,GAAG;EACH;EACA,qBAAqB,SAASC,gDAAsB,MAAM,UAAU;EACpE,yBAAyB,SACvBC,oDAA0B,MAAM,UAAU;EAC5C;EACA;EACA;EACA,0EAAuCV,yDAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAaA,yDAAsB;GACnC,MAAMA,yDAAsB;GAC7B;EACD;EACA;EACA;EACA;EACA,iBAAiB,SAASW,4CAAkB,MAAM,UAAU;EAC5D;EACD;;;;;AC9IH,MAAa,yBAAyB;;;;;;;;;;AAWtC,MAAa,uBAAuB,8DAA2B,KAAW;AACxE,qDAAiB,EAAE,cAAc,wBAAwB,EAAE,OAAO,CAChE;AAGF,sDAAkB,EAAE,cAAc,wBAAwB,EAAE,OAAO;AACnE,6DAAkC,OAAO;CAEzC,MAAM,sFAAmD,OAAO;CAEhE,MAAM,iBAAiB,+BAA+B,OAAO;AAE7D,wBAAuB,SAAS;EAC9B,UAAUC,qDAAuB;EACjC;EACD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { a as suiExecuteCheckoutTransaction, c as registerSuiNetworkProviderBuilder, t as suiTransferAmount } from "./suiTransferAmount-DMhBg2xT.esm.js";
1
+ import { i as suiConfirmTransaction, l as registerSuiNetworkProviderBuilder, r as suiExecuteSwapTransaction, t as suiTransferAmount } from "./suiTransferAmount-C4-UIyUB.esm.js";
2
2
  import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getBuffer, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
3
  import { SuiClient } from "@mysten/sui/client";
4
4
  import { getActiveNetworkData } from "@dynamic-labs-sdk/client";
@@ -78,7 +78,8 @@ const createWalletProviderForWaasSui = (sdkClient) => {
78
78
  return {
79
79
  ...waasProvider,
80
80
  chain,
81
- executeCheckoutTransaction: (args) => suiExecuteCheckoutTransaction(args, sdkClient),
81
+ confirmTransaction: (args) => suiConfirmTransaction(args, sdkClient),
82
+ executeSwapTransaction: (args) => suiExecuteSwapTransaction(args, sdkClient),
82
83
  getActiveNetworkId,
83
84
  getConnectedAddresses,
84
85
  getSuiClient,
@@ -123,4 +124,4 @@ const addWaasSuiExtension = (client = getDefaultClient()) => {
123
124
 
124
125
  //#endregion
125
126
  export { addWaasSuiExtension as t };
126
- //# sourceMappingURL=addWaasSuiExtension-ciN8goPh.esm.js.map
127
+ //# sourceMappingURL=addWaasSuiExtension-DwnwGOI3.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasSuiExtension-DwnwGOI3.esm.js","names":["chain: Chain","getActiveNetworkId: WaasSuiWalletProvider['getActiveNetworkId']","getSuiClient: WaasSuiWalletProvider['getSuiClient']","switchActiveNetwork: WaasSuiWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: WaasSuiWalletProvider['signAndExecuteTransaction']","signTransaction: WaasSuiWalletProvider['signTransaction']","signMessage: WaasSuiWalletProvider['signMessage']"],"sources":["../src/waas/utils/createWalletProviderForWaasSui/createWalletProviderForWaasSui.ts","../src/waas/addWaasSuiExtension/addWaasSuiExtension.ts"],"sourcesContent":["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 { SuiClient } from '@mysten/sui/client';\n\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount/suiTransferAmount';\nimport type { WaasSuiWalletProvider } from '../../WaasSuiWalletProvider.types';\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasSui = (\n sdkClient: DynamicClient\n): WaasSuiWalletProvider => {\n const chain: Chain = 'SUI';\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: WaasSuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const getSuiClient: WaasSuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new SuiClient({ url });\n };\n\n const switchActiveNetwork: WaasSuiWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSuiWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndExecuteTransaction: WaasSuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n const { bytes, signature } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const suiClient = await getSuiClient({ walletAccount });\n\n const response = await suiClient.executeTransactionBlock({\n signature,\n transactionBlock: bytes,\n });\n\n return {\n ...response,\n bytes,\n effects: response.effects?.toString() ?? '',\n signature,\n };\n };\n\n const signTransaction: WaasSuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const suiClient = await getSuiClient({ walletAccount });\n const txBytes = await transaction.build({ client: suiClient });\n const txBytesBase64 = getBuffer().from(txBytes).toString('base64');\n const txString = getBuffer().from(txBytes).toString('hex');\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: txString,\n walletAccount,\n });\n\n return { bytes: txBytesBase64, signature };\n };\n\n const signMessage: WaasSuiWalletProvider['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 confirmTransaction: (args) => suiConfirmTransaction(args, sdkClient),\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, sdkClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\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 signAndExecuteTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n transferAmount: (args) => suiTransferAmount(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 { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderForWaasSui } from '../utils/createWalletProviderForWaasSui';\n\nexport const WAAS_SUI_EXTENSION_KEY = 'waasSui';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Sui extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Sui blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addWaasSuiExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SUI_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SUI_EXTENSION_KEY }, client);\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSui(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;;AA2BA,MAAa,kCACX,cAC0B;CAC1B,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,eAAsD,OAAO,EACjE,oBACI;EACJ,MAAM,oBAAoB,MAAM,qBAC9B,EAAE,eAAe,EACjB,UACD;AACD,gBAAc,mBAAmB,+BAA+B;EAEhE,MAAM,MAAM,kBAAkB,aAAa,QAAQ,KAAK;AACxD,gBAAc,KAAK,sCAAsC;AAEzD,SAAO,IAAI,UAAU,EAAE,KAAK,CAAC;;CAG/B,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,4BACJ,OAAO,EAAE,aAAa,oBAAoB;EACxC,MAAM,EAAE,OAAO,cAAc,MAAM,gBAAgB;GACjD;GACA;GACD,CAAC;EAIF,MAAM,WAAW,OAFC,MAAM,aAAa,EAAE,eAAe,CAAC,EAEtB,wBAAwB;GACvD;GACA,kBAAkB;GACnB,CAAC;AAEF,SAAO;GACL,GAAG;GACH;GACA,SAAS,SAAS,SAAS,UAAU,IAAI;GACzC;GACD;;CAGL,MAAMC,kBAA4D,OAAO,EACvE,aACA,oBACI;EACJ,MAAM,YAAY,MAAM,aAAa,EAAE,eAAe,CAAC;EACvD,MAAM,UAAU,MAAM,YAAY,MAAM,EAAE,QAAQ,WAAW,CAAC;EAC9D,MAAM,gBAAgB,WAAW,CAAC,KAAK,QAAQ,CAAC,SAAS,SAAS;EAClE,MAAM,WAAW,WAAW,CAAC,KAAK,QAAQ,CAAC,SAAS,MAAM;EAE1D,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;GACjE,uBAAuB;GACvB;GACD,CAAC;AAEF,SAAO;GAAE,OAAO;GAAe;GAAW;;CAG5C,MAAMC,cAAoD,OAAO,EAC/D,SACA,oBACI;AACJ,gBAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAAE;GAAS;GAAe,CAAC;;AAG7D,QAAO;EACL,GAAG;EACH;EACA,qBAAqB,SAAS,sBAAsB,MAAM,UAAU;EACpE,yBAAyB,SACvB,0BAA0B,MAAM,UAAU;EAC5C;EACA;EACA;EACA,UAAU,6BAA6B,sBAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAa,sBAAsB;GACnC,MAAM,sBAAsB;GAC7B;EACD;EACA;EACA;EACA;EACA,iBAAiB,SAAS,kBAAkB,MAAM,UAAU;EAC5D;EACD;;;;;AC9IH,MAAa,yBAAyB;;;;;;;;;;AAWtC,MAAa,uBAAuB,SAAS,kBAAkB,KAAW;AACxE,KAAI,aAAa,EAAE,cAAc,wBAAwB,EAAE,OAAO,CAChE;AAGF,mBAAkB,EAAE,cAAc,wBAAwB,EAAE,OAAO;AACnE,mCAAkC,OAAO;CAEzC,MAAM,yBAAyB,0BAA0B,OAAO;CAEhE,MAAM,iBAAiB,+BAA+B,OAAO;AAE7D,wBAAuB,SAAS;EAC9B,UAAU,uBAAuB;EACjC;EACD,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -1,6 +1,6 @@
1
- const require_suiTransferAmount = require('./suiTransferAmount-DV51m-jr.cjs.js');
2
- const require_addWaasSuiExtension = require('./addWaasSuiExtension-Dg1TK5-k.cjs.js');
3
- const require_addSuiWalletStandardExtension = require('./addSuiWalletStandardExtension-DJay5xWu.cjs.js');
1
+ const require_suiTransferAmount = require('./suiTransferAmount-ByZ2sEUn.cjs.js');
2
+ const require_addWaasSuiExtension = require('./addWaasSuiExtension-CrO_2A8-.cjs.js');
3
+ const require_addSuiWalletStandardExtension = require('./addSuiWalletStandardExtension-pCPSV4nm.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");
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- import { i as NotSuiProviderError, l as name, n as signAndExecuteTransaction, o as isSuiWalletProvider, r as getSuiClient, s as isSuiWalletAccount, u as version } from "./suiTransferAmount-DMhBg2xT.esm.js";
2
- import { t as addWaasSuiExtension } from "./addWaasSuiExtension-ciN8goPh.esm.js";
3
- import { t as addSuiWalletStandardExtension } from "./addSuiWalletStandardExtension-XDzQQEcp.esm.js";
1
+ import { a as isSuiWalletAccount, c as NotSuiProviderError, d as version, n as signAndExecuteTransaction, o as getSuiClient, s as isSuiWalletProvider, u as name } from "./suiTransferAmount-C4-UIyUB.esm.js";
2
+ import { t as addWaasSuiExtension } from "./addWaasSuiExtension-DwnwGOI3.esm.js";
3
+ import { t as addSuiWalletStandardExtension } from "./addSuiWalletStandardExtension-BU_U5BbJ.esm.js";
4
4
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
5
  import { MethodNotImplementedError, getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
6
6
  import { getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
@@ -6,7 +6,7 @@ let _mysten_sui_transactions = require("@mysten/sui/transactions");
6
6
 
7
7
  //#region package.json
8
8
  var name = "@dynamic-labs-sdk/sui";
9
- var version = "0.18.1";
9
+ var version = "0.20.0";
10
10
 
11
11
  //#endregion
12
12
  //#region src/utils/fetchSuiBalance/fetchSuiBalance.ts
@@ -44,6 +44,46 @@ const registerSuiNetworkProviderBuilder = (client) => {
44
44
  });
45
45
  };
46
46
 
47
+ //#endregion
48
+ //#region src/errors/NotSuiProviderError/NotSuiProviderError.ts
49
+ var NotSuiProviderError = class extends _dynamic_labs_sdk_client.BaseError {
50
+ providerKey;
51
+ constructor(params) {
52
+ super({
53
+ cause: null,
54
+ code: "not_sui_provider_error",
55
+ docsUrl: null,
56
+ name: "NotSuiProviderError",
57
+ shortMessage: "Provider is not a Sui wallet provider"
58
+ });
59
+ this.providerKey = params.providerKey;
60
+ }
61
+ };
62
+
63
+ //#endregion
64
+ //#region src/isSuiWalletProvider/isSuiWalletProvider.ts
65
+ /** @not-instrumented */
66
+ const isSuiWalletProvider = (provider) => {
67
+ return provider.chain === "SUI";
68
+ };
69
+
70
+ //#endregion
71
+ //#region src/getSuiClient/getSuiClient.ts
72
+ /**
73
+ * Retrieves a SuiClient from a wallet account.
74
+ *
75
+ * @param params.walletAccount - The wallet account to get the SuiClient for.
76
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
77
+ * @returns A promise that resolves to a SuiClient instance
78
+ * @throws NotSuiProviderError If the wallet account's provider is not a SUI provider
79
+ * @not-instrumented
80
+ */
81
+ const getSuiClient = async ({ walletAccount }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
82
+ const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
83
+ if (!isSuiWalletProvider(provider)) throw new NotSuiProviderError({ providerKey: provider.key });
84
+ return provider.getSuiClient({ walletAccount });
85
+ };
86
+
47
87
  //#endregion
48
88
  //#region src/isSuiWalletAccount/isSuiWalletAccount.ts
49
89
  /**
@@ -56,14 +96,22 @@ const registerSuiNetworkProviderBuilder = (client) => {
56
96
  const isSuiWalletAccount = (walletAccount) => walletAccount.chain === "SUI";
57
97
 
58
98
  //#endregion
59
- //#region src/isSuiWalletProvider/isSuiWalletProvider.ts
60
- /** @not-instrumented */
61
- const isSuiWalletProvider = (provider) => {
62
- return provider.chain === "SUI";
99
+ //#region src/utils/suiConfirmTransaction/suiConfirmTransaction.ts
100
+ /**
101
+ * Waits for a SUI transaction to be confirmed on-chain.
102
+ *
103
+ * @param params.transactionHash - The transaction digest to wait for.
104
+ * @param params.walletAccount - The wallet account that submitted the transaction.
105
+ * @param client - The Dynamic client instance.
106
+ * @not-instrumented
107
+ */
108
+ const suiConfirmTransaction = async ({ transactionHash, walletAccount }, client) => {
109
+ if (!isSuiWalletAccount(walletAccount)) throw new _dynamic_labs_sdk_client.InvalidParamError("Wallet account is not a SUI wallet account");
110
+ await (await getSuiClient({ walletAccount }, client)).waitForTransaction({ digest: transactionHash });
63
111
  };
64
112
 
65
113
  //#endregion
66
- //#region src/utils/suiExecuteCheckoutTransaction/suiExecuteCheckoutTransaction.ts
114
+ //#region src/utils/suiExecuteSwapTransaction/suiExecuteSwapTransaction.ts
67
115
  /**
68
116
  * Executes a Sui checkout transaction by deserializing the base64-encoded
69
117
  * BCS transaction and sending it via the wallet provider's signAndExecuteTransaction.
@@ -80,13 +128,12 @@ const isSuiWalletProvider = (provider) => {
80
128
  * @returns The transaction hash (digest).
81
129
  * @not-instrumented
82
130
  */
83
- const suiExecuteCheckoutTransaction = async ({ onStepChange, signingPayload, walletAccount }, client) => {
131
+ const suiExecuteSwapTransaction = async ({ onStepChange, signingPayload, walletAccount }, client) => {
84
132
  const walletProvider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
85
133
  if (!isSuiWalletAccount(walletAccount) || !isSuiWalletProvider(walletProvider)) throw new _dynamic_labs_sdk_client.InvalidParamError("Wallet account is not a Sui wallet account");
86
- const suiPayload = signingPayload;
87
- if (!suiPayload.serializedTransaction?.serializedTransaction) throw new _dynamic_labs_sdk_client.InvalidParamError("Signing payload is missing serialized transaction data");
88
- const { serializedTransaction: serializedTransactionStr } = suiPayload.serializedTransaction;
89
- const transaction = _mysten_sui_transactions.Transaction.from(serializedTransactionStr);
134
+ const serializedTransactionData = signingPayload.serializedTransaction?.serializedTransaction;
135
+ if (!serializedTransactionData) throw new _dynamic_labs_sdk_client.InvalidParamError("Signing payload is missing serialized transaction data");
136
+ const transaction = _mysten_sui_transactions.Transaction.from(serializedTransactionData);
90
137
  onStepChange?.("transaction");
91
138
  return { transactionHash: (await walletProvider.signAndExecuteTransaction({
92
139
  transaction,
@@ -94,39 +141,6 @@ const suiExecuteCheckoutTransaction = async ({ onStepChange, signingPayload, wal
94
141
  })).digest };
95
142
  };
96
143
 
97
- //#endregion
98
- //#region src/errors/NotSuiProviderError/NotSuiProviderError.ts
99
- var NotSuiProviderError = class extends _dynamic_labs_sdk_client.BaseError {
100
- providerKey;
101
- constructor(params) {
102
- super({
103
- cause: null,
104
- code: "not_sui_provider_error",
105
- docsUrl: null,
106
- name: "NotSuiProviderError",
107
- shortMessage: "Provider is not a Sui wallet provider"
108
- });
109
- this.providerKey = params.providerKey;
110
- }
111
- };
112
-
113
- //#endregion
114
- //#region src/getSuiClient/getSuiClient.ts
115
- /**
116
- * Retrieves a SuiClient from a wallet account.
117
- *
118
- * @param params.walletAccount - The wallet account to get the SuiClient for.
119
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
120
- * @returns A promise that resolves to a SuiClient instance
121
- * @throws NotSuiProviderError If the wallet account's provider is not a SUI provider
122
- * @not-instrumented
123
- */
124
- const getSuiClient = async ({ walletAccount }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
125
- const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
126
- if (!isSuiWalletProvider(provider)) throw new NotSuiProviderError({ providerKey: provider.key });
127
- return provider.getSuiClient({ walletAccount });
128
- };
129
-
130
144
  //#endregion
131
145
  //#region src/signAndExecuteTransaction/signAndExecuteTransaction.ts
132
146
  /**
@@ -229,10 +243,16 @@ Object.defineProperty(exports, 'signAndExecuteTransaction', {
229
243
  return signAndExecuteTransaction;
230
244
  }
231
245
  });
232
- Object.defineProperty(exports, 'suiExecuteCheckoutTransaction', {
246
+ Object.defineProperty(exports, 'suiConfirmTransaction', {
247
+ enumerable: true,
248
+ get: function () {
249
+ return suiConfirmTransaction;
250
+ }
251
+ });
252
+ Object.defineProperty(exports, 'suiExecuteSwapTransaction', {
233
253
  enumerable: true,
234
254
  get: function () {
235
- return suiExecuteCheckoutTransaction;
255
+ return suiExecuteSwapTransaction;
236
256
  }
237
257
  });
238
258
  Object.defineProperty(exports, 'suiTransferAmount', {
@@ -247,4 +267,4 @@ Object.defineProperty(exports, 'version', {
247
267
  return version;
248
268
  }
249
269
  });
250
- //# sourceMappingURL=suiTransferAmount-DV51m-jr.cjs.js.map
270
+ //# sourceMappingURL=suiTransferAmount-ByZ2sEUn.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suiTransferAmount-ByZ2sEUn.cjs.js","names":["SuiClient","MIST_PER_SUI","BaseError","InvalidParamError","InvalidParamError","Transaction","InvalidParamError","Transaction"],"sources":["../package.json","../src/utils/fetchSuiBalance/fetchSuiBalance.ts","../src/utils/createSuiNetworkProvider/createSuiNetworkProvider.ts","../src/registerSuiNetworkProviderBuilder/registerSuiNetworkProviderBuilder.ts","../src/errors/NotSuiProviderError/NotSuiProviderError.ts","../src/isSuiWalletProvider/isSuiWalletProvider.ts","../src/getSuiClient/getSuiClient.ts","../src/isSuiWalletAccount/isSuiWalletAccount.ts","../src/utils/suiConfirmTransaction/suiConfirmTransaction.ts","../src/utils/suiExecuteSwapTransaction/suiExecuteSwapTransaction.ts","../src/signAndExecuteTransaction/signAndExecuteTransaction.ts","../src/utils/suiTransferAmount/suiTransferAmount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { SuiClient } from '@mysten/sui/client';\nimport { MIST_PER_SUI } from '@mysten/sui/utils';\n\n/** @not-instrumented */\nexport const fetchSuiBalance = async ({\n address,\n networkData,\n}: {\n address: string;\n networkData: NetworkData;\n}): Promise<string | null> => {\n // Create a SuiClient using the provided RPC URL.\n const suiClient = new SuiClient({\n url: networkData.rpcUrls.http[0],\n });\n\n const balanceInMist = await suiClient.getBalance({\n owner: address,\n });\n\n // Balance comes back as MIST, 1 SUI = 1e9 MIST\n const balance = Number(balanceInMist.totalBalance) / Number(MIST_PER_SUI);\n\n if (Number.isNaN(balance)) {\n return null;\n }\n\n return balance.toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SuiNetworkProvider } from '../../SuiNetworkProvider.types';\nimport { fetchSuiBalance } from '../fetchSuiBalance';\n\n/** @not-instrumented */\nexport const createSuiNetworkProvider = (\n networkData: NetworkData\n): SuiNetworkProvider => ({\n ...createBaseNetworkProvider('SUI', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchSuiBalance({\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 { createSuiNetworkProvider } from '../utils/createSuiNetworkProvider';\n\n/** @not-instrumented */\nexport const registerSuiNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n /**\n * If the Sui network provider builder is already registered, return.\n */\n if (networkProviderBuilderRegistry.get().get('SUI')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createSuiNetworkProvider,\n chain: 'SUI',\n });\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotSuiProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_sui_provider_error',\n docsUrl: null,\n name: 'NotSuiProviderError',\n shortMessage: 'Provider is not a Sui wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { SuiWalletProvider } from '../SuiWalletProvider.types';\n\n/** @not-instrumented */\nexport const isSuiWalletProvider = (\n provider: WalletProvider\n): provider is SuiWalletProvider => {\n return provider.chain === 'SUI';\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { NotSuiProviderError } from '../errors/NotSuiProviderError';\nimport { isSuiWalletProvider } from '../isSuiWalletProvider';\nimport type { SuiWalletAccount } from '../SuiWalletAccount.types';\n\ntype GetSuiClientParams = {\n walletAccount: SuiWalletAccount;\n};\n\n/**\n * Retrieves a SuiClient from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the SuiClient for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a SuiClient instance\n * @throws NotSuiProviderError If the wallet account's provider is not a SUI provider\n * @not-instrumented\n */\nexport const getSuiClient = async (\n { walletAccount }: GetSuiClientParams,\n client = getDefaultClient()\n) => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSuiWalletProvider(provider)) {\n throw new NotSuiProviderError({ providerKey: provider.key });\n }\n\n return provider.getSuiClient({ walletAccount });\n};\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { SuiWalletAccount } from '../SuiWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Sui wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Sui wallet account, false otherwise.\n * @not-instrumented\n */\nexport const isSuiWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is SuiWalletAccount => walletAccount.chain === 'SUI';\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { InvalidParamError } from '@dynamic-labs-sdk/client';\nimport type { ConfirmTransactionParams } from '@dynamic-labs-sdk/client/core';\n\nimport { getSuiClient } from '../../getSuiClient';\nimport { isSuiWalletAccount } from '../../isSuiWalletAccount';\n\n/**\n * Waits for a SUI transaction to be confirmed on-chain.\n *\n * @param params.transactionHash - The transaction digest to wait for.\n * @param params.walletAccount - The wallet account that submitted the transaction.\n * @param client - The Dynamic client instance.\n * @not-instrumented\n */\nexport const suiConfirmTransaction = async (\n { transactionHash, walletAccount }: ConfirmTransactionParams,\n client: DynamicClient\n): Promise<void> => {\n if (!isSuiWalletAccount(walletAccount)) {\n throw new InvalidParamError('Wallet account is not a SUI wallet account');\n }\n\n const suiClient = await getSuiClient({ walletAccount }, client);\n\n await suiClient.waitForTransaction({ digest: transactionHash });\n};\n","import {\n type DynamicClient,\n InvalidParamError,\n} from '@dynamic-labs-sdk/client';\nimport type {\n ExecuteSwapTransactionParams,\n ExecuteSwapTransactionResult,\n} from '@dynamic-labs-sdk/client/core';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport { Transaction } from '@mysten/sui/transactions';\n\nimport { isSuiWalletAccount } from '../../isSuiWalletAccount';\nimport { isSuiWalletProvider } from '../../isSuiWalletProvider';\n\n/**\n * Executes a Sui checkout transaction by deserializing the base64-encoded\n * BCS transaction and sending it via the wallet provider's signAndExecuteTransaction.\n *\n * 1. Validates that the wallet account is a Sui wallet account\n * 2. Extracts and validates the serialized transaction from the signing payload\n * 3. Deserializes the transaction using Transaction.from()\n * 4. Signs and executes via the Sui wallet provider\n *\n * @param params.signingPayload - The signing payload containing `serializedTransaction`.\n * @param params.walletAccount - The wallet account used to sign and execute the transaction.\n * @param params.onStepChange - Optional callback invoked with `'transaction'` when the execution step begins.\n * @param client - The Dynamic client instance.\n * @returns The transaction hash (digest).\n * @not-instrumented\n */\nexport const suiExecuteSwapTransaction = async (\n { onStepChange, signingPayload, walletAccount }: ExecuteSwapTransactionParams,\n client: DynamicClient\n): Promise<ExecuteSwapTransactionResult> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (\n !isSuiWalletAccount(walletAccount) ||\n !isSuiWalletProvider(walletProvider)\n ) {\n throw new InvalidParamError('Wallet account is not a Sui wallet account');\n }\n\n const serializedTransactionData =\n signingPayload.serializedTransaction?.serializedTransaction;\n\n if (!serializedTransactionData) {\n throw new InvalidParamError(\n 'Signing payload is missing serialized transaction data'\n );\n }\n\n const transaction = Transaction.from(serializedTransactionData);\n\n onStepChange?.('transaction');\n\n const result = await walletProvider.signAndExecuteTransaction({\n transaction,\n walletAccount,\n });\n\n return { transactionHash: result.digest };\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\nimport type { Transaction } from '@mysten/sui/transactions';\n\nimport { NotSuiProviderError } from '../errors/NotSuiProviderError';\nimport { isSuiWalletProvider } from '../isSuiWalletProvider';\nimport type { SuiWalletAccount } from '../SuiWalletAccount.types';\nimport type { SuiSignAndExecuteTransactionResult } from '../SuiWalletProvider.types';\n\ntype SignAndExecuteTransactionParams = {\n transaction: Transaction;\n walletAccount: SuiWalletAccount;\n};\n\n/**\n * Signs and executes a Sui transaction\n * @param params.transaction - The transaction to sign and execute\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 signature and transaction bytes\n * @not-instrumented\n */\nexport const signAndExecuteTransaction = async (\n { walletAccount, transaction }: SignAndExecuteTransactionParams,\n client = getDefaultClient()\n): Promise<SuiSignAndExecuteTransactionResult> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isSuiWalletProvider(provider)) {\n throw new NotSuiProviderError({ providerKey: provider.key });\n }\n\n transaction.setSender(walletAccount.address);\n\n return provider.signAndExecuteTransaction({ transaction, walletAccount });\n};\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { InvalidParamError } from '@dynamic-labs-sdk/client';\nimport {\n type TransferAmountParams,\n parseAmountToSmallestUnit,\n} from '@dynamic-labs-sdk/client/core';\nimport { Transaction } from '@mysten/sui/transactions';\n\nimport { getSuiClient } from '../../getSuiClient';\nimport { isSuiWalletAccount } from '../../isSuiWalletAccount';\nimport { signAndExecuteTransaction } from '../../signAndExecuteTransaction';\n\nconst SUI_DECIMALS = 9;\n\n/**\n * Transfers native SUI or a SUI token from one wallet to another.\n *\n * For native SUI, converts the human-readable amount string to MIST (9 decimals).\n * For tokens, fetches the user's coins of that type and splits from them.\n * @not-instrumented\n */\nexport const suiTransferAmount = async (\n { amount, recipient, token, walletAccount }: TransferAmountParams,\n client: DynamicClient\n): Promise<{ transactionHash: string }> => {\n if (!isSuiWalletAccount(walletAccount)) {\n throw new InvalidParamError('Wallet account is not a SUI wallet account');\n }\n\n const transaction = new Transaction();\n\n if (token?.address) {\n const suiClient = await getSuiClient({ walletAccount }, client);\n\n const { data: coins } = await suiClient.getCoins({\n coinType: token.address,\n owner: walletAccount.address,\n });\n\n if (coins.length === 0) {\n throw new InvalidParamError('Token not found');\n }\n\n const smallestUnit = parseAmountToSmallestUnit({\n amount,\n decimals: token.decimals,\n });\n\n const [coin] = transaction.splitCoins(coins[0].coinObjectId, [\n smallestUnit,\n ]);\n transaction.transferObjects([coin], recipient);\n } else {\n const mist = parseAmountToSmallestUnit({\n amount,\n decimals: SUI_DECIMALS,\n });\n\n const [coin] = transaction.splitCoins(transaction.gas, [mist]);\n transaction.transferObjects([coin], recipient);\n }\n\n const result = await signAndExecuteTransaction(\n { transaction, walletAccount },\n client\n );\n\n return { transactionHash: result.digest };\n};\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { Transaction } from "@mysten/sui/transactions";
6
6
 
7
7
  //#region package.json
8
8
  var name = "@dynamic-labs-sdk/sui";
9
- var version = "0.18.1";
9
+ var version = "0.20.0";
10
10
 
11
11
  //#endregion
12
12
  //#region src/utils/fetchSuiBalance/fetchSuiBalance.ts
@@ -44,6 +44,46 @@ const registerSuiNetworkProviderBuilder = (client) => {
44
44
  });
45
45
  };
46
46
 
47
+ //#endregion
48
+ //#region src/errors/NotSuiProviderError/NotSuiProviderError.ts
49
+ var NotSuiProviderError = class extends BaseError {
50
+ providerKey;
51
+ constructor(params) {
52
+ super({
53
+ cause: null,
54
+ code: "not_sui_provider_error",
55
+ docsUrl: null,
56
+ name: "NotSuiProviderError",
57
+ shortMessage: "Provider is not a Sui wallet provider"
58
+ });
59
+ this.providerKey = params.providerKey;
60
+ }
61
+ };
62
+
63
+ //#endregion
64
+ //#region src/isSuiWalletProvider/isSuiWalletProvider.ts
65
+ /** @not-instrumented */
66
+ const isSuiWalletProvider = (provider) => {
67
+ return provider.chain === "SUI";
68
+ };
69
+
70
+ //#endregion
71
+ //#region src/getSuiClient/getSuiClient.ts
72
+ /**
73
+ * Retrieves a SuiClient from a wallet account.
74
+ *
75
+ * @param params.walletAccount - The wallet account to get the SuiClient for.
76
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
77
+ * @returns A promise that resolves to a SuiClient instance
78
+ * @throws NotSuiProviderError If the wallet account's provider is not a SUI provider
79
+ * @not-instrumented
80
+ */
81
+ const getSuiClient = async ({ walletAccount }, client = getDefaultClient()) => {
82
+ const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
83
+ if (!isSuiWalletProvider(provider)) throw new NotSuiProviderError({ providerKey: provider.key });
84
+ return provider.getSuiClient({ walletAccount });
85
+ };
86
+
47
87
  //#endregion
48
88
  //#region src/isSuiWalletAccount/isSuiWalletAccount.ts
49
89
  /**
@@ -56,14 +96,22 @@ const registerSuiNetworkProviderBuilder = (client) => {
56
96
  const isSuiWalletAccount = (walletAccount) => walletAccount.chain === "SUI";
57
97
 
58
98
  //#endregion
59
- //#region src/isSuiWalletProvider/isSuiWalletProvider.ts
60
- /** @not-instrumented */
61
- const isSuiWalletProvider = (provider) => {
62
- return provider.chain === "SUI";
99
+ //#region src/utils/suiConfirmTransaction/suiConfirmTransaction.ts
100
+ /**
101
+ * Waits for a SUI transaction to be confirmed on-chain.
102
+ *
103
+ * @param params.transactionHash - The transaction digest to wait for.
104
+ * @param params.walletAccount - The wallet account that submitted the transaction.
105
+ * @param client - The Dynamic client instance.
106
+ * @not-instrumented
107
+ */
108
+ const suiConfirmTransaction = async ({ transactionHash, walletAccount }, client) => {
109
+ if (!isSuiWalletAccount(walletAccount)) throw new InvalidParamError("Wallet account is not a SUI wallet account");
110
+ await (await getSuiClient({ walletAccount }, client)).waitForTransaction({ digest: transactionHash });
63
111
  };
64
112
 
65
113
  //#endregion
66
- //#region src/utils/suiExecuteCheckoutTransaction/suiExecuteCheckoutTransaction.ts
114
+ //#region src/utils/suiExecuteSwapTransaction/suiExecuteSwapTransaction.ts
67
115
  /**
68
116
  * Executes a Sui checkout transaction by deserializing the base64-encoded
69
117
  * BCS transaction and sending it via the wallet provider's signAndExecuteTransaction.
@@ -80,13 +128,12 @@ const isSuiWalletProvider = (provider) => {
80
128
  * @returns The transaction hash (digest).
81
129
  * @not-instrumented
82
130
  */
83
- const suiExecuteCheckoutTransaction = async ({ onStepChange, signingPayload, walletAccount }, client) => {
131
+ const suiExecuteSwapTransaction = async ({ onStepChange, signingPayload, walletAccount }, client) => {
84
132
  const walletProvider = getWalletProviderFromWalletAccount({ walletAccount }, client);
85
133
  if (!isSuiWalletAccount(walletAccount) || !isSuiWalletProvider(walletProvider)) throw new InvalidParamError("Wallet account is not a Sui wallet account");
86
- const suiPayload = signingPayload;
87
- if (!suiPayload.serializedTransaction?.serializedTransaction) throw new InvalidParamError("Signing payload is missing serialized transaction data");
88
- const { serializedTransaction: serializedTransactionStr } = suiPayload.serializedTransaction;
89
- const transaction = Transaction.from(serializedTransactionStr);
134
+ const serializedTransactionData = signingPayload.serializedTransaction?.serializedTransaction;
135
+ if (!serializedTransactionData) throw new InvalidParamError("Signing payload is missing serialized transaction data");
136
+ const transaction = Transaction.from(serializedTransactionData);
90
137
  onStepChange?.("transaction");
91
138
  return { transactionHash: (await walletProvider.signAndExecuteTransaction({
92
139
  transaction,
@@ -94,39 +141,6 @@ const suiExecuteCheckoutTransaction = async ({ onStepChange, signingPayload, wal
94
141
  })).digest };
95
142
  };
96
143
 
97
- //#endregion
98
- //#region src/errors/NotSuiProviderError/NotSuiProviderError.ts
99
- var NotSuiProviderError = class extends BaseError {
100
- providerKey;
101
- constructor(params) {
102
- super({
103
- cause: null,
104
- code: "not_sui_provider_error",
105
- docsUrl: null,
106
- name: "NotSuiProviderError",
107
- shortMessage: "Provider is not a Sui wallet provider"
108
- });
109
- this.providerKey = params.providerKey;
110
- }
111
- };
112
-
113
- //#endregion
114
- //#region src/getSuiClient/getSuiClient.ts
115
- /**
116
- * Retrieves a SuiClient from a wallet account.
117
- *
118
- * @param params.walletAccount - The wallet account to get the SuiClient for.
119
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
120
- * @returns A promise that resolves to a SuiClient instance
121
- * @throws NotSuiProviderError If the wallet account's provider is not a SUI provider
122
- * @not-instrumented
123
- */
124
- const getSuiClient = async ({ walletAccount }, client = getDefaultClient()) => {
125
- const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
126
- if (!isSuiWalletProvider(provider)) throw new NotSuiProviderError({ providerKey: provider.key });
127
- return provider.getSuiClient({ walletAccount });
128
- };
129
-
130
144
  //#endregion
131
145
  //#region src/signAndExecuteTransaction/signAndExecuteTransaction.ts
132
146
  /**
@@ -187,5 +201,5 @@ const suiTransferAmount = async ({ amount, recipient, token, walletAccount }, cl
187
201
  };
188
202
 
189
203
  //#endregion
190
- export { suiExecuteCheckoutTransaction as a, registerSuiNetworkProviderBuilder as c, NotSuiProviderError as i, name as l, signAndExecuteTransaction as n, isSuiWalletProvider as o, getSuiClient as r, isSuiWalletAccount as s, suiTransferAmount as t, version as u };
191
- //# sourceMappingURL=suiTransferAmount-DMhBg2xT.esm.js.map
204
+ export { isSuiWalletAccount as a, NotSuiProviderError as c, version as d, suiConfirmTransaction as i, registerSuiNetworkProviderBuilder as l, signAndExecuteTransaction as n, getSuiClient as o, suiExecuteSwapTransaction as r, isSuiWalletProvider as s, suiTransferAmount as t, name as u };
205
+ //# sourceMappingURL=suiTransferAmount-C4-UIyUB.esm.js.map