@lifi/sdk-provider-tron 4.0.0-alpha.23 → 4.0.0-alpha.25

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 (200) hide show
  1. package/dist/cjs/TronProvider.d.ts +7 -2
  2. package/dist/cjs/TronProvider.js +30 -34
  3. package/dist/cjs/TronProvider.js.map +1 -1
  4. package/dist/cjs/actions/getMulticallAddress.d.ts +7 -2
  5. package/dist/cjs/actions/getMulticallAddress.js +6 -6
  6. package/dist/cjs/actions/getMulticallAddress.js.map +1 -1
  7. package/dist/cjs/actions/getTronBalance.d.ts +7 -2
  8. package/dist/cjs/actions/getTronBalance.js +87 -89
  9. package/dist/cjs/actions/getTronBalance.js.map +1 -1
  10. package/dist/cjs/actions/resolveTronAddress.d.ts +5 -1
  11. package/dist/cjs/actions/resolveTronAddress.js +6 -4
  12. package/dist/cjs/actions/resolveTronAddress.js.map +1 -1
  13. package/dist/cjs/core/TronStepExecutor.d.ts +14 -9
  14. package/dist/cjs/core/TronStepExecutor.js +50 -62
  15. package/dist/cjs/core/TronStepExecutor.js.map +1 -1
  16. package/dist/cjs/core/constants.d.ts +8 -2
  17. package/dist/cjs/core/constants.js +12 -5
  18. package/dist/cjs/core/constants.js.map +1 -1
  19. package/dist/cjs/core/tasks/TronCheckAllowanceTask.d.ts +10 -5
  20. package/dist/cjs/core/tasks/TronCheckAllowanceTask.js +35 -43
  21. package/dist/cjs/core/tasks/TronCheckAllowanceTask.js.map +1 -1
  22. package/dist/cjs/core/tasks/TronSetAllowanceTask.d.ts +10 -5
  23. package/dist/cjs/core/tasks/TronSetAllowanceTask.js +65 -76
  24. package/dist/cjs/core/tasks/TronSetAllowanceTask.js.map +1 -1
  25. package/dist/cjs/core/tasks/TronSignAndExecuteTask.d.ts +9 -4
  26. package/dist/cjs/core/tasks/TronSignAndExecuteTask.js +37 -42
  27. package/dist/cjs/core/tasks/TronSignAndExecuteTask.js.map +1 -1
  28. package/dist/cjs/core/tasks/TronWaitForTransactionTask.d.ts +9 -4
  29. package/dist/cjs/core/tasks/TronWaitForTransactionTask.js +29 -56
  30. package/dist/cjs/core/tasks/TronWaitForTransactionTask.js.map +1 -1
  31. package/dist/cjs/errors/parseTronErrors.d.ts +7 -2
  32. package/dist/cjs/errors/parseTronErrors.js +26 -46
  33. package/dist/cjs/errors/parseTronErrors.js.map +1 -1
  34. package/dist/cjs/index.d.ts +3 -3
  35. package/dist/cjs/index.js +5 -8
  36. package/dist/cjs/rpc/callTronRpcsWithRetry.d.ts +10 -3
  37. package/dist/cjs/rpc/callTronRpcsWithRetry.js +24 -19
  38. package/dist/cjs/rpc/callTronRpcsWithRetry.js.map +1 -1
  39. package/dist/cjs/rpc/waitForTronTxConfirmation.d.ts +17 -0
  40. package/dist/cjs/rpc/waitForTronTxConfirmation.js +30 -0
  41. package/dist/cjs/rpc/waitForTronTxConfirmation.js.map +1 -0
  42. package/dist/cjs/types.d.ts +21 -15
  43. package/dist/cjs/types.js +7 -5
  44. package/dist/cjs/types.js.map +1 -1
  45. package/dist/cjs/utils/address.d.ts +6 -2
  46. package/dist/cjs/utils/address.js +11 -8
  47. package/dist/cjs/utils/address.js.map +1 -1
  48. package/dist/cjs/utils/getTronTxLink.d.ts +7 -0
  49. package/dist/cjs/utils/getTronTxLink.js +11 -0
  50. package/dist/cjs/utils/getTronTxLink.js.map +1 -0
  51. package/dist/cjs/utils/isZeroAddress.d.ts +7 -3
  52. package/dist/cjs/utils/isZeroAddress.js +9 -6
  53. package/dist/cjs/utils/isZeroAddress.js.map +1 -1
  54. package/dist/cjs/utils/multicall3Abi.d.ts +7 -2
  55. package/dist/cjs/utils/multicall3Abi.js +60 -40
  56. package/dist/cjs/utils/multicall3Abi.js.map +1 -1
  57. package/dist/cjs/utils/stripHexPrefix.d.ts +5 -1
  58. package/dist/cjs/utils/stripHexPrefix.js +5 -4
  59. package/dist/cjs/utils/stripHexPrefix.js.map +1 -1
  60. package/dist/cjs/version.d.ts +6 -2
  61. package/dist/cjs/version.js +8 -5
  62. package/dist/cjs/version.js.map +1 -1
  63. package/dist/esm/TronProvider.d.ts +7 -2
  64. package/dist/esm/TronProvider.d.ts.map +1 -0
  65. package/dist/esm/TronProvider.js +30 -32
  66. package/dist/esm/TronProvider.js.map +1 -1
  67. package/dist/esm/actions/getMulticallAddress.d.ts +7 -2
  68. package/dist/esm/actions/getMulticallAddress.d.ts.map +1 -0
  69. package/dist/esm/actions/getMulticallAddress.js +7 -4
  70. package/dist/esm/actions/getMulticallAddress.js.map +1 -1
  71. package/dist/esm/actions/getTronBalance.d.ts +7 -2
  72. package/dist/esm/actions/getTronBalance.d.ts.map +1 -0
  73. package/dist/esm/actions/getTronBalance.js +86 -87
  74. package/dist/esm/actions/getTronBalance.js.map +1 -1
  75. package/dist/esm/actions/resolveTronAddress.d.ts +5 -1
  76. package/dist/esm/actions/resolveTronAddress.d.ts.map +1 -0
  77. package/dist/esm/actions/resolveTronAddress.js +6 -3
  78. package/dist/esm/actions/resolveTronAddress.js.map +1 -1
  79. package/dist/esm/core/TronStepExecutor.d.ts +14 -9
  80. package/dist/esm/core/TronStepExecutor.d.ts.map +1 -0
  81. package/dist/esm/core/TronStepExecutor.js +50 -59
  82. package/dist/esm/core/TronStepExecutor.js.map +1 -1
  83. package/dist/esm/core/constants.d.ts +8 -2
  84. package/dist/esm/core/constants.d.ts.map +1 -0
  85. package/dist/esm/core/constants.js +8 -2
  86. package/dist/esm/core/constants.js.map +1 -1
  87. package/dist/esm/core/tasks/TronCheckAllowanceTask.d.ts +10 -5
  88. package/dist/esm/core/tasks/TronCheckAllowanceTask.d.ts.map +1 -0
  89. package/dist/esm/core/tasks/TronCheckAllowanceTask.js +35 -40
  90. package/dist/esm/core/tasks/TronCheckAllowanceTask.js.map +1 -1
  91. package/dist/esm/core/tasks/TronSetAllowanceTask.d.ts +10 -5
  92. package/dist/esm/core/tasks/TronSetAllowanceTask.d.ts.map +1 -0
  93. package/dist/esm/core/tasks/TronSetAllowanceTask.js +65 -74
  94. package/dist/esm/core/tasks/TronSetAllowanceTask.js.map +1 -1
  95. package/dist/esm/core/tasks/TronSignAndExecuteTask.d.ts +9 -4
  96. package/dist/esm/core/tasks/TronSignAndExecuteTask.d.ts.map +1 -0
  97. package/dist/esm/core/tasks/TronSignAndExecuteTask.js +37 -39
  98. package/dist/esm/core/tasks/TronSignAndExecuteTask.js.map +1 -1
  99. package/dist/esm/core/tasks/TronWaitForTransactionTask.d.ts +9 -4
  100. package/dist/esm/core/tasks/TronWaitForTransactionTask.d.ts.map +1 -0
  101. package/dist/esm/core/tasks/TronWaitForTransactionTask.js +29 -54
  102. package/dist/esm/core/tasks/TronWaitForTransactionTask.js.map +1 -1
  103. package/dist/esm/errors/parseTronErrors.d.ts +7 -2
  104. package/dist/esm/errors/parseTronErrors.d.ts.map +1 -0
  105. package/dist/esm/errors/parseTronErrors.js +26 -45
  106. package/dist/esm/errors/parseTronErrors.js.map +1 -1
  107. package/dist/esm/index.d.ts +3 -3
  108. package/dist/esm/index.js +3 -4
  109. package/dist/esm/package.json +1 -1
  110. package/dist/esm/rpc/callTronRpcsWithRetry.d.ts +10 -3
  111. package/dist/esm/rpc/callTronRpcsWithRetry.d.ts.map +1 -0
  112. package/dist/esm/rpc/callTronRpcsWithRetry.js +23 -17
  113. package/dist/esm/rpc/callTronRpcsWithRetry.js.map +1 -1
  114. package/dist/esm/rpc/waitForTronTxConfirmation.d.ts +17 -0
  115. package/dist/esm/rpc/waitForTronTxConfirmation.d.ts.map +1 -0
  116. package/dist/esm/rpc/waitForTronTxConfirmation.js +29 -0
  117. package/dist/esm/rpc/waitForTronTxConfirmation.js.map +1 -0
  118. package/dist/esm/types.d.ts +21 -15
  119. package/dist/esm/types.d.ts.map +1 -0
  120. package/dist/esm/types.js +7 -3
  121. package/dist/esm/types.js.map +1 -1
  122. package/dist/esm/utils/address.d.ts +6 -2
  123. package/dist/esm/utils/address.d.ts.map +1 -0
  124. package/dist/esm/utils/address.js +11 -7
  125. package/dist/esm/utils/address.js.map +1 -1
  126. package/dist/esm/utils/getTronTxLink.d.ts +7 -0
  127. package/dist/esm/utils/getTronTxLink.d.ts.map +1 -0
  128. package/dist/esm/utils/getTronTxLink.js +10 -0
  129. package/dist/esm/utils/getTronTxLink.js.map +1 -0
  130. package/dist/esm/utils/isZeroAddress.d.ts +7 -3
  131. package/dist/esm/utils/isZeroAddress.d.ts.map +1 -0
  132. package/dist/esm/utils/isZeroAddress.js +7 -3
  133. package/dist/esm/utils/isZeroAddress.js.map +1 -1
  134. package/dist/esm/utils/multicall3Abi.d.ts +7 -2
  135. package/dist/esm/utils/multicall3Abi.d.ts.map +1 -0
  136. package/dist/esm/utils/multicall3Abi.js +59 -37
  137. package/dist/esm/utils/multicall3Abi.js.map +1 -1
  138. package/dist/esm/utils/stripHexPrefix.d.ts +5 -1
  139. package/dist/esm/utils/stripHexPrefix.d.ts.map +1 -0
  140. package/dist/esm/utils/stripHexPrefix.js +5 -1
  141. package/dist/esm/utils/stripHexPrefix.js.map +1 -1
  142. package/dist/esm/version.d.ts +6 -2
  143. package/dist/esm/version.d.ts.map +1 -0
  144. package/dist/esm/version.js +6 -2
  145. package/dist/esm/version.js.map +1 -1
  146. package/package.json +8 -12
  147. package/src/TronProvider.ts +8 -4
  148. package/src/actions/getTronBalance.ts +45 -12
  149. package/src/core/constants.ts +8 -1
  150. package/src/core/tasks/TronSetAllowanceTask.ts +25 -27
  151. package/src/core/tasks/TronSignAndExecuteTask.ts +35 -20
  152. package/src/core/tasks/TronWaitForTransactionTask.ts +6 -41
  153. package/src/errors/parseTronErrors.ts +26 -15
  154. package/src/rpc/callTronRpcsWithRetry.ts +10 -2
  155. package/src/rpc/waitForTronTxConfirmation.ts +56 -0
  156. package/src/types.ts +1 -0
  157. package/src/utils/address.ts +7 -1
  158. package/src/utils/getTronTxLink.ts +15 -0
  159. package/src/utils/isZeroAddress.ts +2 -0
  160. package/src/version.ts +1 -1
  161. package/dist/cjs/index.js.map +0 -1
  162. package/dist/esm/index.js.map +0 -1
  163. package/dist/types/TronProvider.d.ts +0 -3
  164. package/dist/types/TronProvider.d.ts.map +0 -1
  165. package/dist/types/actions/getMulticallAddress.d.ts +0 -3
  166. package/dist/types/actions/getMulticallAddress.d.ts.map +0 -1
  167. package/dist/types/actions/getTronBalance.d.ts +0 -3
  168. package/dist/types/actions/getTronBalance.d.ts.map +0 -1
  169. package/dist/types/actions/resolveTronAddress.d.ts +0 -2
  170. package/dist/types/actions/resolveTronAddress.d.ts.map +0 -1
  171. package/dist/types/core/TronStepExecutor.d.ts +0 -11
  172. package/dist/types/core/TronStepExecutor.d.ts.map +0 -1
  173. package/dist/types/core/constants.d.ts +0 -3
  174. package/dist/types/core/constants.d.ts.map +0 -1
  175. package/dist/types/core/tasks/TronCheckAllowanceTask.d.ts +0 -7
  176. package/dist/types/core/tasks/TronCheckAllowanceTask.d.ts.map +0 -1
  177. package/dist/types/core/tasks/TronSetAllowanceTask.d.ts +0 -7
  178. package/dist/types/core/tasks/TronSetAllowanceTask.d.ts.map +0 -1
  179. package/dist/types/core/tasks/TronSignAndExecuteTask.d.ts +0 -6
  180. package/dist/types/core/tasks/TronSignAndExecuteTask.d.ts.map +0 -1
  181. package/dist/types/core/tasks/TronWaitForTransactionTask.d.ts +0 -6
  182. package/dist/types/core/tasks/TronWaitForTransactionTask.d.ts.map +0 -1
  183. package/dist/types/errors/parseTronErrors.d.ts +0 -3
  184. package/dist/types/errors/parseTronErrors.d.ts.map +0 -1
  185. package/dist/types/index.d.ts +0 -4
  186. package/dist/types/index.d.ts.map +0 -1
  187. package/dist/types/rpc/callTronRpcsWithRetry.d.ts +0 -4
  188. package/dist/types/rpc/callTronRpcsWithRetry.d.ts.map +0 -1
  189. package/dist/types/types.d.ts +0 -21
  190. package/dist/types/types.d.ts.map +0 -1
  191. package/dist/types/utils/address.d.ts +0 -3
  192. package/dist/types/utils/address.d.ts.map +0 -1
  193. package/dist/types/utils/isZeroAddress.d.ts +0 -4
  194. package/dist/types/utils/isZeroAddress.d.ts.map +0 -1
  195. package/dist/types/utils/multicall3Abi.d.ts +0 -3
  196. package/dist/types/utils/multicall3Abi.d.ts.map +0 -1
  197. package/dist/types/utils/stripHexPrefix.d.ts +0 -2
  198. package/dist/types/utils/stripHexPrefix.d.ts.map +0 -1
  199. package/dist/types/version.d.ts +0 -3
  200. package/dist/types/version.d.ts.map +0 -1
