@dynamic-labs-sdk/aptos 0.2.3 → 0.2.4

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.
@@ -6,7 +6,7 @@ import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
6
6
 
7
7
  //#region package.json
8
8
  var name = "@dynamic-labs-sdk/aptos";
9
- var version = "0.2.3";
9
+ var version = "0.2.4";
10
10
 
11
11
  //#endregion
12
12
  //#region src/utils/constants.ts
@@ -250,4 +250,4 @@ const addAptosWalletStandardExtension = (client = getDefaultClient()) => {
250
250
 
251
251
  //#endregion
252
252
  export { name as n, version as r, addAptosWalletStandardExtension as t };
253
- //# sourceMappingURL=addAptosWalletStandardExtension-D8VnL6JS.esm.js.map
253
+ //# sourceMappingURL=addAptosWalletStandardExtension-C5kSd0qw.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addAptosWalletStandardExtension-D8VnL6JS.esm.js","names":["features: AptosFeatures","connect: AptosWalletProvider['connect']","disconnect: AptosWalletProvider['disconnect']","getActiveNetworkId: AptosWalletProvider['getActiveNetworkId']","getAptosClient: AptosWalletProvider['getAptosClient']","getConnectedAddresses: AptosWalletProvider['getConnectedAddresses']","signTransaction: AptosWalletProvider['signTransaction']","signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction']","signMessage: AptosWalletProvider['signMessage']","publicKey: string | undefined","terminate: AptosWalletProvider['terminate']","REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[]"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchAptosBalance/fetchAptosBalance.ts","../src/utils/createAptosNetworkProvider/createAptosNetworkProvider.ts","../src/registerAptosNetworkProviderBuilder/registerAptosNetworkProviderBuilder.ts","../src/walletStandard/utils/createWalletProviderFromAptosStandardWallet/createWalletProviderFromAptosStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/utils/registerAptosStandardWallet/registerAptosStandardWallet.ts","../src/walletStandard/addAptosWalletStandardExtension/addAptosWalletStandardExtension.ts"],"sourcesContent":["","// 1 APT = 10^8 octas (similar to 1 BTC = 10^8 satoshis)\nexport const OCTAS_PER_APT = 1e8;\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type { NetworkData } from '@dynamic-labs-sdk/client';\n\nimport { OCTAS_PER_APT } from '../constants';\n\ntype FetchAptosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchAptosBalance = async ({\n address,\n networkData,\n}: FetchAptosBalanceParams): Promise<string | null> => {\n const config = new AptosConfig({\n fullnode: networkData.rpcUrls.http[0],\n network: networkData.cluster as Network,\n });\n\n const aptosClient = new Aptos(config);\n\n const balance = await aptosClient.getBalance({\n accountAddress: address,\n // APT coin type\n asset: '0x1::aptos_coin::AptosCoin',\n });\n\n return (Number(balance) / OCTAS_PER_APT).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosNetworkProvider } from '../../AptosNetworkProvider.types';\nimport { fetchAptosBalance } from '../fetchAptosBalance';\n\nexport const createAptosNetworkProvider = (\n networkData: NetworkData\n): AptosNetworkProvider => ({\n ...createBaseNetworkProvider('APTOS', networkData),\n cluster: networkData.cluster,\n getBalance: async ({ address }) => ({\n balance: await fetchAptosBalance({\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 { createAptosNetworkProvider } from '../utils/createAptosNetworkProvider';\n\nexport const registerAptosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Aptos network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('APTOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createAptosNetworkProvider,\n chain: 'APTOS',\n });\n};\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type {\n AccountInfo,\n AptosFeatures,\n AptosWallet,\n} from '@aptos-labs/wallet-standard';\nimport { UserResponseStatus } from '@aptos-labs/wallet-standard';\nimport {\n type DynamicClient,\n UserRejectedError,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { AptosWalletProvider } from '../../../AptosWalletProvider.types';\n\ntype CreateWalletProviderFromAptosStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: AptosWallet;\n};\n\nexport const createWalletProviderFromAptosStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromAptosStandardWalletParams): AptosWalletProvider => {\n const features: AptosFeatures = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'APTOS',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const getAutoConnectedAccount = ():\n | { address: string; publicKey: string }[]\n | undefined => {\n const accounts = walletStandardWallet.accounts;\n if (!accounts?.length || !accounts[0].publicKey || !accounts[0].address) {\n return;\n }\n\n return accounts.map((account) => ({\n address: account.address.toString(),\n publicKey: account.publicKey?.toString(),\n }));\n };\n\n const connect: AptosWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = getAutoConnectedAccount();\n\n if (autoConnectedAccounts) {\n return {\n addresses: autoConnectedAccounts,\n };\n }\n\n const connectMethod = features['aptos:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod();\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'connect' });\n }\n\n return {\n addresses: [\n {\n address: result.args.address.toString(),\n publicKey: result.args.publicKey?.toString(),\n },\n ],\n };\n };\n\n const disconnect: AptosWalletProvider['disconnect'] = async () => {\n const disconnectMethod = features['aptos:disconnect']?.disconnect;\n\n // this should never happen as we check for all required features in hasAllRequiredFeatures\n // but we'll assert it just in case\n assertDefined(\n disconnectMethod,\n 'disconnect method not found in wallet features'\n );\n\n return disconnectMethod();\n };\n\n const getActiveNetworkId: AptosWalletProvider['getActiveNetworkId'] =\n async () => {\n const aptosNetwork = await features['aptos:network']?.network();\n\n if (!aptosNetwork?.chainId) {\n return getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n }\n\n return { networkId: aptosNetwork.chainId.toString() };\n };\n\n const getAptosClient: AptosWalletProvider['getAptosClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData.networkData,\n 'No active network data found'\n );\n\n const { rpcUrls, cluster } = activeNetworkData.networkData;\n\n const url = rpcUrls.http[0];\n\n assertDefined(url, 'No RPC URL found for active network');\n\n const network = cluster as Network;\n const config = new AptosConfig({ fullnode: url, network });\n\n return new Aptos(config);\n };\n\n const getConnectedAccount = async (): Promise<AccountInfo | undefined> => {\n const getAccountMethod = features['aptos:account']?.account;\n\n if (!getAccountMethod) {\n return undefined;\n }\n\n return getAccountMethod();\n };\n\n const getConnectedAddresses: AptosWalletProvider['getConnectedAddresses'] =\n async () => {\n const account = await getConnectedAccount();\n\n if (account) {\n return {\n addresses: [account.address.toString()],\n };\n }\n\n return {\n addresses: [],\n };\n };\n\n const signTransaction: AptosWalletProvider['signTransaction'] = async ({\n asFeePayer,\n transaction,\n walletAccount,\n }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signTransactionMethod =\n features['aptos:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n const result = await signTransactionMethod(transaction, asFeePayer);\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signTransaction' });\n }\n\n return {\n signature: result.args,\n };\n };\n\n const signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signAndSubmitMethod =\n features['aptos:signAndSubmitTransaction']?.signAndSubmitTransaction;\n\n assertDefined(\n signAndSubmitMethod,\n 'signAndSubmitTransaction method not found in wallet features'\n );\n\n const result = await signAndSubmitMethod({\n payload: transaction,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signAndSubmitTransaction' });\n }\n\n return {\n hash: result.args.hash,\n };\n };\n\n const signMessage: AptosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signMessageMethod = features['aptos:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n const nonce = Date.now().toString();\n const result = await signMessageMethod({\n message,\n nonce,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signMessage' });\n }\n\n let publicKey: string | undefined =\n walletStandardWallet.accounts[0]?.publicKey?.toString();\n\n if (!publicKey) {\n const account = await getConnectedAccount();\n publicKey = account?.publicKey?.toString();\n }\n\n const signatureObj = {\n fullMessage: result.args.fullMessage,\n publicKey,\n signature: result.args.signature.toString(),\n };\n\n return { signature: JSON.stringify(signatureObj) };\n };\n\n const { cleanupEventEmitter, getEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleNetworkChanged,\n }): VoidFunction => {\n const onAccountChange =\n features['aptos:onAccountChange']?.onAccountChange;\n\n if (onAccountChange) {\n void onAccountChange((account) => {\n handleAccountsChanged({\n addresses: account ? [account.address.toString()] : [],\n });\n });\n }\n\n const onNetworkChange =\n features['aptos:onNetworkChange']?.onNetworkChange;\n\n if (onNetworkChange) {\n void onNetworkChange((network) => {\n handleNetworkChanged({ networkId: network.chainId.toString() });\n });\n }\n\n return () => {};\n },\n\n supportedEvents: ['accountsChanged', 'networkChanged'],\n });\n\n const terminate: AptosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: AptosWalletProvider = {\n chain: 'APTOS',\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getAptosClient,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndSubmitTransaction,\n signMessage,\n signTransaction,\n terminate,\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type {\n AptosWallet,\n MinimallyRequiredFeatures,\n} from '@aptos-labs/wallet-standard';\n\nconst REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[] = [\n 'aptos:account',\n 'aptos:connect',\n 'aptos:disconnect',\n 'aptos:network',\n 'aptos:onAccountChange',\n 'aptos:onNetworkChange',\n 'aptos:signMessage',\n 'aptos:signTransaction',\n];\n\nexport const hasAllRequiredFeatures = (wallet: AptosWallet): boolean => {\n return Boolean(\n REQUIRED_FEATURES.every((feature) => feature in wallet.features)\n );\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n WalletProviderPriority,\n getWalletProviderRegistry,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { createWalletProviderFromAptosStandardWallet } from '../createWalletProviderFromAptosStandardWallet';\nimport { hasAllRequiredFeatures } from '../hasAllRequiredFeatures';\n\nexport const registerAptosStandardWallet = (\n wallet: AptosWallet,\n client: DynamicClient\n) => {\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n if (hasAllRequiredFeatures(wallet)) {\n const walletProvider = createWalletProviderFromAptosStandardWallet({\n dynamicClient: client,\n walletStandardWallet: wallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n }\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport { getAptosWallets } from '@aptos-labs/wallet-standard';\nimport {\n getDefaultClient,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerAptosNetworkProviderBuilder } from '../../registerAptosNetworkProviderBuilder';\nimport { registerAptosStandardWallet } from '../utils/registerAptosStandardWallet';\n\nexport const APTOS_WALLET_STANDARD_EXTENSION_KEY = 'aptosWalletStandard';\n\n/**\n * Adds the Aptos Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Aptos Wallet Standard (AIP-62),\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 *\n * @returns A function that can be used to remove Aptos Wallet Standard register event listener that was added.\n */\nexport const addAptosWalletStandardExtension = (\n client = getDefaultClient()\n): VoidFunction => {\n if (\n hasExtension({ extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return () => {\n // noop\n };\n }\n\n registerExtension(\n { extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerAptosNetworkProviderBuilder(client);\n\n const { aptosWallets, on } = getAptosWallets();\n\n // Listen for new wallet registrations/announcements\n const removeListener = on('register', (wallet) => {\n registerAptosStandardWallet(wallet as AptosWallet, client);\n });\n\n // Register all wallets that are already registered/announced in the browser\n for (const wallet of aptosWallets) {\n registerAptosStandardWallet(wallet, client);\n }\n\n return removeListener;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addAptosWalletStandardExtension-C5kSd0qw.esm.js","names":["features: AptosFeatures","connect: AptosWalletProvider['connect']","disconnect: AptosWalletProvider['disconnect']","getActiveNetworkId: AptosWalletProvider['getActiveNetworkId']","getAptosClient: AptosWalletProvider['getAptosClient']","getConnectedAddresses: AptosWalletProvider['getConnectedAddresses']","signTransaction: AptosWalletProvider['signTransaction']","signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction']","signMessage: AptosWalletProvider['signMessage']","publicKey: string | undefined","terminate: AptosWalletProvider['terminate']","REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[]"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchAptosBalance/fetchAptosBalance.ts","../src/utils/createAptosNetworkProvider/createAptosNetworkProvider.ts","../src/registerAptosNetworkProviderBuilder/registerAptosNetworkProviderBuilder.ts","../src/walletStandard/utils/createWalletProviderFromAptosStandardWallet/createWalletProviderFromAptosStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/utils/registerAptosStandardWallet/registerAptosStandardWallet.ts","../src/walletStandard/addAptosWalletStandardExtension/addAptosWalletStandardExtension.ts"],"sourcesContent":["","// 1 APT = 10^8 octas (similar to 1 BTC = 10^8 satoshis)\nexport const OCTAS_PER_APT = 1e8;\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type { NetworkData } from '@dynamic-labs-sdk/client';\n\nimport { OCTAS_PER_APT } from '../constants';\n\ntype FetchAptosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchAptosBalance = async ({\n address,\n networkData,\n}: FetchAptosBalanceParams): Promise<string | null> => {\n const config = new AptosConfig({\n fullnode: networkData.rpcUrls.http[0],\n network: networkData.cluster as Network,\n });\n\n const aptosClient = new Aptos(config);\n\n const balance = await aptosClient.getBalance({\n accountAddress: address,\n // APT coin type\n asset: '0x1::aptos_coin::AptosCoin',\n });\n\n return (Number(balance) / OCTAS_PER_APT).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosNetworkProvider } from '../../AptosNetworkProvider.types';\nimport { fetchAptosBalance } from '../fetchAptosBalance';\n\nexport const createAptosNetworkProvider = (\n networkData: NetworkData\n): AptosNetworkProvider => ({\n ...createBaseNetworkProvider('APTOS', networkData),\n cluster: networkData.cluster,\n getBalance: async ({ address }) => ({\n balance: await fetchAptosBalance({\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 { createAptosNetworkProvider } from '../utils/createAptosNetworkProvider';\n\nexport const registerAptosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Aptos network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('APTOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createAptosNetworkProvider,\n chain: 'APTOS',\n });\n};\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type {\n AccountInfo,\n AptosFeatures,\n AptosWallet,\n} from '@aptos-labs/wallet-standard';\nimport { UserResponseStatus } from '@aptos-labs/wallet-standard';\nimport {\n type DynamicClient,\n UserRejectedError,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { AptosWalletProvider } from '../../../AptosWalletProvider.types';\n\ntype CreateWalletProviderFromAptosStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: AptosWallet;\n};\n\nexport const createWalletProviderFromAptosStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromAptosStandardWalletParams): AptosWalletProvider => {\n const features: AptosFeatures = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'APTOS',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const getAutoConnectedAccount = ():\n | { address: string; publicKey: string }[]\n | undefined => {\n const accounts = walletStandardWallet.accounts;\n if (!accounts?.length || !accounts[0].publicKey || !accounts[0].address) {\n return;\n }\n\n return accounts.map((account) => ({\n address: account.address.toString(),\n publicKey: account.publicKey?.toString(),\n }));\n };\n\n const connect: AptosWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = getAutoConnectedAccount();\n\n if (autoConnectedAccounts) {\n return {\n addresses: autoConnectedAccounts,\n };\n }\n\n const connectMethod = features['aptos:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod();\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'connect' });\n }\n\n return {\n addresses: [\n {\n address: result.args.address.toString(),\n publicKey: result.args.publicKey?.toString(),\n },\n ],\n };\n };\n\n const disconnect: AptosWalletProvider['disconnect'] = async () => {\n const disconnectMethod = features['aptos:disconnect']?.disconnect;\n\n // this should never happen as we check for all required features in hasAllRequiredFeatures\n // but we'll assert it just in case\n assertDefined(\n disconnectMethod,\n 'disconnect method not found in wallet features'\n );\n\n return disconnectMethod();\n };\n\n const getActiveNetworkId: AptosWalletProvider['getActiveNetworkId'] =\n async () => {\n const aptosNetwork = await features['aptos:network']?.network();\n\n if (!aptosNetwork?.chainId) {\n return getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n }\n\n return { networkId: aptosNetwork.chainId.toString() };\n };\n\n const getAptosClient: AptosWalletProvider['getAptosClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData.networkData,\n 'No active network data found'\n );\n\n const { rpcUrls, cluster } = activeNetworkData.networkData;\n\n const url = rpcUrls.http[0];\n\n assertDefined(url, 'No RPC URL found for active network');\n\n const network = cluster as Network;\n const config = new AptosConfig({ fullnode: url, network });\n\n return new Aptos(config);\n };\n\n const getConnectedAccount = async (): Promise<AccountInfo | undefined> => {\n const getAccountMethod = features['aptos:account']?.account;\n\n if (!getAccountMethod) {\n return undefined;\n }\n\n return getAccountMethod();\n };\n\n const getConnectedAddresses: AptosWalletProvider['getConnectedAddresses'] =\n async () => {\n const account = await getConnectedAccount();\n\n if (account) {\n return {\n addresses: [account.address.toString()],\n };\n }\n\n return {\n addresses: [],\n };\n };\n\n const signTransaction: AptosWalletProvider['signTransaction'] = async ({\n asFeePayer,\n transaction,\n walletAccount,\n }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signTransactionMethod =\n features['aptos:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n const result = await signTransactionMethod(transaction, asFeePayer);\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signTransaction' });\n }\n\n return {\n signature: result.args,\n };\n };\n\n const signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signAndSubmitMethod =\n features['aptos:signAndSubmitTransaction']?.signAndSubmitTransaction;\n\n assertDefined(\n signAndSubmitMethod,\n 'signAndSubmitTransaction method not found in wallet features'\n );\n\n const result = await signAndSubmitMethod({\n payload: transaction,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signAndSubmitTransaction' });\n }\n\n return {\n hash: result.args.hash,\n };\n };\n\n const signMessage: AptosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signMessageMethod = features['aptos:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n const nonce = Date.now().toString();\n const result = await signMessageMethod({\n message,\n nonce,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signMessage' });\n }\n\n let publicKey: string | undefined =\n walletStandardWallet.accounts[0]?.publicKey?.toString();\n\n if (!publicKey) {\n const account = await getConnectedAccount();\n publicKey = account?.publicKey?.toString();\n }\n\n const signatureObj = {\n fullMessage: result.args.fullMessage,\n publicKey,\n signature: result.args.signature.toString(),\n };\n\n return { signature: JSON.stringify(signatureObj) };\n };\n\n const { cleanupEventEmitter, getEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleNetworkChanged,\n }): VoidFunction => {\n const onAccountChange =\n features['aptos:onAccountChange']?.onAccountChange;\n\n if (onAccountChange) {\n void onAccountChange((account) => {\n handleAccountsChanged({\n addresses: account ? [account.address.toString()] : [],\n });\n });\n }\n\n const onNetworkChange =\n features['aptos:onNetworkChange']?.onNetworkChange;\n\n if (onNetworkChange) {\n void onNetworkChange((network) => {\n handleNetworkChanged({ networkId: network.chainId.toString() });\n });\n }\n\n return () => {};\n },\n\n supportedEvents: ['accountsChanged', 'networkChanged'],\n });\n\n const terminate: AptosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: AptosWalletProvider = {\n chain: 'APTOS',\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getAptosClient,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndSubmitTransaction,\n signMessage,\n signTransaction,\n terminate,\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type {\n AptosWallet,\n MinimallyRequiredFeatures,\n} from '@aptos-labs/wallet-standard';\n\nconst REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[] = [\n 'aptos:account',\n 'aptos:connect',\n 'aptos:disconnect',\n 'aptos:network',\n 'aptos:onAccountChange',\n 'aptos:onNetworkChange',\n 'aptos:signMessage',\n 'aptos:signTransaction',\n];\n\nexport const hasAllRequiredFeatures = (wallet: AptosWallet): boolean => {\n return Boolean(\n REQUIRED_FEATURES.every((feature) => feature in wallet.features)\n );\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n WalletProviderPriority,\n getWalletProviderRegistry,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { createWalletProviderFromAptosStandardWallet } from '../createWalletProviderFromAptosStandardWallet';\nimport { hasAllRequiredFeatures } from '../hasAllRequiredFeatures';\n\nexport const registerAptosStandardWallet = (\n wallet: AptosWallet,\n client: DynamicClient\n) => {\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n if (hasAllRequiredFeatures(wallet)) {\n const walletProvider = createWalletProviderFromAptosStandardWallet({\n dynamicClient: client,\n walletStandardWallet: wallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n }\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport { getAptosWallets } from '@aptos-labs/wallet-standard';\nimport {\n getDefaultClient,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerAptosNetworkProviderBuilder } from '../../registerAptosNetworkProviderBuilder';\nimport { registerAptosStandardWallet } from '../utils/registerAptosStandardWallet';\n\nexport const APTOS_WALLET_STANDARD_EXTENSION_KEY = 'aptosWalletStandard';\n\n/**\n * Adds the Aptos Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Aptos Wallet Standard (AIP-62),\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 *\n * @returns A function that can be used to remove Aptos Wallet Standard register event listener that was added.\n */\nexport const addAptosWalletStandardExtension = (\n client = getDefaultClient()\n): VoidFunction => {\n if (\n hasExtension({ extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return () => {\n // noop\n };\n }\n\n registerExtension(\n { extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerAptosNetworkProviderBuilder(client);\n\n const { aptosWallets, on } = getAptosWallets();\n\n // Listen for new wallet registrations/announcements\n const removeListener = on('register', (wallet) => {\n registerAptosStandardWallet(wallet as AptosWallet, client);\n });\n\n // Register all wallets that are already registered/announced in the browser\n for (const wallet of aptosWallets) {\n registerAptosStandardWallet(wallet, client);\n }\n\n return removeListener;\n};\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
6
6
 
7
7
  //#region package.json
8
8
  var name = "@dynamic-labs-sdk/aptos";
9
- var version = "0.2.3";
9
+ var version = "0.2.4";
10
10
 
11
11
  //#endregion
12
12
  //#region src/utils/constants.ts
@@ -267,4 +267,4 @@ Object.defineProperty(exports, 'version', {
267
267
  return version;
268
268
  }
269
269
  });
