@dynamic-labs-sdk/tron 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addTronExtension/addTronExtension.d.ts +4 -1
- package/dist/addTronExtension/addTronExtension.d.ts.map +1 -1
- package/dist/{addTronWalletAdaptersExtension-Bv-FsxVZ.esm.js → addTronWalletAdaptersExtension-7mKwmTw8.esm.js} +3 -3
- package/dist/{addTronWalletAdaptersExtension-Bv-FsxVZ.esm.js.map → addTronWalletAdaptersExtension-7mKwmTw8.esm.js.map} +1 -1
- package/dist/{addTronWalletAdaptersExtension-Br5QlcMM.cjs → addTronWalletAdaptersExtension-DzOStiXS.cjs} +3 -3
- package/dist/{addTronWalletAdaptersExtension-Br5QlcMM.cjs.map → addTronWalletAdaptersExtension-DzOStiXS.cjs.map} +1 -1
- package/dist/addWaasTronExtension-8uFS3DYK.esm.js +111 -0
- package/dist/addWaasTronExtension-8uFS3DYK.esm.js.map +1 -0
- package/dist/addWaasTronExtension-DDc3HnZB.cjs +116 -0
- package/dist/addWaasTronExtension-DDc3HnZB.cjs.map +1 -0
- package/dist/index.cjs +8 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +8 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/{tronTransferAmount-BkKNm0yq.cjs → tronTransferAmount-CJmhF9gK.cjs} +2 -2
- package/dist/{tronTransferAmount-BkKNm0yq.cjs.map → tronTransferAmount-CJmhF9gK.cjs.map} +1 -1
- package/dist/{tronTransferAmount-YysbSWMI.esm.js → tronTransferAmount-DegLNA83.esm.js} +2 -2
- package/dist/{tronTransferAmount-YysbSWMI.esm.js.map → tronTransferAmount-DegLNA83.esm.js.map} +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs +3 -109
- package/dist/waas.cjs.map +1 -1
- package/dist/waas.esm.js +2 -108
- package/dist/waas.esm.js.map +1 -1
- package/dist/walletAdapters.cjs +2 -2
- package/dist/walletAdapters.esm.js +2 -2
- package/package.json +3 -3
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adds the Tron extension to the Dynamic client.
|
|
3
3
|
*
|
|
4
|
-
* This is a convenience function that adds
|
|
4
|
+
* This is a convenience function that adds both the Tron Wallet Adapters extension
|
|
5
|
+
* and the Dynamic WaaS Tron extension, enabling support for all Tron wallet types
|
|
6
|
+
* including injected wallets (Tronlink, etc.) and embedded wallets managed by
|
|
7
|
+
* Dynamic's infrastructure.
|
|
5
8
|
*
|
|
6
9
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7
10
|
* @not-instrumented
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTronExtension.d.ts","sourceRoot":"","sources":["../../src/addTronExtension/addTronExtension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"addTronExtension.d.ts","sourceRoot":"","sources":["../../src/addTronExtension/addTronExtension.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,iEAAkC,IAG9D,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { i as tronConfirmTransaction, r as tronExecuteSwapTransaction, s as registerTronNetworkProviderBuilder, t as tronTransferAmount } from "./tronTransferAmount-
|
|
1
|
+
import { i as tronConfirmTransaction, r as tronExecuteSwapTransaction, s as registerTronNetworkProviderBuilder, t as tronTransferAmount } from "./tronTransferAmount-DegLNA83.esm.js";
|
|
2
2
|
import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getCore, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension } from "@dynamic-labs-sdk/client/core";
|
|
3
|
-
import { BitKeepAdapter, OkxWalletAdapter, TokenPocketAdapter, TronLinkAdapter, TrustAdapter } from "@tronweb3/tronwallet-adapters";
|
|
4
3
|
import { TronWeb } from "tronweb";
|
|
5
4
|
import { assertWalletAccountSigningAvailability, getActiveNetworkData } from "@dynamic-labs-sdk/client";
|
|
6
5
|
import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
6
|
+
import { BitKeepAdapter, OkxWalletAdapter, TokenPocketAdapter, TronLinkAdapter, TrustAdapter } from "@tronweb3/tronwallet-adapters";
|
|
7
7
|
import { WalletReadyState } from "@tronweb3/tronwallet-abstract-adapter";
|
|
8
8
|
|
|
9
9
|
//#region src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts
|
|
@@ -131,4 +131,4 @@ const addTronWalletAdaptersExtension = (client = getDefaultClient()) => {
|
|
|
131
131
|
|
|
132
132
|
//#endregion
|
|
133
133
|
export { addTronWalletAdaptersExtension as t };
|
|
134
|
-
//# sourceMappingURL=addTronWalletAdaptersExtension-
|
|
134
|
+
//# sourceMappingURL=addTronWalletAdaptersExtension-7mKwmTw8.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTronWalletAdaptersExtension-Bv-FsxVZ.esm.js","names":["chain: Chain","metadata: WalletProviderMetadata","connect: TronWalletProvider['connect']","destroy: TronWalletProvider['destroy']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","tronWalletProviders: TronWalletProvider[]"],"sources":["../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["/** @not-instrumented */\nexport const convertChainIdToDecimal = (chainId: string): string =>\n chainId.startsWith('0x') ? parseInt(chainId, 16).toString() : chainId;\n","import {\n type Chain,\n type DynamicClient,\n type WalletProviderMetadata,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getCore,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport type { Adapter } from '@tronweb3/tronwallet-abstract-adapter';\nimport { WalletReadyState } from '@tronweb3/tronwallet-abstract-adapter';\nimport { TronWeb } from 'tronweb';\n\nimport type {\n TronAdapter,\n TronWalletProvider,\n} from '../../../TronWalletProvider.types';\nimport { convertChainIdToDecimal } from '../../../utils/convertChainIdToDecimal';\nimport { tronConfirmTransaction } from '../../../utils/tronConfirmTransaction';\nimport { tronExecuteSwapTransaction } from '../../../utils/tronExecuteSwapTransaction';\nimport { tronTransferAmount } from '../../../utils/tronTransferAmount';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForTronWalletAdapter = ({\n dynamicClient,\n adapter,\n}: CreateWalletProviderForTronWalletAdapterParams):\n | TronWalletProvider\n | undefined => {\n const chain: Chain = 'TRON';\n\n // we have to do this type cast because these adapters have the _wallet property private,\n // but we need to access it to get the TronWeb instance\n const tronAdapter = adapter as unknown as TronAdapter;\n\n // Wallet is not installed\n if (tronAdapter.readyState !== WalletReadyState.Found) {\n return undefined;\n }\n\n const metadata: WalletProviderMetadata = {\n displayName: tronAdapter.name,\n icon: tronAdapter.icon,\n };\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const connect: TronWalletProvider['connect'] = async () => {\n await tronAdapter.connect();\n\n // Some wallets (Trust, Bitget) populate the address asynchronously after connect()\n // Wait briefly for the address to be populated by the wallet\n const startTime = Date.now();\n while (!tronAdapter.address?.length && Date.now() - startTime < 1000) {\n await new Promise((resolve) => setTimeout(resolve, 50));\n }\n\n return {\n addresses: tronAdapter.address ? [{ address: tronAdapter.address }] : [],\n };\n };\n\n const destroy: TronWalletProvider['destroy'] = async () => {\n try {\n await tronAdapter.disconnect();\n } catch (err) {\n getCore(dynamicClient).logger.error(\n `[${key}] destroy: remote signal failed`,\n err\n );\n }\n };\n\n const getActiveNetworkId: TronWalletProvider['getActiveNetworkId'] =\n async () => {\n const networkInfo = await tronAdapter.network();\n\n const networkId = convertChainIdToDecimal(networkInfo.chainId);\n\n return { networkId };\n };\n\n const getConnectedAddresses: TronWalletProvider['getConnectedAddresses'] =\n async () => {\n return {\n addresses: tronAdapter.address ? [tronAdapter.address] : [],\n };\n };\n\n const signMessage: TronWalletProvider['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 signedMessage = await tronAdapter.signMessage(message);\n\n return {\n signature: signedMessage,\n };\n };\n\n const getTronWeb: TronWalletProvider['getTronWeb'] = async ({\n walletAccount,\n }) => {\n const tronWeb =\n tronAdapter._wallet?.tronWeb || tronAdapter._wallet?.tron?.tronWeb;\n\n if (tronWeb) {\n return tronWeb;\n }\n\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new TronWeb({ fullHost: url });\n };\n\n return {\n chain,\n confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),\n connect,\n destroy,\n executeSwapTransaction: (args) =>\n tronExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n transferAmount: (args) => tronTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n BitKeepAdapter,\n OkxWalletAdapter,\n TokenPocketAdapter,\n TronLinkAdapter,\n TrustAdapter,\n} from '@tronweb3/tronwallet-adapters';\n\nimport { registerTronNetworkProviderBuilder } from '../../registerTronNetworkProviderBuilder';\nimport type { TronWalletProvider } from '../../TronWalletProvider.types';\nimport { createWalletProviderForTronWalletAdapter } from '../utils/createWalletProviderForTronWalletAdapter';\n\nexport const TRON_WALLET_ADAPTERS_EXTENSION_KEY = 'tronWalletAdapters';\n\n/**\n * Adds the Tron Wallet Adapters extension to the Dynamic client.\n *\n * This extension enables integration with wallets that have related Tron Wallet Adapters ('@tronweb3/tronwallet-adapters'),\n * automatically registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronWalletAdaptersExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY },\n client\n );\n\n registerTronNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const tronWalletProviders: TronWalletProvider[] = [];\n\n // Create and register OKX wallet provider\n const okxWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new OkxWalletAdapter(),\n dynamicClient: client,\n });\n if (okxWalletProvider) {\n tronWalletProviders.push(okxWalletProvider);\n }\n\n // Create and register TronLink wallet provider\n const tronLinkWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TronLinkAdapter(),\n dynamicClient: client,\n });\n if (tronLinkWalletProvider) {\n tronWalletProviders.push(tronLinkWalletProvider);\n }\n\n // Create and register Trust wallet provider\n const trustWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TrustAdapter(),\n dynamicClient: client,\n });\n if (trustWalletProvider) {\n tronWalletProviders.push(trustWalletProvider);\n }\n\n // Create and register TokenPocket wallet provider\n const tokenPocketWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TokenPocketAdapter(),\n dynamicClient: client,\n });\n if (tokenPocketWalletProvider) {\n tronWalletProviders.push(tokenPocketWalletProvider);\n }\n\n // Create and register Bitget wallet provider\n const bitgetWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new BitKeepAdapter(),\n dynamicClient: client,\n });\n if (bitgetWalletProvider) {\n tronWalletProviders.push(bitgetWalletProvider);\n }\n\n tronWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"addTronWalletAdaptersExtension-7mKwmTw8.esm.js","names":["chain: Chain","metadata: WalletProviderMetadata","connect: TronWalletProvider['connect']","destroy: TronWalletProvider['destroy']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","tronWalletProviders: TronWalletProvider[]"],"sources":["../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["/** @not-instrumented */\nexport const convertChainIdToDecimal = (chainId: string): string =>\n chainId.startsWith('0x') ? parseInt(chainId, 16).toString() : chainId;\n","import {\n type Chain,\n type DynamicClient,\n type WalletProviderMetadata,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getCore,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport type { Adapter } from '@tronweb3/tronwallet-abstract-adapter';\nimport { WalletReadyState } from '@tronweb3/tronwallet-abstract-adapter';\nimport { TronWeb } from 'tronweb';\n\nimport type {\n TronAdapter,\n TronWalletProvider,\n} from '../../../TronWalletProvider.types';\nimport { convertChainIdToDecimal } from '../../../utils/convertChainIdToDecimal';\nimport { tronConfirmTransaction } from '../../../utils/tronConfirmTransaction';\nimport { tronExecuteSwapTransaction } from '../../../utils/tronExecuteSwapTransaction';\nimport { tronTransferAmount } from '../../../utils/tronTransferAmount';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForTronWalletAdapter = ({\n dynamicClient,\n adapter,\n}: CreateWalletProviderForTronWalletAdapterParams):\n | TronWalletProvider\n | undefined => {\n const chain: Chain = 'TRON';\n\n // we have to do this type cast because these adapters have the _wallet property private,\n // but we need to access it to get the TronWeb instance\n const tronAdapter = adapter as unknown as TronAdapter;\n\n // Wallet is not installed\n if (tronAdapter.readyState !== WalletReadyState.Found) {\n return undefined;\n }\n\n const metadata: WalletProviderMetadata = {\n displayName: tronAdapter.name,\n icon: tronAdapter.icon,\n };\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const connect: TronWalletProvider['connect'] = async () => {\n await tronAdapter.connect();\n\n // Some wallets (Trust, Bitget) populate the address asynchronously after connect()\n // Wait briefly for the address to be populated by the wallet\n const startTime = Date.now();\n while (!tronAdapter.address?.length && Date.now() - startTime < 1000) {\n await new Promise((resolve) => setTimeout(resolve, 50));\n }\n\n return {\n addresses: tronAdapter.address ? [{ address: tronAdapter.address }] : [],\n };\n };\n\n const destroy: TronWalletProvider['destroy'] = async () => {\n try {\n await tronAdapter.disconnect();\n } catch (err) {\n getCore(dynamicClient).logger.error(\n `[${key}] destroy: remote signal failed`,\n err\n );\n }\n };\n\n const getActiveNetworkId: TronWalletProvider['getActiveNetworkId'] =\n async () => {\n const networkInfo = await tronAdapter.network();\n\n const networkId = convertChainIdToDecimal(networkInfo.chainId);\n\n return { networkId };\n };\n\n const getConnectedAddresses: TronWalletProvider['getConnectedAddresses'] =\n async () => {\n return {\n addresses: tronAdapter.address ? [tronAdapter.address] : [],\n };\n };\n\n const signMessage: TronWalletProvider['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 signedMessage = await tronAdapter.signMessage(message);\n\n return {\n signature: signedMessage,\n };\n };\n\n const getTronWeb: TronWalletProvider['getTronWeb'] = async ({\n walletAccount,\n }) => {\n const tronWeb =\n tronAdapter._wallet?.tronWeb || tronAdapter._wallet?.tron?.tronWeb;\n\n if (tronWeb) {\n return tronWeb;\n }\n\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new TronWeb({ fullHost: url });\n };\n\n return {\n chain,\n confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),\n connect,\n destroy,\n executeSwapTransaction: (args) =>\n tronExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n transferAmount: (args) => tronTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n BitKeepAdapter,\n OkxWalletAdapter,\n TokenPocketAdapter,\n TronLinkAdapter,\n TrustAdapter,\n} from '@tronweb3/tronwallet-adapters';\n\nimport { registerTronNetworkProviderBuilder } from '../../registerTronNetworkProviderBuilder';\nimport type { TronWalletProvider } from '../../TronWalletProvider.types';\nimport { createWalletProviderForTronWalletAdapter } from '../utils/createWalletProviderForTronWalletAdapter';\n\nexport const TRON_WALLET_ADAPTERS_EXTENSION_KEY = 'tronWalletAdapters';\n\n/**\n * Adds the Tron Wallet Adapters extension to the Dynamic client.\n *\n * This extension enables integration with wallets that have related Tron Wallet Adapters ('@tronweb3/tronwallet-adapters'),\n * automatically registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronWalletAdaptersExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY },\n client\n );\n\n registerTronNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const tronWalletProviders: TronWalletProvider[] = [];\n\n // Create and register OKX wallet provider\n const okxWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new OkxWalletAdapter(),\n dynamicClient: client,\n });\n if (okxWalletProvider) {\n tronWalletProviders.push(okxWalletProvider);\n }\n\n // Create and register TronLink wallet provider\n const tronLinkWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TronLinkAdapter(),\n dynamicClient: client,\n });\n if (tronLinkWalletProvider) {\n tronWalletProviders.push(tronLinkWalletProvider);\n }\n\n // Create and register Trust wallet provider\n const trustWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TrustAdapter(),\n dynamicClient: client,\n });\n if (trustWalletProvider) {\n tronWalletProviders.push(trustWalletProvider);\n }\n\n // Create and register TokenPocket wallet provider\n const tokenPocketWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TokenPocketAdapter(),\n dynamicClient: client,\n });\n if (tokenPocketWalletProvider) {\n tronWalletProviders.push(tokenPocketWalletProvider);\n }\n\n // Create and register Bitget wallet provider\n const bitgetWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new BitKeepAdapter(),\n dynamicClient: client,\n });\n if (bitgetWalletProvider) {\n tronWalletProviders.push(bitgetWalletProvider);\n }\n\n tronWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const require_tronTransferAmount = require('./tronTransferAmount-
|
|
1
|
+
const require_tronTransferAmount = require('./tronTransferAmount-CJmhF9gK.cjs');
|
|
2
2
|
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
3
|
-
let _tronweb3_tronwallet_adapters = require("@tronweb3/tronwallet-adapters");
|
|
4
3
|
let tronweb = require("tronweb");
|
|
5
4
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
6
5
|
let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
|
|
6
|
+
let _tronweb3_tronwallet_adapters = require("@tronweb3/tronwallet-adapters");
|
|
7
7
|
let _tronweb3_tronwallet_abstract_adapter = require("@tronweb3/tronwallet-abstract-adapter");
|
|
8
8
|
|
|
9
9
|
//#region src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts
|
|
@@ -136,4 +136,4 @@ Object.defineProperty(exports, 'addTronWalletAdaptersExtension', {
|
|
|
136
136
|
return addTronWalletAdaptersExtension;
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
|
-
//# sourceMappingURL=addTronWalletAdaptersExtension-
|
|
139
|
+
//# sourceMappingURL=addTronWalletAdaptersExtension-DzOStiXS.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTronWalletAdaptersExtension-Br5QlcMM.cjs","names":["chain: Chain","WalletReadyState","metadata: WalletProviderMetadata","WalletProviderEnum","connect: TronWalletProvider['connect']","destroy: TronWalletProvider['destroy']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","TronWeb","tronConfirmTransaction","tronExecuteSwapTransaction","tronTransferAmount","tronWalletProviders: TronWalletProvider[]","OkxWalletAdapter","TronLinkAdapter","TrustAdapter","TokenPocketAdapter","BitKeepAdapter","WalletProviderPriority"],"sources":["../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["/** @not-instrumented */\nexport const convertChainIdToDecimal = (chainId: string): string =>\n chainId.startsWith('0x') ? parseInt(chainId, 16).toString() : chainId;\n","import {\n type Chain,\n type DynamicClient,\n type WalletProviderMetadata,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getCore,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport type { Adapter } from '@tronweb3/tronwallet-abstract-adapter';\nimport { WalletReadyState } from '@tronweb3/tronwallet-abstract-adapter';\nimport { TronWeb } from 'tronweb';\n\nimport type {\n TronAdapter,\n TronWalletProvider,\n} from '../../../TronWalletProvider.types';\nimport { convertChainIdToDecimal } from '../../../utils/convertChainIdToDecimal';\nimport { tronConfirmTransaction } from '../../../utils/tronConfirmTransaction';\nimport { tronExecuteSwapTransaction } from '../../../utils/tronExecuteSwapTransaction';\nimport { tronTransferAmount } from '../../../utils/tronTransferAmount';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForTronWalletAdapter = ({\n dynamicClient,\n adapter,\n}: CreateWalletProviderForTronWalletAdapterParams):\n | TronWalletProvider\n | undefined => {\n const chain: Chain = 'TRON';\n\n // we have to do this type cast because these adapters have the _wallet property private,\n // but we need to access it to get the TronWeb instance\n const tronAdapter = adapter as unknown as TronAdapter;\n\n // Wallet is not installed\n if (tronAdapter.readyState !== WalletReadyState.Found) {\n return undefined;\n }\n\n const metadata: WalletProviderMetadata = {\n displayName: tronAdapter.name,\n icon: tronAdapter.icon,\n };\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const connect: TronWalletProvider['connect'] = async () => {\n await tronAdapter.connect();\n\n // Some wallets (Trust, Bitget) populate the address asynchronously after connect()\n // Wait briefly for the address to be populated by the wallet\n const startTime = Date.now();\n while (!tronAdapter.address?.length && Date.now() - startTime < 1000) {\n await new Promise((resolve) => setTimeout(resolve, 50));\n }\n\n return {\n addresses: tronAdapter.address ? [{ address: tronAdapter.address }] : [],\n };\n };\n\n const destroy: TronWalletProvider['destroy'] = async () => {\n try {\n await tronAdapter.disconnect();\n } catch (err) {\n getCore(dynamicClient).logger.error(\n `[${key}] destroy: remote signal failed`,\n err\n );\n }\n };\n\n const getActiveNetworkId: TronWalletProvider['getActiveNetworkId'] =\n async () => {\n const networkInfo = await tronAdapter.network();\n\n const networkId = convertChainIdToDecimal(networkInfo.chainId);\n\n return { networkId };\n };\n\n const getConnectedAddresses: TronWalletProvider['getConnectedAddresses'] =\n async () => {\n return {\n addresses: tronAdapter.address ? [tronAdapter.address] : [],\n };\n };\n\n const signMessage: TronWalletProvider['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 signedMessage = await tronAdapter.signMessage(message);\n\n return {\n signature: signedMessage,\n };\n };\n\n const getTronWeb: TronWalletProvider['getTronWeb'] = async ({\n walletAccount,\n }) => {\n const tronWeb =\n tronAdapter._wallet?.tronWeb || tronAdapter._wallet?.tron?.tronWeb;\n\n if (tronWeb) {\n return tronWeb;\n }\n\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new TronWeb({ fullHost: url });\n };\n\n return {\n chain,\n confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),\n connect,\n destroy,\n executeSwapTransaction: (args) =>\n tronExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n transferAmount: (args) => tronTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n BitKeepAdapter,\n OkxWalletAdapter,\n TokenPocketAdapter,\n TronLinkAdapter,\n TrustAdapter,\n} from '@tronweb3/tronwallet-adapters';\n\nimport { registerTronNetworkProviderBuilder } from '../../registerTronNetworkProviderBuilder';\nimport type { TronWalletProvider } from '../../TronWalletProvider.types';\nimport { createWalletProviderForTronWalletAdapter } from '../utils/createWalletProviderForTronWalletAdapter';\n\nexport const TRON_WALLET_ADAPTERS_EXTENSION_KEY = 'tronWalletAdapters';\n\n/**\n * Adds the Tron Wallet Adapters extension to the Dynamic client.\n *\n * This extension enables integration with wallets that have related Tron Wallet Adapters ('@tronweb3/tronwallet-adapters'),\n * automatically registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronWalletAdaptersExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY },\n client\n );\n\n registerTronNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const tronWalletProviders: TronWalletProvider[] = [];\n\n // Create and register OKX wallet provider\n const okxWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new OkxWalletAdapter(),\n dynamicClient: client,\n });\n if (okxWalletProvider) {\n tronWalletProviders.push(okxWalletProvider);\n }\n\n // Create and register TronLink wallet provider\n const tronLinkWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TronLinkAdapter(),\n dynamicClient: client,\n });\n if (tronLinkWalletProvider) {\n tronWalletProviders.push(tronLinkWalletProvider);\n }\n\n // Create and register Trust wallet provider\n const trustWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TrustAdapter(),\n dynamicClient: client,\n });\n if (trustWalletProvider) {\n tronWalletProviders.push(trustWalletProvider);\n }\n\n // Create and register TokenPocket wallet provider\n const tokenPocketWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TokenPocketAdapter(),\n dynamicClient: client,\n });\n if (tokenPocketWalletProvider) {\n tronWalletProviders.push(tokenPocketWalletProvider);\n }\n\n // Create and register Bitget wallet provider\n const bitgetWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new BitKeepAdapter(),\n dynamicClient: client,\n });\n if (bitgetWalletProvider) {\n tronWalletProviders.push(bitgetWalletProvider);\n }\n\n tronWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"addTronWalletAdaptersExtension-DzOStiXS.cjs","names":["chain: Chain","WalletReadyState","metadata: WalletProviderMetadata","WalletProviderEnum","connect: TronWalletProvider['connect']","destroy: TronWalletProvider['destroy']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","TronWeb","tronConfirmTransaction","tronExecuteSwapTransaction","tronTransferAmount","tronWalletProviders: TronWalletProvider[]","OkxWalletAdapter","TronLinkAdapter","TrustAdapter","TokenPocketAdapter","BitKeepAdapter","WalletProviderPriority"],"sources":["../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["/** @not-instrumented */\nexport const convertChainIdToDecimal = (chainId: string): string =>\n chainId.startsWith('0x') ? parseInt(chainId, 16).toString() : chainId;\n","import {\n type Chain,\n type DynamicClient,\n type WalletProviderMetadata,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getCore,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport type { Adapter } from '@tronweb3/tronwallet-abstract-adapter';\nimport { WalletReadyState } from '@tronweb3/tronwallet-abstract-adapter';\nimport { TronWeb } from 'tronweb';\n\nimport type {\n TronAdapter,\n TronWalletProvider,\n} from '../../../TronWalletProvider.types';\nimport { convertChainIdToDecimal } from '../../../utils/convertChainIdToDecimal';\nimport { tronConfirmTransaction } from '../../../utils/tronConfirmTransaction';\nimport { tronExecuteSwapTransaction } from '../../../utils/tronExecuteSwapTransaction';\nimport { tronTransferAmount } from '../../../utils/tronTransferAmount';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForTronWalletAdapter = ({\n dynamicClient,\n adapter,\n}: CreateWalletProviderForTronWalletAdapterParams):\n | TronWalletProvider\n | undefined => {\n const chain: Chain = 'TRON';\n\n // we have to do this type cast because these adapters have the _wallet property private,\n // but we need to access it to get the TronWeb instance\n const tronAdapter = adapter as unknown as TronAdapter;\n\n // Wallet is not installed\n if (tronAdapter.readyState !== WalletReadyState.Found) {\n return undefined;\n }\n\n const metadata: WalletProviderMetadata = {\n displayName: tronAdapter.name,\n icon: tronAdapter.icon,\n };\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const connect: TronWalletProvider['connect'] = async () => {\n await tronAdapter.connect();\n\n // Some wallets (Trust, Bitget) populate the address asynchronously after connect()\n // Wait briefly for the address to be populated by the wallet\n const startTime = Date.now();\n while (!tronAdapter.address?.length && Date.now() - startTime < 1000) {\n await new Promise((resolve) => setTimeout(resolve, 50));\n }\n\n return {\n addresses: tronAdapter.address ? [{ address: tronAdapter.address }] : [],\n };\n };\n\n const destroy: TronWalletProvider['destroy'] = async () => {\n try {\n await tronAdapter.disconnect();\n } catch (err) {\n getCore(dynamicClient).logger.error(\n `[${key}] destroy: remote signal failed`,\n err\n );\n }\n };\n\n const getActiveNetworkId: TronWalletProvider['getActiveNetworkId'] =\n async () => {\n const networkInfo = await tronAdapter.network();\n\n const networkId = convertChainIdToDecimal(networkInfo.chainId);\n\n return { networkId };\n };\n\n const getConnectedAddresses: TronWalletProvider['getConnectedAddresses'] =\n async () => {\n return {\n addresses: tronAdapter.address ? [tronAdapter.address] : [],\n };\n };\n\n const signMessage: TronWalletProvider['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 signedMessage = await tronAdapter.signMessage(message);\n\n return {\n signature: signedMessage,\n };\n };\n\n const getTronWeb: TronWalletProvider['getTronWeb'] = async ({\n walletAccount,\n }) => {\n const tronWeb =\n tronAdapter._wallet?.tronWeb || tronAdapter._wallet?.tron?.tronWeb;\n\n if (tronWeb) {\n return tronWeb;\n }\n\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new TronWeb({ fullHost: url });\n };\n\n return {\n chain,\n confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),\n connect,\n destroy,\n executeSwapTransaction: (args) =>\n tronExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n transferAmount: (args) => tronTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n BitKeepAdapter,\n OkxWalletAdapter,\n TokenPocketAdapter,\n TronLinkAdapter,\n TrustAdapter,\n} from '@tronweb3/tronwallet-adapters';\n\nimport { registerTronNetworkProviderBuilder } from '../../registerTronNetworkProviderBuilder';\nimport type { TronWalletProvider } from '../../TronWalletProvider.types';\nimport { createWalletProviderForTronWalletAdapter } from '../utils/createWalletProviderForTronWalletAdapter';\n\nexport const TRON_WALLET_ADAPTERS_EXTENSION_KEY = 'tronWalletAdapters';\n\n/**\n * Adds the Tron Wallet Adapters extension to the Dynamic client.\n *\n * This extension enables integration with wallets that have related Tron Wallet Adapters ('@tronweb3/tronwallet-adapters'),\n * automatically registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronWalletAdaptersExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: TRON_WALLET_ADAPTERS_EXTENSION_KEY },\n client\n );\n\n registerTronNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const tronWalletProviders: TronWalletProvider[] = [];\n\n // Create and register OKX wallet provider\n const okxWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new OkxWalletAdapter(),\n dynamicClient: client,\n });\n if (okxWalletProvider) {\n tronWalletProviders.push(okxWalletProvider);\n }\n\n // Create and register TronLink wallet provider\n const tronLinkWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TronLinkAdapter(),\n dynamicClient: client,\n });\n if (tronLinkWalletProvider) {\n tronWalletProviders.push(tronLinkWalletProvider);\n }\n\n // Create and register Trust wallet provider\n const trustWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TrustAdapter(),\n dynamicClient: client,\n });\n if (trustWalletProvider) {\n tronWalletProviders.push(trustWalletProvider);\n }\n\n // Create and register TokenPocket wallet provider\n const tokenPocketWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new TokenPocketAdapter(),\n dynamicClient: client,\n });\n if (tokenPocketWalletProvider) {\n tronWalletProviders.push(tokenPocketWalletProvider);\n }\n\n // Create and register Bitget wallet provider\n const bitgetWalletProvider = createWalletProviderForTronWalletAdapter({\n adapter: new BitKeepAdapter(),\n dynamicClient: client,\n });\n if (bitgetWalletProvider) {\n tronWalletProviders.push(bitgetWalletProvider);\n }\n\n tronWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { i as tronConfirmTransaction, r as tronExecuteSwapTransaction, s as registerTronNetworkProviderBuilder, t as tronTransferAmount } from "./tronTransferAmount-DegLNA83.esm.js";
|
|
2
|
+
import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
|
|
3
|
+
import { TronWeb } from "tronweb";
|
|
4
|
+
import { getActiveNetworkData } from "@dynamic-labs-sdk/client";
|
|
5
|
+
import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from "@dynamic-labs-sdk/client/waas/core";
|
|
6
|
+
import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
7
|
+
|
|
8
|
+
//#region src/waas/utils/createWalletProviderForWaasTron/createWalletProviderForWaasTron.ts
|
|
9
|
+
const TRON_CHAIN = "TRON";
|
|
10
|
+
/** @not-instrumented */
|
|
11
|
+
const createWalletProviderForWaasTron = ({ dynamicClient }) => {
|
|
12
|
+
const walletProviderType = WalletProviderEnum.EmbeddedWallet;
|
|
13
|
+
const key = formatWalletProviderKey({
|
|
14
|
+
chain: TRON_CHAIN,
|
|
15
|
+
displayName: DYNAMIC_WAAS_METADATA.displayName,
|
|
16
|
+
walletProviderType
|
|
17
|
+
});
|
|
18
|
+
const waasProvider = createWaasProvider({
|
|
19
|
+
chain: TRON_CHAIN,
|
|
20
|
+
sdkClient: dynamicClient
|
|
21
|
+
});
|
|
22
|
+
const getActiveNetworkId = async () => getActiveNetworkIdFromLastKnownRegistry({
|
|
23
|
+
client: dynamicClient,
|
|
24
|
+
walletProviderKey: key
|
|
25
|
+
});
|
|
26
|
+
const switchActiveNetwork = async ({ networkId }) => switchActiveNetworkInLastKnownRegistry({
|
|
27
|
+
client: dynamicClient,
|
|
28
|
+
networkId,
|
|
29
|
+
walletProviderKey: key
|
|
30
|
+
});
|
|
31
|
+
const getConnectedAddresses = async () => {
|
|
32
|
+
return { addresses: getAllUserWaasAddressesForChain({ chain: TRON_CHAIN }, dynamicClient) };
|
|
33
|
+
};
|
|
34
|
+
const signMessage = async ({ message, walletAccount }) => {
|
|
35
|
+
assertDefined(walletAccount, "Wallet account is required");
|
|
36
|
+
return waasProvider.signMessage({
|
|
37
|
+
message,
|
|
38
|
+
walletAccount
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const buildTronWebForWalletAccount = async (walletAccount) => {
|
|
42
|
+
const activeNetworkData = await getActiveNetworkData({ walletAccount }, dynamicClient);
|
|
43
|
+
assertDefined(activeNetworkData, "No active network data found");
|
|
44
|
+
const url = activeNetworkData.networkData?.rpcUrls.http[0];
|
|
45
|
+
assertDefined(url, "No RPC URL found for active network");
|
|
46
|
+
const tronWeb = new TronWeb({ fullHost: url });
|
|
47
|
+
tronWeb.setAddress(walletAccount.address);
|
|
48
|
+
tronWeb.trx.sign = (async (transaction) => {
|
|
49
|
+
assertDefined(transaction?.raw_data_hex, "Tron transaction is missing raw_data_hex");
|
|
50
|
+
const { signature } = await waasProvider.signSerializedTransaction({
|
|
51
|
+
serializedTransaction: transaction.raw_data_hex,
|
|
52
|
+
walletAccount
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
...transaction,
|
|
56
|
+
signature: [signature]
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
return tronWeb;
|
|
60
|
+
};
|
|
61
|
+
const getTronWeb = async ({ walletAccount }) => buildTronWebForWalletAccount(walletAccount);
|
|
62
|
+
const destroy = async (args) => waasProvider.destroy(args);
|
|
63
|
+
return {
|
|
64
|
+
...waasProvider,
|
|
65
|
+
chain: TRON_CHAIN,
|
|
66
|
+
confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),
|
|
67
|
+
destroy,
|
|
68
|
+
executeSwapTransaction: (args) => tronExecuteSwapTransaction(args, dynamicClient),
|
|
69
|
+
getActiveNetworkId,
|
|
70
|
+
getConnectedAddresses,
|
|
71
|
+
getTronWeb,
|
|
72
|
+
groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),
|
|
73
|
+
key,
|
|
74
|
+
metadata: {
|
|
75
|
+
displayName: DYNAMIC_WAAS_METADATA.displayName,
|
|
76
|
+
icon: DYNAMIC_WAAS_METADATA.icon
|
|
77
|
+
},
|
|
78
|
+
signMessage,
|
|
79
|
+
switchActiveNetwork,
|
|
80
|
+
transferAmount: (args) => tronTransferAmount(args, dynamicClient),
|
|
81
|
+
walletProviderType
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/waas/addWaasTronExtension/addWaasTronExtension.ts
|
|
87
|
+
const WAAS_TRON_EXTENSION_KEY = "waasTron";
|
|
88
|
+
/**
|
|
89
|
+
* Adds the Dynamic WaaS (Wallet as a Service) Tron extension to the Dynamic client.
|
|
90
|
+
*
|
|
91
|
+
* This extension enables embedded wallet functionality for the Tron blockchain,
|
|
92
|
+
* allowing users to have wallets managed by Dynamic's infrastructure.
|
|
93
|
+
*
|
|
94
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
95
|
+
* * @not-instrumented
|
|
96
|
+
*/
|
|
97
|
+
const addWaasTronExtension = (client = getDefaultClient()) => {
|
|
98
|
+
if (hasExtension({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client)) return;
|
|
99
|
+
registerExtension({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client);
|
|
100
|
+
registerTronNetworkProviderBuilder(client);
|
|
101
|
+
const walletProviderRegistry = getWalletProviderRegistry(client);
|
|
102
|
+
const walletProvider = createWalletProviderForWaasTron({ dynamicClient: client });
|
|
103
|
+
walletProviderRegistry.register({
|
|
104
|
+
priority: WalletProviderPriority.WALLET_SDK,
|
|
105
|
+
walletProvider
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
//#endregion
|
|
110
|
+
export { addWaasTronExtension as t };
|
|
111
|
+
//# sourceMappingURL=addWaasTronExtension-8uFS3DYK.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addWaasTronExtension-8uFS3DYK.esm.js","names":["TRON_CHAIN: Chain","getActiveNetworkId: WaasTronWalletProvider['getActiveNetworkId']","switchActiveNetwork: WaasTronWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasTronWalletProvider['getConnectedAddresses']","signMessage: WaasTronWalletProvider['signMessage']","getTronWeb: WaasTronWalletProvider['getTronWeb']","destroy: WaasTronWalletProvider['destroy']"],"sources":["../src/waas/utils/createWalletProviderForWaasTron/createWalletProviderForWaasTron.ts","../src/waas/addWaasTronExtension/addWaasTronExtension.ts"],"sourcesContent":["import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { TronWeb } from 'tronweb';\n\nimport type { TronWalletAccount } from '../../../TronWalletAccount.types';\nimport { tronConfirmTransaction } from '../../../utils/tronConfirmTransaction';\nimport { tronExecuteSwapTransaction } from '../../../utils/tronExecuteSwapTransaction';\nimport { tronTransferAmount } from '../../../utils/tronTransferAmount';\nimport type { WaasTronWalletProvider } from '../../WaasTronWalletProvider.types';\n\nconst TRON_CHAIN: Chain = 'TRON';\n\ntype UnsignedTronTransaction = {\n raw_data_hex: string;\n signature?: string[];\n txID?: string;\n};\n\ntype CreateWalletProviderForWaasTronParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasTron = ({\n dynamicClient,\n}: CreateWalletProviderForWaasTronParams): WaasTronWalletProvider => {\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain: TRON_CHAIN,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain: TRON_CHAIN,\n sdkClient: dynamicClient,\n });\n\n const getActiveNetworkId: WaasTronWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: WaasTronWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasTronWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasTronAddresses = getAllUserWaasAddressesForChain(\n { chain: TRON_CHAIN },\n dynamicClient\n );\n\n return {\n addresses: waasTronAddresses,\n };\n };\n\n const signMessage: WaasTronWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const buildTronWebForWalletAccount = async (\n walletAccount: TronWalletAccount\n ): Promise<TronWeb> => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n const tronWeb = new TronWeb({ fullHost: url });\n\n tronWeb.setAddress(walletAccount.address);\n\n tronWeb.trx.sign = (async (transaction: UnsignedTronTransaction) => {\n assertDefined(\n transaction?.raw_data_hex,\n 'Tron transaction is missing raw_data_hex'\n );\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: transaction.raw_data_hex,\n walletAccount,\n });\n\n return {\n ...transaction,\n signature: [signature],\n };\n }) as unknown as TronWeb['trx']['sign'];\n\n return tronWeb;\n };\n\n const getTronWeb: WaasTronWalletProvider['getTronWeb'] = async ({\n walletAccount,\n }) => buildTronWebForWalletAccount(walletAccount);\n\n const destroy: WaasTronWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain: TRON_CHAIN,\n confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),\n destroy,\n executeSwapTransaction: (args) =>\n tronExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => tronTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerTronNetworkProviderBuilder } from '../../registerTronNetworkProviderBuilder';\nimport { createWalletProviderForWaasTron } from '../utils/createWalletProviderForWaasTron';\n\nexport const WAAS_TRON_EXTENSION_KEY = 'waasTron';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Tron extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for the Tron blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * * @not-instrumented\n */\nexport const addWaasTronExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client);\n registerTronNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasTron({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;AA0BA,MAAMA,aAAoB;;AAa1B,MAAa,mCAAmC,EAC9C,oBACmE;CACnE,MAAM,qBAAqB,mBAAmB;CAE9C,MAAM,MAAM,wBAAwB;EAClC,OAAO;EACP,aAAa,sBAAsB;EACnC;EACD,CAAC;CAEF,MAAM,eAAe,mBAAmB;EACtC,OAAO;EACP,WAAW;EACZ,CAAC;CAEF,MAAMC,qBACJ,YACE,wCAAwC;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,sBACJ,OAAO,EAAE,gBACP,uCAAuC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,WANwB,gCACxB,EAAE,OAAO,YAAY,EACrB,cACD,EAIA;;CAGL,MAAMC,cAAqD,OAAO,EAChE,SACA,oBACI;AACJ,gBAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAC9B;GACA;GACD,CAAC;;CAGJ,MAAM,+BAA+B,OACnC,kBACqB;EACrB,MAAM,oBAAoB,MAAM,qBAC9B,EAAE,eAAe,EACjB,cACD;AACD,gBAAc,mBAAmB,+BAA+B;EAEhE,MAAM,MAAM,kBAAkB,aAAa,QAAQ,KAAK;AACxD,gBAAc,KAAK,sCAAsC;EAEzD,MAAM,UAAU,IAAI,QAAQ,EAAE,UAAU,KAAK,CAAC;AAE9C,UAAQ,WAAW,cAAc,QAAQ;AAEzC,UAAQ,IAAI,QAAQ,OAAO,gBAAyC;AAClE,iBACE,aAAa,cACb,2CACD;GAED,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;IACjE,uBAAuB,YAAY;IACnC;IACD,CAAC;AAEF,UAAO;IACL,GAAG;IACH,WAAW,CAAC,UAAU;IACvB;;AAGH,SAAO;;CAGT,MAAMC,aAAmD,OAAO,EAC9D,oBACI,6BAA6B,cAAc;CAEjD,MAAMC,UAA6C,OAAO,SACxD,aAAa,QAAQ,KAAK;AAE5B,QAAO;EACL,GAAG;EACH,OAAO;EACP,qBAAqB,SAAS,uBAAuB,MAAM,cAAc;EACzE;EACA,yBAAyB,SACvB,2BAA2B,MAAM,cAAc;EACjD;EACA;EACA;EACA,UAAU,6BAA6B,sBAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAa,sBAAsB;GACnC,MAAM,sBAAsB;GAC7B;EACD;EACA;EACA,iBAAiB,SAAS,mBAAmB,MAAM,cAAc;EACjE;EACD;;;;;AClJH,MAAa,0BAA0B;;;;;;;;;;AAWvC,MAAa,wBAAwB,SAAS,kBAAkB,KAAW;AACzE,KAAI,aAAa,EAAE,cAAc,yBAAyB,EAAE,OAAO,CACjE;AAGF,mBAAkB,EAAE,cAAc,yBAAyB,EAAE,OAAO;AACpE,oCAAmC,OAAO;CAE1C,MAAM,yBAAyB,0BAA0B,OAAO;CAEhE,MAAM,iBAAiB,gCAAgC,EACrD,eAAe,QAChB,CAAC;AAEF,wBAAuB,SAAS;EAC9B,UAAU,uBAAuB;EACjC;EACD,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
const require_tronTransferAmount = require('./tronTransferAmount-CJmhF9gK.cjs');
|
|
2
|
+
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
3
|
+
let tronweb = require("tronweb");
|
|
4
|
+
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
5
|
+
let _dynamic_labs_sdk_client_waas_core = require("@dynamic-labs-sdk/client/waas/core");
|
|
6
|
+
let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
|
|
7
|
+
|
|
8
|
+
//#region src/waas/utils/createWalletProviderForWaasTron/createWalletProviderForWaasTron.ts
|
|
9
|
+
const TRON_CHAIN = "TRON";
|
|
10
|
+
/** @not-instrumented */
|
|
11
|
+
const createWalletProviderForWaasTron = ({ dynamicClient }) => {
|
|
12
|
+
const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.EmbeddedWallet;
|
|
13
|
+
const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
|
|
14
|
+
chain: TRON_CHAIN,
|
|
15
|
+
displayName: _dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName,
|
|
16
|
+
walletProviderType
|
|
17
|
+
});
|
|
18
|
+
const waasProvider = (0, _dynamic_labs_sdk_client_waas_core.createWaasProvider)({
|
|
19
|
+
chain: TRON_CHAIN,
|
|
20
|
+
sdkClient: dynamicClient
|
|
21
|
+
});
|
|
22
|
+
const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
|
|
23
|
+
client: dynamicClient,
|
|
24
|
+
walletProviderKey: key
|
|
25
|
+
});
|
|
26
|
+
const switchActiveNetwork = async ({ networkId }) => (0, _dynamic_labs_sdk_client_core.switchActiveNetworkInLastKnownRegistry)({
|
|
27
|
+
client: dynamicClient,
|
|
28
|
+
networkId,
|
|
29
|
+
walletProviderKey: key
|
|
30
|
+
});
|
|
31
|
+
const getConnectedAddresses = async () => {
|
|
32
|
+
return { addresses: (0, _dynamic_labs_sdk_client_waas_core.getAllUserWaasAddressesForChain)({ chain: TRON_CHAIN }, dynamicClient) };
|
|
33
|
+
};
|
|
34
|
+
const signMessage = async ({ message, walletAccount }) => {
|
|
35
|
+
(0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account is required");
|
|
36
|
+
return waasProvider.signMessage({
|
|
37
|
+
message,
|
|
38
|
+
walletAccount
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const buildTronWebForWalletAccount = async (walletAccount) => {
|
|
42
|
+
const activeNetworkData = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, dynamicClient);
|
|
43
|
+
(0, _dynamic_labs_sdk_client_core.assertDefined)(activeNetworkData, "No active network data found");
|
|
44
|
+
const url = activeNetworkData.networkData?.rpcUrls.http[0];
|
|
45
|
+
(0, _dynamic_labs_sdk_client_core.assertDefined)(url, "No RPC URL found for active network");
|
|
46
|
+
const tronWeb = new tronweb.TronWeb({ fullHost: url });
|
|
47
|
+
tronWeb.setAddress(walletAccount.address);
|
|
48
|
+
tronWeb.trx.sign = (async (transaction) => {
|
|
49
|
+
(0, _dynamic_labs_sdk_client_core.assertDefined)(transaction?.raw_data_hex, "Tron transaction is missing raw_data_hex");
|
|
50
|
+
const { signature } = await waasProvider.signSerializedTransaction({
|
|
51
|
+
serializedTransaction: transaction.raw_data_hex,
|
|
52
|
+
walletAccount
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
...transaction,
|
|
56
|
+
signature: [signature]
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
return tronWeb;
|
|
60
|
+
};
|
|
61
|
+
const getTronWeb = async ({ walletAccount }) => buildTronWebForWalletAccount(walletAccount);
|
|
62
|
+
const destroy = async (args) => waasProvider.destroy(args);
|
|
63
|
+
return {
|
|
64
|
+
...waasProvider,
|
|
65
|
+
chain: TRON_CHAIN,
|
|
66
|
+
confirmTransaction: (args) => require_tronTransferAmount.tronConfirmTransaction(args, dynamicClient),
|
|
67
|
+
destroy,
|
|
68
|
+
executeSwapTransaction: (args) => require_tronTransferAmount.tronExecuteSwapTransaction(args, dynamicClient),
|
|
69
|
+
getActiveNetworkId,
|
|
70
|
+
getConnectedAddresses,
|
|
71
|
+
getTronWeb,
|
|
72
|
+
groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(_dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName),
|
|
73
|
+
key,
|
|
74
|
+
metadata: {
|
|
75
|
+
displayName: _dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.displayName,
|
|
76
|
+
icon: _dynamic_labs_sdk_client_waas_core.DYNAMIC_WAAS_METADATA.icon
|
|
77
|
+
},
|
|
78
|
+
signMessage,
|
|
79
|
+
switchActiveNetwork,
|
|
80
|
+
transferAmount: (args) => require_tronTransferAmount.tronTransferAmount(args, dynamicClient),
|
|
81
|
+
walletProviderType
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/waas/addWaasTronExtension/addWaasTronExtension.ts
|
|
87
|
+
const WAAS_TRON_EXTENSION_KEY = "waasTron";
|
|
88
|
+
/**
|
|
89
|
+
* Adds the Dynamic WaaS (Wallet as a Service) Tron extension to the Dynamic client.
|
|
90
|
+
*
|
|
91
|
+
* This extension enables embedded wallet functionality for the Tron blockchain,
|
|
92
|
+
* allowing users to have wallets managed by Dynamic's infrastructure.
|
|
93
|
+
*
|
|
94
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
95
|
+
* * @not-instrumented
|
|
96
|
+
*/
|
|
97
|
+
const addWaasTronExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
|
|
98
|
+
if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client)) return;
|
|
99
|
+
(0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client);
|
|
100
|
+
require_tronTransferAmount.registerTronNetworkProviderBuilder(client);
|
|
101
|
+
const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
|
|
102
|
+
const walletProvider = createWalletProviderForWaasTron({ dynamicClient: client });
|
|
103
|
+
walletProviderRegistry.register({
|
|
104
|
+
priority: _dynamic_labs_sdk_client_core.WalletProviderPriority.WALLET_SDK,
|
|
105
|
+
walletProvider
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
//#endregion
|
|
110
|
+
Object.defineProperty(exports, 'addWaasTronExtension', {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
get: function () {
|
|
113
|
+
return addWaasTronExtension;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=addWaasTronExtension-DDc3HnZB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addWaasTronExtension-DDc3HnZB.cjs","names":["TRON_CHAIN: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","getActiveNetworkId: WaasTronWalletProvider['getActiveNetworkId']","switchActiveNetwork: WaasTronWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasTronWalletProvider['getConnectedAddresses']","signMessage: WaasTronWalletProvider['signMessage']","TronWeb","getTronWeb: WaasTronWalletProvider['getTronWeb']","destroy: WaasTronWalletProvider['destroy']","tronConfirmTransaction","tronExecuteSwapTransaction","tronTransferAmount","WalletProviderPriority"],"sources":["../src/waas/utils/createWalletProviderForWaasTron/createWalletProviderForWaasTron.ts","../src/waas/addWaasTronExtension/addWaasTronExtension.ts"],"sourcesContent":["import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { TronWeb } from 'tronweb';\n\nimport type { TronWalletAccount } from '../../../TronWalletAccount.types';\nimport { tronConfirmTransaction } from '../../../utils/tronConfirmTransaction';\nimport { tronExecuteSwapTransaction } from '../../../utils/tronExecuteSwapTransaction';\nimport { tronTransferAmount } from '../../../utils/tronTransferAmount';\nimport type { WaasTronWalletProvider } from '../../WaasTronWalletProvider.types';\n\nconst TRON_CHAIN: Chain = 'TRON';\n\ntype UnsignedTronTransaction = {\n raw_data_hex: string;\n signature?: string[];\n txID?: string;\n};\n\ntype CreateWalletProviderForWaasTronParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasTron = ({\n dynamicClient,\n}: CreateWalletProviderForWaasTronParams): WaasTronWalletProvider => {\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain: TRON_CHAIN,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain: TRON_CHAIN,\n sdkClient: dynamicClient,\n });\n\n const getActiveNetworkId: WaasTronWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: WaasTronWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasTronWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasTronAddresses = getAllUserWaasAddressesForChain(\n { chain: TRON_CHAIN },\n dynamicClient\n );\n\n return {\n addresses: waasTronAddresses,\n };\n };\n\n const signMessage: WaasTronWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const buildTronWebForWalletAccount = async (\n walletAccount: TronWalletAccount\n ): Promise<TronWeb> => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n const tronWeb = new TronWeb({ fullHost: url });\n\n tronWeb.setAddress(walletAccount.address);\n\n tronWeb.trx.sign = (async (transaction: UnsignedTronTransaction) => {\n assertDefined(\n transaction?.raw_data_hex,\n 'Tron transaction is missing raw_data_hex'\n );\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: transaction.raw_data_hex,\n walletAccount,\n });\n\n return {\n ...transaction,\n signature: [signature],\n };\n }) as unknown as TronWeb['trx']['sign'];\n\n return tronWeb;\n };\n\n const getTronWeb: WaasTronWalletProvider['getTronWeb'] = async ({\n walletAccount,\n }) => buildTronWebForWalletAccount(walletAccount);\n\n const destroy: WaasTronWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain: TRON_CHAIN,\n confirmTransaction: (args) => tronConfirmTransaction(args, dynamicClient),\n destroy,\n executeSwapTransaction: (args) =>\n tronExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => tronTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerTronNetworkProviderBuilder } from '../../registerTronNetworkProviderBuilder';\nimport { createWalletProviderForWaasTron } from '../utils/createWalletProviderForWaasTron';\n\nexport const WAAS_TRON_EXTENSION_KEY = 'waasTron';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Tron extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for the Tron blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * * @not-instrumented\n */\nexport const addWaasTronExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_TRON_EXTENSION_KEY }, client);\n registerTronNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasTron({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;AA0BA,MAAMA,aAAoB;;AAa1B,MAAa,mCAAmC,EAC9C,oBACmE;CACnE,MAAM,qBAAqBC,8CAAmB;CAE9C,MAAM,iEAA8B;EAClC,OAAO;EACP,aAAaC,yDAAsB;EACnC;EACD,CAAC;CAEF,MAAM,0EAAkC;EACtC,OAAO;EACP,WAAW;EACZ,CAAC;CAEF,MAAMC,qBACJ,uFAC0C;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,sBACJ,OAAO,EAAE,0FACgC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,mFALA,EAAE,OAAO,YAAY,EACrB,cACD,EAIA;;CAGL,MAAMC,cAAqD,OAAO,EAChE,SACA,oBACI;AACJ,mDAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAC9B;GACA;GACD,CAAC;;CAGJ,MAAM,+BAA+B,OACnC,kBACqB;EACrB,MAAM,oBAAoB,yDACxB,EAAE,eAAe,EACjB,cACD;AACD,mDAAc,mBAAmB,+BAA+B;EAEhE,MAAM,MAAM,kBAAkB,aAAa,QAAQ,KAAK;AACxD,mDAAc,KAAK,sCAAsC;EAEzD,MAAM,UAAU,IAAIC,gBAAQ,EAAE,UAAU,KAAK,CAAC;AAE9C,UAAQ,WAAW,cAAc,QAAQ;AAEzC,UAAQ,IAAI,QAAQ,OAAO,gBAAyC;AAClE,oDACE,aAAa,cACb,2CACD;GAED,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;IACjE,uBAAuB,YAAY;IACnC;IACD,CAAC;AAEF,UAAO;IACL,GAAG;IACH,WAAW,CAAC,UAAU;IACvB;;AAGH,SAAO;;CAGT,MAAMC,aAAmD,OAAO,EAC9D,oBACI,6BAA6B,cAAc;CAEjD,MAAMC,UAA6C,OAAO,SACxD,aAAa,QAAQ,KAAK;AAE5B,QAAO;EACL,GAAG;EACH,OAAO;EACP,qBAAqB,SAASC,kDAAuB,MAAM,cAAc;EACzE;EACA,yBAAyB,SACvBC,sDAA2B,MAAM,cAAc;EACjD;EACA;EACA;EACA,0EAAuCT,yDAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAaA,yDAAsB;GACnC,MAAMA,yDAAsB;GAC7B;EACD;EACA;EACA,iBAAiB,SAASU,8CAAmB,MAAM,cAAc;EACjE;EACD;;;;;AClJH,MAAa,0BAA0B;;;;;;;;;;AAWvC,MAAa,wBAAwB,8DAA2B,KAAW;AACzE,qDAAiB,EAAE,cAAc,yBAAyB,EAAE,OAAO,CACjE;AAGF,sDAAkB,EAAE,cAAc,yBAAyB,EAAE,OAAO;AACpE,+DAAmC,OAAO;CAE1C,MAAM,sFAAmD,OAAO;CAEhE,MAAM,iBAAiB,gCAAgC,EACrD,eAAe,QAChB,CAAC;AAEF,wBAAuB,SAAS;EAC9B,UAAUC,qDAAuB;EACjC;EACD,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
const require_tronTransferAmount = require('./tronTransferAmount-
|
|
2
|
-
const
|
|
1
|
+
const require_tronTransferAmount = require('./tronTransferAmount-CJmhF9gK.cjs');
|
|
2
|
+
const require_addWaasTronExtension = require('./addWaasTronExtension-DDc3HnZB.cjs');
|
|
3
|
+
const require_addTronWalletAdaptersExtension = require('./addTronWalletAdaptersExtension-DzOStiXS.cjs');
|
|
3
4
|
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
4
5
|
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
5
6
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
@@ -8,13 +9,17 @@ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
|
8
9
|
/**
|
|
9
10
|
* Adds the Tron extension to the Dynamic client.
|
|
10
11
|
*
|
|
11
|
-
* This is a convenience function that adds
|
|
12
|
+
* This is a convenience function that adds both the Tron Wallet Adapters extension
|
|
13
|
+
* and the Dynamic WaaS Tron extension, enabling support for all Tron wallet types
|
|
14
|
+
* including injected wallets (Tronlink, etc.) and embedded wallets managed by
|
|
15
|
+
* Dynamic's infrastructure.
|
|
12
16
|
*
|
|
13
17
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
14
18
|
* @not-instrumented
|
|
15
19
|
*/
|
|
16
20
|
const addTronExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
|
|
17
21
|
require_addTronWalletAdaptersExtension.addTronWalletAdaptersExtension(client);
|
|
22
|
+
require_addWaasTronExtension.addWaasTronExtension(client);
|
|
18
23
|
};
|
|
19
24
|
|
|
20
25
|
//#endregion
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["isTronWalletProvider","NotTronProviderError","isTronWalletProvider","NotTronProviderError","packageName","packageVersion"],"sources":["../src/addTronExtension/addTronExtension.ts","../src/getTronWeb/getTronWeb.ts","../src/isTronNetworkProvider/isTronNetworkProvider.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addTronWalletAdaptersExtension } from '../walletAdapters/addTronWalletAdaptersExtension';\n\n/**\n * Adds the Tron extension to the Dynamic client.\n *\n * This is a convenience function that adds support for Tron wallets.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronExtension = (client = getDefaultClient()): void => {\n addTronWalletAdaptersExtension(client);\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type { TronWeb } from 'tronweb';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\n\ntype GetTronWebParams = {\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Retrieves a TronWeb from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the TronWeb for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a TronWeb instance\n * @throws NotTronProviderError If the wallet account's provider is not a Tron provider\n * @not-instrumented\n */\nexport const getTronWeb = async (\n { walletAccount }: GetTronWebParams,\n client = getDefaultClient()\n): Promise<TronWeb> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n return provider.getTronWeb({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TronNetworkProvider } from '../TronNetworkProvider.types';\n\n/** @not-instrumented */\nexport const isTronNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TronNetworkProvider => networkProvider.chain === 'TRON';\n","import {\n assertWalletAccountSigningAvailability,\n getDefaultClient,\n} from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\nimport type { TronBroadcastReturnSignedTransaction } from '../TronWalletProvider.types';\n\ntype SendTransactionParams = {\n transaction: {\n amount: number;\n to: string;\n };\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Sends a Tron transaction\n * @param params.transaction - The transaction to send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the broadcast return of the signed transaction\n * @not-instrumented\n */\nexport const sendTransaction = async (\n { walletAccount, transaction }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TronBroadcastReturnSignedTransaction> => {\n await assertWalletAccountSigningAvailability({ walletAccount }, client);\n\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n const tronWeb = await provider.getTronWeb({ walletAccount });\n\n const { amount, to } = transaction;\n const amountInSun = tronWeb.toSun(amount);\n\n return tronWeb.trx.sendTransaction(to, Number(amountInSun), {\n address: walletAccount.address,\n });\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 { addTronExtension } from '../addTronExtension';\nexport { getTronWeb } from '../getTronWeb';\nexport { isTronNetworkProvider } from '../isTronNetworkProvider';\nexport { isTronWalletAccount } from '../isTronWalletAccount';\nexport { sendTransaction } from '../sendTransaction';\nexport type { TronNetworkProvider } from '../TronNetworkProvider.types';\nexport type { TronWalletAccount } from '../TronWalletAccount.types';\nexport type {\n TronBroadcastReturnSignedTransaction,\n TronWeb,\n} from '../TronWalletProvider.types';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["isTronWalletProvider","NotTronProviderError","isTronWalletProvider","NotTronProviderError","packageName","packageVersion"],"sources":["../src/addTronExtension/addTronExtension.ts","../src/getTronWeb/getTronWeb.ts","../src/isTronNetworkProvider/isTronNetworkProvider.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasTronExtension } from '../waas/addWaasTronExtension';\nimport { addTronWalletAdaptersExtension } from '../walletAdapters/addTronWalletAdaptersExtension';\n\n/**\n * Adds the Tron extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Tron Wallet Adapters extension\n * and the Dynamic WaaS Tron extension, enabling support for all Tron wallet types\n * including injected wallets (Tronlink, etc.) and embedded wallets managed by\n * Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronExtension = (client = getDefaultClient()): void => {\n addTronWalletAdaptersExtension(client);\n addWaasTronExtension(client);\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type { TronWeb } from 'tronweb';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\n\ntype GetTronWebParams = {\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Retrieves a TronWeb from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the TronWeb for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a TronWeb instance\n * @throws NotTronProviderError If the wallet account's provider is not a Tron provider\n * @not-instrumented\n */\nexport const getTronWeb = async (\n { walletAccount }: GetTronWebParams,\n client = getDefaultClient()\n): Promise<TronWeb> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n return provider.getTronWeb({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TronNetworkProvider } from '../TronNetworkProvider.types';\n\n/** @not-instrumented */\nexport const isTronNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TronNetworkProvider => networkProvider.chain === 'TRON';\n","import {\n assertWalletAccountSigningAvailability,\n getDefaultClient,\n} from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\nimport type { TronBroadcastReturnSignedTransaction } from '../TronWalletProvider.types';\n\ntype SendTransactionParams = {\n transaction: {\n amount: number;\n to: string;\n };\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Sends a Tron transaction\n * @param params.transaction - The transaction to send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the broadcast return of the signed transaction\n * @not-instrumented\n */\nexport const sendTransaction = async (\n { walletAccount, transaction }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TronBroadcastReturnSignedTransaction> => {\n await assertWalletAccountSigningAvailability({ walletAccount }, client);\n\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n const tronWeb = await provider.getTronWeb({ walletAccount });\n\n const { amount, to } = transaction;\n const amountInSun = tronWeb.toSun(amount);\n\n return tronWeb.trx.sendTransaction(to, Number(amountInSun), {\n address: walletAccount.address,\n });\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 { addTronExtension } from '../addTronExtension';\nexport { getTronWeb } from '../getTronWeb';\nexport { isTronNetworkProvider } from '../isTronNetworkProvider';\nexport { isTronWalletAccount } from '../isTronWalletAccount';\nexport { sendTransaction } from '../sendTransaction';\nexport type { TronNetworkProvider } from '../TronNetworkProvider.types';\nexport type { TronWalletAccount } from '../TronWalletAccount.types';\nexport type {\n TronBroadcastReturnSignedTransaction,\n TronWeb,\n} from '../TronWalletProvider.types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,MAAa,oBAAoB,8DAA2B,KAAW;AACrE,uEAA+B,OAAO;AACtC,mDAAqB,OAAO;;;;;;;;;;;;;;ACK9B,MAAa,aAAa,OACxB,EAAE,iBACF,8DAA2B,KACN;CACrB,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAACA,gDAAqB,SAAS,CACjC,OAAM,IAAIC,gDAAqB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG/D,QAAO,SAAS,WAAW,EAAE,eAAe,CAAC;;;;;;ACjC/C,MAAa,yBACX,oBAC2C,gBAAgB,UAAU;;;;;;;;;;;;ACoBvE,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,yDAA2B,KACuB;AAClD,4EAA6C,EAAE,eAAe,EAAE,OAAO;CAEvE,MAAM,iFACJ,EACE,eACD,EACD,OACD;AAED,KAAI,CAACC,gDAAqB,SAAS,CACjC,OAAM,IAAIC,gDAAqB,EAAE,aAAa,SAAS,KAAK,CAAC;CAG/D,MAAM,UAAU,MAAM,SAAS,WAAW,EAAE,eAAe,CAAC;CAE5D,MAAM,EAAE,QAAQ,OAAO;CACvB,MAAM,cAAc,QAAQ,MAAM,OAAO;AAEzC,QAAO,QAAQ,IAAI,gBAAgB,IAAI,OAAO,YAAY,EAAE,EAC1D,SAAS,cAAc,SACxB,CAAC;;;;;mEC7CiBC,iCAAaC,mCAAe"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { a as isTronWalletProvider, c as name, l as version, n as NotTronProviderError, o as isTronWalletAccount } from "./tronTransferAmount-
|
|
2
|
-
import { t as
|
|
1
|
+
import { a as isTronWalletProvider, c as name, l as version, n as NotTronProviderError, o as isTronWalletAccount } from "./tronTransferAmount-DegLNA83.esm.js";
|
|
2
|
+
import { t as addWaasTronExtension } from "./addWaasTronExtension-8uFS3DYK.esm.js";
|
|
3
|
+
import { t as addTronWalletAdaptersExtension } from "./addTronWalletAdaptersExtension-7mKwmTw8.esm.js";
|
|
3
4
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
4
5
|
import { getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
|
|
5
6
|
import { assertWalletAccountSigningAvailability, getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
|
|
@@ -8,13 +9,17 @@ import { assertWalletAccountSigningAvailability, getDefaultClient as getDefaultC
|
|
|
8
9
|
/**
|
|
9
10
|
* Adds the Tron extension to the Dynamic client.
|
|
10
11
|
*
|
|
11
|
-
* This is a convenience function that adds
|
|
12
|
+
* This is a convenience function that adds both the Tron Wallet Adapters extension
|
|
13
|
+
* and the Dynamic WaaS Tron extension, enabling support for all Tron wallet types
|
|
14
|
+
* including injected wallets (Tronlink, etc.) and embedded wallets managed by
|
|
15
|
+
* Dynamic's infrastructure.
|
|
12
16
|
*
|
|
13
17
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
14
18
|
* @not-instrumented
|
|
15
19
|
*/
|
|
16
20
|
const addTronExtension = (client = getDefaultClient()) => {
|
|
17
21
|
addTronWalletAdaptersExtension(client);
|
|
22
|
+
addWaasTronExtension(client);
|
|
18
23
|
};
|
|
19
24
|
|
|
20
25
|
//#endregion
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["getDefaultClient","packageName","packageVersion"],"sources":["../src/addTronExtension/addTronExtension.ts","../src/getTronWeb/getTronWeb.ts","../src/isTronNetworkProvider/isTronNetworkProvider.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addTronWalletAdaptersExtension } from '../walletAdapters/addTronWalletAdaptersExtension';\n\n/**\n * Adds the Tron extension to the Dynamic client.\n *\n * This is a convenience function that adds support for Tron wallets.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronExtension = (client = getDefaultClient()): void => {\n addTronWalletAdaptersExtension(client);\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type { TronWeb } from 'tronweb';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\n\ntype GetTronWebParams = {\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Retrieves a TronWeb from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the TronWeb for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a TronWeb instance\n * @throws NotTronProviderError If the wallet account's provider is not a Tron provider\n * @not-instrumented\n */\nexport const getTronWeb = async (\n { walletAccount }: GetTronWebParams,\n client = getDefaultClient()\n): Promise<TronWeb> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n return provider.getTronWeb({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TronNetworkProvider } from '../TronNetworkProvider.types';\n\n/** @not-instrumented */\nexport const isTronNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TronNetworkProvider => networkProvider.chain === 'TRON';\n","import {\n assertWalletAccountSigningAvailability,\n getDefaultClient,\n} from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\nimport type { TronBroadcastReturnSignedTransaction } from '../TronWalletProvider.types';\n\ntype SendTransactionParams = {\n transaction: {\n amount: number;\n to: string;\n };\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Sends a Tron transaction\n * @param params.transaction - The transaction to send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the broadcast return of the signed transaction\n * @not-instrumented\n */\nexport const sendTransaction = async (\n { walletAccount, transaction }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TronBroadcastReturnSignedTransaction> => {\n await assertWalletAccountSigningAvailability({ walletAccount }, client);\n\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n const tronWeb = await provider.getTronWeb({ walletAccount });\n\n const { amount, to } = transaction;\n const amountInSun = tronWeb.toSun(amount);\n\n return tronWeb.trx.sendTransaction(to, Number(amountInSun), {\n address: walletAccount.address,\n });\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 { addTronExtension } from '../addTronExtension';\nexport { getTronWeb } from '../getTronWeb';\nexport { isTronNetworkProvider } from '../isTronNetworkProvider';\nexport { isTronWalletAccount } from '../isTronWalletAccount';\nexport { sendTransaction } from '../sendTransaction';\nexport type { TronNetworkProvider } from '../TronNetworkProvider.types';\nexport type { TronWalletAccount } from '../TronWalletAccount.types';\nexport type {\n TronBroadcastReturnSignedTransaction,\n TronWeb,\n} from '../TronWalletProvider.types';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":["getDefaultClient","packageName","packageVersion"],"sources":["../src/addTronExtension/addTronExtension.ts","../src/getTronWeb/getTronWeb.ts","../src/isTronNetworkProvider/isTronNetworkProvider.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasTronExtension } from '../waas/addWaasTronExtension';\nimport { addTronWalletAdaptersExtension } from '../walletAdapters/addTronWalletAdaptersExtension';\n\n/**\n * Adds the Tron extension to the Dynamic client.\n *\n * This is a convenience function that adds both the Tron Wallet Adapters extension\n * and the Dynamic WaaS Tron extension, enabling support for all Tron wallet types\n * including injected wallets (Tronlink, etc.) and embedded wallets managed by\n * Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTronExtension = (client = getDefaultClient()): void => {\n addTronWalletAdaptersExtension(client);\n addWaasTronExtension(client);\n};\n","import {\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type { TronWeb } from 'tronweb';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\n\ntype GetTronWebParams = {\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Retrieves a TronWeb from a wallet account.\n *\n * @param params.walletAccount - The wallet account to get the TronWeb for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a TronWeb instance\n * @throws NotTronProviderError If the wallet account's provider is not a Tron provider\n * @not-instrumented\n */\nexport const getTronWeb = async (\n { walletAccount }: GetTronWebParams,\n client = getDefaultClient()\n): Promise<TronWeb> => {\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n return provider.getTronWeb({ walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TronNetworkProvider } from '../TronNetworkProvider.types';\n\n/** @not-instrumented */\nexport const isTronNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TronNetworkProvider => networkProvider.chain === 'TRON';\n","import {\n assertWalletAccountSigningAvailability,\n getDefaultClient,\n} from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTronProviderError } from '../errors/NotTronProviderError';\nimport { isTronWalletProvider } from '../isTronWalletProvider';\nimport type { TronWalletAccount } from '../TronWalletAccount.types';\nimport type { TronBroadcastReturnSignedTransaction } from '../TronWalletProvider.types';\n\ntype SendTransactionParams = {\n transaction: {\n amount: number;\n to: string;\n };\n walletAccount: TronWalletAccount;\n};\n\n/**\n * Sends a Tron transaction\n * @param params.transaction - The transaction to send\n * @param params.walletAccount - The wallet account to sign and send the transaction with\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the broadcast return of the signed transaction\n * @not-instrumented\n */\nexport const sendTransaction = async (\n { walletAccount, transaction }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TronBroadcastReturnSignedTransaction> => {\n await assertWalletAccountSigningAvailability({ walletAccount }, client);\n\n const provider = getWalletProviderFromWalletAccount(\n {\n walletAccount,\n },\n client\n );\n\n if (!isTronWalletProvider(provider)) {\n throw new NotTronProviderError({ providerKey: provider.key });\n }\n\n const tronWeb = await provider.getTronWeb({ walletAccount });\n\n const { amount, to } = transaction;\n const amountInSun = tronWeb.toSun(amount);\n\n return tronWeb.trx.sendTransaction(to, Number(amountInSun), {\n address: walletAccount.address,\n });\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 { addTronExtension } from '../addTronExtension';\nexport { getTronWeb } from '../getTronWeb';\nexport { isTronNetworkProvider } from '../isTronNetworkProvider';\nexport { isTronWalletAccount } from '../isTronWalletAccount';\nexport { sendTransaction } from '../sendTransaction';\nexport type { TronNetworkProvider } from '../TronNetworkProvider.types';\nexport type { TronWalletAccount } from '../TronWalletAccount.types';\nexport type {\n TronBroadcastReturnSignedTransaction,\n TronWeb,\n} from '../TronWalletProvider.types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,MAAa,oBAAoB,SAAS,kBAAkB,KAAW;AACrE,gCAA+B,OAAO;AACtC,sBAAqB,OAAO;;;;;;;;;;;;;;ACK9B,MAAa,aAAa,OACxB,EAAE,iBACF,SAAS,kBAAkB,KACN;CACrB,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,qBAAqB,SAAS,CACjC,OAAM,IAAI,qBAAqB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG/D,QAAO,SAAS,WAAW,EAAE,eAAe,CAAC;;;;;;ACjC/C,MAAa,yBACX,oBAC2C,gBAAgB,UAAU;;;;;;;;;;;;ACoBvE,MAAa,kBAAkB,OAC7B,EAAE,eAAe,eACjB,SAASA,oBAAkB,KACuB;AAClD,OAAM,uCAAuC,EAAE,eAAe,EAAE,OAAO;CAEvE,MAAM,WAAW,mCACf,EACE,eACD,EACD,OACD;AAED,KAAI,CAAC,qBAAqB,SAAS,CACjC,OAAM,IAAI,qBAAqB,EAAE,aAAa,SAAS,KAAK,CAAC;CAG/D,MAAM,UAAU,MAAM,SAAS,WAAW,EAAE,eAAe,CAAC;CAE5D,MAAM,EAAE,QAAQ,OAAO;CACvB,MAAM,cAAc,QAAQ,MAAM,OAAO;AAEzC,QAAO,QAAQ,IAAI,gBAAgB,IAAI,OAAO,YAAY,EAAE,EAC1D,SAAS,cAAc,SACxB,CAAC;;;;;AC7CJ,qBAAqBC,MAAaC,QAAe"}
|
|
@@ -4,7 +4,7 @@ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
|
4
4
|
|
|
5
5
|
//#region package.json
|
|
6
6
|
var name = "@dynamic-labs-sdk/tron";
|
|
7
|
-
var version = "1.
|
|
7
|
+
var version = "1.4.0";
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region src/utils/constants.ts
|
|
@@ -209,4 +209,4 @@ Object.defineProperty(exports, 'version', {
|
|
|
209
209
|
return version;
|
|
210
210
|
}
|
|
211
211
|
});
|
|
212
|
-
//# sourceMappingURL=tronTransferAmount-
|
|
212
|
+
//# sourceMappingURL=tronTransferAmount-CJmhF9gK.cjs.map
|