@dynamic-labs/tron 4.34.0 → 4.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/_virtual/_tslib.cjs +36 -0
  3. package/_virtual/_tslib.js +32 -0
  4. package/package.cjs +1 -1
  5. package/package.js +1 -1
  6. package/package.json +6 -3
  7. package/src/connectors/BitgetTronConnector/BitgetTronConnector.cjs +20 -0
  8. package/src/connectors/BitgetTronConnector/BitgetTronConnector.d.ts +7 -0
  9. package/src/connectors/BitgetTronConnector/BitgetTronConnector.js +16 -0
  10. package/src/connectors/BitgetTronConnector/index.d.ts +1 -0
  11. package/src/connectors/BybitTronConnector/BybitTronConnector.cjs +20 -0
  12. package/src/connectors/BybitTronConnector/BybitTronConnector.d.ts +7 -0
  13. package/src/connectors/BybitTronConnector/BybitTronConnector.js +16 -0
  14. package/src/connectors/BybitTronConnector/index.d.ts +1 -0
  15. package/src/connectors/OKXTronConnector/OKXTronConnector.cjs +20 -0
  16. package/src/connectors/OKXTronConnector/OKXTronConnector.d.ts +7 -0
  17. package/src/connectors/OKXTronConnector/OKXTronConnector.js +16 -0
  18. package/src/connectors/OKXTronConnector/index.d.ts +1 -0
  19. package/src/connectors/TronWalletConnector/TronWalletConnector.cjs +255 -0
  20. package/src/connectors/TronWalletConnector/TronWalletConnector.d.ts +42 -0
  21. package/src/connectors/TronWalletConnector/TronWalletConnector.js +251 -0
  22. package/src/connectors/TronWalletConnector/index.d.ts +1 -0
  23. package/src/connectors/TrustTronConnector/TrustTronConnector.cjs +20 -0
  24. package/src/connectors/TrustTronConnector/TrustTronConnector.d.ts +7 -0
  25. package/src/connectors/TrustTronConnector/TrustTronConnector.js +16 -0
  26. package/src/connectors/TrustTronConnector/index.d.ts +1 -0
  27. package/src/index.cjs +18 -0
  28. package/src/index.d.ts +6 -1
  29. package/src/index.js +14 -0
  30. package/src/types.d.ts +13 -2
  31. package/src/utils/TronUiTransaction/TronUiTransaction.cjs +121 -0
  32. package/src/utils/TronUiTransaction/TronUiTransaction.d.ts +39 -0
  33. package/src/utils/TronUiTransaction/TronUiTransaction.js +116 -0
  34. package/src/utils/TronUiTransaction/index.d.ts +1 -0
  35. package/src/utils/getDefaultTronNetworks.cjs +60 -0
  36. package/src/utils/getDefaultTronNetworks.js +53 -0
  37. package/src/utils/getTronGasEstimation.cjs +136 -0
  38. package/src/utils/getTronGasEstimation.d.ts +47 -0
  39. package/src/utils/getTronGasEstimation.js +129 -0
  40. package/src/utils/index.d.ts +1 -0
  41. package/src/utils/provider.cjs +59 -0
  42. package/src/utils/provider.js +53 -0
  43. package/src/wallet/TronWallet.cjs +106 -0
  44. package/src/wallet/TronWallet.d.ts +22 -0
  45. package/src/wallet/TronWallet.js +102 -0
  46. package/src/wallet/index.d.ts +2 -0
  47. package/src/wallet/isTronWallet/index.d.ts +1 -0
  48. package/src/wallet/isTronWallet/isTronWallet.cjs +8 -0
  49. package/src/wallet/isTronWallet/isTronWallet.d.ts +3 -0
  50. package/src/wallet/isTronWallet/isTronWallet.js +4 -0
package/CHANGELOG.md CHANGED
@@ -1,4 +1,30 @@
1
1
 
