@hyperlane-xyz/tron-sdk 21.1.5 → 22.1.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.
@@ -7,14 +7,28 @@ import { providers } from 'ethers';
7
7
  * - eth_sendRawTransaction: Not supported (must use TronWeb for transactions)
8
8
  * - eth_getTransactionCount: Not supported (Tron doesn't use nonces)
9
9
  *
10
- * This provider handles these gaps by returning appropriate defaults.
10
+ * This provider handles these gaps by returning appropriate defaults
11
+ * and wraps all RPC calls with retry logic to handle transient errors
12
+ * (e.g. TronGrid rate limiting).
11
13
  */
12
14
  export declare class TronJsonRpcProvider extends providers.JsonRpcProvider {
13
- constructor(url: string, network?: providers.Networkish);
15
+ host: string;
16
+ private maxRetries;
17
+ private baseRetryMs;
18
+ constructor(host: string, network?: providers.Networkish, maxRetries?: number, baseRetryMs?: number);
19
+ /**
20
+ * Wraps all RPC calls with retry logic to handle transient
21
+ * errors like 503s from TronGrid rate limiting.
22
+ */
23
+ perform(method: string, params: any): Promise<any>;
14
24
  /**
15
25
  * Tron doesn't use nonces - always return 0.
16
26
  */
17
27
  getTransactionCount(_addressOrName: string, _blockTag?: providers.BlockTag): Promise<number>;
28
+ /**
29
+ * Tron doesn't support ENS - return the name as-is.
30
+ */
31
+ resolveName(name: string): Promise<string>;
18
32
  /**
19
33
  * Return legacy gas pricing only - Tron doesn't support EIP-1559.
20
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TronJsonRpcProvider.d.ts","sourceRoot":"","sources":["../../src/ethers/TronJsonRpcProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,eAAe;gBACpD,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,UAAU;IAMvD;;OAEG;IACG,mBAAmB,CACvB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAC7B,OAAO,CAAC,MAAM,CAAC;IAIlB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;CAS/C"}
1
+ {"version":3,"file":"TronJsonRpcProvider.d.ts","sourceRoot":"","sources":["../../src/ethers/TronJsonRpcProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOnC;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,eAAe;IACzD,IAAI,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAG1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,SAAS,CAAC,UAAU,EAC9B,UAAU,SAAsB,EAChC,WAAW,SAAwB;IAUrC;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAQxD;;OAEG;IACG,mBAAmB,CACvB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAC7B,OAAO,CAAC,MAAM,CAAC;IAIlB;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;CAS/C"}
@@ -1,4 +1,7 @@
1
1
  import { providers } from 'ethers';
2
+ import { retryAsync } from '@hyperlane-xyz/utils';
3
+ const DEFAULT_MAX_RETRIES = 3;
4
+ const DEFAULT_BASE_RETRY_MS = 250;
2
5
  /**
3
6
  * TronJsonRpcProvider extends ethers JsonRpcProvider for Tron's JSON-RPC API.
4
7
  *
@@ -7,13 +10,28 @@ import { providers } from 'ethers';
7
10
  * - eth_sendRawTransaction: Not supported (must use TronWeb for transactions)
8
11
  * - eth_getTransactionCount: Not supported (Tron doesn't use nonces)
9
12
  *
10
- * This provider handles these gaps by returning appropriate defaults.
13
+ * This provider handles these gaps by returning appropriate defaults
14
+ * and wraps all RPC calls with retry logic to handle transient errors
15
+ * (e.g. TronGrid rate limiting).
11
16
  */
12
17
  export class TronJsonRpcProvider extends providers.JsonRpcProvider {
13
- constructor(url, network) {
18
+ host;
19
+ maxRetries;
20
+ baseRetryMs;
21
+ constructor(host, network, maxRetries = DEFAULT_MAX_RETRIES, baseRetryMs = DEFAULT_BASE_RETRY_MS) {
14
22
  // Ensure we're pointing to the /jsonrpc endpoint
15
- const jsonRpcUrl = url.endsWith('/jsonrpc') ? url : `${url}/jsonrpc`;
23
+ const jsonRpcUrl = host.endsWith('/jsonrpc') ? host : `${host}/jsonrpc`;
16
24
  super(jsonRpcUrl, network);
25
+ this.host = host;
26
+ this.maxRetries = maxRetries;
27
+ this.baseRetryMs = baseRetryMs;
28
+ }
29
+ /**
30
+ * Wraps all RPC calls with retry logic to handle transient
31
+ * errors like 503s from TronGrid rate limiting.
32
+ */
33
+ async perform(method, params) {
34
+ return retryAsync(() => super.perform(method, params), this.maxRetries, this.baseRetryMs);
17
35
  }
18
36
  /**
19
37
  * Tron doesn't use nonces - always return 0.
@@ -21,6 +39,12 @@ export class TronJsonRpcProvider extends providers.JsonRpcProvider {
21
39
  async getTransactionCount(_addressOrName, _blockTag) {
22
40
  return 0;
23
41
  }
42
+ /**
43
+ * Tron doesn't support ENS - return the name as-is.
44
+ */
45
+ async resolveName(name) {
46
+ return name;
47
+ }
24
48
  /**
25
49
  * Return legacy gas pricing only - Tron doesn't support EIP-1559.
26
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TronJsonRpcProvider.js","sourceRoot":"","sources":["../../src/ethers/TronJsonRpcProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS,CAAC,eAAe;IAChE,YAAY,GAAW,EAAE,OAA8B;QACrD,iDAAiD;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC;QACrE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,cAAsB,EACtB,SAA8B;QAE9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO;YACL,QAAQ;YACR,YAAY,EAAE,IAAI;YAClB,oBAAoB,EAAE,IAAI;YAC1B,iBAAiB,EAAE,IAAI;SACxB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"TronJsonRpcProvider.js","sourceRoot":"","sources":["../../src/ethers/TronJsonRpcProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS,CAAC,eAAe;IACzD,IAAI,CAAS;IACZ,UAAU,CAAS;IACnB,WAAW,CAAS;IAE5B,YACE,IAAY,EACZ,OAA8B,EAC9B,UAAU,GAAG,mBAAmB,EAChC,WAAW,GAAG,qBAAqB;QAEnC,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;QACxE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAW;QACvC,OAAO,UAAU,CACf,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,cAAsB,EACtB,SAA8B;QAE9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO;YACL,QAAQ;YACR,YAAY,EAAE,IAAI;YAClB,oBAAoB,EAAE,IAAI;YAC1B,iBAAiB,EAAE,IAAI;SACxB,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { Wallet, providers } from 'ethers';
2
- import { Types } from 'tronweb';
2
+ import { TronWeb, Types } from 'tronweb';
3
+ import { TransactionRequest } from '@ethersproject/providers';
3
4
  /** Union of possible TronWeb transaction types */
4
5
  export type TronTransaction = Types.CreateSmartContractTransaction | Types.Transaction | Types.SignedTransaction;
5
6
  /**
@@ -34,14 +35,13 @@ export declare class TronWallet extends Wallet {
34
35
  private tronWeb;
35
36
  private tronAddress;
36
37
  private tronAddressHex;
38
+ private txBuilder;
37
39
  constructor(privateKey: string, tronUrl: string);
38
40
  /**
39
41
  * Override connect to preserve TronWallet type.
40
42
  * Base Wallet.connect() returns a plain Wallet, losing Tron behavior.
41
43
  */
42
44
  connect(_provider: providers.Provider): TronWallet;
43
- /** Convert ethers 0x address to Tron 41-prefixed hex */
44
- private toTronHex;
45
45
  /** Convert Tron address (base58 or 41-hex) to ethers 0x address */
46
46
  toEvmAddress(tronAddress: string): string;
47
47
  /** Tron doesn't use nonces */
@@ -49,4 +49,15 @@ export declare class TronWallet extends Wallet {
49
49
  sendTransaction(transaction: providers.TransactionRequest): Promise<TronTransactionResponse>;
50
50
  private makeUnique;
51
51
  }
52
+ export declare class TronTransactionBuilder extends TronWeb {
53
+ private tronAddress;
54
+ private tronAddressHex;
55
+ private provider;
56
+ constructor(tronUrl: string, tronAddress: string);
57
+ getTransactionResponse(evmTx: TransactionRequest, tronTx: TronTransaction, txHash?: string): TronTransactionResponse;
58
+ buildTransaction(tx: providers.TransactionRequest): Promise<TronTransaction>;
59
+ private buildDeployment;
60
+ private buildContractCall;
61
+ private buildTransfer;
62
+ }
52
63
  //# sourceMappingURL=TronWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TronWallet.d.ts","sourceRoot":"","sources":["../../src/ethers/TronWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAU,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AAMzC,kDAAkD;AAClD,MAAM,MAAM,eAAe,GACvB,KAAK,CAAC,8BAA8B,GACpC,KAAK,CAAC,WAAW,GACjB,KAAK,CAAC,iBAAiB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,SAAS,CAAC,mBAAmB;IAC5E,qCAAqC;IACrC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,MAAM;IACpC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;gBAEnB,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAe/C;;;OAGG;IACH,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,GAAG,UAAU;IAIlD,wDAAwD;IACxD,OAAO,CAAC,SAAS;IAIjB,mEAAmE;IACnE,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAMzC,8BAA8B;IACxB,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE,eAAe,CACnB,WAAW,EAAE,SAAS,CAAC,kBAAkB,GACxC,OAAO,CAAC,uBAAuB,CAAC;YA2FrB,UAAU;CAoBzB"}
1
+ {"version":3,"file":"TronWallet.d.ts","sourceRoot":"","sources":["../../src/ethers/TronWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAU,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,kDAAkD;AAClD,MAAM,MAAM,eAAe,GACvB,KAAK,CAAC,8BAA8B,GACpC,KAAK,CAAC,WAAW,GACjB,KAAK,CAAC,iBAAiB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,SAAS,CAAC,mBAAmB;IAC5E,qCAAqC;IACrC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,MAAM;IACpC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAyB;gBAE9B,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAkB/C;;;OAGG;IACH,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,GAAG,UAAU;IAIlD,mEAAmE;IACnE,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAMzC,8BAA8B;IACxB,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE,eAAe,CACnB,WAAW,EAAE,SAAS,CAAC,kBAAkB,GACxC,OAAO,CAAC,uBAAuB,CAAC;YAsBrB,UAAU;CAwBzB;AAED,qBAAa,sBAAuB,SAAQ,OAAO;IACjD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAUhD,sBAAsB,CACpB,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,MAAM,GACd,uBAAuB;IA+BpB,gBAAgB,CACpB,EAAE,EAAE,SAAS,CAAC,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC;YAqBb,eAAe;YAmBf,iBAAiB;YAwBjB,aAAa;CAW5B"}
@@ -3,6 +3,7 @@ import { BigNumber } from 'ethers';
3
3
  import { runTronNode, stopTronNode, } from '../testing/node.js';
4
4
  import { TestStorage__factory } from '@hyperlane-xyz/core/tron/typechain/factories/contracts/test/TestStorage__factory.js';
5
5
  import { TronContractFactory } from './TronContractFactory.js';
6
+ import { TronJsonRpcProvider } from './TronJsonRpcProvider.js';
6
7
  import { TronWallet } from './TronWallet.js';
7
8
  const TEST_CHAIN = {
8
9
  name: 'tron-test',
@@ -20,6 +21,9 @@ describe('TronWallet Integration Tests', function () {
20
21
  wallet = new TronWallet(node.privateKeys[0], tronUrl);
21
22
  });
22
23
  after(async () => {
24
+ if (wallet?.provider instanceof TronJsonRpcProvider) {
25
+ wallet.provider.removeAllListeners();
26
+ }
23
27
  if (node) {
24
28
  await stopTronNode(node);
25
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TronWallet.integration.test.js","sourceRoot":"","sources":["../../src/ethers/TronWallet.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TronWallet.integration.test.js","sourceRoot":"","sources":["../../src/ethers/TronWallet.integration.test.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,9 @@ export class TronWallet extends Wallet {
28
28
  tronWeb;
29
29
  tronAddress;
30
30
  tronAddressHex;
31
+ txBuilder;
31
32
  constructor(privateKey, tronUrl) {
33
+ tronUrl = tronUrl.endsWith('/jsonrpc') ? tronUrl.slice(0, -8) : tronUrl;
32
34
  super(privateKey, new TronJsonRpcProvider(tronUrl));
33
35
  this.tronUrl = tronUrl;
34
36
  this.tronWeb = new TronWeb({ fullHost: tronUrl });
@@ -39,6 +41,7 @@ export class TronWallet extends Wallet {
39
41
  this.tronAddress = derivedAddress;
40
42
  this.tronAddressHex = this.tronWeb.address.toHex(this.tronAddress);
41
43
  this.tronWeb.setAddress(this.tronAddress);
44
+ this.txBuilder = new TronTransactionBuilder(tronUrl, this.tronAddress);
42
45
  }
43
46
  /**
44
47
  * Override connect to preserve TronWallet type.
@@ -47,10 +50,6 @@ export class TronWallet extends Wallet {
47
50
  connect(_provider) {
48
51
  return new TronWallet(this.privateKey, this.tronUrl);
49
52
  }
50
- /** Convert ethers 0x address to Tron 41-prefixed hex */
51
- toTronHex(address) {
52
- return '41' + strip0x(address).toLowerCase();
53
- }
54
53
  /** Convert Tron address (base58 or 41-hex) to ethers 0x address */
55
54
  toEvmAddress(tronAddress) {
56
55
  const hex = this.tronWeb.address.toHex(tronAddress);
@@ -66,41 +65,7 @@ export class TronWallet extends Wallet {
66
65
  const tx = await this.populateTransaction(transaction);
67
66
  assert(tx.gasLimit, 'gasLimit is required');
68
67
  assert(tx.gasPrice, 'gasPrice is required');
69
- // Convert gasLimit to feeLimit in SUN (1 TRX = 1,000,000 SUN)
70
- const gasPrice = BigNumber.from(tx.gasPrice);
71
- const gasLimit = BigNumber.from(tx.gasLimit);
72
- let feeLimit = gasLimit.mul(gasPrice).toNumber() * 1.5; // Add 50% buffer to feeLimit to avoid "Out of energy" errors
73
- feeLimit = Math.min(feeLimit, 1000000000); // Tron max fee is 1000000000 SUN (1000 TRX)
74
- feeLimit = feeLimit <= 0 ? 1000000000 : feeLimit; // Ensure we have at least some fee limit
75
- const callValue = tx.value ? BigNumber.from(tx.value).toNumber() : 0;
76
- let tronTx;
77
- if (!tx.to) {
78
- // Contract deployment
79
- assert(tx.data, 'Deployment transaction must have data');
80
- tronTx = await this.tronWeb.transactionBuilder.createSmartContract({
81
- abi: [],
82
- bytecode: strip0x(tx.data.toString()),
83
- feeLimit,
84
- callValue,
85
- originEnergyLimit: gasLimit.toNumber(),
86
- }, this.tronAddress);
87
- }
88
- else if (tx.data && tx.data !== '0x') {
89
- // Contract call - use 'input' option for raw ABI-encoded calldata
90
- const tronHexTo = this.toTronHex(tx.to);
91
- const result = await this.tronWeb.transactionBuilder.triggerSmartContract(tronHexTo, '', // Empty functionSelector since we pass raw encoded data via input
92
- {
93
- feeLimit,
94
- callValue,
95
- input: strip0x(tx.data.toString()),
96
- }, [], this.tronAddress);
97
- assert(result.result?.result, `triggerSmartContract failed: ${result.result?.message}`);
98
- tronTx = result.transaction;
99
- }
100
- else {
101
- // Simple TRX transfer
102
- tronTx = await this.tronWeb.transactionBuilder.sendTrx(this.toTronHex(tx.to), callValue, this.tronAddress);
103
- }
68
+ let tronTx = await this.txBuilder.buildTransaction(tx);
104
69
  // Ensure unique txID by extending expiration with a counter.
105
70
  // Tron has no nonces, so identical txs in the same block produce the same txID.
106
71
  tronTx = await this.makeUnique(tronTx);
@@ -108,28 +73,16 @@ export class TronWallet extends Wallet {
108
73
  const signedTx = await this.tronWeb.trx.sign(tronTx);
109
74
  const broadcastResult = await this.tronWeb.trx.sendRawTransaction(signedTx);
110
75
  assert(broadcastResult.result, `Broadcast failed: ${broadcastResult.message}`);
111
- const txHash = ensure0x(tronTx.txID);
112
- // Build the transaction response with Tron-specific fields
113
- const response = {
114
- hash: txHash,
115
- confirmations: 0,
116
- from: this.address,
117
- to: tx.to ?? undefined,
118
- nonce: 0,
119
- gasLimit,
120
- gasPrice,
121
- data: tx.data?.toString() ?? '0x',
122
- value: BigNumber.from(tx.value ?? 0),
123
- chainId: tx.chainId,
124
- tronTransaction: tronTx,
125
- wait: (confirmations) => this.provider.waitForTransaction(txHash, confirmations),
126
- };
127
- return response;
76
+ return this.txBuilder.getTransactionResponse(tx, tronTx);
128
77
  }
129
78
  async makeUnique(tronTx) {
130
- const extension = ++TronWallet.txCounter;
79
+ const counter = ++TronWallet.txCounter;
80
+ // Use data (memo field) instead of extension to avoid TronWeb's
81
+ // time-based validation which fails when node clock drifts.
82
+ const data = '0x' + counter.toString(16).padStart(8, '0');
131
83
  const altered = await this.tronWeb.transactionBuilder.alterTransaction(tronTx, {
132
- extension,
84
+ data,
85
+ dataFormat: 'hex',
133
86
  });
134
87
  // For deployments, recompute contract_address from the new txID.
135
88
  // genContractAddress = '41' + keccak256(txID + ownerHex)[24:]
@@ -140,4 +93,85 @@ export class TronWallet extends Wallet {
140
93
  return altered;
141
94
  }
142
95
  }
96
+ export class TronTransactionBuilder extends TronWeb {
97
+ tronAddress;
98
+ tronAddressHex;
99
+ provider;
100
+ constructor(tronUrl, tronAddress) {
101
+ tronUrl = tronUrl.endsWith('/jsonrpc') ? tronUrl.slice(0, -8) : tronUrl;
102
+ super({ fullHost: tronUrl });
103
+ this.tronAddress = tronAddress;
104
+ this.setAddress(this.tronAddress);
105
+ this.provider = new TronJsonRpcProvider(tronUrl);
106
+ this.tronAddressHex = this.address.toHex(this.tronAddress);
107
+ }
108
+ getTransactionResponse(evmTx, tronTx, txHash) {
109
+ const originalTxHash = ensure0x(tronTx.txID);
110
+ const gasPrice = evmTx.gasPrice
111
+ ? BigNumber.from(evmTx.gasPrice)
112
+ : BigNumber.from(0);
113
+ const gasLimit = evmTx.gasLimit
114
+ ? BigNumber.from(evmTx.gasLimit)
115
+ : BigNumber.from(0);
116
+ return {
117
+ hash: txHash ?? originalTxHash,
118
+ confirmations: 0,
119
+ from: ethers.utils.getAddress(ensure0x(this.tronAddressHex.slice(2)).toLowerCase()),
120
+ to: evmTx.to ?? undefined,
121
+ nonce: 0,
122
+ gasLimit,
123
+ gasPrice,
124
+ data: evmTx.data?.toString() ?? '0x',
125
+ value: BigNumber.from(evmTx.value ?? 0),
126
+ chainId: evmTx.chainId,
127
+ tronTransaction: tronTx,
128
+ wait: (confirmations) => this.provider.waitForTransaction(txHash ? ensure0x(txHash) : originalTxHash, confirmations),
129
+ };
130
+ }
131
+ async buildTransaction(tx) {
132
+ const gasPrice = tx.gasPrice
133
+ ? BigNumber.from(tx.gasPrice)
134
+ : BigNumber.from(0);
135
+ const gasLimit = tx.gasLimit
136
+ ? BigNumber.from(tx.gasLimit)
137
+ : BigNumber.from(0);
138
+ let feeLimit = gasLimit.mul(gasPrice).toNumber() * 1.5;
139
+ feeLimit = Math.min(feeLimit, 1000000000);
140
+ feeLimit = feeLimit <= 0 ? 1000000000 : feeLimit;
141
+ const callValue = tx.value ? BigNumber.from(tx.value).toNumber() : 0;
142
+ if (!tx.to) {
143
+ return this.buildDeployment(tx, feeLimit, callValue, gasLimit);
144
+ }
145
+ else if (tx.data && tx.data !== '0x') {
146
+ return this.buildContractCall(tx, feeLimit, callValue);
147
+ }
148
+ else {
149
+ return this.buildTransfer(tx.to, callValue);
150
+ }
151
+ }
152
+ async buildDeployment(tx, feeLimit, callValue, gasLimit) {
153
+ assert(tx.data, 'Deployment transaction must have data');
154
+ return this.transactionBuilder.createSmartContract({
155
+ abi: [],
156
+ bytecode: strip0x(tx.data.toString()),
157
+ feeLimit,
158
+ callValue,
159
+ originEnergyLimit: gasLimit.toNumber(),
160
+ }, this.tronAddress);
161
+ }
162
+ async buildContractCall(tx, feeLimit, callValue) {
163
+ const tronHexTo = '41' + strip0x(tx.to).toLowerCase();
164
+ const result = await this.transactionBuilder.triggerSmartContract(tronHexTo, '', {
165
+ feeLimit,
166
+ callValue,
167
+ input: strip0x(tx.data.toString()),
168
+ }, [], this.tronAddress);
169
+ assert(result.result?.result, `triggerSmartContract failed: ${result.result?.message}`);
170
+ return result.transaction;
171
+ }
172
+ async buildTransfer(to, callValue) {
173
+ const tronHexTo = '41' + strip0x(to).toLowerCase();
174
+ return this.transactionBuilder.sendTrx(tronHexTo, callValue, this.tronAddress);
175
+ }
176
+ }
143
177
  //# sourceMappingURL=TronWallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TronWallet.js","sourceRoot":"","sources":["../../src/ethers/TronWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAS,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAgB/D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC;;;;;OAKG;IACK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IAEZ,OAAO,CAAS;IACzB,OAAO,CAAU;IACjB,WAAW,CAAS;IACpB,cAAc,CAAS;IAE/B,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,UAAU,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,SAA6B;QACnC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,wDAAwD;IAChD,SAAS,CAAC,OAAe;QAC/B,OAAO,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IAED,mEAAmE;IACnE,YAAY,CAAC,WAAmB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,mBAAmB,CAAC,SAA8B;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,WAAyC;QAEzC,gEAAgE;QAChE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAE5C,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,6DAA6D;QACrH,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,4CAA4C;QACvF,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,yCAAyC;QAC3F,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,IAAI,MAAuB,CAAC;QAE5B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,sBAAsB;YACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;YACzD,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAChE;gBACE,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,QAAQ;gBACR,SAAS;gBACT,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,EAAE;aACvC,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvC,kEAAkE;YAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CACvE,SAAS,EACT,EAAE,EAAE,kEAAkE;YACtE;gBACE,QAAQ;gBACR,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnC,EACD,EAAE,EACF,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,MAAM,CACJ,MAAM,CAAC,MAAM,EAAE,MAAM,EACrB,gCAAgC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CACzD,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CACpD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EACrB,SAAS,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,gFAAgF;QAChF,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvC,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,CACJ,eAAe,CAAC,MAAM,EACtB,qBAAqB,eAAe,CAAC,OAAO,EAAE,CAC/C,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErC,2DAA2D;QAC3D,MAAM,QAAQ,GAA4B;YACxC,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,SAAS;YACtB,KAAK,EAAE,CAAC;YACR,QAAQ;YACR,QAAQ;YACR,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI;YACjC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;YACpC,OAAO,EAAE,EAAE,CAAC,OAAQ;YACpB,eAAe,EAAE,MAAM;YACvB,IAAI,EAAE,CAAC,aAAsB,EAAE,EAAE,CAC/B,IAAI,CAAC,QAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC;SAC3D,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC9C,MAAM,SAAS,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CACpE,MAA2B,EAC3B;YACE,SAAS;SACV,CACF,CAAC;QAEF,iEAAiE;QACjE,8DAA8D;QAC9D,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,eAAe,CAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CACvD,CAAC;YACD,OAAe,CAAC,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,OAA0B,CAAC;IACpC,CAAC"}
1
+ {"version":3,"file":"TronWallet.js","sourceRoot":"","sources":["../../src/ethers/TronWallet.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { TronContractFactory } from './TronContractFactory.js';
2
2
  export { TronJsonRpcProvider } from './TronJsonRpcProvider.js';
3
- export { TronTransaction, TronTransactionResponse, TronWallet, } from './TronWallet.js';
3
+ export { TronTransaction, TronTransactionResponse, TronWallet, TronTransactionBuilder, } from './TronWallet.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ethers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,UAAU,GACX,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ethers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { TronContractFactory } from './TronContractFactory.js';
2
2
  export { TronJsonRpcProvider } from './TronJsonRpcProvider.js';
3
- export { TronWallet, } from './TronWallet.js';
3
+ export { TronWallet, TronTransactionBuilder, } from './TronWallet.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ethers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAGL,UAAU,GACX,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ethers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAGL,UAAU,EACV,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { TronWeb } from 'tronweb';
2
2
  import { IABI } from './types.js';
3
+ import { providers } from 'ethers';
3
4
  export declare const TRON_EMPTY_ADDRESS = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
4
5
  export declare const TRON_EMPTY_MESSAGE = "0x0000000000000000000000000000000000000000000000000000000000000000";
5
6
  export declare const EIP1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
@@ -21,4 +22,7 @@ export declare function buildMetaProxyBytecode(implementationAddress: string, me
21
22
  * @returns Transaction object
22
23
  */
23
24
  export declare function createRawBytecodeDeploymentTransaction(tronweb: Readonly<TronWeb>, bytecode: string, signer: string, contractName?: string): Promise<any>;
25
+ /** Convert ethers 0x address to Tron 41-prefixed hex */
26
+ export declare function toTronHex(address: string): string;
27
+ export declare function convertEthersToTronTransaction(tronWeb: Readonly<TronWeb>, tx: providers.TransactionRequest, sender: string): Promise<any>;
24
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,eAAO,MAAM,kBAAkB,uCAAuC,CAAC;AACvE,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AACvE,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AAEvE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAYpE;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CAWd;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,qBAAqB,EAAE,MAAM,EAC7B,QAAQ,EAAE,MAAM,GACf,MAAM,CA2BR;AAED;;;;;;;GAOG;AACH,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,SAAc,GACzB,OAAO,CAAC,GAAG,CAAC,CAWd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAa,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9C,eAAO,MAAM,kBAAkB,uCAAuC,CAAC;AACvE,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AACvE,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AAEvE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAYpE;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CAWd;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,qBAAqB,EAAE,MAAM,EAC7B,QAAQ,EAAE,MAAM,GACf,MAAM,CA2BR;AAED;;;;;;;GAOG;AACH,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,SAAc,GACzB,OAAO,CAAC,GAAG,CAAC,CAWd;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,EAAE,EAAE,SAAS,CAAC,kBAAkB,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,CAqBd"}
@@ -1,4 +1,5 @@
1
- import { strip0x } from '@hyperlane-xyz/utils';
1
+ import { assert, strip0x } from '@hyperlane-xyz/utils';
2
+ import { BigNumber } from 'ethers';
2
3
  export const TRON_EMPTY_ADDRESS = 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb';
3
4
  export const TRON_EMPTY_MESSAGE = '0x0000000000000000000000000000000000000000000000000000000000000000';
4
5
  export const EIP1967_ADMIN_SLOT = '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103';
@@ -68,4 +69,21 @@ export async function createRawBytecodeDeploymentTransaction(tronweb, bytecode,
68
69
  name: contractName,
69
70
  }, signer);
70
71
  }
72
+ /** Convert ethers 0x address to Tron 41-prefixed hex */
73
+ export function toTronHex(address) {
74
+ return '41' + strip0x(address).toLowerCase();
75
+ }
76
+ export async function convertEthersToTronTransaction(tronWeb, tx, sender) {
77
+ assert(tx.to, 'Transaction must have a destination address');
78
+ // Contract call - use 'input' option for raw ABI-encoded calldata
79
+ const tronHexTo = toTronHex(tx.to);
80
+ const callValue = tx.value ? BigNumber.from(tx.value).toNumber() : 0;
81
+ const result = await tronWeb.transactionBuilder.triggerSmartContract(tronHexTo, '', // Empty functionSelector since we pass raw encoded data via input
82
+ {
83
+ callValue,
84
+ input: tx.data ? strip0x(tx.data.toString()) : undefined,
85
+ }, [], sender);
86
+ assert(result.result?.result, `triggerSmartContract failed: ${result.result?.message}`);
87
+ return result.transaction;
88
+ }
71
89
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oEAAoE,CAAC;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oEAAoE,CAAC;AAEvE,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAY;IAC1D,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,kCAAkC;YAClC,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,iDAAiD;YACjD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,yBAAyB,GAAG,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAA0B,EAC1B,GAAS,EACT,MAAc,EACd,UAAqB;IAErB,OAAO,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CACnD;QACE,QAAQ,EAAE,aAAa;QACvB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU;QACV,IAAI,EAAE,GAAG,CAAC,YAAY;KACvB,EACD,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,qBAA6B,EAC7B,QAAgB;IAEhB,MAAM,MAAM,GACV,kEAAkE,CAAC;IACrE,MAAM,MAAM,GAAG,4BAA4B,CAAC;IAE5C,8BAA8B;IAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE/C,gEAAgE;IAChE,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,sDAAsD;IACtD,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,+DAA+D,SAAS,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,cAAc,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9C,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAErB,OAAO,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,cAAc,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,OAA0B,EAC1B,QAAgB,EAChB,MAAc,EACd,YAAY,GAAG,WAAW;IAE1B,OAAO,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CACnD;QACE,QAAQ,EAAE,aAAa;QACvB,GAAG,EAAE,EAAE;QACP,QAAQ;QACR,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,YAAY;KACnB,EACD,MAAM,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/tron-sdk",
3
- "version": "21.1.5",
3
+ "version": "22.1.0",
4
4
  "description": "Hyperlane TypeScript SDK for Tron",
5
5
  "keywords": [
6
6
  "blockchain",
@@ -34,9 +34,9 @@
34
34
  "bignumber.js": "^9.1.1",
35
35
  "ethers": "^5.8.0",
36
36
  "tronweb": "^6.1.1",
37
- "@hyperlane-xyz/core": "11.0.1",
38
- "@hyperlane-xyz/provider-sdk": "2.0.0",
39
- "@hyperlane-xyz/utils": "25.5.0"
37
+ "@hyperlane-xyz/core": "11.0.2",
38
+ "@hyperlane-xyz/provider-sdk": "3.0.1",
39
+ "@hyperlane-xyz/utils": "27.0.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@eslint/js": "^9.39.2",
@@ -61,8 +61,8 @@
61
61
  "tsx": "^4.19.1",
62
62
  "typescript": "5.8.3",
63
63
  "typescript-eslint": "^8.54.0",
64
- "@hyperlane-xyz/eslint-config": "^25.5.0",
65
- "@hyperlane-xyz/tsconfig": "^25.5.0"
64
+ "@hyperlane-xyz/eslint-config": "^27.0.0",
65
+ "@hyperlane-xyz/tsconfig": "^27.0.0"
66
66
  },
67
67
  "scripts": {
68
68
  "build": "rm -rf ./dist && tsc",