@@ -1,2 +1,7 @@
1
- import type { TronProviderOptions, TronSDKProvider } from './types.js';
2
- export declare function TronProvider(options?: TronProviderOptions): TronSDKProvider;
1
+ import { TronProviderOptions, TronSDKProvider } from "./types.js";
2
+
3
+ //#region src/TronProvider.d.ts
4
+ declare function TronProvider(options?: TronProviderOptions): TronSDKProvider;
5
+ //#endregion
6
+ export { TronProvider };
7
+ //# sourceMappingURL=TronProvider.d.ts.map
@@ -1,37 +1,33 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TronProvider = TronProvider;
4
- const sdk_1 = require("@lifi/sdk");
5
- const tronweb_1 = require("tronweb");
6
- const getTronBalance_js_1 = require("./actions/getTronBalance.js");
7
- const resolveTronAddress_js_1 = require("./actions/resolveTronAddress.js");
8
- const TronStepExecutor_js_1 = require("./core/TronStepExecutor.js");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_actions_getTronBalance = require("./actions/getTronBalance.js");
3
+ const require_actions_resolveTronAddress = require("./actions/resolveTronAddress.js");
4
+ const require_core_TronStepExecutor = require("./core/TronStepExecutor.js");
5
+ let _lifi_sdk = require("@lifi/sdk");
6
+ let tronweb = require("tronweb");
7
+ //#region src/TronProvider.ts
9
8
  function TronProvider(options) {
10
- const _options = options ?? {};
11
- return {
12
- get type() {
13
- return sdk_1.ChainType.TVM;
14
- },
15
- isAddress: (address) => tronweb_1.TronWeb.isAddress(address),
16
- resolveAddress: resolveTronAddress_js_1.resolveTronAddress,
17
- getBalance: getTronBalance_js_1.getTronBalance,
18
- async getStepExecutor(options) {
19
- if (!_options.getWallet) {
20
- throw new sdk_1.ProviderError(sdk_1.LiFiErrorCode.ProviderUnavailable, 'TronProvider requires a getWallet function.');
21
- }
22
- const wallet = await _options.getWallet();
23
- const executor = new TronStepExecutor_js_1.TronStepExecutor({
24
- wallet,
25
- routeId: options.routeId,
26
- executionOptions: {
27
- ...options.executionOptions,
28
- },
29
- });
30
- return executor;
31
- },
32
- setOptions(options) {
33
- Object.assign(_options, options);
34
- },
35
- };
9
+ const _options = options ?? {};
10
+ return {
11
+ get type() {
12
+ return _lifi_sdk.ChainType.TVM;
13
+ },
14
+ isAddress: (address) => tronweb.TronWeb.isAddress(address),
15
+ resolveAddress: require_actions_resolveTronAddress.resolveTronAddress,
16
+ getBalance: (client, walletAddress, tokens) => require_actions_getTronBalance.getTronBalance(client, walletAddress, tokens, _options.multicallBatchSize),
17
+ async getStepExecutor(options) {
18
+ if (!_options.getWallet) throw new _lifi_sdk.ProviderError(_lifi_sdk.LiFiErrorCode.ProviderUnavailable, "TronProvider requires a getWallet function.");
19
+ return new require_core_TronStepExecutor.TronStepExecutor({
20
+ wallet: await _options.getWallet(),
21
+ routeId: options.routeId,
22
+ executionOptions: options.executionOptions
23
+ });
24
+ },
25
+ setOptions(options) {
26
+ Object.assign(_options, options);
27
+ }
28
+ };
36
29
  }
