@dynamic-labs-sdk/tron 0.3.0 → 0.6.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/{addTronWalletAdaptersExtension-CODXe59h.esm.js → addTronWalletAdaptersExtension-D2qfnlZp.esm.js} +2 -2
- package/dist/{addTronWalletAdaptersExtension-CODXe59h.esm.js.map → addTronWalletAdaptersExtension-D2qfnlZp.esm.js.map} +1 -1
- package/dist/{addTronWalletAdaptersExtension-BzQOeaSX.cjs.js → addTronWalletAdaptersExtension-aU3q3E6x.cjs.js} +2 -2
- package/dist/{addTronWalletAdaptersExtension-BzQOeaSX.cjs.js.map → addTronWalletAdaptersExtension-aU3q3E6x.cjs.js.map} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/walletAdapters.cjs.js +1 -1
- package/dist/walletAdapters.esm.js +1 -1
- package/package.json +7 -7
|
@@ -7,7 +7,7 @@ import { WalletReadyState } from "@tronweb3/tronwallet-abstract-adapter";
|
|
|
7
7
|
|
|
8
8
|
//#region package.json
|
|
9
9
|
var name = "@dynamic-labs-sdk/tron";
|
|
10
|
-
var version = "0.
|
|
10
|
+
var version = "0.6.0";
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
13
|
//#region src/utils/constants.ts
|
|
@@ -157,4 +157,4 @@ const addTronWalletAdaptersExtension = (client = getDefaultClient()) => {
|
|
|
157
157
|
|
|
158
158
|
//#endregion
|
|
159
159
|
export { name as n, version as r, addTronWalletAdaptersExtension as t };
|
|
160
|
-
//# sourceMappingURL=addTronWalletAdaptersExtension-
|
|
160
|
+
//# sourceMappingURL=addTronWalletAdaptersExtension-D2qfnlZp.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTronWalletAdaptersExtension-CODXe59h.esm.js","names":["chain: Chain","metadata: WalletProviderMetadata","connect: TronWalletProvider['connect']","disconnect: TronWalletProvider['disconnect']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","tronWalletProviders: TronWalletProvider[]"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchTronBalance/fetchTronBalance.ts","../src/utils/createTronNetworkProvider/createTronNetworkProvider.ts","../src/registerTronNetworkProviderBuilder/registerTronNetworkProviderBuilder.ts","../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["","// 1 TRX = 10^6 SUN (similar to wei for Ethereum)\nexport const SUN_PER_TRX = 1e6;\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { TronWeb } from 'tronweb';\n\nimport { SUN_PER_TRX } from '../constants';\n\ntype FetchTronBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchTronBalance = async ({\n address,\n networkData,\n}: FetchTronBalanceParams): Promise<string | null> => {\n const tronWeb = new TronWeb({\n fullHost: networkData.rpcUrls.http[0],\n });\n\n const balanceInSun = await tronWeb.trx.getBalance(address);\n\n return (Number(balanceInSun) / SUN_PER_TRX).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TronNetworkProvider } from '../../TronNetworkProvider.types';\nimport { fetchTronBalance } from '../fetchTronBalance';\n\nexport const createTronNetworkProvider = (\n networkData: NetworkData\n): TronNetworkProvider => ({\n ...createBaseNetworkProvider('TRON', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchTronBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTronNetworkProvider } from '../utils/createTronNetworkProvider';\n\nexport const registerTronNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Tron network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('TRON')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createTronNetworkProvider,\n chain: 'TRON',\n });\n};\n","export 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} 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';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\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 disconnect: TronWalletProvider['disconnect'] = async () => {\n return tronAdapter.disconnect();\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 connect,\n disconnect,\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\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 */\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-D2qfnlZp.esm.js","names":["chain: Chain","metadata: WalletProviderMetadata","connect: TronWalletProvider['connect']","disconnect: TronWalletProvider['disconnect']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","tronWalletProviders: TronWalletProvider[]"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchTronBalance/fetchTronBalance.ts","../src/utils/createTronNetworkProvider/createTronNetworkProvider.ts","../src/registerTronNetworkProviderBuilder/registerTronNetworkProviderBuilder.ts","../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["","// 1 TRX = 10^6 SUN (similar to wei for Ethereum)\nexport const SUN_PER_TRX = 1e6;\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { TronWeb } from 'tronweb';\n\nimport { SUN_PER_TRX } from '../constants';\n\ntype FetchTronBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchTronBalance = async ({\n address,\n networkData,\n}: FetchTronBalanceParams): Promise<string | null> => {\n const tronWeb = new TronWeb({\n fullHost: networkData.rpcUrls.http[0],\n });\n\n const balanceInSun = await tronWeb.trx.getBalance(address);\n\n return (Number(balanceInSun) / SUN_PER_TRX).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TronNetworkProvider } from '../../TronNetworkProvider.types';\nimport { fetchTronBalance } from '../fetchTronBalance';\n\nexport const createTronNetworkProvider = (\n networkData: NetworkData\n): TronNetworkProvider => ({\n ...createBaseNetworkProvider('TRON', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchTronBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTronNetworkProvider } from '../utils/createTronNetworkProvider';\n\nexport const registerTronNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Tron network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('TRON')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createTronNetworkProvider,\n chain: 'TRON',\n });\n};\n","export 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} 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';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\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 disconnect: TronWalletProvider['disconnect'] = async () => {\n return tronAdapter.disconnect();\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 connect,\n disconnect,\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\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 */\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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"}
|
|
@@ -7,7 +7,7 @@ let _tronweb3_tronwallet_abstract_adapter = require("@tronweb3/tronwallet-abstra
|
|
|
7
7
|
|
|
8
8
|
//#region package.json
|
|
9
9
|
var name = "@dynamic-labs-sdk/tron";
|
|
10
|
-
var version = "0.
|
|
10
|
+
var version = "0.6.0";
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
13
|
//#region src/utils/constants.ts
|
|
@@ -174,4 +174,4 @@ Object.defineProperty(exports, 'version', {
|
|
|
174
174
|
return version;
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
|
-
//# sourceMappingURL=addTronWalletAdaptersExtension-
|
|
177
|
+
//# sourceMappingURL=addTronWalletAdaptersExtension-aU3q3E6x.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTronWalletAdaptersExtension-BzQOeaSX.cjs.js","names":["TronWeb","chain: Chain","WalletReadyState","metadata: WalletProviderMetadata","WalletProviderEnum","connect: TronWalletProvider['connect']","disconnect: TronWalletProvider['disconnect']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","TronWeb","tronWalletProviders: TronWalletProvider[]","OkxWalletAdapter","TronLinkAdapter","TrustAdapter","TokenPocketAdapter","BitKeepAdapter","WalletProviderPriority"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchTronBalance/fetchTronBalance.ts","../src/utils/createTronNetworkProvider/createTronNetworkProvider.ts","../src/registerTronNetworkProviderBuilder/registerTronNetworkProviderBuilder.ts","../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["","// 1 TRX = 10^6 SUN (similar to wei for Ethereum)\nexport const SUN_PER_TRX = 1e6;\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { TronWeb } from 'tronweb';\n\nimport { SUN_PER_TRX } from '../constants';\n\ntype FetchTronBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchTronBalance = async ({\n address,\n networkData,\n}: FetchTronBalanceParams): Promise<string | null> => {\n const tronWeb = new TronWeb({\n fullHost: networkData.rpcUrls.http[0],\n });\n\n const balanceInSun = await tronWeb.trx.getBalance(address);\n\n return (Number(balanceInSun) / SUN_PER_TRX).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TronNetworkProvider } from '../../TronNetworkProvider.types';\nimport { fetchTronBalance } from '../fetchTronBalance';\n\nexport const createTronNetworkProvider = (\n networkData: NetworkData\n): TronNetworkProvider => ({\n ...createBaseNetworkProvider('TRON', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchTronBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTronNetworkProvider } from '../utils/createTronNetworkProvider';\n\nexport const registerTronNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Tron network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('TRON')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createTronNetworkProvider,\n chain: 'TRON',\n });\n};\n","export 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} 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';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\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 disconnect: TronWalletProvider['disconnect'] = async () => {\n return tronAdapter.disconnect();\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 connect,\n disconnect,\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\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 */\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-aU3q3E6x.cjs.js","names":["TronWeb","chain: Chain","WalletReadyState","metadata: WalletProviderMetadata","WalletProviderEnum","connect: TronWalletProvider['connect']","disconnect: TronWalletProvider['disconnect']","getActiveNetworkId: TronWalletProvider['getActiveNetworkId']","getConnectedAddresses: TronWalletProvider['getConnectedAddresses']","signMessage: TronWalletProvider['signMessage']","getTronWeb: TronWalletProvider['getTronWeb']","TronWeb","tronWalletProviders: TronWalletProvider[]","OkxWalletAdapter","TronLinkAdapter","TrustAdapter","TokenPocketAdapter","BitKeepAdapter","WalletProviderPriority"],"sources":["../package.json","../src/utils/constants.ts","../src/utils/fetchTronBalance/fetchTronBalance.ts","../src/utils/createTronNetworkProvider/createTronNetworkProvider.ts","../src/registerTronNetworkProviderBuilder/registerTronNetworkProviderBuilder.ts","../src/utils/convertChainIdToDecimal/convertChainIdToDecimal.ts","../src/walletAdapters/utils/createWalletProviderForTronWalletAdapter/createWalletProviderForTronWalletAdapter.ts","../src/walletAdapters/addTronWalletAdaptersExtension/addTronWalletAdaptersExtension.ts"],"sourcesContent":["","// 1 TRX = 10^6 SUN (similar to wei for Ethereum)\nexport const SUN_PER_TRX = 1e6;\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { TronWeb } from 'tronweb';\n\nimport { SUN_PER_TRX } from '../constants';\n\ntype FetchTronBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\nexport const fetchTronBalance = async ({\n address,\n networkData,\n}: FetchTronBalanceParams): Promise<string | null> => {\n const tronWeb = new TronWeb({\n fullHost: networkData.rpcUrls.http[0],\n });\n\n const balanceInSun = await tronWeb.trx.getBalance(address);\n\n return (Number(balanceInSun) / SUN_PER_TRX).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TronNetworkProvider } from '../../TronNetworkProvider.types';\nimport { fetchTronBalance } from '../fetchTronBalance';\n\nexport const createTronNetworkProvider = (\n networkData: NetworkData\n): TronNetworkProvider => ({\n ...createBaseNetworkProvider('TRON', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchTronBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTronNetworkProvider } from '../utils/createTronNetworkProvider';\n\nexport const registerTronNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n // If the Tron network provider builder is already registered, return.\n if (networkProviderBuilderRegistry.get().get('TRON')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createTronNetworkProvider,\n chain: 'TRON',\n });\n};\n","export 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} 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';\n\ntype CreateWalletProviderForTronWalletAdapterParams = {\n adapter: Adapter;\n dynamicClient: DynamicClient;\n};\n\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 disconnect: TronWalletProvider['disconnect'] = async () => {\n return tronAdapter.disconnect();\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 connect,\n disconnect,\n getActiveNetworkId,\n getConnectedAddresses,\n getTronWeb,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\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 */\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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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_addTronWalletAdaptersExtension = require('./addTronWalletAdaptersExtension-
|
|
1
|
+
const require_addTronWalletAdaptersExtension = require('./addTronWalletAdaptersExtension-aU3q3E6x.cjs.js');
|
|
2
2
|
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
3
3
|
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
4
4
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as name, r as version, t as addTronWalletAdaptersExtension } from "./addTronWalletAdaptersExtension-
|
|
1
|
+
import { n as name, r as version, t as addTronWalletAdaptersExtension } from "./addTronWalletAdaptersExtension-D2qfnlZp.esm.js";
|
|
2
2
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
3
3
|
import { getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
|
|
4
4
|
import { BaseError, assertWalletAccountSigningAvailability, getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
|