270
- //# sourceMappingURL=addAptosWalletStandardExtension-JDzwoqAp.cjs.js.map
270
+ //# sourceMappingURL=addAptosWalletStandardExtension-Zvr1YUyy.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addAptosWalletStandardExtension-JDzwoqAp.cjs.js","names":["Aptos","AptosConfig","features: AptosFeatures","WalletProviderEnum","connect: AptosWalletProvider['connect']","UserResponseStatus","UserRejectedError","disconnect: AptosWalletProvider['disconnect']","getActiveNetworkId: AptosWalletProvider['getActiveNetworkId']","getAptosClient: AptosWalletProvider['getAptosClient']","Aptos","AptosConfig","getConnectedAddresses: AptosWalletProvider['getConnectedAddresses']","signTransaction: AptosWalletProvider['signTransaction']","signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction']","signMessage: AptosWalletProvider['signMessage']","publicKey: string | undefined","terminate: AptosWalletProvider['terminate']","REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[]","WalletProviderPriority"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchAptosBalance/fetchAptosBalance.ts","../src/utils/createAptosNetworkProvider/createAptosNetworkProvider.ts","../src/registerAptosNetworkProviderBuilder/registerAptosNetworkProviderBuilder.ts","../src/walletStandard/utils/createWalletProviderFromAptosStandardWallet/createWalletProviderFromAptosStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/utils/registerAptosStandardWallet/registerAptosStandardWallet.ts","../src/walletStandard/addAptosWalletStandardExtension/addAptosWalletStandardExtension.ts"],"sourcesContent":["","// 1 APT = 10^8 octas (similar to 1 BTC = 10^8 satoshis)\nexport const OCTAS_PER_APT = 1e8;\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type { NetworkData } from '@dynamic-labs-sdk/client';\n\nimport { OCTAS_PER_APT } from '../constants';\n\ntype FetchAptosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchAptosBalance = async ({\n address,\n networkData,\n}: FetchAptosBalanceParams): Promise<string | null> => {\n const config = new AptosConfig({\n fullnode: networkData.rpcUrls.http[0],\n network: networkData.cluster as Network,\n });\n\n const aptosClient = new Aptos(config);\n\n const balance = await aptosClient.getBalance({\n accountAddress: address,\n // APT coin type\n asset: '0x1::aptos_coin::AptosCoin',\n });\n\n return (Number(balance) / OCTAS_PER_APT).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosNetworkProvider } from '../../AptosNetworkProvider.types';\nimport { fetchAptosBalance } from '../fetchAptosBalance';\n\nexport const createAptosNetworkProvider = (\n networkData: NetworkData\n): AptosNetworkProvider => ({\n ...createBaseNetworkProvider('APTOS', networkData),\n cluster: networkData.cluster,\n getBalance: async ({ address }) => ({\n balance: await fetchAptosBalance({\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 { createAptosNetworkProvider } from '../utils/createAptosNetworkProvider';\n\nexport const registerAptosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Aptos network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('APTOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createAptosNetworkProvider,\n chain: 'APTOS',\n });\n};\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type {\n AccountInfo,\n AptosFeatures,\n AptosWallet,\n} from '@aptos-labs/wallet-standard';\nimport { UserResponseStatus } from '@aptos-labs/wallet-standard';\nimport {\n type DynamicClient,\n UserRejectedError,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { AptosWalletProvider } from '../../../AptosWalletProvider.types';\n\ntype CreateWalletProviderFromAptosStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: AptosWallet;\n};\n\nexport const createWalletProviderFromAptosStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromAptosStandardWalletParams): AptosWalletProvider => {\n const features: AptosFeatures = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'APTOS',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const getAutoConnectedAccount = ():\n | { address: string; publicKey: string }[]\n | undefined => {\n const accounts = walletStandardWallet.accounts;\n if (!accounts?.length || !accounts[0].publicKey || !accounts[0].address) {\n return;\n }\n\n return accounts.map((account) => ({\n address: account.address.toString(),\n publicKey: account.publicKey?.toString(),\n }));\n };\n\n const connect: AptosWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = getAutoConnectedAccount();\n\n if (autoConnectedAccounts) {\n return {\n addresses: autoConnectedAccounts,\n };\n }\n\n const connectMethod = features['aptos:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod();\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'connect' });\n }\n\n return {\n addresses: [\n {\n address: result.args.address.toString(),\n publicKey: result.args.publicKey?.toString(),\n },\n ],\n };\n };\n\n const disconnect: AptosWalletProvider['disconnect'] = async () => {\n const disconnectMethod = features['aptos:disconnect']?.disconnect;\n\n // this should never happen as we check for all required features in hasAllRequiredFeatures\n // but we'll assert it just in case\n assertDefined(\n disconnectMethod,\n 'disconnect method not found in wallet features'\n );\n\n return disconnectMethod();\n };\n\n const getActiveNetworkId: AptosWalletProvider['getActiveNetworkId'] =\n async () => {\n const aptosNetwork = await features['aptos:network']?.network();\n\n if (!aptosNetwork?.chainId) {\n return getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n }\n\n return { networkId: aptosNetwork.chainId.toString() };\n };\n\n const getAptosClient: AptosWalletProvider['getAptosClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData.networkData,\n 'No active network data found'\n );\n\n const { rpcUrls, cluster } = activeNetworkData.networkData;\n\n const url = rpcUrls.http[0];\n\n assertDefined(url, 'No RPC URL found for active network');\n\n const network = cluster as Network;\n const config = new AptosConfig({ fullnode: url, network });\n\n return new Aptos(config);\n };\n\n const getConnectedAccount = async (): Promise<AccountInfo | undefined> => {\n const getAccountMethod = features['aptos:account']?.account;\n\n if (!getAccountMethod) {\n return undefined;\n }\n\n return getAccountMethod();\n };\n\n const getConnectedAddresses: AptosWalletProvider['getConnectedAddresses'] =\n async () => {\n const account = await getConnectedAccount();\n\n if (account) {\n return {\n addresses: [account.address.toString()],\n };\n }\n\n return {\n addresses: [],\n };\n };\n\n const signTransaction: AptosWalletProvider['signTransaction'] = async ({\n asFeePayer,\n transaction,\n walletAccount,\n }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signTransactionMethod =\n features['aptos:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n const result = await signTransactionMethod(transaction, asFeePayer);\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signTransaction' });\n }\n\n return {\n signature: result.args,\n };\n };\n\n const signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signAndSubmitMethod =\n features['aptos:signAndSubmitTransaction']?.signAndSubmitTransaction;\n\n assertDefined(\n signAndSubmitMethod,\n 'signAndSubmitTransaction method not found in wallet features'\n );\n\n const result = await signAndSubmitMethod({\n payload: transaction,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signAndSubmitTransaction' });\n }\n\n return {\n hash: result.args.hash,\n };\n };\n\n const signMessage: AptosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signMessageMethod = features['aptos:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n const nonce = Date.now().toString();\n const result = await signMessageMethod({\n message,\n nonce,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signMessage' });\n }\n\n let publicKey: string | undefined =\n walletStandardWallet.accounts[0]?.publicKey?.toString();\n\n if (!publicKey) {\n const account = await getConnectedAccount();\n publicKey = account?.publicKey?.toString();\n }\n\n const signatureObj = {\n fullMessage: result.args.fullMessage,\n publicKey,\n signature: result.args.signature.toString(),\n };\n\n return { signature: JSON.stringify(signatureObj) };\n };\n\n const { cleanupEventEmitter, getEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleNetworkChanged,\n }): VoidFunction => {\n const onAccountChange =\n features['aptos:onAccountChange']?.onAccountChange;\n\n if (onAccountChange) {\n void onAccountChange((account) => {\n handleAccountsChanged({\n addresses: account ? [account.address.toString()] : [],\n });\n });\n }\n\n const onNetworkChange =\n features['aptos:onNetworkChange']?.onNetworkChange;\n\n if (onNetworkChange) {\n void onNetworkChange((network) => {\n handleNetworkChanged({ networkId: network.chainId.toString() });\n });\n }\n\n return () => {};\n },\n\n supportedEvents: ['accountsChanged', 'networkChanged'],\n });\n\n const terminate: AptosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: AptosWalletProvider = {\n chain: 'APTOS',\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getAptosClient,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndSubmitTransaction,\n signMessage,\n signTransaction,\n terminate,\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type {\n AptosWallet,\n MinimallyRequiredFeatures,\n} from '@aptos-labs/wallet-standard';\n\nconst REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[] = [\n 'aptos:account',\n 'aptos:connect',\n 'aptos:disconnect',\n 'aptos:network',\n 'aptos:onAccountChange',\n 'aptos:onNetworkChange',\n 'aptos:signMessage',\n 'aptos:signTransaction',\n];\n\nexport const hasAllRequiredFeatures = (wallet: AptosWallet): boolean => {\n return Boolean(\n REQUIRED_FEATURES.every((feature) => feature in wallet.features)\n );\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n WalletProviderPriority,\n getWalletProviderRegistry,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { createWalletProviderFromAptosStandardWallet } from '../createWalletProviderFromAptosStandardWallet';\nimport { hasAllRequiredFeatures } from '../hasAllRequiredFeatures';\n\nexport const registerAptosStandardWallet = (\n wallet: AptosWallet,\n client: DynamicClient\n) => {\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n if (hasAllRequiredFeatures(wallet)) {\n const walletProvider = createWalletProviderFromAptosStandardWallet({\n dynamicClient: client,\n walletStandardWallet: wallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n }\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport { getAptosWallets } from '@aptos-labs/wallet-standard';\nimport {\n getDefaultClient,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerAptosNetworkProviderBuilder } from '../../registerAptosNetworkProviderBuilder';\nimport { registerAptosStandardWallet } from '../utils/registerAptosStandardWallet';\n\nexport const APTOS_WALLET_STANDARD_EXTENSION_KEY = 'aptosWalletStandard';\n\n/**\n * Adds the Aptos Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Aptos Wallet Standard (AIP-62),\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 *\n * @returns A function that can be used to remove Aptos Wallet Standard register event listener that was added.\n */\nexport const addAptosWalletStandardExtension = (\n client = getDefaultClient()\n): VoidFunction => {\n if (\n hasExtension({ extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return () => {\n // noop\n };\n }\n\n registerExtension(\n { extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerAptosNetworkProviderBuilder(client);\n\n const { aptosWallets, on } = getAptosWallets();\n\n // Listen for new wallet registrations/announcements\n const removeListener = on('register', (wallet) => {\n registerAptosStandardWallet(wallet as AptosWallet, client);\n });\n\n // Register all wallets that are already registered/announced in the browser\n for (const wallet of aptosWallets) {\n registerAptosStandardWallet(wallet, client);\n }\n\n return removeListener;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addAptosWalletStandardExtension-Zvr1YUyy.cjs.js","names":["Aptos","AptosConfig","features: AptosFeatures","WalletProviderEnum","connect: AptosWalletProvider['connect']","UserResponseStatus","UserRejectedError","disconnect: AptosWalletProvider['disconnect']","getActiveNetworkId: AptosWalletProvider['getActiveNetworkId']","getAptosClient: AptosWalletProvider['getAptosClient']","Aptos","AptosConfig","getConnectedAddresses: AptosWalletProvider['getConnectedAddresses']","signTransaction: AptosWalletProvider['signTransaction']","signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction']","signMessage: AptosWalletProvider['signMessage']","publicKey: string | undefined","terminate: AptosWalletProvider['terminate']","REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[]","WalletProviderPriority"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchAptosBalance/fetchAptosBalance.ts","../src/utils/createAptosNetworkProvider/createAptosNetworkProvider.ts","../src/registerAptosNetworkProviderBuilder/registerAptosNetworkProviderBuilder.ts","../src/walletStandard/utils/createWalletProviderFromAptosStandardWallet/createWalletProviderFromAptosStandardWallet.ts","../src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.ts","../src/walletStandard/utils/registerAptosStandardWallet/registerAptosStandardWallet.ts","../src/walletStandard/addAptosWalletStandardExtension/addAptosWalletStandardExtension.ts"],"sourcesContent":["","// 1 APT = 10^8 octas (similar to 1 BTC = 10^8 satoshis)\nexport const OCTAS_PER_APT = 1e8;\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type { NetworkData } from '@dynamic-labs-sdk/client';\n\nimport { OCTAS_PER_APT } from '../constants';\n\ntype FetchAptosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchAptosBalance = async ({\n address,\n networkData,\n}: FetchAptosBalanceParams): Promise<string | null> => {\n const config = new AptosConfig({\n fullnode: networkData.rpcUrls.http[0],\n network: networkData.cluster as Network,\n });\n\n const aptosClient = new Aptos(config);\n\n const balance = await aptosClient.getBalance({\n accountAddress: address,\n // APT coin type\n asset: '0x1::aptos_coin::AptosCoin',\n });\n\n return (Number(balance) / OCTAS_PER_APT).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosNetworkProvider } from '../../AptosNetworkProvider.types';\nimport { fetchAptosBalance } from '../fetchAptosBalance';\n\nexport const createAptosNetworkProvider = (\n networkData: NetworkData\n): AptosNetworkProvider => ({\n ...createBaseNetworkProvider('APTOS', networkData),\n cluster: networkData.cluster,\n getBalance: async ({ address }) => ({\n balance: await fetchAptosBalance({\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 { createAptosNetworkProvider } from '../utils/createAptosNetworkProvider';\n\nexport const registerAptosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Aptos network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('APTOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createAptosNetworkProvider,\n chain: 'APTOS',\n });\n};\n","import type { Network } from '@aptos-labs/ts-sdk';\nimport { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';\nimport type {\n AccountInfo,\n AptosFeatures,\n AptosWallet,\n} from '@aptos-labs/wallet-standard';\nimport { UserResponseStatus } from '@aptos-labs/wallet-standard';\nimport {\n type DynamicClient,\n UserRejectedError,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { AptosWalletProvider } from '../../../AptosWalletProvider.types';\n\ntype CreateWalletProviderFromAptosStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: AptosWallet;\n};\n\nexport const createWalletProviderFromAptosStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromAptosStandardWalletParams): AptosWalletProvider => {\n const features: AptosFeatures = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'APTOS',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const getAutoConnectedAccount = ():\n | { address: string; publicKey: string }[]\n | undefined => {\n const accounts = walletStandardWallet.accounts;\n if (!accounts?.length || !accounts[0].publicKey || !accounts[0].address) {\n return;\n }\n\n return accounts.map((account) => ({\n address: account.address.toString(),\n publicKey: account.publicKey?.toString(),\n }));\n };\n\n const connect: AptosWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = getAutoConnectedAccount();\n\n if (autoConnectedAccounts) {\n return {\n addresses: autoConnectedAccounts,\n };\n }\n\n const connectMethod = features['aptos:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod();\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'connect' });\n }\n\n return {\n addresses: [\n {\n address: result.args.address.toString(),\n publicKey: result.args.publicKey?.toString(),\n },\n ],\n };\n };\n\n const disconnect: AptosWalletProvider['disconnect'] = async () => {\n const disconnectMethod = features['aptos:disconnect']?.disconnect;\n\n // this should never happen as we check for all required features in hasAllRequiredFeatures\n // but we'll assert it just in case\n assertDefined(\n disconnectMethod,\n 'disconnect method not found in wallet features'\n );\n\n return disconnectMethod();\n };\n\n const getActiveNetworkId: AptosWalletProvider['getActiveNetworkId'] =\n async () => {\n const aptosNetwork = await features['aptos:network']?.network();\n\n if (!aptosNetwork?.chainId) {\n return getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n }\n\n return { networkId: aptosNetwork.chainId.toString() };\n };\n\n const getAptosClient: AptosWalletProvider['getAptosClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData.networkData,\n 'No active network data found'\n );\n\n const { rpcUrls, cluster } = activeNetworkData.networkData;\n\n const url = rpcUrls.http[0];\n\n assertDefined(url, 'No RPC URL found for active network');\n\n const network = cluster as Network;\n const config = new AptosConfig({ fullnode: url, network });\n\n return new Aptos(config);\n };\n\n const getConnectedAccount = async (): Promise<AccountInfo | undefined> => {\n const getAccountMethod = features['aptos:account']?.account;\n\n if (!getAccountMethod) {\n return undefined;\n }\n\n return getAccountMethod();\n };\n\n const getConnectedAddresses: AptosWalletProvider['getConnectedAddresses'] =\n async () => {\n const account = await getConnectedAccount();\n\n if (account) {\n return {\n addresses: [account.address.toString()],\n };\n }\n\n return {\n addresses: [],\n };\n };\n\n const signTransaction: AptosWalletProvider['signTransaction'] = async ({\n asFeePayer,\n transaction,\n walletAccount,\n }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signTransactionMethod =\n features['aptos:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n const result = await signTransactionMethod(transaction, asFeePayer);\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signTransaction' });\n }\n\n return {\n signature: result.args,\n };\n };\n\n const signAndSubmitTransaction: AptosWalletProvider['signAndSubmitTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signAndSubmitMethod =\n features['aptos:signAndSubmitTransaction']?.signAndSubmitTransaction;\n\n assertDefined(\n signAndSubmitMethod,\n 'signAndSubmitTransaction method not found in wallet features'\n );\n\n const result = await signAndSubmitMethod({\n payload: transaction,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signAndSubmitTransaction' });\n }\n\n return {\n hash: result.args.hash,\n };\n };\n\n const signMessage: AptosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signMessageMethod = features['aptos:signMessage']?.signMessage;\n\n assertDefined(\n signMessageMethod,\n 'signMessage method not found in wallet features'\n );\n\n const nonce = Date.now().toString();\n const result = await signMessageMethod({\n message,\n nonce,\n });\n\n if (result.status !== UserResponseStatus.APPROVED) {\n throw new UserRejectedError({ action: 'signMessage' });\n }\n\n let publicKey: string | undefined =\n walletStandardWallet.accounts[0]?.publicKey?.toString();\n\n if (!publicKey) {\n const account = await getConnectedAccount();\n publicKey = account?.publicKey?.toString();\n }\n\n const signatureObj = {\n fullMessage: result.args.fullMessage,\n publicKey,\n signature: result.args.signature.toString(),\n };\n\n return { signature: JSON.stringify(signatureObj) };\n };\n\n const { cleanupEventEmitter, getEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleNetworkChanged,\n }): VoidFunction => {\n const onAccountChange =\n features['aptos:onAccountChange']?.onAccountChange;\n\n if (onAccountChange) {\n void onAccountChange((account) => {\n handleAccountsChanged({\n addresses: account ? [account.address.toString()] : [],\n });\n });\n }\n\n const onNetworkChange =\n features['aptos:onNetworkChange']?.onNetworkChange;\n\n if (onNetworkChange) {\n void onNetworkChange((network) => {\n handleNetworkChanged({ networkId: network.chainId.toString() });\n });\n }\n\n return () => {};\n },\n\n supportedEvents: ['accountsChanged', 'networkChanged'],\n });\n\n const terminate: AptosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n const walletProvider: AptosWalletProvider = {\n chain: 'APTOS',\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getAptosClient,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndSubmitTransaction,\n signMessage,\n signTransaction,\n terminate,\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import type {\n AptosWallet,\n MinimallyRequiredFeatures,\n} from '@aptos-labs/wallet-standard';\n\nconst REQUIRED_FEATURES: (keyof MinimallyRequiredFeatures)[] = [\n 'aptos:account',\n 'aptos:connect',\n 'aptos:disconnect',\n 'aptos:network',\n 'aptos:onAccountChange',\n 'aptos:onNetworkChange',\n 'aptos:signMessage',\n 'aptos:signTransaction',\n];\n\nexport const hasAllRequiredFeatures = (wallet: AptosWallet): boolean => {\n return Boolean(\n REQUIRED_FEATURES.every((feature) => feature in wallet.features)\n );\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n WalletProviderPriority,\n getWalletProviderRegistry,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { createWalletProviderFromAptosStandardWallet } from '../createWalletProviderFromAptosStandardWallet';\nimport { hasAllRequiredFeatures } from '../hasAllRequiredFeatures';\n\nexport const registerAptosStandardWallet = (\n wallet: AptosWallet,\n client: DynamicClient\n) => {\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n if (hasAllRequiredFeatures(wallet)) {\n const walletProvider = createWalletProviderFromAptosStandardWallet({\n dynamicClient: client,\n walletStandardWallet: wallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n }\n};\n","import type { AptosWallet } from '@aptos-labs/wallet-standard';\nimport { getAptosWallets } from '@aptos-labs/wallet-standard';\nimport {\n getDefaultClient,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerAptosNetworkProviderBuilder } from '../../registerAptosNetworkProviderBuilder';\nimport { registerAptosStandardWallet } from '../utils/registerAptosStandardWallet';\n\nexport const APTOS_WALLET_STANDARD_EXTENSION_KEY = 'aptosWalletStandard';\n\n/**\n * Adds the Aptos Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Aptos Wallet Standard (AIP-62),\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 *\n * @returns A function that can be used to remove Aptos Wallet Standard register event listener that was added.\n */\nexport const addAptosWalletStandardExtension = (\n client = getDefaultClient()\n): VoidFunction => {\n if (\n hasExtension({ extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return () => {\n // noop\n };\n }\n\n registerExtension(\n { extensionKey: APTOS_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerAptosNetworkProviderBuilder(client);\n\n const { aptosWallets, on } = getAptosWallets();\n\n // Listen for new wallet registrations/announcements\n const removeListener = on('register', (wallet) => {\n registerAptosStandardWallet(wallet as AptosWallet, client);\n });\n\n // Register all wallets that are already registered/announced in the browser\n for (const wallet of aptosWallets) {\n registerAptosStandardWallet(wallet, client);\n }\n\n return removeListener;\n};\n"],"mappings":";;;;;;;;;;;;ACCA,MAAa,gBAAgB;;;;ACU7B,MAAa,oBAAoB,OAAO,EACtC,SACA,kBACqD;CAQrD,MAAM,UAAU,MAFI,IAAIA,yBALT,IAAIC,+BAAY;EAC7B,UAAU,YAAY,QAAQ,KAAK;EACnC,SAAS,YAAY;EACtB,CAAC,CAEmC,CAEH,WAAW;EAC3C,gBAAgB;EAEhB,OAAO;EACR,CAAC;AAEF,SAAQ,OAAO,QAAQ,GAAG,eAAe,UAAU;;;;;ACtBrD,MAAa,8BACX,iBAC0B;CAC1B,gEAA6B,SAAS,YAAY;CAClD,SAAS,YAAY;CACrB,YAAY,OAAO,EAAE,eAAe,EAClC,SAAS,MAAM,kBAAkB;EAC/B;EACA;EACD,CAAC,EACH;CACF;;;;ACZD,MAAa,uCACX,WACS;CACT,MAAM,sGAC8B,OAAO;AAG3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,QAAQ,CACnD;AAGF,gCAA+B,SAAS;EACtC,SAAS;EACT,OAAO;EACR,CAAC;;;;;ACWJ,MAAa,+CAA+C,EAC1D,eACA,2BAC4E;CAC5E,MAAMC,WAA0B,qBAAqB;CAErD,MAAM,qBAAqBC,8CAAmB;CAE9C,MAAM,iEAA8B;EAClC,OAAO;EACP,aAAa,qBAAqB;EAClC;EACD,CAAC;CAEF,MAAM,gCAEW;EACf,MAAM,WAAW,qBAAqB;AACtC,MAAI,CAAC,UAAU,UAAU,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,GAAG,QAC9D;AAGF,SAAO,SAAS,KAAK,aAAa;GAChC,SAAS,QAAQ,QAAQ,UAAU;GACnC,WAAW,QAAQ,WAAW,UAAU;GACzC,EAAE;;CAGL,MAAMC,UAA0C,YAAY;EAC1D,MAAM,wBAAwB,yBAAyB;AAEvD,MAAI,sBACF,QAAO,EACL,WAAW,uBACZ;EAGH,MAAM,gBAAgB,SAAS,kBAAkB;AAEjD,mDAAc,eAAe,8CAA8C;EAE3E,MAAM,SAAS,MAAM,eAAe;AAEpC,MAAI,OAAO,WAAWC,+CAAmB,SACvC,OAAM,IAAIC,2CAAkB,EAAE,QAAQ,WAAW,CAAC;AAGpD,SAAO,EACL,WAAW,CACT;GACE,SAAS,OAAO,KAAK,QAAQ,UAAU;GACvC,WAAW,OAAO,KAAK,WAAW,UAAU;GAC7C,CACF,EACF;;CAGH,MAAMC,aAAgD,YAAY;EAChE,MAAM,mBAAmB,SAAS,qBAAqB;AAIvD,mDACE,kBACA,iDACD;AAED,SAAO,kBAAkB;;CAG3B,MAAMC,qBACJ,YAAY;EACV,MAAM,eAAe,MAAM,SAAS,kBAAkB,SAAS;AAE/D,MAAI,CAAC,cAAc,QACjB,mFAA+C;GAC7C,QAAQ;GACR,mBAAmB;GACpB,CAAC;AAGJ,SAAO,EAAE,WAAW,aAAa,QAAQ,UAAU,EAAE;;CAGzD,MAAMC,iBAAwD,OAAO,EACnE,oBACI;EACJ,MAAM,oBAAoB,yDACxB,EAAE,eAAe,EACjB,cACD;AAED,mDACE,kBAAkB,aAClB,+BACD;EAED,MAAM,EAAE,SAAS,YAAY,kBAAkB;EAE/C,MAAM,MAAM,QAAQ,KAAK;AAEzB,mDAAc,KAAK,sCAAsC;AAKzD,SAAO,IAAIC,yBAFI,IAAIC,+BAAY;GAAE,UAAU;GAAK,SADhC;GACyC,CAAC,CAElC;;CAG1B,MAAM,sBAAsB,YAA8C;EACxE,MAAM,mBAAmB,SAAS,kBAAkB;AAEpD,MAAI,CAAC,iBACH;AAGF,SAAO,kBAAkB;;CAG3B,MAAMC,wBACJ,YAAY;EACV,MAAM,UAAU,MAAM,qBAAqB;AAE3C,MAAI,QACF,QAAO,EACL,WAAW,CAAC,QAAQ,QAAQ,UAAU,CAAC,EACxC;AAGH,SAAO,EACL,WAAW,EAAE,EACd;;CAGL,MAAMC,kBAA0D,OAAO,EACrE,YACA,aACA,oBACI;AACJ,6EACE,EAAE,eAAe,EACjB,cACD;EAED,MAAM,wBACJ,SAAS,0BAA0B;AAErC,mDACE,uBACA,sDACD;EAED,MAAM,SAAS,MAAM,sBAAsB,aAAa,WAAW;AAEnE,MAAI,OAAO,WAAWR,+CAAmB,SACvC,OAAM,IAAIC,2CAAkB,EAAE,QAAQ,mBAAmB,CAAC;AAG5D,SAAO,EACL,WAAW,OAAO,MACnB;;CAGH,MAAMQ,2BACJ,OAAO,EAAE,aAAa,oBAAoB;AACxC,6EACE,EAAE,eAAe,EACjB,cACD;EAED,MAAM,sBACJ,SAAS,mCAAmC;AAE9C,mDACE,qBACA,+DACD;EAED,MAAM,SAAS,MAAM,oBAAoB,EACvC,SAAS,aACV,CAAC;AAEF,MAAI,OAAO,WAAWT,+CAAmB,SACvC,OAAM,IAAIC,2CAAkB,EAAE,QAAQ,4BAA4B,CAAC;AAGrE,SAAO,EACL,MAAM,OAAO,KAAK,MACnB;;CAGL,MAAMS,cAAkD,OAAO,EAC7D,SACA,oBACI;AACJ,mDAAc,eAAe,2BAA2B;AAExD,6EACE,EAAE,eAAe,EACjB,cACD;EAED,MAAM,oBAAoB,SAAS,sBAAsB;AAEzD,mDACE,mBACA,kDACD;EAGD,MAAM,SAAS,MAAM,kBAAkB;GACrC;GACA,OAHY,KAAK,KAAK,CAAC,UAAU;GAIlC,CAAC;AAEF,MAAI,OAAO,WAAWV,+CAAmB,SACvC,OAAM,IAAIC,2CAAkB,EAAE,QAAQ,eAAe,CAAC;EAGxD,IAAIU,YACF,qBAAqB,SAAS,IAAI,WAAW,UAAU;AAEzD,MAAI,CAAC,UAEH,cADgB,MAAM,qBAAqB,GACtB,WAAW,UAAU;EAG5C,MAAM,eAAe;GACnB,aAAa,OAAO,KAAK;GACzB;GACA,WAAW,OAAO,KAAK,UAAU,UAAU;GAC5C;AAED,SAAO,EAAE,WAAW,KAAK,UAAU,aAAa,EAAE;;CAGpD,MAAM,EAAE,qBAAqB,wFACoB;EAC7C,uBAAuB,EAAE,uBAAuB;AAC9C,oDAAc,kBAAkB,iCAAiC;AAEjE,qBAAkB;;EAGpB,sBAAsB,EACpB,uBACA,2BACkB;GAClB,MAAM,kBACJ,SAAS,0BAA0B;AAErC,OAAI,gBACF,CAAK,iBAAiB,YAAY;AAChC,0BAAsB,EACpB,WAAW,UAAU,CAAC,QAAQ,QAAQ,UAAU,CAAC,GAAG,EAAE,EACvD,CAAC;KACF;GAGJ,MAAM,kBACJ,SAAS,0BAA0B;AAErC,OAAI,gBACF,CAAK,iBAAiB,YAAY;AAChC,yBAAqB,EAAE,WAAW,QAAQ,QAAQ,UAAU,EAAE,CAAC;KAC/D;AAGJ,gBAAa;;EAGf,iBAAiB,CAAC,mBAAmB,iBAAiB;EACvD,CAAC;CAEJ,MAAMC,YAA8C,YAAY;AAC9D,uBAAqB;;AA0BvB,QAvB4C;EAC1C,OAAO;EACP;EACA;EACA,IAAI,SAAS;AACX,UAAO,iBAAiB;;EAE1B;EACA;EACA;EACA,0EAAuC,qBAAqB,KAAK;EACjE;EACA,UAAU;GACR,aAAa,qBAAqB;GAClC,MAAM,qBAAqB;GAC5B;EACD;EACA;EACA;EACA;EACA;EACD;;;;;ACpUH,MAAMC,oBAAyD;CAC7D;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,0BAA0B,WAAiC;AACtE,QAAO,QACL,kBAAkB,OAAO,YAAY,WAAW,OAAO,SAAS,CACjE;;;;;ACTH,MAAa,+BACX,QACA,WACG;CACH,MAAM,sFAAmD,OAAO;AAEhE,KAAI,uBAAuB,OAAO,EAAE;EAClC,MAAM,iBAAiB,4CAA4C;GACjE,eAAe;GACf,sBAAsB;GACvB,CAAC;AAEF,yBAAuB,SAAS;GAC9B,UAAUC,qDAAuB;GACjC;GACD,CAAC;;;;;;ACdN,MAAa,sCAAsC;;;;;;;;;;;AAYnD,MAAa,mCACX,8DAA2B,KACV;AACjB,qDACe,EAAE,cAAc,qCAAqC,EAAE,OAAO,CAE3E,cAAa;AAKf,sDACE,EAAE,cAAc,qCAAqC,EACrD,OACD;AAED,qCAAoC,OAAO;CAE3C,MAAM,EAAE,cAAc,yDAAwB;CAG9C,MAAM,iBAAiB,GAAG,aAAa,WAAW;AAChD,8BAA4B,QAAuB,OAAO;GAC1D;AAGF,MAAK,MAAM,UAAU,aACnB,6BAA4B,QAAQ,OAAO;AAG7C,QAAO"}
@@ -8,4 +8,5 @@ export { isAptosNetworkProvider } from '../isAptosNetworkProvider';
8
8
  export { isAptosWalletAccount } from '../isAptosWalletAccount';
