@ledgerhq/coin-tron 0.0.1

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 (351) hide show
  1. package/.eslintrc.js +20 -0
  2. package/.turbo/turbo-build.log +4 -0
  3. package/.unimportedrc.json +25 -0
  4. package/LICENSE.txt +21 -0
  5. package/jest.config.js +8 -0
  6. package/jest.integ.config.js +7 -0
  7. package/lib/bridge/broadcast.d.ts +7 -0
  8. package/lib/bridge/broadcast.d.ts.map +1 -0
  9. package/lib/bridge/broadcast.js +26 -0
  10. package/lib/bridge/broadcast.js.map +1 -0
  11. package/lib/bridge/buildOptimisticOperation.d.ts +5 -0
  12. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -0
  13. package/lib/bridge/buildOptimisticOperation.js +101 -0
  14. package/lib/bridge/buildOptimisticOperation.js.map +1 -0
  15. package/lib/bridge/createTransaction.d.ts +4 -0
  16. package/lib/bridge/createTransaction.d.ts.map +1 -0
  17. package/lib/bridge/createTransaction.js +19 -0
  18. package/lib/bridge/createTransaction.js.map +1 -0
  19. package/lib/bridge/deviceTransactionConfig.d.ts +20 -0
  20. package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -0
  21. package/lib/bridge/deviceTransactionConfig.js +65 -0
  22. package/lib/bridge/deviceTransactionConfig.js.map +1 -0
  23. package/lib/bridge/estimateMaxSpendable.d.ts +5 -0
  24. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
  25. package/lib/bridge/estimateMaxSpendable.js +30 -0
  26. package/lib/bridge/estimateMaxSpendable.js.map +1 -0
  27. package/lib/bridge/getEstimateFees.d.ts +6 -0
  28. package/lib/bridge/getEstimateFees.d.ts.map +1 -0
  29. package/lib/bridge/getEstimateFees.js +52 -0
  30. package/lib/bridge/getEstimateFees.js.map +1 -0
  31. package/lib/bridge/getTransactionStatus.d.ts +4 -0
  32. package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
  33. package/lib/bridge/getTransactionStatus.js +218 -0
  34. package/lib/bridge/getTransactionStatus.js.map +1 -0
  35. package/lib/bridge/index.d.ts +10 -0
  36. package/lib/bridge/index.d.ts.map +1 -0
  37. package/lib/bridge/index.js +60 -0
  38. package/lib/bridge/index.js.map +1 -0
  39. package/lib/bridge/preload.d.ts +8 -0
  40. package/lib/bridge/preload.d.ts.map +1 -0
  41. package/lib/bridge/preload.js +32 -0
  42. package/lib/bridge/preload.js.map +1 -0
  43. package/lib/bridge/prepareTransaction.d.ts +4 -0
  44. package/lib/bridge/prepareTransaction.d.ts.map +1 -0
  45. package/lib/bridge/prepareTransaction.js +19 -0
  46. package/lib/bridge/prepareTransaction.js.map +1 -0
  47. package/lib/bridge/serialization.d.ts +9 -0
  48. package/lib/bridge/serialization.d.ts.map +1 -0
  49. package/lib/bridge/serialization.js +238 -0
  50. package/lib/bridge/serialization.js.map +1 -0
  51. package/lib/bridge/signOperation.d.ts +5 -0
  52. package/lib/bridge/signOperation.d.ts.map +1 -0
  53. package/lib/bridge/signOperation.js +92 -0
  54. package/lib/bridge/signOperation.js.map +1 -0
  55. package/lib/bridge/synchronization.d.ts +5 -0
  56. package/lib/bridge/synchronization.d.ts.map +1 -0
  57. package/lib/bridge/synchronization.integ.test.d.ts +3 -0
  58. package/lib/bridge/synchronization.integ.test.d.ts.map +1 -0
  59. package/lib/bridge/synchronization.integ.test.js +96 -0
  60. package/lib/bridge/synchronization.integ.test.js.map +1 -0
  61. package/lib/bridge/synchronization.js +216 -0
  62. package/lib/bridge/synchronization.js.map +1 -0
  63. package/lib/bridge/transaction.d.ts +15 -0
  64. package/lib/bridge/transaction.d.ts.map +1 -0
  65. package/lib/bridge/transaction.js +61 -0
  66. package/lib/bridge/transaction.js.map +1 -0
  67. package/lib/config.d.ts +10 -0
  68. package/lib/config.d.ts.map +1 -0
  69. package/lib/config.js +17 -0
  70. package/lib/config.js.map +1 -0
  71. package/lib/index.d.ts +3 -0
  72. package/lib/index.d.ts.map +1 -0
  73. package/lib/index.js +21 -0
  74. package/lib/index.js.map +1 -0
  75. package/lib/logic/constants.d.ts +4 -0
  76. package/lib/logic/constants.d.ts.map +1 -0
  77. package/lib/logic/constants.js +7 -0
  78. package/lib/logic/constants.js.map +1 -0
  79. package/lib/logic/pagination.d.ts +3 -0
  80. package/lib/logic/pagination.d.ts.map +1 -0
  81. package/lib/logic/pagination.js +19 -0
  82. package/lib/logic/pagination.js.map +1 -0
  83. package/lib/logic/utils.d.ts +12 -0
  84. package/lib/logic/utils.d.ts.map +1 -0
  85. package/lib/logic/utils.js +177 -0
  86. package/lib/logic/utils.js.map +1 -0
  87. package/lib/network/format.d.ts +9 -0
  88. package/lib/network/format.d.ts.map +1 -0
  89. package/lib/network/format.js +127 -0
  90. package/lib/network/format.js.map +1 -0
  91. package/lib/network/index.d.ts +30 -0
  92. package/lib/network/index.d.ts.map +1 -0
  93. package/lib/network/index.integ.test.d.ts +2 -0
  94. package/lib/network/index.integ.test.d.ts.map +1 -0
  95. package/lib/network/index.integ.test.js +38 -0
  96. package/lib/network/index.integ.test.js.map +1 -0
  97. package/lib/network/index.js +555 -0
  98. package/lib/network/index.js.map +1 -0
  99. package/lib/network/index.test.d.ts +2 -0
  100. package/lib/network/index.test.d.ts.map +1 -0
  101. package/lib/network/index.test.js +66 -0
  102. package/lib/network/index.test.js.map +1 -0
  103. package/lib/network/superRepresentativesData.mock.d.ts +69 -0
  104. package/lib/network/superRepresentativesData.mock.d.ts.map +1 -0
  105. package/lib/network/superRepresentativesData.mock.js +2208 -0
  106. package/lib/network/superRepresentativesData.mock.js.map +1 -0
  107. package/lib/network/types.d.ts +122 -0
  108. package/lib/network/types.d.ts.map +1 -0
  109. package/lib/network/types.fixture.d.ts +498 -0
  110. package/lib/network/types.fixture.d.ts.map +1 -0
  111. package/lib/network/types.fixture.js +4375 -0
  112. package/lib/network/types.fixture.js.map +1 -0
  113. package/lib/network/types.js +13 -0
  114. package/lib/network/types.js.map +1 -0
  115. package/lib/signer/getAddress.d.ts +6 -0
  116. package/lib/signer/getAddress.d.ts.map +1 -0
  117. package/lib/signer/getAddress.js +19 -0
  118. package/lib/signer/getAddress.js.map +1 -0
  119. package/lib/signer/index.d.ts +6 -0
  120. package/lib/signer/index.d.ts.map +1 -0
  121. package/lib/signer/index.js +11 -0
  122. package/lib/signer/index.js.map +1 -0
  123. package/lib/test/bot-deviceActions.d.ts +4 -0
  124. package/lib/test/bot-deviceActions.d.ts.map +1 -0
  125. package/lib/test/bot-deviceActions.js +103 -0
  126. package/lib/test/bot-deviceActions.js.map +1 -0
  127. package/lib/test/bot-specs.d.ts +7 -0
  128. package/lib/test/bot-specs.d.ts.map +1 -0
  129. package/lib/test/bot-specs.js +433 -0
  130. package/lib/test/bot-specs.js.map +1 -0
  131. package/lib/test/bridgeDatasetTest.d.ts +4 -0
  132. package/lib/test/bridgeDatasetTest.d.ts.map +1 -0
  133. package/lib/test/bridgeDatasetTest.js +1284 -0
  134. package/lib/test/bridgeDatasetTest.js.map +1 -0
  135. package/lib/test/cli.d.ts +52 -0
  136. package/lib/test/cli.d.ts.map +1 -0
  137. package/lib/test/cli.js +155 -0
  138. package/lib/test/cli.js.map +1 -0
  139. package/lib/test/index.d.ts +6 -0
  140. package/lib/test/index.d.ts.map +1 -0
  141. package/lib/test/index.js +26 -0
  142. package/lib/test/index.js.map +1 -0
  143. package/lib/types/bridge.d.ts +245 -0
  144. package/lib/types/bridge.d.ts.map +1 -0
  145. package/lib/types/bridge.js +16 -0
  146. package/lib/types/bridge.js.map +1 -0
  147. package/lib/types/errors.d.ts +49 -0
  148. package/lib/types/errors.d.ts.map +1 -0
  149. package/lib/types/errors.js +21 -0
  150. package/lib/types/errors.js.map +1 -0
  151. package/lib/types/index.d.ts +4 -0
  152. package/lib/types/index.d.ts.map +1 -0
  153. package/lib/types/index.js +21 -0
  154. package/lib/types/index.js.map +1 -0
  155. package/lib/types/signer.d.ts +10 -0
  156. package/lib/types/signer.d.ts.map +1 -0
  157. package/lib/types/signer.js +3 -0
  158. package/lib/types/signer.js.map +1 -0
  159. package/lib-es/bridge/broadcast.d.ts +7 -0
  160. package/lib-es/bridge/broadcast.d.ts.map +1 -0
  161. package/lib-es/bridge/broadcast.js +24 -0
  162. package/lib-es/bridge/broadcast.js.map +1 -0
  163. package/lib-es/bridge/buildOptimisticOperation.d.ts +5 -0
  164. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -0
  165. package/lib-es/bridge/buildOptimisticOperation.js +94 -0
  166. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -0
  167. package/lib-es/bridge/createTransaction.d.ts +4 -0
  168. package/lib-es/bridge/createTransaction.d.ts.map +1 -0
  169. package/lib-es/bridge/createTransaction.js +14 -0
  170. package/lib-es/bridge/createTransaction.js.map +1 -0
  171. package/lib-es/bridge/deviceTransactionConfig.d.ts +20 -0
  172. package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -0
  173. package/lib-es/bridge/deviceTransactionConfig.js +63 -0
  174. package/lib-es/bridge/deviceTransactionConfig.js.map +1 -0
  175. package/lib-es/bridge/estimateMaxSpendable.d.ts +5 -0
  176. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
  177. package/lib-es/bridge/estimateMaxSpendable.js +25 -0
  178. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
  179. package/lib-es/bridge/getEstimateFees.d.ts +6 -0
  180. package/lib-es/bridge/getEstimateFees.d.ts.map +1 -0
  181. package/lib-es/bridge/getEstimateFees.js +47 -0
  182. package/lib-es/bridge/getEstimateFees.js.map +1 -0
  183. package/lib-es/bridge/getTransactionStatus.d.ts +4 -0
  184. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
  185. package/lib-es/bridge/getTransactionStatus.js +213 -0
  186. package/lib-es/bridge/getTransactionStatus.js.map +1 -0
  187. package/lib-es/bridge/index.d.ts +10 -0
  188. package/lib-es/bridge/index.d.ts.map +1 -0
  189. package/lib-es/bridge/index.js +53 -0
  190. package/lib-es/bridge/index.js.map +1 -0
  191. package/lib-es/bridge/preload.d.ts +8 -0
  192. package/lib-es/bridge/preload.d.ts.map +1 -0
  193. package/lib-es/bridge/preload.js +27 -0
  194. package/lib-es/bridge/preload.js.map +1 -0
  195. package/lib-es/bridge/prepareTransaction.d.ts +4 -0
  196. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
  197. package/lib-es/bridge/prepareTransaction.js +15 -0
  198. package/lib-es/bridge/prepareTransaction.js.map +1 -0
  199. package/lib-es/bridge/serialization.d.ts +9 -0
  200. package/lib-es/bridge/serialization.d.ts.map +1 -0
  201. package/lib-es/bridge/serialization.js +229 -0
  202. package/lib-es/bridge/serialization.js.map +1 -0
  203. package/lib-es/bridge/signOperation.d.ts +5 -0
  204. package/lib-es/bridge/signOperation.d.ts.map +1 -0
  205. package/lib-es/bridge/signOperation.js +85 -0
  206. package/lib-es/bridge/signOperation.js.map +1 -0
  207. package/lib-es/bridge/synchronization.d.ts +5 -0
  208. package/lib-es/bridge/synchronization.d.ts.map +1 -0
  209. package/lib-es/bridge/synchronization.integ.test.d.ts +3 -0
  210. package/lib-es/bridge/synchronization.integ.test.d.ts.map +1 -0
  211. package/lib-es/bridge/synchronization.integ.test.js +89 -0
  212. package/lib-es/bridge/synchronization.integ.test.js.map +1 -0
  213. package/lib-es/bridge/synchronization.js +209 -0
  214. package/lib-es/bridge/synchronization.js.map +1 -0
  215. package/lib-es/bridge/transaction.d.ts +15 -0
  216. package/lib-es/bridge/transaction.d.ts.map +1 -0
  217. package/lib-es/bridge/transaction.js +55 -0
  218. package/lib-es/bridge/transaction.js.map +1 -0
  219. package/lib-es/config.d.ts +10 -0
  220. package/lib-es/config.d.ts.map +1 -0
  221. package/lib-es/config.js +12 -0
  222. package/lib-es/config.js.map +1 -0
  223. package/lib-es/index.d.ts +3 -0
  224. package/lib-es/index.d.ts.map +1 -0
  225. package/lib-es/index.js +3 -0
  226. package/lib-es/index.js.map +1 -0
  227. package/lib-es/logic/constants.d.ts +4 -0
  228. package/lib-es/logic/constants.d.ts.map +1 -0
  229. package/lib-es/logic/constants.js +4 -0
  230. package/lib-es/logic/constants.js.map +1 -0
  231. package/lib-es/logic/pagination.d.ts +3 -0
  232. package/lib-es/logic/pagination.d.ts.map +1 -0
  233. package/lib-es/logic/pagination.js +15 -0
  234. package/lib-es/logic/pagination.js.map +1 -0
  235. package/lib-es/logic/utils.d.ts +12 -0
  236. package/lib-es/logic/utils.d.ts.map +1 -0
  237. package/lib-es/logic/utils.js +167 -0
  238. package/lib-es/logic/utils.js.map +1 -0
  239. package/lib-es/network/format.d.ts +9 -0
  240. package/lib-es/network/format.d.ts.map +1 -0
  241. package/lib-es/network/format.js +117 -0
  242. package/lib-es/network/format.js.map +1 -0
  243. package/lib-es/network/index.d.ts +30 -0
  244. package/lib-es/network/index.d.ts.map +1 -0
  245. package/lib-es/network/index.integ.test.d.ts +2 -0
  246. package/lib-es/network/index.integ.test.d.ts.map +1 -0
  247. package/lib-es/network/index.integ.test.js +36 -0
  248. package/lib-es/network/index.integ.test.js.map +1 -0
  249. package/lib-es/network/index.js +524 -0
  250. package/lib-es/network/index.js.map +1 -0
  251. package/lib-es/network/index.test.d.ts +2 -0
  252. package/lib-es/network/index.test.d.ts.map +1 -0
  253. package/lib-es/network/index.test.js +63 -0
  254. package/lib-es/network/index.test.js.map +1 -0
  255. package/lib-es/network/superRepresentativesData.mock.d.ts +69 -0
  256. package/lib-es/network/superRepresentativesData.mock.d.ts.map +1 -0
  257. package/lib-es/network/superRepresentativesData.mock.js +2206 -0
  258. package/lib-es/network/superRepresentativesData.mock.js.map +1 -0
  259. package/lib-es/network/types.d.ts +122 -0
  260. package/lib-es/network/types.d.ts.map +1 -0
  261. package/lib-es/network/types.fixture.d.ts +498 -0
  262. package/lib-es/network/types.fixture.d.ts.map +1 -0
  263. package/lib-es/network/types.fixture.js +4371 -0
  264. package/lib-es/network/types.fixture.js.map +1 -0
  265. package/lib-es/network/types.js +8 -0
  266. package/lib-es/network/types.js.map +1 -0
  267. package/lib-es/signer/getAddress.d.ts +6 -0
  268. package/lib-es/signer/getAddress.d.ts.map +1 -0
  269. package/lib-es/signer/getAddress.js +17 -0
  270. package/lib-es/signer/getAddress.js.map +1 -0
  271. package/lib-es/signer/index.d.ts +6 -0
  272. package/lib-es/signer/index.d.ts.map +1 -0
  273. package/lib-es/signer/index.js +6 -0
  274. package/lib-es/signer/index.js.map +1 -0
  275. package/lib-es/test/bot-deviceActions.d.ts +4 -0
  276. package/lib-es/test/bot-deviceActions.d.ts.map +1 -0
  277. package/lib-es/test/bot-deviceActions.js +100 -0
  278. package/lib-es/test/bot-deviceActions.js.map +1 -0
  279. package/lib-es/test/bot-specs.d.ts +7 -0
  280. package/lib-es/test/bot-specs.d.ts.map +1 -0
  281. package/lib-es/test/bot-specs.js +428 -0
  282. package/lib-es/test/bot-specs.js.map +1 -0
  283. package/lib-es/test/bridgeDatasetTest.d.ts +4 -0
  284. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -0
  285. package/lib-es/test/bridgeDatasetTest.js +1278 -0
  286. package/lib-es/test/bridgeDatasetTest.js.map +1 -0
  287. package/lib-es/test/cli.d.ts +52 -0
  288. package/lib-es/test/cli.d.ts.map +1 -0
  289. package/lib-es/test/cli.js +149 -0
  290. package/lib-es/test/cli.js.map +1 -0
  291. package/lib-es/test/index.d.ts +6 -0
  292. package/lib-es/test/index.d.ts.map +1 -0
  293. package/lib-es/test/index.js +6 -0
  294. package/lib-es/test/index.js.map +1 -0
  295. package/lib-es/types/bridge.d.ts +245 -0
  296. package/lib-es/types/bridge.d.ts.map +1 -0
  297. package/lib-es/types/bridge.js +11 -0
  298. package/lib-es/types/bridge.js.map +1 -0
  299. package/lib-es/types/errors.d.ts +49 -0
  300. package/lib-es/types/errors.d.ts.map +1 -0
  301. package/lib-es/types/errors.js +18 -0
  302. package/lib-es/types/errors.js.map +1 -0
  303. package/lib-es/types/index.d.ts +4 -0
  304. package/lib-es/types/index.d.ts.map +1 -0
  305. package/lib-es/types/index.js +5 -0
  306. package/lib-es/types/index.js.map +1 -0
  307. package/lib-es/types/signer.d.ts +10 -0
  308. package/lib-es/types/signer.d.ts.map +1 -0
  309. package/lib-es/types/signer.js +2 -0
  310. package/lib-es/types/signer.js.map +1 -0
  311. package/package.json +133 -0
  312. package/src/bridge/broadcast.ts +24 -0
  313. package/src/bridge/buildOptimisticOperation.ts +133 -0
  314. package/src/bridge/createTransaction.ts +16 -0
  315. package/src/bridge/deviceTransactionConfig.ts +99 -0
  316. package/src/bridge/estimateMaxSpendable.ts +32 -0
  317. package/src/bridge/getEstimateFees.ts +52 -0
  318. package/src/bridge/getTransactionStatus.ts +263 -0
  319. package/src/bridge/index.ts +78 -0
  320. package/src/bridge/preload.ts +24 -0
  321. package/src/bridge/prepareTransaction.ts +12 -0
  322. package/src/bridge/serialization.ts +288 -0
  323. package/src/bridge/signOperation.ts +123 -0
  324. package/src/bridge/synchronization.integ.test.ts +105 -0
  325. package/src/bridge/synchronization.ts +284 -0
  326. package/src/bridge/transaction.ts +84 -0
  327. package/src/config.ts +24 -0
  328. package/src/index.ts +3 -0
  329. package/src/logic/constants.ts +4 -0
  330. package/src/logic/pagination.ts +21 -0
  331. package/src/logic/utils.ts +231 -0
  332. package/src/network/format.ts +148 -0
  333. package/src/network/index.integ.test.ts +33 -0
  334. package/src/network/index.test.ts +61 -0
  335. package/src/network/index.ts +747 -0
  336. package/src/network/superRepresentativesData.mock.ts +2205 -0
  337. package/src/network/types.fixture.ts +4476 -0
  338. package/src/network/types.ts +147 -0
  339. package/src/signer/getAddress.ts +13 -0
  340. package/src/signer/index.ts +7 -0
  341. package/src/test/bot-deviceActions.ts +121 -0
  342. package/src/test/bot-specs.ts +457 -0
  343. package/src/test/bridgeDatasetTest.ts +1343 -0
  344. package/src/test/cli.ts +219 -0
  345. package/src/test/index.ts +6 -0
  346. package/src/types/bridge.ts +304 -0
  347. package/src/types/errors.ts +22 -0
  348. package/src/types/index.ts +4 -0
  349. package/src/types/signer.ts +9 -0
  350. package/tsconfig.json +14 -0
  351. package/types/tronweb/index.d.ts +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/logic/pagination.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CACnC,SAAoC,EACpC,UAAsB;IAEtB,MAAM,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC;IACxC,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC;IAChE,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,sBAAsB,IAAI,SAAS,IAAI,SAAS,IAAI,sBAAsB,EAAE,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Account, OperationType } from "@ledgerhq/types-live";