2
+ ## [4.36.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.35.0...v4.36.0) (2025-10-03)
3
+
4
+
5
+ ### Features
6
+
7
+ * add refresh/reshare settings on next login ([#9611](https://github.com/dynamic-labs/dynamic-auth/issues/9611)) ([49ce9a9](https://github.com/dynamic-labs/dynamic-auth/commit/49ce9a920bd3b4f7e7a4c3227bd8ecf2e6d0e37d))
8
+ * add waas mpc reshare on connectors ([#9610](https://github.com/dynamic-labs/dynamic-auth/issues/9610)) ([15394df](https://github.com/dynamic-labs/dynamic-auth/commit/15394dfb35c279b86c440066295eb8f3b8b1e342))
9
+ * send non-native tokens with sui sendbalance ([#9620](https://github.com/dynamic-labs/dynamic-auth/issues/9620)) ([c2c2b2b](https://github.com/dynamic-labs/dynamic-auth/commit/c2c2b2b5108933acf0858c61f96c902868531737))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * send balance input alignment ([#9617](https://github.com/dynamic-labs/dynamic-auth/issues/9617)) ([00d9f7c](https://github.com/dynamic-labs/dynamic-auth/commit/00d9f7cfd9e77660be8855367dbb14b139b6f146))
15
+
16
+ ## [4.35.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.34.0...v4.35.0) (2025-10-02)
17
+
18
+
19
+ ### Features
20
+
21
+ * update Bitget wallet logo with new SVG design ([#9615](https://github.com/dynamic-labs/dynamic-auth/issues/9615)) ([3b84f92](https://github.com/dynamic-labs/dynamic-auth/commit/3b84f9237d9a85ca334576aa9e986c73c7fa5973))
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * connecting global wallets via wallet connect ([#9608](https://github.com/dynamic-labs/dynamic-auth/issues/9608)) ([7b7767d](https://github.com/dynamic-labs/dynamic-auth/commit/7b7767dc322756edfe51f935155b0af2ebc52b6e))
27
+
2
28
  ## [4.34.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.33.0...v4.34.0) (2025-09-30)
3
29
 
4
30
 
@@ -0,0 +1,36 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ /******************************************************************************
7
+ Copyright (c) Microsoft Corporation.
8
+
9
+ Permission to use, copy, modify, and/or distribute this software for any
10
+ purpose with or without fee is hereby granted.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
13
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
14
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
15
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
16
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
17
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
18
+ PERFORMANCE OF THIS SOFTWARE.
19
+ ***************************************************************************** */
20
+
21
+ function __awaiter(thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ }
30
+
31
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
32
+ var e = new Error(message);
33
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
34
+ };
35
+
36
+ exports.__awaiter = __awaiter;
@@ -0,0 +1,32 @@
1
+ 'use client'
2
+ /******************************************************************************
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
+ PERFORMANCE OF THIS SOFTWARE.
15
+ ***************************************************************************** */
16
+
17
+ function __awaiter(thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ }
26
+
27
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
28
+ var e = new Error(message);
29
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
30
+ };
31
+
32
+ export { __awaiter };
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.34.0";
6
+ var version = "4.36.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.34.0";
2
+ var version = "4.36.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/tron",
3
- "version": "4.34.0",
3
+ "version": "4.36.0",
4
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -18,9 +18,12 @@
18
18
  },
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
- "@dynamic-labs/assert-package-version": "4.34.0",
21
+ "@dynamic-labs/assert-package-version": "4.36.0",
22
22
  "tronweb": "6.0.4",
23
- "@dynamic-labs/types": "4.34.0"
23
+ "@dynamic-labs/types": "4.36.0",
24
+ "@dynamic-labs/utils": "4.36.0",
25
+ "@dynamic-labs/wallet-book": "4.36.0",
26
+ "@dynamic-labs/wallet-connector-core": "4.36.0"
24
27
  },
25
28
  "peerDependencies": {}
26
29
  }
@@ -0,0 +1,20 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var TronWalletConnector = require('../TronWalletConnector/TronWalletConnector.cjs');
7
+
8
+ class BitgetTronConnector extends TronWalletConnector.TronWalletConnector {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.name = 'Bitget Wallet';
12
+ this.overrideKey = 'bitgettron';
13
+ }
14
+ getProvider() {
15
+ var _a;
16
+ return (_a = window.bitkeep) === null || _a === void 0 ? void 0 : _a.tron;
17
+ }
18
+ }
19
+
20
+ exports.BitgetTronConnector = BitgetTronConnector;
@@ -0,0 +1,7 @@
1
+ import type { ITronProvider } from '../../types';
2
+ import { TronWalletConnector } from '../TronWalletConnector';
3
+ export declare class BitgetTronConnector extends TronWalletConnector {
4
+ name: string;
5
+ overrideKey: string;
6
+ getProvider(): ITronProvider | undefined;
7
+ }
@@ -0,0 +1,16 @@
1
+ 'use client'
2
+ import { TronWalletConnector } from '../TronWalletConnector/TronWalletConnector.js';
3
+
4
+ class BitgetTronConnector extends TronWalletConnector {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'Bitget Wallet';
8
+ this.overrideKey = 'bitgettron';
9
+ }
10
+ getProvider() {
11
+ var _a;
12
+ return (_a = window.bitkeep) === null || _a === void 0 ? void 0 : _a.tron;
13
+ }
14
+ }
15
+
16
+ export { BitgetTronConnector };
@@ -0,0 +1 @@
1
+ export { BitgetTronConnector } from './BitgetTronConnector';
@@ -0,0 +1,20 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var TronWalletConnector = require('../TronWalletConnector/TronWalletConnector.cjs');
7
+
8
+ class BybitTronConnector extends TronWalletConnector.TronWalletConnector {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.name = 'Bybit Wallet';
12
+ this.overrideKey = 'bybittron';
13
+ }
14
+ getProvider() {
15
+ var _a;
16
+ return (_a = window.bybitWallet) === null || _a === void 0 ? void 0 : _a.tronLink;
17
+ }
18
+ }
19
+
20
+ exports.BybitTronConnector = BybitTronConnector;
@@ -0,0 +1,7 @@
1
+ import type { ITronProvider } from '../../types';
2
+ import { TronWalletConnector } from '../TronWalletConnector';
3
+ export declare class BybitTronConnector extends TronWalletConnector {
4
+ name: string;
5
+ overrideKey: string;
6
+ getProvider(): ITronProvider | undefined;
7
+ }
@@ -0,0 +1,16 @@
1
+ 'use client'
2
+ import { TronWalletConnector } from '../TronWalletConnector/TronWalletConnector.js';
3
+
4
+ class BybitTronConnector extends TronWalletConnector {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'Bybit Wallet';
8
+ this.overrideKey = 'bybittron';
9
+ }
10
+ getProvider() {
11
+ var _a;
12
+ return (_a = window.bybitWallet) === null || _a === void 0 ? void 0 : _a.tronLink;
13
+ }
14
+ }
15
+
16
+ export { BybitTronConnector };
@@ -0,0 +1 @@
1
+ export { BybitTronConnector } from './BybitTronConnector';
@@ -0,0 +1,20 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var TronWalletConnector = require('../TronWalletConnector/TronWalletConnector.cjs');
7
+
8
+ class OKXTronConnector extends TronWalletConnector.TronWalletConnector {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.name = 'OKX Wallet';
12
+ this.overrideKey = 'okxtron';
13
+ }
14
+ getProvider() {
15
+ var _a;
16
+ return (_a = window.okxwallet) === null || _a === void 0 ? void 0 : _a.tronLink;
17
+ }
18
+ }
19
+
20
+ exports.OKXTronConnector = OKXTronConnector;
@@ -0,0 +1,7 @@
1
+ import type { ITronProvider } from '../../types';
2
+ import { TronWalletConnector } from '../TronWalletConnector';
3
+ export declare class OKXTronConnector extends TronWalletConnector {
4
+ name: string;
5
+ overrideKey: string;
6
+ getProvider(): ITronProvider | undefined;
7
+ }
@@ -0,0 +1,16 @@
1
+ 'use client'
2
+ import { TronWalletConnector } from '../TronWalletConnector/TronWalletConnector.js';
3
+
4
+ class OKXTronConnector extends TronWalletConnector {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'OKX Wallet';
8
+ this.overrideKey = 'okxtron';
9
+ }
10
+ getProvider() {
11
+ var _a;
12
+ return (_a = window.okxwallet) === null || _a === void 0 ? void 0 : _a.tronLink;
13
+ }
14
+ }
15
+
16
+ export { OKXTronConnector };
@@ -0,0 +1 @@
1
+ export { OKXTronConnector } from './OKXTronConnector';
@@ -0,0 +1,255 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
8
+ var utils = require('@dynamic-labs/utils');
9
+ var TronWallet = require('../../wallet/TronWallet.cjs');
10
+ var provider = require('../../utils/provider.cjs');
11
+ var getDefaultTronNetworks = require('../../utils/getDefaultTronNetworks.cjs');
12
+ var TronUiTransaction = require('../../utils/TronUiTransaction/TronUiTransaction.cjs');
13
+
14
+ class TronWalletConnector extends walletConnectorCore.WalletConnectorBase {
15
+ constructor(opts) {
16
+ super(opts);
17
+ this.ChainWallet = TronWallet.TronWallet;
18
+ this.name = 'Tron';
19
+ this.overrideKey = 'injectedtron';
20
+ this.connectedChain = 'TRON';
21
+ this.supportedChains = ['TRON'];
22
+ this.switchNetworkOnlyFromWallet = true;
23
+ this.tronNetworks = opts.tronNetworks || getDefaultTronNetworks.getDefaultTronNetworks();
24
+ this.setupNetworkChangeListener();
25
+ }
26
+ setupNetworkChangeListener() {
27
+ const provider = this.getProvider();
28
+ if (!provider)
29
+ return;
30
+ if (provider.onNetworkChange &&
31
+ typeof provider.onNetworkChange === 'function') {
32
+ provider.onNetworkChange((network) => {
33
+ walletConnectorCore.logger.debug(`[${this.name}] Network change via provider:`, network);
34
+ this.emit('chainChange', {
35
+ chain: network.chainId || network.name || 'unknown',
36
+ });
37
+ });
38
+ }
39
+ }
40
+ connect() {
41
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
42
+ const provider$1 = provider.assertProvider(this.getProvider(), 'Tron');
43
+ try {
44
+ if (provider$1.request) {
45
+ yield provider$1.request({ method: 'tron_requestAccounts' });
46
+ }
47
+ else if (provider$1.connect) {
48
+ yield provider$1.connect();
49
+ }
50
+ walletConnectorCore.logger.debug(`[${this.name}] Connected successfully`);
51
+ }
52
+ catch (error) {
53
+ walletConnectorCore.logger.error(`[${this.name}] Connection failed:`, error);
54
+ throw new utils.DynamicError('Failed to connect to Tron wallet');
55
+ }
56
+ });
57
+ }
58
+ getAddress() {
59
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
60
+ const provider$1 = this.getProvider();
61
+ if (!provider$1)
62
+ return undefined;
63
+ const address = provider.getCurrentAddress(provider$1);
64
+ if (address)
65
+ return address;
66
+ if (!provider.isProviderReady(provider$1)) {
67
+ yield this.connect();
68
+ return provider.getCurrentAddress(provider$1);
69
+ }
70
+ return undefined;
71
+ });
72
+ }
73
+ getNetwork() {
74
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
75
+ var _a, _b;
76
+ const provider = this.getProvider();
77
+ if (!provider)
78
+ return undefined;
79
+ if (provider.chainId)
80
+ return String(provider.chainId);
81
+ if (provider.getNetwork) {
82
+ try {
83
+ const networkInfo = yield provider.getNetwork();
84
+ return (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.chainId) ? String(networkInfo.chainId) : undefined;
85
+ }
86
+ catch (_c) {
87
+ return undefined;
88
+ }
89
+ }
90
+ if ((_b = (_a = provider.tronWeb) === null || _a === void 0 ? void 0 : _a.fullNode) === null || _b === void 0 ? void 0 : _b.host) {
91
+ const { host } = provider.tronWeb.fullNode;
92
+ const match = this.findNetworkByRpcUrl(host) || this.findNetworkByHostPattern(host);
93
+ return (match === null || match === void 0 ? void 0 : match.chainId) ? String(match.chainId) : undefined;
94
+ }
95
+ return undefined;
96
+ });
97
+ }
98
+ findNetworkByRpcUrl(host) {
99
+ return this.tronNetworks.find((network) => network.rpcUrls.some((rpcUrl) => {
100
+ try {
101
+ const rpcHostname = new URL(rpcUrl).hostname;
102
+ const providerHostname = new URL(host).hostname;
103
+ return (providerHostname.includes(rpcHostname) ||
104
+ rpcHostname.includes(providerHostname));
105
+ }
106
+ catch (_a) {
107
+ return host.includes(rpcUrl) || rpcUrl.includes(host);
108
+ }
109
+ }));
110
+ }
111
+ findNetworkByHostPattern(host) {
112
+ const hostLower = host.toLowerCase();
113
+ return this.tronNetworks.find((network) => {
114
+ const networkNameLower = network.name.toLowerCase();
115
+ if (hostLower.includes('nile') && networkNameLower.includes('nile'))
116
+ return true;
117
+ if (hostLower.includes('shasta') && networkNameLower.includes('shasta'))
118
+ return true;
119
+ if (hostLower.includes('mainnet') && networkNameLower.includes('mainnet'))
120
+ return true;
121
+ if (hostLower.includes('trongrid') &&
122
+ !hostLower.includes('nile') &&
123
+ !hostLower.includes('shasta') &&
124
+ networkNameLower.includes('mainnet'))
125
+ return true;
126
+ return false;
127
+ });
128
+ }
129
+ getConnectedAccounts() {
130
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
131
+ const address = yield this.getAddress();
132
+ return address ? [address] : [];
133
+ });
134
+ }
135
+ isTestnet() {
136
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
137
+ var _a;
138
+ const networkId = yield this.getNetwork();
139
+ const tronNetwork = this.tronNetworks.find((n) => n.chainId === networkId);
140
+ return (_a = tronNetwork === null || tronNetwork === void 0 ? void 0 : tronNetwork.isTestnet) !== null && _a !== void 0 ? _a : false;
141
+ });
142
+ }
143
+ /**
144
+ * 🔑 Enforce signMessageV2 only
145
+ */
146
+ signMessage(messageToSign) {
147
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
148
+ var _a, _b;
149
+ const provider$1 = provider.assertProvider(this.getProvider(), 'Tron');
150
+ if (!provider.isProviderReady(provider$1)) {
151
+ yield this.connect();
152
+ }
153
+ if ((_b = (_a = provider$1.tronWeb) === null || _a === void 0 ? void 0 : _a.trx) === null || _b === void 0 ? void 0 : _b.signMessageV2) {
154
+ const sig = yield provider$1.tronWeb.trx.signMessageV2(messageToSign);
155
+ if (typeof sig !== 'string') {
156
+ throw new utils.DynamicError('Invalid signature format from wallet');
157
+ }
158
+ return sig;
159
+ }
160
+ throw new utils.DynamicError('Wallet does not support signMessageV2, which is required');
161
+ });
162
+ }
163
+ getBalance(address) {
164
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
165
+ var _a, _b;
166
+ const provider = this.getProvider();
167
+ if (!((_b = (_a = provider === null || provider === void 0 ? void 0 : provider.tronWeb) === null || _a === void 0 ? void 0 : _a.trx) === null || _b === void 0 ? void 0 : _b.getBalance))
168
+ return '0';
169
+ try {
170
+ const balance = yield provider.tronWeb.trx.getBalance(address);
171
+ return (balance / 1000000).toFixed(6); // SUN → TRX
172
+ }
173
+ catch (error) {
174
+ walletConnectorCore.logger.error(`[${this.name}] Failed to get balance:`, error);
175
+ return '0';
176
+ }
177
+ });
178
+ }
179
+ isInstalledOnBrowser() {
180
+ const provider = this.getProvider();
181
+ return Boolean(provider);
182
+ }
183
+ getEnabledNetworks() {
184
+ return this.tronNetworks;
185
+ }
186
+ switchNetwork() {
187
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
188
+ throw new utils.DynamicError('Network switching must be done manually in the Tron wallet UI');
189
+ });
190
+ }
191
+ getBlockExplorerUrlsForCurrentNetwork() {
192
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
193
+ var _a, _b;
194
+ const currentNetwork = yield this.getNetwork();
195
+ return ((_b = (_a = this.tronNetworks.find((n) => n.chainId.toString() === (currentNetwork === null || currentNetwork === void 0 ? void 0 : currentNetwork.toString()))) === null || _a === void 0 ? void 0 : _a.blockExplorerUrls) !== null && _b !== void 0 ? _b : []);
196
+ });
197
+ }
198
+ endSession() {
199
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
200
+ const provider = this.getProvider();
201
+ if (provider === null || provider === void 0 ? void 0 : provider.disconnect) {
202
+ try {
203
+ yield provider.disconnect();
204
+ }
205
+ catch (error) {
206
+ walletConnectorCore.logger.debug(`[${this.name}] Error during disconnect:`, error);
207
+ }
208
+ }
209
+ });
210
+ }
211
+ /** Function used to create transactions in the SDK interface */
212
+ createUiTransaction(from) {
213
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
214
+ yield this.validateActiveWallet(from);
215
+ const provider$1 = provider.assertProvider(this.getProvider(), 'Tron');
216
+ if (!provider$1.tronWeb) {
217
+ throw new utils.DynamicError('TronWeb not available');
218
+ }
219
+ return new TronUiTransaction.TronUiTransaction({
220
+ from,
221
+ onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
222
+ var _a;
223
+ if (!transaction.to) {
224
+ throw new utils.DynamicError('Destination address is required');
225
+ }
226
+ // Create a minimal wallet instance for sending
227
+ const wallet = new TronWallet.TronWallet({
228
+ address: from,
229
+ chain: 'TRON',
230
+ connector: this,
231
+ id: 'temp-id',
232
+ isAuthenticated: false,
233
+ key: 'temp-key',
234
+ });
235
+ if (transaction.nonNativeAddress && transaction.nonNativeValue) {
236
+ // Handle TRC20 token transfers - simplified for now
237
+ throw new utils.DynamicError('TRC20 token transfers not yet implemented');
238
+ }
239
+ else if (transaction.value) {
240
+ // Handle native TRX transfers
241
+ const trxAmount = Number(transaction.value) / 1000000; // Convert SUN to TRX
242
+ const result = yield wallet.sendTrx(transaction.to, trxAmount, {
243
+ from,
244
+ });
245
+ return result.txid || ((_a = result.transaction) === null || _a === void 0 ? void 0 : _a.txID);
246
+ }
247
+ throw new utils.DynamicError('Invalid transaction parameters');
248
+ }),
249
+ provider: provider$1,
250
+ });
251
+ });
252
+ }
253
+ }
254
+
255
+ exports.TronWalletConnector = TronWalletConnector;
@@ -0,0 +1,42 @@
1
+ import { WalletBookSchema } from '@dynamic-labs/wallet-book';
2
+ import { Chain, WalletConnectorBase, WalletMetadata, ISendBalanceWalletConnector } from '@dynamic-labs/wallet-connector-core';
3
+ import { GenericNetwork, IUITransaction } from '@dynamic-labs/types';
4
+ import type { ITronProvider } from '../../types';
5
+ import { TronWallet } from '../../wallet/TronWallet';
6
+ export type TronWalletConnectorOpts = {
7
+ walletBook: WalletBookSchema;
8
+ metadata?: WalletMetadata;
9
+ tronNetworks?: GenericNetwork[];
10
+ };
11
+ export declare abstract class TronWalletConnector extends WalletConnectorBase<typeof TronWallet> implements ISendBalanceWalletConnector {
12
+ ChainWallet: typeof TronWallet;
13
+ name: string;
14
+ overrideKey: string;
15
+ connectedChain: Chain;
16
+ supportedChains: Chain[];
17
+ switchNetworkOnlyFromWallet: boolean;
18
+ protected tronNetworks: GenericNetwork[];
19
+ constructor(opts: TronWalletConnectorOpts);
20
+ abstract getProvider(): ITronProvider | undefined;
21
+ protected setupNetworkChangeListener(): void;
22
+ connect(): Promise<void>;
23
+ getAddress(): Promise<string | undefined>;
24
+ getNetwork(): Promise<string | undefined>;
25
+ private findNetworkByRpcUrl;
26
+ private findNetworkByHostPattern;
27
+ getConnectedAccounts(): Promise<string[]>;
28
+ isTestnet(): Promise<boolean>;
29
+ /**
30
+ * 🔑 Enforce signMessageV2 only
31
+ */
32
+ signMessage(messageToSign: string): Promise<string>;
33
+ getBalance(address: string): Promise<string | undefined>;
34
+ isInstalledOnBrowser(): boolean;
35
+ getEnabledNetworks(): GenericNetwork[];
36
+ switchNetwork(): Promise<void>;
37
+ getBlockExplorerUrlsForCurrentNetwork(): Promise<string[]>;
38
+ endSession(): Promise<void>;
39
+ /** Function used to create transactions in the SDK interface */
40
+ createUiTransaction(from: string): Promise<IUITransaction>;
41
+ }
42
+ export type TronWalletConnectorType = TronWalletConnector;