9
9
  export { isAptosWalletProvider } from '../isAptosWalletProvider';
10
10
  export { signAndSubmitTransaction } from '../signAndSubmitTransaction';
11
+ export { signTransaction } from '../signTransaction';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- const require_addAptosWalletStandardExtension = require('./addAptosWalletStandardExtension-JDzwoqAp.cjs.js');
1
+ const require_addAptosWalletStandardExtension = require('./addAptosWalletStandardExtension-Zvr1YUyy.cjs.js');
2
2
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
3
3
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
4
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -83,6 +83,27 @@ const signAndSubmitTransaction = async ({ transaction, walletAccount }, client =
83
83
  });
84
84
  };
85
85
 
86
+ //#endregion
87
+ //#region src/signTransaction/signTransaction.ts
88
+ /**
89
+ * Signs an Aptos transaction
90
+ * @param params.transaction - The transaction to sign
91
+ * @param params.walletAccount - The wallet account to sign the transaction with
92
+ * @param params.asFeePayer - Whether to sign as the fee payer
93
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
94
+ *
95
+ * @returns An object containing the signature output
96
+ */
97
+ const signTransaction = async ({ asFeePayer, transaction, walletAccount }, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
98
+ const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
99
+ if (!isAptosWalletProvider(provider)) throw new NotAptosProviderError({ providerKey: provider.key });
100
+ return provider.signTransaction({
101
+ asFeePayer,
102
+ transaction,
103
+ walletAccount
104
+ });
105
+ };
106
+
86
107
  //#endregion