30
+ //#endregion
31
+ exports.TronProvider = TronProvider;
32
+
37
33
  //# sourceMappingURL=TronProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TronProvider.js","sourceRoot":"","sources":["../../src/TronProvider.ts"],"names":[],"mappings":";;AAYA,oCAmCC;AA/CD,mCAKkB;AAClB,qCAAiC;AACjC,mEAA4D;AAC5D,2EAAoE;AACpE,oEAA6D;AAG7D,SAAgB,YAAY,CAAC,OAA6B;IACxD,MAAM,QAAQ,GAAwB,OAAO,IAAI,EAAE,CAAA;IACnD,OAAO;QACL,IAAI,IAAI;YACN,OAAO,eAAS,CAAC,GAAG,CAAA;QACtB,CAAC;QACD,SAAS,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,iBAAO,CAAC,SAAS,CAAC,OAAO,CAAC;QAC1D,cAAc,EAAE,0CAAkB;QAClC,UAAU,EAAE,kCAAc;QAC1B,KAAK,CAAC,eAAe,CACnB,OAA4B;YAE5B,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,mBAAa,CACrB,mBAAa,CAAC,mBAAmB,EACjC,6CAA6C,CAC9C,CAAA;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAA;YAEzC,MAAM,QAAQ,GAAG,IAAI,sCAAgB,CAAC;gBACpC,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,gBAAgB,EAAE;oBAChB,GAAG,OAAO,CAAC,gBAAgB;iBAC5B;aACF,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,UAAU,CAAC,OAA4B;YACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"TronProvider.js","names":["ChainType","TronWeb","resolveTronAddress","getTronBalance","ProviderError","LiFiErrorCode","TronStepExecutor"],"sources":["../../src/TronProvider.ts"],"sourcesContent":["import {\n ChainType,\n LiFiErrorCode,\n ProviderError,\n type StepExecutorOptions,\n} from '@lifi/sdk'\nimport { TronWeb } from 'tronweb'\nimport { getTronBalance } from './actions/getTronBalance.js'\nimport { resolveTronAddress } from './actions/resolveTronAddress.js'\nimport { TronStepExecutor } from './core/TronStepExecutor.js'\nimport type { TronProviderOptions, TronSDKProvider } from './types.js'\n\nexport function TronProvider(options?: TronProviderOptions): TronSDKProvider {\n const _options: TronProviderOptions = options ?? {}\n return {\n get type() {\n return ChainType.TVM\n },\n isAddress: (address: string) => TronWeb.isAddress(address),\n resolveAddress: resolveTronAddress,\n getBalance: (client, walletAddress, tokens) =>\n getTronBalance(\n client,\n walletAddress,\n tokens,\n _options.multicallBatchSize\n ),\n async getStepExecutor(\n options: StepExecutorOptions\n ): Promise<TronStepExecutor> {\n if (!_options.getWallet) {\n throw new ProviderError(\n LiFiErrorCode.ProviderUnavailable,\n 'TronProvider requires a getWallet function.'\n )\n }\n\n const wallet = await _options.getWallet()\n\n const executor = new TronStepExecutor({\n wallet,\n routeId: options.routeId,\n executionOptions: options.executionOptions,\n })\n\n return executor\n },\n setOptions(options: TronProviderOptions) {\n Object.assign(_options, options)\n },\n }\n}\n"],"mappings":";;;;;;;AAYA,SAAgB,aAAa,SAAgD;CAC3E,MAAM,WAAgC,WAAW,EAAE;AACnD,QAAO;EACL,IAAI,OAAO;AACT,UAAOA,UAAAA,UAAU;;EAEnB,YAAY,YAAoBC,QAAAA,QAAQ,UAAU,QAAQ;EAC1D,gBAAgBC,mCAAAA;EAChB,aAAa,QAAQ,eAAe,WAClCC,+BAAAA,eACE,QACA,eACA,QACA,SAAS,mBACV;EACH,MAAM,gBACJ,SAC2B;AAC3B,OAAI,CAAC,SAAS,UACZ,OAAM,IAAIC,UAAAA,cACRC,UAAAA,cAAc,qBACd,8CACD;AAWH,UANiB,IAAIC,8BAAAA,iBAAiB;IACpC,QAHa,MAAM,SAAS,WAAW;IAIvC,SAAS,QAAQ;IACjB,kBAAkB,QAAQ;IAC3B,CAAC;;EAIJ,WAAW,SAA8B;AACvC,UAAO,OAAO,UAAU,QAAQ;;EAEnC"}