2
+ import { BigNumber } from "bignumber.js";
3
+ import type { BandwidthInfo, NetworkInfo, Transaction, TrongridTxInfo, TronOperation, TronOperationMode, TronResources } from "../types";
4
+ export declare const abiEncodeTrc20Transfer: (address: string, amount: BigNumber) => string;
5
+ export declare const hexToAscii: (hex: string) => string;
6
+ export declare const isParentTx: (tx: TrongridTxInfo) => boolean;
7
+ export declare const getEstimatedBlockSize: (a: Account, t: Transaction) => BigNumber;
8
+ export declare const getOperationTypefromMode: (mode: TronOperationMode) => OperationType;
9
+ export declare const txInfoToOperation: (id: string, address: string, tx: TrongridTxInfo) => TronOperation | null | undefined;
10
+ export declare const extractBandwidthInfo: (networkInfo: NetworkInfo | null | undefined) => BandwidthInfo;
11
+ export declare const defaultTronResources: TronResources;
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACd,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,sBAAsB,YAAa,MAAM,UAAU,SAAS,KAAG,MAM3E,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAAmD,CAAC;AAe7F,eAAO,MAAM,UAAU,OAAQ,cAAc,KAAG,OAAqC,CAAC;AAGtF,eAAO,MAAM,qBAAqB,MAAO,OAAO,KAAK,WAAW,KAAG,SA4BlE,CAAC;AAEF,eAAO,MAAM,wBAAwB,SAAU,iBAAiB,KAAG,aA6BlE,CAAC;AA0CF,eAAO,MAAM,iBAAiB,OACxB,MAAM,WACD,MAAM,MACX,cAAc,KACjB,aAAa,GAAG,IAAI,GAAG,SAoCzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,gBAClB,WAAW,GAAG,IAAI,GAAG,SAAS,KAC1C,aAkBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAyBlC,CAAC"}
@@ -0,0 +1,167 @@
1
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
2
+ import { BigNumber } from "bignumber.js";
3
+ // see: https://solidity.readthedocs.io/en/v0.6.1/abi-spec.html#function-selector-and-argument-encoding
4
+ export const abiEncodeTrc20Transfer = (address, amount) => {
5
+ const encodedAddress = address.padStart(64, "0");
6
+ const hexAmount = amount.toNumber().toString(16); // convert to hexadecimal
7
+ const encodedAmount = hexAmount.padStart(64, "0");
8
+ return encodedAddress.concat(encodedAmount);
9
+ };
10
+ export const hexToAscii = (hex) => Buffer.from(hex, "hex").toString("ascii");
11
+ const parentTx = [
12
+ "TransferContract",
13
+ "VoteWitnessContract",
14
+ "WithdrawBalanceContract",
15
+ "ExchangeTransactionContract",
16
+ "FreezeBalanceV2Contract",
17
+ "UnfreezeBalanceV2Contract",
18
+ "WithdrawExpireUnfreezeContract",
19
+ "UnDelegateResourceContract",
20
+ "FreezeBalanceContract",
21
+ "UnfreezeBalanceContract",
22
+ ];
23
+ export const isParentTx = (tx) => parentTx.includes(tx.type);
24
+ // This is an estimation, there is no endpoint to calculate the real size of a block before broadcasting it.
25
+ export const getEstimatedBlockSize = (a, t) => {
26
+ switch (t.mode) {
27
+ case "send": {
28
+ const subAccount = t.subAccountId && a.subAccounts ? a.subAccounts.find(sa => sa.id === t.subAccountId) : null;
29
+ if (subAccount && subAccount.type === "TokenAccount") {
30
+ if (subAccount.token.tokenType === "trc10")
31
+ return new BigNumber(285);
32
+ if (subAccount.token.tokenType === "trc20")
33
+ return new BigNumber(350);
34
+ }
35
+ return new BigNumber(270);
36
+ }
37
+ case "freeze":
38
+ case "unfreeze":
39
+ case "claimReward":
40
+ case "withdrawExpireUnfreeze":
41
+ case "unDelegateResource":
42
+ case "legacyUnfreeze":
43
+ return new BigNumber(260);
44
+ case "vote":
45
+ return new BigNumber(290 + t.votes.length * 19);
46
+ default:
47
+ return new BigNumber(0);
48
+ }
49
+ };
50
+ export const getOperationTypefromMode = (mode) => {
51
+ switch (mode) {
52
+ case "send":
53
+ return "OUT";
54
+ case "freeze":
55
+ return "FREEZE";
56
+ case "unfreeze":
57
+ return "UNFREEZE";
58
+ case "vote":
59
+ return "VOTE";
60
+ case "claimReward":
61
+ return "REWARD";
62
+ case "withdrawExpireUnfreeze":
63
+ return "WITHDRAW_EXPIRE_UNFREEZE";
64
+ case "unDelegateResource":
65
+ return "UNDELEGATE_RESOURCE";
66
+ case "legacyUnfreeze":
67
+ return "LEGACY_UNFREEZE";
68
+ default:
69
+ return "OUT";
70
+ }
71
+ };
72
+ const getOperationType = (tx, accountAddr) => {
73
+ switch (tx.type) {
74
+ case "TransferContract":
75
+ case "TransferAssetContract":
76
+ case "TriggerSmartContract":
77
+ return tx.from === accountAddr ? "OUT" : "IN";
78
+ case "ExchangeTransactionContract":
79
+ return "OUT";
80
+ case "VoteWitnessContract":
81
+ return "VOTE";
82
+ case "WithdrawBalanceContract":
83
+ return "REWARD";
84
+ case "FreezeBalanceContract":
85
+ case "FreezeBalanceV2Contract":
86
+ return "FREEZE";
87
+ case "UnfreezeBalanceV2Contract":
88
+ return "UNFREEZE";
89
+ case "WithdrawExpireUnfreezeContract":
90
+ return "WITHDRAW_EXPIRE_UNFREEZE";
91
+ case "UnDelegateResourceContract":
92
+ return "UNDELEGATE_RESOURCE";
93
+ case "UnfreezeBalanceContract":
94
+ return "LEGACY_UNFREEZE";
95
+ default:
96
+ return undefined;
97
+ }
98
+ };
99
+ export const txInfoToOperation = (id, address, tx) => {
100
+ const { txID, date, from, to, type, value = new BigNumber(0), fee = new BigNumber(0), blockHeight, extra = {}, hasFailed, } = tx;
101
+ const hash = txID;
102
+ const operationType = getOperationType(tx, address);
103
+ if (operationType) {
104
+ return {
105
+ id: encodeOperationId(id, hash, operationType),
106
+ hash,
107
+ type: operationType,
108
+ value: operationType === "OUT" && type === "TransferContract" ? value.plus(fee) : value,
109
+ // fee is not charged in TRC tokens
110
+ fee: fee,
111
+ blockHeight,
112
+ blockHash: null,
113
+ accountId: id,
114
+ senders: [from],
115
+ recipients: to ? [to] : [],
116
+ date,
117
+ extra,
118
+ hasFailed,
119
+ };
120
+ }
121
+ return undefined;
122
+ };
123
+ export const extractBandwidthInfo = (networkInfo) => {
124
+ // Calculate bandwidth info :
125
+ if (networkInfo) {
126
+ const { freeNetUsed, freeNetLimit, netUsed, netLimit } = networkInfo;
127
+ return {
128
+ freeUsed: freeNetUsed,
129
+ freeLimit: freeNetLimit,
130
+ gainedUsed: netUsed,
131
+ gainedLimit: netLimit,
132
+ };
133
+ }
134
+ return {
135
+ freeUsed: new BigNumber(0),
136
+ freeLimit: new BigNumber(0),
137
+ gainedUsed: new BigNumber(0),
138
+ gainedLimit: new BigNumber(0),
139
+ };
140
+ };
141
+ export const defaultTronResources = {
142
+ frozen: {
143
+ bandwidth: undefined,
144
+ energy: undefined,
145
+ },
146
+ unFrozen: {
147
+ bandwidth: undefined,
148
+ energy: undefined,
149
+ },
150
+ delegatedFrozen: {
151
+ bandwidth: undefined,
152
+ energy: undefined,
153
+ },
154
+ legacyFrozen: {
155
+ bandwidth: undefined,
156
+ energy: undefined,
157
+ },
158
+ votes: [],
159
+ tronPower: 0,
160
+ energy: new BigNumber(0),
161
+ bandwidth: extractBandwidthInfo(null),
162
+ unwithdrawnReward: new BigNumber(0),
163
+ lastWithdrawnRewardDate: undefined,
164
+ lastVotedDate: undefined,
165
+ cacheTransactionInfoById: {},
166
+ };
167
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { TrongridTxInfo, TronTransactionInfo } from "../types";
2
+ import { TransactionTronAPI, Trc20API } from "./types";
3
+ export declare const decode58Check: (base58: string) => string;
4
+ export declare const encode58Check: (hex: string) => string;
5
+ export declare const formatTrongridTrc20TxResponse: (tx: Trc20API) => TrongridTxInfo | null | undefined;
6
+ export declare const formatTrongridTxResponse: (tx: TransactionTronAPI & {
7
+ detail?: TronTransactionInfo;
8
+ }) => TrongridTxInfo | null | undefined;
9
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/network/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKvD,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,MACQ,CAAC;AAExD,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,MAAmD,CAAC;AAEhG,eAAO,MAAM,6BAA6B,OAAQ,QAAQ,KAAG,cAAc,GAAG,IAAI,GAAG,SA0BpF,CAAC;AAEF,eAAO,MAAM,wBAAwB,OAC/B,kBAAkB,GAAG;IAAE,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAAE,KACxD,cAAc,GAAG,IAAI,GAAG,SAyG1B,CAAC"}
@@ -0,0 +1,117 @@
1
+ import get from "lodash/get";
2
+ import BigNumber from "bignumber.js";
3
+ import { log } from "@ledgerhq/logs";
4
+ import bs58check from "bs58check";
5
+ export const decode58Check = (base58) => Buffer.from(bs58check.decode(base58)).toString("hex");
6
+ export const encode58Check = (hex) => bs58check.encode(Buffer.from(hex, "hex"));
7
+ export const formatTrongridTrc20TxResponse = (tx) => {
8
+ var _a;
9
+ try {
10
+ const { from, to, block_timestamp, detail, value, transaction_id, token_info } = tx;
11
+ const type = "TriggerSmartContract";
12
+ const txID = transaction_id;
13
+ const date = new Date(block_timestamp);
14
+ const tokenId = (_a = token_info.address) !== null && _a !== void 0 ? _a : undefined;
15
+ const formattedValue = value ? new BigNumber(value) : new BigNumber(0);
16
+ const fee = tx.detail.ret[0].fee || undefined;
17
+ const blockHeight = detail ? detail.blockNumber : undefined;
18
+ return {
19
+ txID,
20
+ date,
21
+ type,
22
+ tokenId,
23
+ from,
24
+ to,
25
+ blockHeight,
26
+ value: formattedValue,
27
+ fee: new BigNumber(fee || 0),
28
+ hasFailed: false, // trc20 txs are succeeded if returned by trongrid,
29
+ };
30
+ }
31
+ catch (e) {
32
+ log("tron-error", "could not parse transaction", tx);
33
+ return undefined;
34
+ }
35
+ };
36
+ export const formatTrongridTxResponse = (tx) => {
37
+ try {
38
+ const { txID, block_timestamp, detail, blockNumber, unfreeze_amount, withdraw_amount } = tx;
39
+ const date = new Date(block_timestamp);
40
+ const type = tx.raw_data.contract[0].type;
41
+ const { amount, asset_name, owner_address, to_address, contract_address, quant, frozen_balance, votes, unfreeze_balance, balance, receiver_address, } = tx.raw_data.contract[0].parameter.value;
42
+ const hasFailed = get(tx, "ret[0].contractRet", "SUCCESS") !== "SUCCESS";
43
+ const tokenId = type === "TransferAssetContract"
44
+ ? asset_name
45
+ : type === "TriggerSmartContract" && contract_address
46
+ ? encode58Check(contract_address)
47
+ : undefined;
48
+ const from = encode58Check(owner_address);
49
+ const to = to_address ? encode58Check(to_address) : undefined;
50
+ const getValue = () => {
51
+ switch (type) {
52
+ case "WithdrawBalanceContract":
53
+ return new BigNumber(withdraw_amount || (detail === null || detail === void 0 ? void 0 : detail.withdraw_amount) || 0);
54
+ case "ExchangeTransactionContract":
55
+ return new BigNumber(quant || 0);
56
+ default:
57
+ return amount ? new BigNumber(amount) : new BigNumber(0);
58
+ }
59
+ };
60
+ const value = getValue();
61
+ const fee = get(tx, "ret[0].fee", detail && detail.fee ? detail.fee : undefined);
62
+ const blockHeight = blockNumber || (detail === null || detail === void 0 ? void 0 : detail.blockNumber);
63
+ const txInfo = {
64
+ txID,
65
+ date,
66
+ type,
67
+ tokenId,
68
+ from,
69
+ to,
70
+ value: !value.isNaN() ? value : new BigNumber(0),
71
+ fee: new BigNumber(fee || 0),
72
+ blockHeight,
73
+ hasFailed,
74
+ };
75
+ const getExtra = () => {
76
+ switch (type) {
77
+ case "VoteWitnessContract":
78
+ return {
79
+ votes: votes === null || votes === void 0 ? void 0 : votes.map(v => ({
80
+ address: encode58Check(v.vote_address),
81
+ voteCount: v.vote_count,
82
+ })),
83
+ };
84
+ case "FreezeBalanceContract":
85
+ case "FreezeBalanceV2Contract":
86
+ return {
87
+ frozenAmount: new BigNumber(frozen_balance),
88
+ };
89
+ case "UnfreezeBalanceV2Contract":
90
+ return {
91
+ unfreezeAmount: new BigNumber(unfreeze_balance),
92
+ };
93
+ case "UnDelegateResourceContract":
94
+ return {
95
+ unDelegatedAmount: new BigNumber(balance),
96
+ receiverAddress: encode58Check(receiver_address),
97
+ };
98
+ case "UnfreezeBalanceContract":
99
+ return {
100
+ unfreezeAmount: new BigNumber(unfreeze_amount || detail.unfreeze_amount),
101
+ };
102
+ default:
103
+ return undefined;
104
+ }
105
+ };
106
+ const extra = getExtra();
107
+ if (extra) {
108
+ txInfo.extra = extra;
109
+ }
110
+ return txInfo;
111
+ }
112
+ catch (e) {
113
+ log("tron-error", "could not parse transaction", tx);
114
+ return undefined;
115
+ }
116
+ };
117
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/network/format.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAG7B,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAU,EAAE,CACtD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAAY,EAAqC,EAAE;;IAC/F,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QACpF,MAAM,IAAI,GAAG,sBAAsB,CAAC;QACpC,MAAM,IAAI,GAAG,cAAc,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAA,UAAU,CAAC,OAAO,mCAAI,SAAS,CAAC;QAChD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,OAAO;YACL,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,EAAE;YACF,WAAW;YACX,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5B,SAAS,EAAE,KAAK,EAAE,mDAAmD;SACtE,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,YAAY,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,EAAyD,EACtB,EAAE;IACrC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC;QAC5F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,MAAM,EACJ,MAAM,EACN,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,EAAE,oBAAoB,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC;QACzE,MAAM,OAAO,GACX,IAAI,KAAK,uBAAuB;YAC9B,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,KAAK,sBAAsB,IAAI,gBAAgB;gBACnD,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBACjC,CAAC,CAAC,SAAS,CAAC;QAClB,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9D,MAAM,QAAQ,GAAG,GAAc,EAAE;YAC/B,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,yBAAyB;oBAC5B,OAAO,IAAI,SAAS,CAAC,eAAe,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAA,IAAI,CAAC,CAAC,CAAC;gBAExE,KAAK,6BAA6B;oBAChC,OAAO,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAEnC;oBACE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,WAAW,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA,CAAC;QACvD,MAAM,MAAM,GAAmB;YAC7B,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,EAAE;YACF,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;YAChD,GAAG,EAAE,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5B,WAAW;YACX,SAAS;SACV,CAAC;QAEF,MAAM,QAAQ,GAAG,GAA2C,EAAE;YAC5D,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,qBAAqB;oBACxB,OAAO;wBACL,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACtB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,YAAsB,CAAC;4BAChD,SAAS,EAAE,CAAC,CAAC,UAAU;yBACxB,CAAC,CAAC;qBACJ,CAAC;gBAEJ,KAAK,uBAAuB,CAAC;gBAC7B,KAAK,yBAAyB;oBAC5B,OAAO;wBACL,YAAY,EAAE,IAAI,SAAS,CAAC,cAAe,CAAC;qBAC7C,CAAC;gBAEJ,KAAK,2BAA2B;oBAC9B,OAAO;wBACL,cAAc,EAAE,IAAI,SAAS,CAAC,gBAAiB,CAAC;qBACjD,CAAC;gBAEJ,KAAK,4BAA4B;oBAC/B,OAAO;wBACL,iBAAiB,EAAE,IAAI,SAAS,CAAC,OAAQ,CAAC;wBAC1C,eAAe,EAAE,aAAa,CAAC,gBAAiB,CAAC;qBAClD,CAAC;gBAEJ,KAAK,yBAAyB;oBAC5B,OAAO;wBACL,cAAc,EAAE,IAAI,SAAS,CAAC,eAAe,IAAI,MAAO,CAAC,eAAgB,CAAC;qBAC3E,CAAC;gBAEJ;oBACE,OAAO,SAAS,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,YAAY,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Account, SubAccount } from "@ledgerhq/types-live";
2
+ import { BigNumber } from "bignumber.js";
3
+ import type { NetworkInfo, SendTransactionDataSuccess, SuperRepresentative, SuperRepresentativeData, Transaction, TronResource, TronResources, TronTransactionInfo, TrongridTxInfo } from "../types";
4
+ import { MalformedTransactionTronAPI, TransactionTronAPI, Trc20API } from "./types";
5
+ export declare const freezeTronTransaction: (account: Account, transaction: Transaction) => Promise<SendTransactionDataSuccess>;
6
+ export declare const unfreezeTronTransaction: (account: Account, transaction: Transaction) => Promise<SendTransactionDataSuccess>;
7
+ export declare const withdrawExpireUnfreezeTronTransaction: (account: Account, _transaction: Transaction) => Promise<SendTransactionDataSuccess>;
8
+ export declare const unDelegateResourceTransaction: (account: Account, transaction: Transaction) => Promise<SendTransactionDataSuccess>;
9
+ export declare const legacyUnfreezeTronTransaction: (account: Account, transaction: Transaction) => Promise<SendTransactionDataSuccess>;
10
+ export declare function getDelegatedResource(account: Account, transaction: Transaction, resource: TronResource): Promise<BigNumber>;
11
+ export declare const createTronTransaction: (account: Account, transaction: Transaction, subAccount: SubAccount | null | undefined) => Promise<SendTransactionDataSuccess>;
12
+ export declare const broadcastTron: (trxTransaction: SendTransactionDataSuccess) => Promise<any>;
13
+ export declare function fetchTronAccount(addr: string): Promise<any>;
14
+ export declare function fetchCurrentBlockHeight(): Promise<any>;
15
+ export declare function fetchTronAccountTxs(addr: string, shouldFetchMoreTxs: (txs: Array<TransactionTronAPI | Trc20API | MalformedTransactionTronAPI>) => boolean, cacheTransactionInfoById: Record<string, TronTransactionInfo>): Promise<TrongridTxInfo[]>;
16
+ export declare const getContractUserEnergyRatioConsumption: (address: string) => Promise<number>;
17
+ export declare const fetchTronContract: (addr: string) => Promise<Record<string, any> | undefined>;
18
+ export declare const getTronAccountNetwork: (address: string) => Promise<NetworkInfo>;
19
+ export declare const validateAddress: (address: string) => Promise<boolean>;
20
+ export declare const getAccountName: (addr: string) => Promise<string | null | undefined>;
21
+ export declare const getBrokerage: (addr: string) => Promise<number>;
22
+ export declare const getTronSuperRepresentatives: () => Promise<SuperRepresentative[]>;
23
+ export declare const hydrateSuperRepresentatives: (list: SuperRepresentative[]) => void;
24
+ export declare const getNextVotingDate: () => Promise<Date>;
25
+ export declare const getTronSuperRepresentativeData: (max: number | null | undefined) => Promise<SuperRepresentativeData>;
26
+ export declare const voteTronSuperRepresentatives: (account: Account, transaction: Transaction) => Promise<SendTransactionDataSuccess>;
27
+ export declare function getTronResources(acc?: Record<string, any>, txs?: TrongridTxInfo[], cacheTransactionInfoById?: Record<string, TronTransactionInfo>): Promise<TronResources>;
28
+ export declare const getUnwithdrawnReward: (addr: string) => Promise<BigNumber>;
29
+ export declare const claimRewardTronTransaction: (account: Account) => Promise<SendTransactionDataSuccess>;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.integ.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.integ.test.d.ts","sourceRoot":"","sources":["../../src/network/index.integ.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { fetchTronAccountTxs } from ".";
11
+ import { setCoinConfig } from "../config";
12
+ describe("fetchTronAccountTxs", () => {
13
+ beforeAll(() => {
14
+ setCoinConfig(() => ({
15
+ status: {
16
+ type: "active",
17
+ },
18
+ explorer: {
19
+ url: "https://tron.coin.ledger.com",
20
+ },
21
+ }));
22
+ });
23
+ it("maps all fields correctly", () => __awaiter(void 0, void 0, void 0, function* () {
24
+ // WHEN
25
+ // const addr = "TL24LCps5FKwp3PoU1MvrYrwhi5LU1tHre";
26
+ // const addr = "TAVrrARNdnjHgCGMQYeQV7hv4PSu7mVsMj";
27
+ // const addr = "THAe4BNVxp293qgyQEqXEkHMpPcqtG73bi";
28
+ // const addr = "TRqkRnAj6ceJFYAn2p1eE7aWrgBBwtdhS9";
29
+ // const addr = "TUxd6v64YTWkfpFpNDdtgc5Ps4SfGxwizT";
30
+ const addr = "TY2ksFgpvb82TgGPwUSa7iseqPW5weYQyh";
31
+ const results = yield fetchTronAccountTxs(addr, txs => txs.length < 100, {});
32
+ // THEN
33
+ expect(results).not.toHaveLength(0);
34
+ }), 10 * 1000);
35
+ });
36
+ //# sourceMappingURL=index.integ.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/network/index.integ.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;aACf;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,8BAA8B;aACpC;SACF,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CACA,2BAA2B,EAC3B,GAAS,EAAE;QACT,OAAO;QACP,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,MAAM,IAAI,GAAG,oCAAoC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7E,OAAO;QACP,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAA,EACD,EAAE,GAAG,IAAI,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}