87
108
  //#region src/exports/index.ts
88
109
  (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_addAptosWalletStandardExtension.name, require_addAptosWalletStandardExtension.version);
@@ -95,4 +116,5 @@ exports.isAptosNetworkProvider = isAptosNetworkProvider;
95
116
  exports.isAptosWalletAccount = isAptosWalletAccount;
96
117
  exports.isAptosWalletProvider = isAptosWalletProvider;
97
118
  exports.signAndSubmitTransaction = signAndSubmitTransaction;
119
+ exports.signTransaction = signTransaction;
98
120
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["BaseError","packageName","packageVersion"],"sources":["../src/addAptosExtension/addAptosExtension.ts","../src/errors/NotAptosProviderError/NotAptosProviderError.ts","../src/isAptosWalletProvider/isAptosWalletProvider.ts","../src/getAptosClient/getAptosClient.ts","../src/isAptosNetworkProvider/isAptosNetworkProvider.ts","../src/isAptosWalletAccount/isAptosWalletAccount.ts","../src/signAndSubmitTransaction/signAndSubmitTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addAptosWalletStandardExtension } from '../walletStandard/addAptosWalletStandardExtension';\n\n/**\n * Adds the Aptos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for all of Aptos wallets that support the Aptos Wallet Standard,\n * like Petra, Backpack, OKX, Nightly, and more.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addAptosExtension = (client = getDefaultClient()): void => {\n addAptosWalletStandardExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotAptosProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_aptos_provider_error',\n docsUrl: null,\n name: 'NotAptosProviderError',\n shortMessage: 'Provider is not an Aptos wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletProvider } from '../AptosWalletProvider.types';\n\nexport const isAptosWalletProvider = (\n provider: WalletProvider | AptosWalletProvider\n): provider is AptosWalletProvider => {\n return provider.chain === 'APTOS';\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosClient } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype GetAptosClientParams = {\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Retrieves an Aptos client from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the Aptos client for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n *\n * @returns A promise that resolves to an AptosClient instance\n * @throws NotAptosProviderError If the wallet account's provider is not an APTOS provider\n */\nexport const getAptosClient = async (\n { walletAccount }: GetAptosClientParams,\n client = getDefaultClient()\n): Promise<AptosClient> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.getAptosClient({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\n\nexport const isAptosNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is AptosNetworkProvider => networkProvider.chain === 'APTOS';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\n\nexport const isAptosWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is AptosWalletAccount => walletAccount.chain === 'APTOS';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosTransactionPayload } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype SignAndSubmitTransactionParams = {\n transaction: AptosTransactionPayload;\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Signs and submits an Aptos transaction\n *\n * @param params.transaction - The transaction payload to sign and submit\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 *\n * @returns An object containing the transaction hash\n */\nexport const signAndSubmitTransaction = async (\n { transaction, walletAccount }: SignAndSubmitTransactionParams,\n client = getDefaultClient()\n): Promise<{ hash: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSubmitTransaction({ 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 { addAptosExtension } from '../addAptosExtension';\nexport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\nexport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nexport type {\n AptosClient,\n AptosSignTransactionOutput,\n AptosTransaction,\n AptosTransactionPayload,\n} from '../AptosWalletProvider.types';\nexport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nexport { getAptosClient } from '../getAptosClient';\nexport { isAptosNetworkProvider } from '../isAptosNetworkProvider';\nexport { isAptosWalletAccount } from '../isAptosWalletAccount';\nexport { isAptosWalletProvider } from '../isAptosWalletProvider';\nexport { signAndSubmitTransaction } from '../signAndSubmitTransaction';\n"],"mappings":";;;;;;;;;;;;;;AAYA,MAAa,qBAAqB,8DAA2B,KAAW;AACtE,yEAAgC,OAAO;;;;;ACXzC,IAAa,wBAAb,cAA2CA,mCAAU;CACnD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;ACV9B,MAAa,yBACX,aACoC;AACpC,QAAO,SAAS,UAAU;;;;;;;;;;;;;;ACgB5B,MAAa,iBAAiB,OAC5B,EAAE,iBACF,8DAA2B,KACF;CACzB,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,eAAe,EAAE,eAAe,CAAC;;;;;AClCnD,MAAa,0BACX,oBAC4C,gBAAgB,UAAU;;;;ACFxE,MAAa,wBACX,kBACwC,cAAc,UAAU;;;;;;;;;;;;;ACgBlE,MAAa,2BAA2B,OACtC,EAAE,aAAa,iBACf,yDAA2B,KACG;CAC9B,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,yBAAyB;EAAE;EAAa;EAAe,CAAC;;;;;mEC/BrDC,8CAAaC,gDAAe"}
1
+ {"version":3,"file":"index.cjs.js","names":["BaseError","packageName","packageVersion"],"sources":["../src/addAptosExtension/addAptosExtension.ts","../src/errors/NotAptosProviderError/NotAptosProviderError.ts","../src/isAptosWalletProvider/isAptosWalletProvider.ts","../src/getAptosClient/getAptosClient.ts","../src/isAptosNetworkProvider/isAptosNetworkProvider.ts","../src/isAptosWalletAccount/isAptosWalletAccount.ts","../src/signAndSubmitTransaction/signAndSubmitTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addAptosWalletStandardExtension } from '../walletStandard/addAptosWalletStandardExtension';\n\n/**\n * Adds the Aptos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for all of Aptos wallets that support the Aptos Wallet Standard,\n * like Petra, Backpack, OKX, Nightly, and more.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addAptosExtension = (client = getDefaultClient()): void => {\n addAptosWalletStandardExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotAptosProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_aptos_provider_error',\n docsUrl: null,\n name: 'NotAptosProviderError',\n shortMessage: 'Provider is not an Aptos wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletProvider } from '../AptosWalletProvider.types';\n\nexport const isAptosWalletProvider = (\n provider: WalletProvider | AptosWalletProvider\n): provider is AptosWalletProvider => {\n return provider.chain === 'APTOS';\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosClient } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype GetAptosClientParams = {\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Retrieves an Aptos client from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the Aptos client for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n *\n * @returns A promise that resolves to an AptosClient instance\n * @throws NotAptosProviderError If the wallet account's provider is not an APTOS provider\n */\nexport const getAptosClient = async (\n { walletAccount }: GetAptosClientParams,\n client = getDefaultClient()\n): Promise<AptosClient> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.getAptosClient({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\n\nexport const isAptosNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is AptosNetworkProvider => networkProvider.chain === 'APTOS';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\n\nexport const isAptosWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is AptosWalletAccount => walletAccount.chain === 'APTOS';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosTransactionPayload } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype SignAndSubmitTransactionParams = {\n transaction: AptosTransactionPayload;\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Signs and submits an Aptos transaction\n *\n * @param params.transaction - The transaction payload to sign and submit\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 *\n * @returns An object containing the transaction hash\n */\nexport const signAndSubmitTransaction = async (\n { transaction, walletAccount }: SignAndSubmitTransactionParams,\n client = getDefaultClient()\n): Promise<{ hash: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSubmitTransaction({ transaction, walletAccount });\n};\n","import type { AnyRawTransaction } from '@aptos-labs/ts-sdk';\nimport { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosSignTransactionOutput } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype SignTransactionParams = {\n asFeePayer?: boolean;\n transaction: AnyRawTransaction;\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Signs an Aptos transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param params.asFeePayer - Whether to sign as the fee payer\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n *\n * @returns An object containing the signature output\n */\nexport const signTransaction = async (\n { asFeePayer, transaction, walletAccount }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: AptosSignTransactionOutput }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ asFeePayer, 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 { addAptosExtension } from '../addAptosExtension';\nexport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\nexport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nexport type {\n AptosClient,\n AptosSignTransactionOutput,\n AptosTransaction,\n AptosTransactionPayload,\n} from '../AptosWalletProvider.types';\nexport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nexport { getAptosClient } from '../getAptosClient';\nexport { isAptosNetworkProvider } from '../isAptosNetworkProvider';\nexport { isAptosWalletAccount } from '../isAptosWalletAccount';\nexport { isAptosWalletProvider } from '../isAptosWalletProvider';\nexport { signAndSubmitTransaction } from '../signAndSubmitTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;AAYA,MAAa,qBAAqB,8DAA2B,KAAW;AACtE,yEAAgC,OAAO;;;;;ACXzC,IAAa,wBAAb,cAA2CA,mCAAU;CACnD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;ACV9B,MAAa,yBACX,aACoC;AACpC,QAAO,SAAS,UAAU;;;;;;;;;;;;;;ACgB5B,MAAa,iBAAiB,OAC5B,EAAE,iBACF,8DAA2B,KACF;CACzB,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,eAAe,EAAE,eAAe,CAAC;;;;;AClCnD,MAAa,0BACX,oBAC4C,gBAAgB,UAAU;;;;ACFxE,MAAa,wBACX,kBACwC,cAAc,UAAU;;;;;;;;;;;;;ACgBlE,MAAa,2BAA2B,OACtC,EAAE,aAAa,iBACf,yDAA2B,KACG;CAC9B,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,yBAAyB;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;ACb1E,MAAa,kBAAkB,OAC7B,EAAE,YAAY,aAAa,iBAC3B,yDAA2B,KAC4B;CACvD,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,gBAAgB;EAAE;EAAY;EAAa;EAAe,CAAC;;;;;mECjCxDC,8CAAaC,gDAAe"}
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as name, r as version, t as addAptosWalletStandardExtension } from "./addAptosWalletStandardExtension-D8VnL6JS.esm.js";
1
+ import { n as name, r as version, t as addAptosWalletStandardExtension } from "./addAptosWalletStandardExtension-C5kSd0qw.esm.js";
2
2
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
3
3
  import { getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
4
4
  import { BaseError, getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
@@ -83,10 +83,31 @@ const signAndSubmitTransaction = async ({ transaction, walletAccount }, client =
83
83
  });
84
84
  };