@@ -1,2 +1,7 @@
1
- import { type ChainId, type SDKClient } from '@lifi/sdk';
2
- export declare const getMulticallAddress: (client: SDKClient, chainId: ChainId) => Promise<string | undefined>;
1
+ import { ChainId, SDKClient } from "@lifi/sdk";
2
+
3
+ //#region src/actions/getMulticallAddress.d.ts
4
+ declare const getMulticallAddress: (client: SDKClient, chainId: ChainId) => Promise<string | undefined>;
5
+ //#endregion
6
+ export { getMulticallAddress };
7
+ //# sourceMappingURL=getMulticallAddress.d.ts.map
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMulticallAddress = void 0;
4
- const sdk_1 = require("@lifi/sdk");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let _lifi_sdk = require("@lifi/sdk");
3
+ //#region src/actions/getMulticallAddress.ts
5
4
  const getMulticallAddress = async (client, chainId) => {
6
- const chains = await client.getChains();
7
- return chains?.find((chain) => chain.id === chainId && chain.chainType === sdk_1.ChainType.TVM)?.multicallAddress;
5
+ return (await client.getChains())?.find((chain) => chain.id === chainId && chain.chainType === _lifi_sdk.ChainType.TVM)?.multicallAddress;
8
6
  };
7
+ //#endregion
9
8
  exports.getMulticallAddress = getMulticallAddress;
9
+
10
10
  //# sourceMappingURL=getMulticallAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getMulticallAddress.js","sourceRoot":"","sources":["../../../src/actions/getMulticallAddress.ts"],"names":[],"mappings":";;;AAAA,mCAAmE;AAE5D,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAiB,EACjB,OAAgB,EACa,EAAE;IAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;IACvC,OAAO,MAAM,EAAE,IAAI,CACjB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,eAAS,CAAC,GAAG,CACrE,EAAE,gBAAgB,CAAA;AACrB,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B"}