85
85
 
86
+ //#endregion
87
+ //#region src/signTransaction/signTransaction.ts
88
+ /**
89
+ * Signs an Aptos transaction
90
+ * @param params.transaction - The transaction to sign
91
+ * @param params.walletAccount - The wallet account to sign the transaction with
92
+ * @param params.asFeePayer - Whether to sign as the fee payer
93
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
94
+ *
95
+ * @returns An object containing the signature output
96
+ */
97
+ const signTransaction = async ({ asFeePayer, transaction, walletAccount }, client = getDefaultClient$1()) => {
98
+ const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
99
+ if (!isAptosWalletProvider(provider)) throw new NotAptosProviderError({ providerKey: provider.key });
100
+ return provider.signTransaction({
101
+ asFeePayer,
102
+ transaction,
103
+ walletAccount
104
+ });
105
+ };
106
+
86
107
  //#endregion
87
108
  //#region src/exports/index.ts
88
109
  assertPackageVersion(name, version);
89
110
 
90
111
  //#endregion
91
- export { NotAptosProviderError, addAptosExtension, getAptosClient, isAptosNetworkProvider, isAptosWalletAccount, isAptosWalletProvider, signAndSubmitTransaction };
112
+ export { NotAptosProviderError, addAptosExtension, getAptosClient, isAptosNetworkProvider, isAptosWalletAccount, isAptosWalletProvider, signAndSubmitTransaction, signTransaction };
92
113
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":["getDefaultClient","packageName","packageVersion"],"sources":["../src/addAptosExtension/addAptosExtension.ts","../src/errors/NotAptosProviderError/NotAptosProviderError.ts","../src/isAptosWalletProvider/isAptosWalletProvider.ts","../src/getAptosClient/getAptosClient.ts","../src/isAptosNetworkProvider/isAptosNetworkProvider.ts","../src/isAptosWalletAccount/isAptosWalletAccount.ts","../src/signAndSubmitTransaction/signAndSubmitTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addAptosWalletStandardExtension } from '../walletStandard/addAptosWalletStandardExtension';\n\n/**\n * Adds the Aptos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for all of Aptos wallets that support the Aptos Wallet Standard,\n * like Petra, Backpack, OKX, Nightly, and more.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addAptosExtension = (client = getDefaultClient()): void => {\n addAptosWalletStandardExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotAptosProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_aptos_provider_error',\n docsUrl: null,\n name: 'NotAptosProviderError',\n shortMessage: 'Provider is not an Aptos wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletProvider } from '../AptosWalletProvider.types';\n\nexport const isAptosWalletProvider = (\n provider: WalletProvider | AptosWalletProvider\n): provider is AptosWalletProvider => {\n return provider.chain === 'APTOS';\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosClient } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype GetAptosClientParams = {\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Retrieves an Aptos client from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the Aptos client for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n *\n * @returns A promise that resolves to an AptosClient instance\n * @throws NotAptosProviderError If the wallet account's provider is not an APTOS provider\n */\nexport const getAptosClient = async (\n { walletAccount }: GetAptosClientParams,\n client = getDefaultClient()\n): Promise<AptosClient> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.getAptosClient({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\n\nexport const isAptosNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is AptosNetworkProvider => networkProvider.chain === 'APTOS';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\n\nexport const isAptosWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is AptosWalletAccount => walletAccount.chain === 'APTOS';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosTransactionPayload } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype SignAndSubmitTransactionParams = {\n transaction: AptosTransactionPayload;\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Signs and submits an Aptos transaction\n *\n * @param params.transaction - The transaction payload to sign and submit\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 *\n * @returns An object containing the transaction hash\n */\nexport const signAndSubmitTransaction = async (\n { transaction, walletAccount }: SignAndSubmitTransactionParams,\n client = getDefaultClient()\n): Promise<{ hash: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSubmitTransaction({ 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 { addAptosExtension } from '../addAptosExtension';\nexport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\nexport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nexport type {\n AptosClient,\n AptosSignTransactionOutput,\n AptosTransaction,\n AptosTransactionPayload,\n} from '../AptosWalletProvider.types';\nexport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nexport { getAptosClient } from '../getAptosClient';\nexport { isAptosNetworkProvider } from '../isAptosNetworkProvider';\nexport { isAptosWalletAccount } from '../isAptosWalletAccount';\nexport { isAptosWalletProvider } from '../isAptosWalletProvider';\nexport { signAndSubmitTransaction } from '../signAndSubmitTransaction';\n"],"mappings":";;;;;;;;;;;;;;AAYA,MAAa,qBAAqB,SAAS,kBAAkB,KAAW;AACtE,iCAAgC,OAAO;;;;;ACXzC,IAAa,wBAAb,cAA2C,UAAU;CACnD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;ACV9B,MAAa,yBACX,aACoC;AACpC,QAAO,SAAS,UAAU;;;;;;;;;;;;;;ACgB5B,MAAa,iBAAiB,OAC5B,EAAE,iBACF,SAAS,kBAAkB,KACF;CACzB,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,eAAe,EAAE,eAAe,CAAC;;;;;AClCnD,MAAa,0BACX,oBAC4C,gBAAgB,UAAU;;;;ACFxE,MAAa,wBACX,kBACwC,cAAc,UAAU;;;;;;;;;;;;;ACgBlE,MAAa,2BAA2B,OACtC,EAAE,aAAa,iBACf,SAASA,oBAAkB,KACG;CAC9B,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,yBAAyB;EAAE;EAAa;EAAe,CAAC;;;;;AC/B1E,qBAAqBC,MAAaC,QAAe"}
1
+ {"version":3,"file":"index.esm.js","names":["getDefaultClient","getDefaultClient","packageName","packageVersion"],"sources":["../src/addAptosExtension/addAptosExtension.ts","../src/errors/NotAptosProviderError/NotAptosProviderError.ts","../src/isAptosWalletProvider/isAptosWalletProvider.ts","../src/getAptosClient/getAptosClient.ts","../src/isAptosNetworkProvider/isAptosNetworkProvider.ts","../src/isAptosWalletAccount/isAptosWalletAccount.ts","../src/signAndSubmitTransaction/signAndSubmitTransaction.ts","../src/signTransaction/signTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addAptosWalletStandardExtension } from '../walletStandard/addAptosWalletStandardExtension';\n\n/**\n * Adds the Aptos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for all of Aptos wallets that support the Aptos Wallet Standard,\n * like Petra, Backpack, OKX, Nightly, and more.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addAptosExtension = (client = getDefaultClient()): void => {\n addAptosWalletStandardExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotAptosProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_aptos_provider_error',\n docsUrl: null,\n name: 'NotAptosProviderError',\n shortMessage: 'Provider is not an Aptos wallet provider',\n });\n\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletProvider } from '../AptosWalletProvider.types';\n\nexport const isAptosWalletProvider = (\n provider: WalletProvider | AptosWalletProvider\n): provider is AptosWalletProvider => {\n return provider.chain === 'APTOS';\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosClient } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype GetAptosClientParams = {\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Retrieves an Aptos client from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the Aptos client for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n *\n * @returns A promise that resolves to an AptosClient instance\n * @throws NotAptosProviderError If the wallet account's provider is not an APTOS provider\n */\nexport const getAptosClient = async (\n { walletAccount }: GetAptosClientParams,\n client = getDefaultClient()\n): Promise<AptosClient> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.getAptosClient({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\n\nexport const isAptosNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is AptosNetworkProvider => networkProvider.chain === 'APTOS';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\n\nexport const isAptosWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is AptosWalletAccount => walletAccount.chain === 'APTOS';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosTransactionPayload } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype SignAndSubmitTransactionParams = {\n transaction: AptosTransactionPayload;\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Signs and submits an Aptos transaction\n *\n * @param params.transaction - The transaction payload to sign and submit\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 *\n * @returns An object containing the transaction hash\n */\nexport const signAndSubmitTransaction = async (\n { transaction, walletAccount }: SignAndSubmitTransactionParams,\n client = getDefaultClient()\n): Promise<{ hash: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.signAndSubmitTransaction({ transaction, walletAccount });\n};\n","import type { AnyRawTransaction } from '@aptos-labs/ts-sdk';\nimport { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nimport type { AptosSignTransactionOutput } from '../AptosWalletProvider.types';\nimport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nimport { isAptosWalletProvider } from '../isAptosWalletProvider';\n\ntype SignTransactionParams = {\n asFeePayer?: boolean;\n transaction: AnyRawTransaction;\n walletAccount: AptosWalletAccount;\n};\n\n/**\n * Signs an Aptos transaction\n * @param params.transaction - The transaction to sign\n * @param params.walletAccount - The wallet account to sign the transaction with\n * @param params.asFeePayer - Whether to sign as the fee payer\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n *\n * @returns An object containing the signature output\n */\nexport const signTransaction = async (\n { asFeePayer, transaction, walletAccount }: SignTransactionParams,\n client = getDefaultClient()\n): Promise<{ signature: AptosSignTransactionOutput }> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isAptosWalletProvider(provider)) {\n throw new NotAptosProviderError({ providerKey: provider.key });\n }\n\n return provider.signTransaction({ asFeePayer, 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 { addAptosExtension } from '../addAptosExtension';\nexport type { AptosNetworkProvider } from '../AptosNetworkProvider.types';\nexport type { AptosWalletAccount } from '../AptosWalletAccount.types';\nexport type {\n AptosClient,\n AptosSignTransactionOutput,\n AptosTransaction,\n AptosTransactionPayload,\n} from '../AptosWalletProvider.types';\nexport { NotAptosProviderError } from '../errors/NotAptosProviderError';\nexport { getAptosClient } from '../getAptosClient';\nexport { isAptosNetworkProvider } from '../isAptosNetworkProvider';\nexport { isAptosWalletAccount } from '../isAptosWalletAccount';\nexport { isAptosWalletProvider } from '../isAptosWalletProvider';\nexport { signAndSubmitTransaction } from '../signAndSubmitTransaction';\nexport { signTransaction } from '../signTransaction';\n"],"mappings":";;;;;;;;;;;;;;AAYA,MAAa,qBAAqB,SAAS,kBAAkB,KAAW;AACtE,iCAAgC,OAAO;;;;;ACXzC,IAAa,wBAAb,cAA2C,UAAU;CACnD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AAEF,OAAK,cAAc,OAAO;;;;;;ACV9B,MAAa,yBACX,aACoC;AACpC,QAAO,SAAS,UAAU;;;;;;;;;;;;;;ACgB5B,MAAa,iBAAiB,OAC5B,EAAE,iBACF,SAAS,kBAAkB,KACF;CACzB,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,eAAe,EAAE,eAAe,CAAC;;;;;AClCnD,MAAa,0BACX,oBAC4C,gBAAgB,UAAU;;;;ACFxE,MAAa,wBACX,kBACwC,cAAc,UAAU;;;;;;;;;;;;;ACgBlE,MAAa,2BAA2B,OACtC,EAAE,aAAa,iBACf,SAASA,oBAAkB,KACG;CAC9B,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,yBAAyB;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;ACb1E,MAAa,kBAAkB,OAC7B,EAAE,YAAY,aAAa,iBAC3B,SAASC,oBAAkB,KAC4B;CACvD,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,sBAAsB,SAAS,CAClC,OAAM,IAAI,sBAAsB,EAAE,aAAa,SAAS,KAAK,CAAC;AAGhE,QAAO,SAAS,gBAAgB;EAAE;EAAY;EAAa;EAAe,CAAC;;;;;ACjC7E,qBAAqBC,MAAaC,QAAe"}
@@ -0,0 +1,2 @@
1
+ export { signTransaction } from './signTransaction';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signTransaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AnyRawTransaction } from '@aptos-labs/ts-sdk';
2
+ import type { AptosWalletAccount } from '../AptosWalletAccount.types';
3
+ import type { AptosSignTransactionOutput } from '../AptosWalletProvider.types';
4
+ type SignTransactionParams = {
5
+ asFeePayer?: boolean;
6
+ transaction: AnyRawTransaction;
7
+ walletAccount: AptosWalletAccount;
8
+ };
9
+ /**
10
+ * Signs an Aptos transaction
11
+ * @param params.transaction - The transaction to sign
12
+ * @param params.walletAccount - The wallet account to sign the transaction with
13
+ * @param params.asFeePayer - Whether to sign as the fee payer
14
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
15
+ *
16
+ * @returns An object containing the signature output
17
+ */
18
+ export declare const signTransaction: ({ asFeePayer, transaction, walletAccount }: SignTransactionParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<{
19
+ signature: AptosSignTransactionOutput;
20
+ }>;
21
+ export {};
22
+ //# sourceMappingURL=signTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../src/signTransaction/signTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAI/E,KAAK,qBAAqB,GAAG;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,+CACkB,qBAAqB,gEAEhE,OAAO,CAAC;IAAE,SAAS,EAAE,0BAA0B,CAAA;CAAE,CAanD,CAAC"}