1
+ {"version":3,"file":"getMulticallAddress.js","names":["ChainType"],"sources":["../../../src/actions/getMulticallAddress.ts"],"sourcesContent":["import { type ChainId, ChainType, type SDKClient } from '@lifi/sdk'\n\nexport const getMulticallAddress = async (\n client: SDKClient,\n chainId: ChainId\n): Promise<string | undefined> => {\n const chains = await client.getChains()\n return chains?.find(\n (chain) => chain.id === chainId && chain.chainType === ChainType.TVM\n )?.multicallAddress\n}\n"],"mappings":";;;AAEA,MAAa,sBAAsB,OACjC,QACA,YACgC;AAEhC,SADe,MAAM,OAAO,WAAW,GACxB,MACZ,UAAU,MAAM,OAAO,WAAW,MAAM,cAAcA,UAAAA,UAAU,IAClE,EAAE"}
@@ -1,2 +1,7 @@
1
- import type { SDKClient, Token, TokenAmount } from '@lifi/sdk';
2
- export declare const getTronBalance: (client: SDKClient, walletAddress: string, tokens: Token[]) => Promise<TokenAmount[]>;
1
+ import { SDKClient, Token, TokenAmount } from "@lifi/sdk";
2
+
3
+ //#region src/actions/getTronBalance.d.ts
4
+ declare const getTronBalance: (client: SDKClient, walletAddress: string, tokens: Token[], multicallBatchSize?: number) => Promise<TokenAmount[]>;
5
+ //#endregion
6
+ export { getTronBalance };
7
+ //# sourceMappingURL=getTronBalance.d.ts.map
@@ -1,94 +1,92 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTronBalance = void 0;
4
- const sdk_1 = require("@lifi/sdk");
5
- const tronweb_1 = require("tronweb");
6
- const callTronRpcsWithRetry_js_1 = require("../rpc/callTronRpcsWithRetry.js");
7
- const address_js_1 = require("../utils/address.js");
8
- const isZeroAddress_js_1 = require("../utils/isZeroAddress.js");
9
- const multicall3Abi_js_1 = require("../utils/multicall3Abi.js");
10
- const getMulticallAddress_js_1 = require("./getMulticallAddress.js");
11
- const BALANCE_OF_SELECTOR = tronweb_1.TronWeb.sha3('balanceOf(address)').slice(2, 10);
12
- const GET_ETH_BALANCE_SELECTOR = tronweb_1.TronWeb.sha3('getEthBalance(address)').slice(2, 10);
13
- const getTronBalance = async (client, walletAddress, tokens) => {
14
- if (tokens.length === 0) {
15
- return [];
16
- }
17
- const { chainId } = tokens[0];
18
- for (const token of tokens) {
19
- if (token.chainId !== chainId) {
20
- console.warn('Requested tokens have to be on the same chain.');
21
- }
22
- }
23
- const multicallAddress = await (0, getMulticallAddress_js_1.getMulticallAddress)(client, chainId);
24
- if (multicallAddress && tokens.length > 1) {
25
- return getTronBalanceMulticall(client, tokens, walletAddress, multicallAddress);
26
- }
27
- return getTronBalanceDefault(client, tokens, walletAddress);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../core/constants.js");
3
+ const require_rpc_callTronRpcsWithRetry = require("../rpc/callTronRpcsWithRetry.js");
4
+ const require_utils_address = require("../utils/address.js");
5
+ const require_utils_isZeroAddress = require("../utils/isZeroAddress.js");
6
+ const require_utils_multicall3Abi = require("../utils/multicall3Abi.js");
7
+ const require_actions_getMulticallAddress = require("./getMulticallAddress.js");
8
+ let _lifi_sdk = require("@lifi/sdk");
9
+ let tronweb = require("tronweb");
10
+ //#region src/actions/getTronBalance.ts
11
+ const BALANCE_OF_SELECTOR = tronweb.TronWeb.sha3("balanceOf(address)").slice(2, 10);
12
+ const GET_ETH_BALANCE_SELECTOR = tronweb.TronWeb.sha3("getEthBalance(address)").slice(2, 10);
13
+ const getTronBalance = async (client, walletAddress, tokens, multicallBatchSize = 50) => {
14
+ if (tokens.length === 0) return [];
15
+ const { chainId } = tokens[0];
16
+ for (const token of tokens) if (token.chainId !== chainId) console.warn("Requested tokens have to be on the same chain.");
17
+ const multicallAddress = await require_actions_getMulticallAddress.getMulticallAddress(client, chainId);
18
+ if (multicallAddress && tokens.length > 1) return getTronBalanceMulticall(client, tokens, walletAddress, multicallAddress, multicallBatchSize);
19
+ return getTronBalanceDefault(client, tokens, walletAddress);
28
20
  };
29
- exports.getTronBalance = getTronBalance;
30
- const getTronBalanceMulticall = async (client, tokens, walletAddress, multicallAddress) => {
31
- const walletHex = (0, address_js_1.toEvmHex)(walletAddress);
32
- const multicallHex = (0, address_js_1.toEvmHex)(multicallAddress);
33
- const [blockNumber, results] = await (0, callTronRpcsWithRetry_js_1.callTronRpcsWithRetry)(client, async (tronWeb) => {
34
- const contract = tronWeb.contract(multicall3Abi_js_1.multicall3Abi, multicallAddress);
35
- const calls = tokens.map((token) => {
36
- const isNative = (0, isZeroAddress_js_1.isZeroAddress)(token.address);
37
- return [
38
- isNative ? multicallHex : (0, address_js_1.toEvmHex)(token.address),
39
- true,
40
- (0, address_js_1.encodeAddressCalldata)(isNative ? GET_ETH_BALANCE_SELECTOR : BALANCE_OF_SELECTOR, walletHex),
41
- ];
42
- });
43
- const [block, aggregateResult] = await Promise.all([
44
- tronWeb.trx.getCurrentBlock(),
45
- contract.aggregate3(calls).call({ from: walletAddress }),
46
- ]);
47
- return [
48
- BigInt(block.block_header?.raw_data?.number ?? 0),
49
- aggregateResult[0],
50
- ];
51
- });
52
- return tokens.map((token, i) => {
53
- const [success, returnData] = results[i];
54
- if (!success) {
55
- return { ...token, blockNumber };
56
- }
57
- return { ...token, amount: BigInt(returnData), blockNumber };
58
- });
21
+ const getTronBalanceMulticall = async (client, tokens, walletAddress, multicallAddress, batchSize) => {
22
+ const walletHex = require_utils_address.toEvmHex(walletAddress);
23
+ const multicallHex = require_utils_address.toEvmHex(multicallAddress);
24
+ const [blockNumber, results] = await require_rpc_callTronRpcsWithRetry.callTronRpcsWithRetry(client, async (tronWeb) => {
25
+ const contract = tronWeb.contract(require_utils_multicall3Abi.multicall3Abi, multicallAddress);
26
+ const allCalls = tokens.map((token) => {
27
+ const isNative = require_utils_isZeroAddress.isZeroAddress(token.address);
28
+ return [
29
+ isNative ? multicallHex : require_utils_address.toEvmHex(token.address),
30
+ true,
31
+ require_utils_address.encodeAddressCalldata(isNative ? GET_ETH_BALANCE_SELECTOR : BALANCE_OF_SELECTOR, walletHex)
32
+ ];
33
+ });
34
+ const batches = [];
35
+ for (let i = 0; i < allCalls.length; i += batchSize) batches.push(allCalls.slice(i, i + batchSize));
36
+ const [block, ...batchResults] = await Promise.all([tronWeb.trx.getCurrentBlock(), ...batches.map((batch, idx) => contract.aggregate3(batch).call({ from: walletAddress }).then((r) => r[0]).catch((error) => {
37
+ console.warn(`[getTronBalance] batch ${idx + 1}/${batches.length} failed:`, error.message);
38
+ return batch.map(() => [false, "0x"]);
39
+ }))]);
40
+ const blockNumber = block.block_header?.raw_data?.number;
41
+ return [blockNumber !== void 0 ? BigInt(blockNumber) : void 0, batchResults.flat()];
42
+ });
43
+ return tokens.map((token, i) => {
44
+ const entry = results[i];
45
+ if (!entry) return {
46
+ ...token,
47
+ blockNumber
48
+ };
49
+ const [success, returnData] = entry;
50
+ if (!success) return {
51
+ ...token,
52
+ blockNumber
53
+ };
54
+ return {
55
+ ...token,
56
+ amount: BigInt(returnData),
57
+ blockNumber
58
+ };
59
+ });
59
60
  };
60
61
  const getTronBalanceDefault = async (client, tokens, walletAddress) => {
61
- const [blockNumber, results] = await (0, callTronRpcsWithRetry_js_1.callTronRpcsWithRetry)(client, async (tronWeb) => {
62
- const host = tronWeb.fullNode.host;
63
- const queue = tokens.map((token) => {
64
- if ((0, isZeroAddress_js_1.isZeroAddress)(token.address)) {
65
- return (0, sdk_1.withDedupe)(async () => BigInt(await tronWeb.trx.getBalance(walletAddress)), { id: `${getTronBalanceDefault.name}.getBalance.${host}` });
66
- }
67
- return (0, sdk_1.withDedupe)(async () => {
68
- const contract = await tronWeb.contract().at(token.address);
69
- const balance = await contract
70
- .balanceOf(walletAddress)
71
- .call({ from: walletAddress });
72
- return BigInt(balance.toString());
73
- }, {
74
- id: `${getTronBalanceDefault.name}.balanceOf.${token.address}.${host}`,
75
- });
76
- });
77
- return Promise.all([
78
- (0, sdk_1.withDedupe)(async () => {
79
- const block = await tronWeb.trx.getCurrentBlock();
80
- return BigInt(block.block_header?.raw_data?.number ?? 0);
81
- }, { id: `${getTronBalanceDefault.name}.getCurrentBlock.${host}` }),
82
- Promise.allSettled(queue),
83
- ]);
84
- });
85
- const tokenAmounts = tokens.map((token, index) => {
86
- const result = results[index];
87
- if (result.status === 'rejected') {
88
- return { ...token, blockNumber };
89
- }
90
- return { ...token, amount: result.value, blockNumber };
91
- });
92
- return tokenAmounts;
62
+ const [blockNumber, results] = await require_rpc_callTronRpcsWithRetry.callTronRpcsWithRetry(client, async (tronWeb) => {
63
+ const host = tronWeb.fullNode.host;
64
+ const queue = tokens.map((token) => {
65
+ if (require_utils_isZeroAddress.isZeroAddress(token.address)) return (0, _lifi_sdk.withDedupe)(async () => BigInt(await tronWeb.trx.getBalance(walletAddress)), { id: `${getTronBalanceDefault.name}.getBalance.${host}` });
66
+ return (0, _lifi_sdk.withDedupe)(async () => {
67
+ const balance = await (await tronWeb.contract().at(token.address)).balanceOf(walletAddress).call({ from: walletAddress });
68
+ return BigInt(balance.toString());
69
+ }, { id: `${getTronBalanceDefault.name}.balanceOf.${token.address}.${host}` });
70
+ });
71
+ return Promise.all([(0, _lifi_sdk.withDedupe)(async () => {
72
+ const n = (await tronWeb.trx.getCurrentBlock()).block_header?.raw_data?.number;
73
+ return n !== void 0 ? BigInt(n) : void 0;
74
+ }, { id: `${getTronBalanceDefault.name}.getCurrentBlock.${host}` }), Promise.allSettled(queue)]);
75
+ });
76
+ return tokens.map((token, index) => {
77
+ const result = results[index];
78
+ if (result.status === "rejected") return {
79
+ ...token,
80
+ blockNumber
81
+ };
82
+ return {
83
+ ...token,
84
+ amount: result.value,
85
+ blockNumber
86
+ };
87
+ });
93
88
  };
89
+ //#endregion
90
+ exports.getTronBalance = getTronBalance;
91
+
94
92
  //# sourceMappingURL=getTronBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTronBalance.js","sourceRoot":"","sources":["../../../src/actions/getTronBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getTronBalance.js","names":["TronWeb","getMulticallAddress","toEvmHex","callTronRpcsWithRetry","multicall3Abi","isZeroAddress","encodeAddressCalldata"],"sources":["../../../src/actions/getTronBalance.ts"],"sourcesContent":["import type { SDKClient, Token, TokenAmount } from '@lifi/sdk'\nimport { withDedupe } from '@lifi/sdk'\nimport { TronWeb } from 'tronweb'\nimport { DEFAULT_MULTICALL_BATCH_SIZE } from '../core/constants.js'\nimport { callTronRpcsWithRetry } from '../rpc/callTronRpcsWithRetry.js'\nimport { encodeAddressCalldata, toEvmHex } from '../utils/address.js'\nimport { isZeroAddress } from '../utils/isZeroAddress.js'\nimport { multicall3Abi } from '../utils/multicall3Abi.js'\nimport { getMulticallAddress } from './getMulticallAddress.js'\n\nconst BALANCE_OF_SELECTOR = TronWeb.sha3('balanceOf(address)').slice(2, 10)\nconst GET_ETH_BALANCE_SELECTOR = TronWeb.sha3('getEthBalance(address)').slice(\n 2,\n 10\n)\n\nexport const getTronBalance = async (\n client: SDKClient,\n walletAddress: string,\n tokens: Token[],\n multicallBatchSize: number = DEFAULT_MULTICALL_BATCH_SIZE\n): Promise<TokenAmount[]> => {\n if (tokens.length === 0) {\n return []\n }\n const { chainId } = tokens[0]\n for (const token of tokens) {\n if (token.chainId !== chainId) {\n console.warn('Requested tokens have to be on the same chain.')\n }\n }\n\n const multicallAddress = await getMulticallAddress(client, chainId)\n\n if (multicallAddress && tokens.length > 1) {\n return getTronBalanceMulticall(\n client,\n tokens,\n walletAddress,\n multicallAddress,\n multicallBatchSize\n )\n }\n\n return getTronBalanceDefault(client, tokens, walletAddress)\n}\n\nconst getTronBalanceMulticall = async (\n client: SDKClient,\n tokens: Token[],\n walletAddress: string,\n multicallAddress: string,\n batchSize: number\n): Promise<TokenAmount[]> => {\n const walletHex = toEvmHex(walletAddress)\n const multicallHex = toEvmHex(multicallAddress)\n\n const [blockNumber, results] = await callTronRpcsWithRetry(\n client,\n async (tronWeb) => {\n const contract = tronWeb.contract(multicall3Abi, multicallAddress)\n\n // TronWeb encodes tuples positionally: [target, allowFailure, callData]\n const allCalls = tokens.map((token) => {\n const isNative = isZeroAddress(token.address)\n return [\n isNative ? multicallHex : toEvmHex(token.address),\n true,\n encodeAddressCalldata(\n isNative ? GET_ETH_BALANCE_SELECTOR : BALANCE_OF_SELECTOR,\n walletHex\n ),\n ]\n })\n\n // Chunk calls to avoid CPU timeout on Tron nodes\n const batches: (typeof allCalls)[] = []\n for (let i = 0; i < allCalls.length; i += batchSize) {\n batches.push(allCalls.slice(i, i + batchSize))\n }\n\n const [block, ...batchResults] = await Promise.all([\n tronWeb.trx.getCurrentBlock(),\n ...batches.map((batch, idx) =>\n contract\n .aggregate3(batch)\n .call({ from: walletAddress })\n // TronWeb wraps the single return value in an extra array\n .then((r: unknown[]) => r[0] as Array<[boolean, string]>)\n .catch((error: Error) => {\n console.warn(\n `[getTronBalance] batch ${idx + 1}/${batches.length} failed:`,\n error.message\n )\n return batch.map(() => [false, '0x'] as [boolean, string])\n })\n ),\n ])\n\n const blockNumber = block.block_header?.raw_data?.number\n return [\n blockNumber !== undefined ? BigInt(blockNumber) : undefined,\n batchResults.flat(),\n ]\n }\n )\n\n return tokens.map((token, i) => {\n // Guard against an unexpected length mismatch between tokens and flattened batch results.\n const entry = results[i] as [boolean, string] | undefined\n if (!entry) {\n return { ...token, blockNumber }\n }\n const [success, returnData] = entry\n if (!success) {\n // RPC failure: amount is omitted (undefined)\n // Consumers must treat a missing amount as \"balance unavailable\", not zero.\n return { ...token, blockNumber }\n }\n return { ...token, amount: BigInt(returnData), blockNumber }\n })\n}\n\nconst getTronBalanceDefault = async (\n client: SDKClient,\n tokens: Token[],\n walletAddress: string\n): Promise<TokenAmount[]> => {\n const [blockNumber, results] = await callTronRpcsWithRetry(\n client,\n async (tronWeb) => {\n const host = tronWeb.fullNode.host\n const queue: Promise<bigint>[] = tokens.map((token) => {\n if (isZeroAddress(token.address)) {\n return withDedupe(\n async () => BigInt(await tronWeb.trx.getBalance(walletAddress)),\n { id: `${getTronBalanceDefault.name}.getBalance.${host}` }\n )\n }\n return withDedupe(\n async () => {\n const contract = await tronWeb.contract().at(token.address)\n const balance = await contract\n .balanceOf(walletAddress)\n .call({ from: walletAddress })\n return BigInt(balance.toString())\n },\n {\n id: `${getTronBalanceDefault.name}.balanceOf.${token.address}.${host}`,\n }\n )\n })\n\n return Promise.all([\n withDedupe(\n async (): Promise<bigint | undefined> => {\n const block = await tronWeb.trx.getCurrentBlock()\n const n = block.block_header?.raw_data?.number\n return n !== undefined ? BigInt(n) : undefined\n },\n { id: `${getTronBalanceDefault.name}.getCurrentBlock.${host}` }\n ),\n Promise.allSettled(queue),\n ])\n }\n )\n\n const tokenAmounts: TokenAmount[] = tokens.map((token, index) => {\n const result = results[index]\n if (result.status === 'rejected') {\n // RPC failure: amount is omitted (undefined), matching getSolanaBalance's contract.\n // Consumers must treat a missing amount as \"balance unavailable\", not zero.\n return { ...token, blockNumber }\n }\n return { ...token, amount: result.value, blockNumber }\n })\n\n return tokenAmounts\n}\n"],"mappings":"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"}
@@ -1 +1,5 @@
1
- export declare function resolveTronAddress(name: string): Promise<string>;
1
+ //#region src/actions/resolveTronAddress.d.ts
2
+ declare function resolveTronAddress(name: string): Promise<string>;
3
+ //#endregion
4
+ export { resolveTronAddress };
5
+ //# sourceMappingURL=resolveTronAddress.d.ts.map
@@ -1,7 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveTronAddress = resolveTronAddress;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/actions/resolveTronAddress.ts
4
3
  async function resolveTronAddress(name) {
5
- return name;
4
+ return name;
6
5
  }
6
+ //#endregion
7
+ exports.resolveTronAddress = resolveTronAddress;
8
+
7
9
  //# sourceMappingURL=resolveTronAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveTronAddress.js","sourceRoot":"","sources":["../../../src/actions/resolveTronAddress.ts"],"names":[],"mappings":";;AAAA,gDAGC;AAHM,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAEnD,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"resolveTronAddress.js","names":[],"sources":["../../../src/actions/resolveTronAddress.ts"],"sourcesContent":["export async function resolveTronAddress(name: string): Promise<string> {\n // Tron does not have a name service, return the address as-is\n return name\n}\n"],"mappings":";;AAAA,eAAsB,mBAAmB,MAA+B;AAEtE,QAAO"}
@@ -1,10 +1,15 @@
1
- import { BaseStepExecutor, type ExecutionAction, type LiFiStepExtended, type SDKError, type StepExecutorBaseContext, TaskPipeline } from '@lifi/sdk';
2
- import type { TronStepExecutorContext, TronStepExecutorOptions } from '../types.js';
3
- export declare class TronStepExecutor extends BaseStepExecutor {
4
- private wallet;
5
- constructor(options: TronStepExecutorOptions);
6
- checkWallet: (step: LiFiStepExtended) => void;
7
- parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError>;
8
- createContext: (baseContext: StepExecutorBaseContext) => Promise<TronStepExecutorContext>;
9
- createPipeline: (context: TronStepExecutorContext) => TaskPipeline;
1
+ import { TronStepExecutorContext, TronStepExecutorOptions } from "../types.js";
2
+ import { BaseStepExecutor, ExecutionAction, LiFiStepExtended, SDKError, StepExecutorBaseContext, TaskPipeline } from "@lifi/sdk";
3
+
4
+ //#region src/core/TronStepExecutor.d.ts
5
+ declare class TronStepExecutor extends BaseStepExecutor {
6
+ private wallet;
7
+ constructor(options: TronStepExecutorOptions);
8
+ checkWallet: (step: LiFiStepExtended) => void;
9
+ override parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError>;
10
+ override createContext: (baseContext: StepExecutorBaseContext) => Promise<TronStepExecutorContext>;
11
+ override createPipeline: (context: TronStepExecutorContext) => TaskPipeline;
10
12
  }
13
+ //#endregion
14
+ export { TronStepExecutor };
15
+ //# sourceMappingURL=TronStepExecutor.d.ts.map
@@ -1,64 +1,52 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TronStepExecutor = void 0;
4
- const sdk_1 = require("@lifi/sdk");
5
- const parseTronErrors_js_1 = require("../errors/parseTronErrors.js");
6
- const isZeroAddress_js_1 = require("../utils/isZeroAddress.js");
7
- const TronCheckAllowanceTask_js_1 = require("./tasks/TronCheckAllowanceTask.js");
8
- const TronSetAllowanceTask_js_1 = require("./tasks/TronSetAllowanceTask.js");
9
- const TronSignAndExecuteTask_js_1 = require("./tasks/TronSignAndExecuteTask.js");
10
- const TronWaitForTransactionTask_js_1 = require("./tasks/TronWaitForTransactionTask.js");
11
- class TronStepExecutor extends sdk_1.BaseStepExecutor {
12
- wallet;
13
- constructor(options) {
14
- super(options);
15
- this.wallet = options.wallet;
16
- }
17
- checkWallet = (step) => {
18
- const address = this.wallet.address;
19
- if (address && address !== step.action.fromAddress) {
20
- throw new sdk_1.TransactionError(sdk_1.LiFiErrorCode.WalletChangedDuringExecution, 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.');
21
- }
22
- };
23
- parseErrors = (error, step, action) => (0, parseTronErrors_js_1.parseTronErrors)(error, step, action);
24
- createContext = async (baseContext) => {
25
- return {
26
- ...baseContext,
27
- wallet: this.wallet,
28
- checkWallet: this.checkWallet,
29
- };
30
- };
31
- createPipeline = (context) => {
32
- const { step, isBridgeExecution } = context;
33
- const isFromNativeToken = (0, isZeroAddress_js_1.isZeroAddress)(step.action.fromToken.address);
34
- const tasks = [
35
- new TronCheckAllowanceTask_js_1.TronCheckAllowanceTask(),
36
- new TronSetAllowanceTask_js_1.TronSetAllowanceTask(),
37
- new sdk_1.CheckBalanceTask(),
38
- new sdk_1.PrepareTransactionTask(),
39
- new TronSignAndExecuteTask_js_1.TronSignAndExecuteTask(),
40
- new TronWaitForTransactionTask_js_1.TronWaitForTransactionTask(),
41
- new sdk_1.WaitForTransactionStatusTask(isBridgeExecution ? 'RECEIVING_CHAIN' : 'SWAP'),
42
- ];
43
- const swapOrBridgeAction = this.statusManager.findAction(step, isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP');
44
- const doCheckAllowance = !swapOrBridgeAction?.txHash &&
45
- !isFromNativeToken &&
46
- !!step.estimate.approvalAddress &&
47
- !step.estimate.skipApproval;
48
- let taskName;
49
- if (doCheckAllowance) {
50
- taskName = TronCheckAllowanceTask_js_1.TronCheckAllowanceTask.name;
51
- }
52
- else {
53
- taskName =
54
- swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === 'DONE'
55
- ? sdk_1.WaitForTransactionStatusTask.name
56
- : sdk_1.CheckBalanceTask.name;
57
- }
58
- const firstTaskIndex = tasks.findIndex((task) => task.constructor.name === taskName);
59
- const tasksToRun = tasks.slice(firstTaskIndex);
60
- return new sdk_1.TaskPipeline(tasksToRun);
61
- };
62
- }
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_utils_isZeroAddress = require("../utils/isZeroAddress.js");
3
+ const require_errors_parseTronErrors = require("../errors/parseTronErrors.js");
4
+ const require_core_tasks_TronCheckAllowanceTask = require("./tasks/TronCheckAllowanceTask.js");
5
+ const require_core_tasks_TronSetAllowanceTask = require("./tasks/TronSetAllowanceTask.js");
6
+ const require_core_tasks_TronSignAndExecuteTask = require("./tasks/TronSignAndExecuteTask.js");
7
+ const require_core_tasks_TronWaitForTransactionTask = require("./tasks/TronWaitForTransactionTask.js");
8
+ let _lifi_sdk = require("@lifi/sdk");
9
+ //#region src/core/TronStepExecutor.ts
10
+ var TronStepExecutor = class extends _lifi_sdk.BaseStepExecutor {
11
+ wallet;
12
+ constructor(options) {
13
+ super(options);
14
+ this.wallet = options.wallet;
15
+ }
16
+ checkWallet = (step) => {
17
+ const address = this.wallet.address;
18
+ if (address && address !== step.action.fromAddress) throw new _lifi_sdk.TransactionError(_lifi_sdk.LiFiErrorCode.WalletChangedDuringExecution, "The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.");
19
+ };
20
+ parseErrors = (error, step, action) => require_errors_parseTronErrors.parseTronErrors(error, step, action);
21
+ createContext = async (baseContext) => {
22
+ return {
23
+ ...baseContext,
24
+ wallet: this.wallet,
25
+ checkWallet: this.checkWallet
26
+ };
27
+ };
28
+ createPipeline = (context) => {
29
+ const { step, isBridgeExecution } = context;
30
+ const isFromNativeToken = require_utils_isZeroAddress.isZeroAddress(step.action.fromToken.address);
31
+ const tasks = [
32
+ new require_core_tasks_TronCheckAllowanceTask.TronCheckAllowanceTask(),
33
+ new require_core_tasks_TronSetAllowanceTask.TronSetAllowanceTask(),
34
+ new _lifi_sdk.CheckBalanceTask(),
35
+ new _lifi_sdk.PrepareTransactionTask(),
36
+ new require_core_tasks_TronSignAndExecuteTask.TronSignAndExecuteTask(),
37
+ new require_core_tasks_TronWaitForTransactionTask.TronWaitForTransactionTask(),
38
+ new _lifi_sdk.WaitForTransactionStatusTask(isBridgeExecution ? "RECEIVING_CHAIN" : "SWAP")
39
+ ];
40
+ const swapOrBridgeAction = this.statusManager.findAction(step, isBridgeExecution ? "CROSS_CHAIN" : "SWAP");
41
+ const doCheckAllowance = !swapOrBridgeAction?.txHash && !isFromNativeToken && !!step.estimate.approvalAddress && !step.estimate.skipApproval;
42
+ let taskName;
43
+ if (doCheckAllowance) taskName = require_core_tasks_TronCheckAllowanceTask.TronCheckAllowanceTask.name;
44
+ else taskName = swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === "DONE" ? _lifi_sdk.WaitForTransactionStatusTask.name : _lifi_sdk.CheckBalanceTask.name;
45
+ const firstTaskIndex = tasks.findIndex((task) => task.constructor.name === taskName);
46
+ return new _lifi_sdk.TaskPipeline(tasks.slice(firstTaskIndex));
47
+ };
48
+ };
49
+ //#endregion
63
50
  exports.TronStepExecutor = TronStepExecutor;
51
+
64
52
  //# sourceMappingURL=TronStepExecutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TronStepExecutor.js","sourceRoot":"","sources":["../../../src/core/TronStepExecutor.ts"],"names":[],"mappings":";;;AAAA,mCAYkB;AAElB,qEAA8D;AAK9D,gEAAyD;AACzD,iFAA0E;AAC1E,6EAAsE;AACtE,iFAA0E;AAC1E,yFAAkF;AAElF,MAAa,gBAAiB,SAAQ,sBAAgB;IAC5C,MAAM,CAAS;IAEvB,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9B,CAAC;IAED,WAAW,GAAG,CAAC,IAAsB,EAAQ,EAAE;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QACnC,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,IAAI,sBAAgB,CACxB,mBAAa,CAAC,4BAA4B,EAC1C,mHAAmH,CACpH,CAAA;QACH,CAAC;IACH,CAAC,CAAA;IAEQ,WAAW,GAAG,CACrB,KAAY,EACZ,IAAuB,EACvB,MAAwB,EACL,EAAE,CAAC,IAAA,oCAAe,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAEnD,aAAa,GAAG,KAAK,EAC5B,WAAoC,EACF,EAAE;QACpC,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAA;IACH,CAAC,CAAA;IAEQ,cAAc,GAAG,CACxB,OAAgC,EAClB,EAAE;QAChB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;QAE3C,MAAM,iBAAiB,GAAG,IAAA,gCAAa,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAEtE,MAAM,KAAK,GAAG;YACZ,IAAI,kDAAsB,EAAE;YAC5B,IAAI,8CAAoB,EAAE;YAC1B,IAAI,sBAAgB,EAAE;YACtB,IAAI,4BAAsB,EAAE;YAC5B,IAAI,kDAAsB,EAAE;YAC5B,IAAI,0DAA0B,EAAE;YAChC,IAAI,kCAA4B,CAC9B,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAC/C;SACF,CAAA;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CACtD,IAAI,EACJ,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAC3C,CAAA;QAED,MAAM,gBAAgB,GACpB,CAAC,kBAAkB,EAAE,MAAM;YAC3B,CAAC,iBAAiB;YAClB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe;YAC/B,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAA;QAE7B,IAAI,QAAgB,CAAA;QACpB,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,GAAG,kDAAsB,CAAC,IAAI,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,QAAQ;gBACN,kBAAkB,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,KAAK,MAAM;oBACjE,CAAC,CAAC,kCAA4B,CAAC,IAAI;oBACnC,CAAC,CAAC,sBAAgB,CAAC,IAAI,CAAA;QAC7B,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAC7C,CAAA;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAE9C,OAAO,IAAI,kBAAY,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC,CAAA;CACF;AAlFD,4CAkFC"}
1
+ {"version":3,"file":"TronStepExecutor.js","names":["BaseStepExecutor","TransactionError","LiFiErrorCode","parseTronErrors","isZeroAddress","TronCheckAllowanceTask","TronSetAllowanceTask","CheckBalanceTask","PrepareTransactionTask","TronSignAndExecuteTask","TronWaitForTransactionTask","WaitForTransactionStatusTask","TaskPipeline"],"sources":["../../../src/core/TronStepExecutor.ts"],"sourcesContent":["import {\n BaseStepExecutor,\n CheckBalanceTask,\n type ExecutionAction,\n LiFiErrorCode,\n type LiFiStepExtended,\n PrepareTransactionTask,\n type SDKError,\n type StepExecutorBaseContext,\n TaskPipeline,\n TransactionError,\n WaitForTransactionStatusTask,\n} from '@lifi/sdk'\nimport type { Adapter } from '@tronweb3/tronwallet-abstract-adapter'\nimport { parseTronErrors } from '../errors/parseTronErrors.js'\nimport type {\n TronStepExecutorContext,\n TronStepExecutorOptions,\n} from '../types.js'\nimport { isZeroAddress } from '../utils/isZeroAddress.js'\nimport { TronCheckAllowanceTask } from './tasks/TronCheckAllowanceTask.js'\nimport { TronSetAllowanceTask } from './tasks/TronSetAllowanceTask.js'\nimport { TronSignAndExecuteTask } from './tasks/TronSignAndExecuteTask.js'\nimport { TronWaitForTransactionTask } from './tasks/TronWaitForTransactionTask.js'\n\nexport class TronStepExecutor extends BaseStepExecutor {\n private wallet: Adapter\n\n constructor(options: TronStepExecutorOptions) {\n super(options)\n this.wallet = options.wallet\n }\n\n checkWallet = (step: LiFiStepExtended): void => {\n const address = this.wallet.address\n if (address && address !== step.action.fromAddress) {\n throw new TransactionError(\n LiFiErrorCode.WalletChangedDuringExecution,\n 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.'\n )\n }\n }\n\n override parseErrors = (\n error: Error,\n step?: LiFiStepExtended,\n action?: ExecutionAction\n ): Promise<SDKError> => parseTronErrors(error, step, action)\n\n override createContext = async (\n baseContext: StepExecutorBaseContext\n ): Promise<TronStepExecutorContext> => {\n return {\n ...baseContext,\n wallet: this.wallet,\n checkWallet: this.checkWallet,\n }\n }\n\n override createPipeline = (\n context: TronStepExecutorContext\n ): TaskPipeline => {\n const { step, isBridgeExecution } = context\n\n const isFromNativeToken = isZeroAddress(step.action.fromToken.address)\n\n const tasks = [\n new TronCheckAllowanceTask(),\n new TronSetAllowanceTask(),\n new CheckBalanceTask(),\n new PrepareTransactionTask(),\n new TronSignAndExecuteTask(),\n new TronWaitForTransactionTask(),\n new WaitForTransactionStatusTask(\n isBridgeExecution ? 'RECEIVING_CHAIN' : 'SWAP'\n ),\n ]\n\n const swapOrBridgeAction = this.statusManager.findAction(\n step,\n isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'\n )\n\n const doCheckAllowance =\n !swapOrBridgeAction?.txHash &&\n !isFromNativeToken &&\n !!step.estimate.approvalAddress &&\n !step.estimate.skipApproval\n\n let taskName: string\n if (doCheckAllowance) {\n taskName = TronCheckAllowanceTask.name\n } else {\n taskName =\n swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === 'DONE'\n ? WaitForTransactionStatusTask.name\n : CheckBalanceTask.name\n }\n\n const firstTaskIndex = tasks.findIndex(\n (task) => task.constructor.name === taskName\n )\n\n const tasksToRun = tasks.slice(firstTaskIndex)\n\n return new TaskPipeline(tasksToRun)\n }\n}\n"],"mappings":";;;;;;;;;AAyBA,IAAa,mBAAb,cAAsCA,UAAAA,iBAAiB;CACrD;CAEA,YAAY,SAAkC;AAC5C,QAAM,QAAQ;AACd,OAAK,SAAS,QAAQ;;CAGxB,eAAe,SAAiC;EAC9C,MAAM,UAAU,KAAK,OAAO;AAC5B,MAAI,WAAW,YAAY,KAAK,OAAO,YACrC,OAAM,IAAIC,UAAAA,iBACRC,UAAAA,cAAc,8BACd,oHACD;;CAIL,eACE,OACA,MACA,WACsBC,+BAAAA,gBAAgB,OAAO,MAAM,OAAO;CAE5D,gBAAyB,OACvB,gBACqC;AACrC,SAAO;GACL,GAAG;GACH,QAAQ,KAAK;GACb,aAAa,KAAK;GACnB;;CAGH,kBACE,YACiB;EACjB,MAAM,EAAE,MAAM,sBAAsB;EAEpC,MAAM,oBAAoBC,4BAAAA,cAAc,KAAK,OAAO,UAAU,QAAQ;EAEtE,MAAM,QAAQ;GACZ,IAAIC,0CAAAA,wBAAwB;GAC5B,IAAIC,wCAAAA,sBAAsB;GAC1B,IAAIC,UAAAA,kBAAkB;GACtB,IAAIC,UAAAA,wBAAwB;GAC5B,IAAIC,0CAAAA,wBAAwB;GAC5B,IAAIC,8CAAAA,4BAA4B;GAChC,IAAIC,UAAAA,6BACF,oBAAoB,oBAAoB,OACzC;GACF;EAED,MAAM,qBAAqB,KAAK,cAAc,WAC5C,MACA,oBAAoB,gBAAgB,OACrC;EAED,MAAM,mBACJ,CAAC,oBAAoB,UACrB,CAAC,qBACD,CAAC,CAAC,KAAK,SAAS,mBAChB,CAAC,KAAK,SAAS;EAEjB,IAAI;AACJ,MAAI,iBACF,YAAWN,0CAAAA,uBAAuB;MAElC,YACE,oBAAoB,UAAU,oBAAoB,WAAW,SACzDM,UAAAA,6BAA6B,OAC7BJ,UAAAA,iBAAiB;EAGzB,MAAM,iBAAiB,MAAM,WAC1B,SAAS,KAAK,YAAY,SAAS,SACrC;AAID,SAAO,IAAIK,UAAAA,aAFQ,MAAM,MAAM,eAAe,CAEX"}
@@ -1,2 +1,8 @@
1
- export declare const TRON_POLL_INTERVAL_MS = 3000;
2
- export declare const TRON_POLL_MAX_RETRIES = 20;
1
+ //#region src/core/constants.d.ts
2
+ declare const TRON_POLL_INTERVAL_MS = 3e3;
3
+ declare const TRON_POLL_MAX_POLLS = 40;
4
+ declare const TRON_POLL_MAX_ERROR_RETRIES = 5;
5
+ declare const DEFAULT_MULTICALL_BATCH_SIZE = 50;
6
+ //#endregion
7
+ export { DEFAULT_MULTICALL_BATCH_SIZE, TRON_POLL_INTERVAL_MS, TRON_POLL_MAX_ERROR_RETRIES, TRON_POLL_MAX_POLLS };
8
+ //# sourceMappingURL=constants.d.ts.map