@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":"serialization.js","sourceRoot":"","sources":["../../src/bridge/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
2
+ import { SignOperationFnSignature } from "@ledgerhq/types-live";
3
+ import { Transaction, TronAccount, TronSigner } from "../types";
4
+ export declare const buildSignOperation: (signerContext: SignerContext<TronSigner>) => SignOperationFnSignature<Transaction, TronAccount>;
5
+ //# sourceMappingURL=signOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAsB,wBAAwB,EAAgB,MAAM,sBAAsB,CAAC;AAclG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIhE,eAAO,MAAM,kBAAkB,kBACb,cAAc,UAAU,CAAC,KAAG,yBAAyB,WAAW,EAAE,WAAW,CAsEzF,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.buildSignOperation = void 0;
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const rxjs_1 = require("rxjs");
18
+ const network_1 = require("../network");
19
+ const buildOptimisticOperation_1 = require("./buildOptimisticOperation");
20
+ const getEstimateFees_1 = __importDefault(require("./getEstimateFees"));
21
+ const buildSignOperation = (signerContext) => ({ account, transaction, deviceId }) => new rxjs_1.Observable(o => {
22
+ function main() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const subAccount = transaction.subAccountId && account.subAccounts
25
+ ? account.subAccounts.find(sa => sa.id === transaction.subAccountId)
26
+ : undefined;
27
+ const isContractAddressRecipient = (yield (0, network_1.fetchTronContract)(transaction.recipient)) !== undefined;
28
+ const fee = yield (0, getEstimateFees_1.default)(account, transaction, isContractAddressRecipient);
29
+ const balance = subAccount
30
+ ? subAccount.balance
31
+ : bignumber_js_1.default.max(0, account.spendableBalance.minus(fee));
32
+ if (transaction.useAllAmount) {
33
+ transaction = Object.assign({}, transaction); // transaction object must not be mutated
34
+ transaction.amount = balance; // force the amount to be the max
35
+ }
36
+ const { raw_data_hex: rawDataHex, raw_data: rawData, txID: hash, } = yield prepareTransactionForSignature(account, subAccount, transaction);
37
+ o.next({
38
+ type: "device-signature-requested",
39
+ });
40
+ const txArg = {
41
+ rawDataHex,
42
+ // only for trc10, we need to put the token ledger signature
43
+ tokenSignature: subAccount &&
44
+ subAccount.type === "TokenAccount" &&
45
+ subAccount.token.id.includes("trc10")
46
+ ? subAccount.token.ledgerSignature
47
+ : undefined,
48
+ };
49
+ // Sign by device
50
+ const signature = yield signerContext(deviceId, signer => {
51
+ var _a;
52
+ return signer.sign(account.freshAddressPath, (_a = txArg.rawDataHex) !== null && _a !== void 0 ? _a : "", //FIXME: why rawDataHex could be undefined? This shouldn't be the case.
53
+ txArg.tokenSignature ? [txArg.tokenSignature] : []);
54
+ });
55
+ o.next({
56
+ type: "device-signature-granted",
57
+ });
58
+ const operation = (0, buildOptimisticOperation_1.buildOptimisticOperation)(account, subAccount, transaction, fee, hash);
59
+ o.next({
60
+ type: "signed",
61
+ signedOperation: {
62
+ operation,
63
+ signature,
64
+ rawData,
65
+ },
66
+ });
67
+ });
68
+ }
69
+ main().then(() => o.complete(), e => o.error(e));
70
+ });
71
+ exports.buildSignOperation = buildSignOperation;
72
+ const prepareTransactionForSignature = (account, subAccount, transaction) => {
73
+ switch (transaction.mode) {
74
+ case "freeze":
75
+ return (0, network_1.freezeTronTransaction)(account, transaction);
76
+ case "unfreeze":
77
+ return (0, network_1.unfreezeTronTransaction)(account, transaction);
78
+ case "vote":
79
+ return (0, network_1.voteTronSuperRepresentatives)(account, transaction);
80
+ case "claimReward":
81
+ return (0, network_1.claimRewardTronTransaction)(account);
82
+ case "withdrawExpireUnfreeze":
83
+ return (0, network_1.withdrawExpireUnfreezeTronTransaction)(account, transaction);
84
+ case "unDelegateResource":
85
+ return (0, network_1.unDelegateResourceTransaction)(account, transaction);
86
+ case "legacyUnfreeze":
87
+ return (0, network_1.legacyUnfreezeTronTransaction)(account, transaction);
88
+ default:
89
+ return (0, network_1.createTronTransaction)(account, transaction, subAccount);
90
+ }
91
+ };
92
+ //# sourceMappingURL=signOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { GetAccountShape } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ import { TronAccount } from "../types";
3
+ export declare const getAccountShape: GetAccountShape<TronAccount>;
4
+ export declare const sync: (initialAccount: TronAccount, syncConfig: import("@ledgerhq/types-live").SyncConfig) => import("rxjs").Observable<(arg0: TronAccount) => TronAccount>;
5
+ //# sourceMappingURL=synchronization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAetF,OAAO,EAAE,WAAW,EAAsC,MAAM,UAAU,CAAC;AAY3E,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,CAmMxD,CAAC;AAqDF,eAAO,MAAM,IAAI,uJAGf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Account, AccountBridge, SyncConfig, TransactionCommon } from "@ledgerhq/types-live";
2
+ export declare function syncAccount<T extends TransactionCommon, A extends Account = Account>(bridge: AccountBridge<T, A>, account: A, syncConfig?: SyncConfig): Promise<A>;
3
+ //# sourceMappingURL=synchronization.integ.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.integ.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.integ.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAa7F,wBAAgB,WAAW,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAClF,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,EAAE,CAAC,EACV,UAAU,GAAE,UAA8B,GACzC,OAAO,CAAC,CAAC,CAAC,CAIZ"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.syncAccount = void 0;
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const rxjs_1 = require("rxjs");
18
+ const index_1 = require("@ledgerhq/cryptoassets/index");
19
+ const utils_1 = require("../logic/utils");
20
+ const index_2 = require("./index");
21
+ jest.setTimeout(30000);
22
+ const tron = (0, index_1.getCryptoCurrencyById)("tron");
23
+ const defaultSyncConfig = {
24
+ paginationConfig: {},
25
+ blacklistedTokenIds: [],
26
+ };
27
+ function syncAccount(bridge, account, syncConfig = defaultSyncConfig) {
28
+ return (0, rxjs_1.firstValueFrom)(bridge.sync(account, syncConfig).pipe((0, rxjs_1.reduce)((a, f) => f(a), account)));
29
+ }
30
+ exports.syncAccount = syncAccount;
31
+ const dummyAccount = {
32
+ type: "Account",
33
+ id: "",
34
+ derivationMode: "",
35
+ seedIdentifier: "",
36
+ used: false,
37
+ currency: tron,
38
+ index: 0,
39
+ freshAddress: "",
40
+ freshAddressPath: "",
41
+ swapHistory: [],
42
+ blockHeight: 0,
43
+ balance: new bignumber_js_1.default(0),
44
+ spendableBalance: new bignumber_js_1.default(0),
45
+ operationsCount: 0,
46
+ operations: [],
47
+ pendingOperations: [],
48
+ lastSyncDate: new Date(0),
49
+ creationDate: new Date(),
50
+ balanceHistoryCache: {
51
+ HOUR: {
52
+ balances: [],
53
+ latestDate: undefined,
54
+ },
55
+ DAY: {
56
+ balances: [],
57
+ latestDate: undefined,
58
+ },
59
+ WEEK: {
60
+ balances: [],
61
+ latestDate: undefined,
62
+ },
63
+ },
64
+ tronResources: {},
65
+ };
66
+ describe("Tron Accounts", () => {
67
+ let bridge;
68
+ beforeAll(() => {
69
+ const signer = jest.fn();
70
+ const coinConfig = () => ({
71
+ status: {
72
+ type: "active",
73
+ },
74
+ explorer: {
75
+ url: "https://tron.coin.ledger.com",
76
+ },
77
+ });
78
+ bridge = (0, index_2.createBridges)(signer, coinConfig);
79
+ });
80
+ test("should always have tronResources", () => __awaiter(void 0, void 0, void 0, function* () {
81
+ const account = yield syncAccount(bridge.accountBridge, dummyAccount, defaultSyncConfig);
82
+ expect(account.tronResources).toEqual(utils_1.defaultTronResources);
83
+ }));
84
+ test.each([
85
+ "TL24LCps5FKwp3PoU1MvrYrwhi5LU1tHre",
86
+ "TAVrrARNdnjHgCGMQYeQV7hv4PSu7mVsMj",
87
+ "THAe4BNVxp293qgyQEqXEkHMpPcqtG73bi",
88
+ "TRqkRnAj6ceJFYAn2p1eE7aWrgBBwtdhS9",
89
+ "TUxd6v64YTWkfpFpNDdtgc5Ps4SfGxwizT",
90
+ "TY2ksFgpvb82TgGPwUSa7iseqPW5weYQyh",
91
+ ])("should always be sync wihtout error for address %s", (accountId) => __awaiter(void 0, void 0, void 0, function* () {
92
+ const account = yield syncAccount(bridge.accountBridge, Object.assign(Object.assign({}, dummyAccount), { id: `js:2:tron:${accountId}:`, freshAddress: accountId }), defaultSyncConfig);
93
+ expect(account.id).toEqual(`js:2:tron:${accountId}:`);
94
+ }));
95
+ });
96
+ //# sourceMappingURL=synchronization.integ.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.integ.test.js","sourceRoot":"","sources":["../../src/bridge/synchronization.integ.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAqC;AACrC,+BAA8C;AAC9C,wDAAqE;AAGrE,0CAAsD;AAEtD,mCAAwC;AAExC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,MAAM,IAAI,GAAG,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,iBAAiB,GAAG;IACxB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;CACxB,CAAC;AACF,SAAgB,WAAW,CACzB,MAA2B,EAC3B,OAAU,EACV,aAAyB,iBAAiB;IAE1C,OAAO,IAAA,qBAAc,EACnB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CACvF,CAAC;AACJ,CAAC;AARD,kCAQC;AAED,MAAM,YAAY,GAAgB;IAChC,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,EAAE;IACN,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;IACzB,gBAAgB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;IAClC,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,EAAE;IACd,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IACzB,YAAY,EAAE,IAAI,IAAI,EAAE;IACxB,mBAAmB,EAAE;QACnB,IAAI,EAAE;YACJ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS;SACtB;QACD,GAAG,EAAE;YACH,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS;SACtB;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS;SACtB;KACF;IACD,aAAa,EAAE,EAAS;CACzB,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,MAAwC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAmB,EAAE,CAAC,CAAC;YACxC,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;aACf;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,8BAA8B;aACpC;SACF,CAAC,CAAC;QACH,MAAM,GAAG,IAAA,qBAAa,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAS,EAAE;QAClD,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,MAAM,CAAC,aAAa,EACpB,YAAY,EACZ,iBAAiB,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,4BAAoB,CAAC,CAAC;IAC9D,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC;QACR,oCAAoC;QACpC,oCAAoC;QACpC,oCAAoC;QACpC,oCAAoC;QACpC,oCAAoC;QACpC,oCAAoC;KACrC,CAAC,CAAC,oDAAoD,EAAE,CAAO,SAAiB,EAAE,EAAE;QACnF,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,MAAM,CAAC,aAAa,kCACf,YAAY,KAAE,EAAE,EAAE,aAAa,SAAS,GAAG,EAAE,YAAY,EAAE,SAAS,KACzE,iBAAiB,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,SAAS,GAAG,CAAC,CAAC;IACxD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.sync = exports.getAccountShape = void 0;
16
+ const account_1 = require("@ledgerhq/coin-framework/account");
17
+ const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
18
+ const operation_1 = require("@ledgerhq/coin-framework/operation");
19
+ const index_1 = require("@ledgerhq/cryptoassets/index");
20
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
21
+ const compact_1 = __importDefault(require("lodash/compact"));
22
+ const get_1 = __importDefault(require("lodash/get"));
23
+ const pagination_1 = require("../logic/pagination");
24
+ const utils_1 = require("../logic/utils");
25
+ const network_1 = require("../network");
26
+ // the balance does not update straightaway so we should ignore recent operations if they are in pending for a bit
27
+ const PREFER_PENDING_OPERATIONS_UNTIL_BLOCK_VALIDATION = 35;
28
+ const getAccountShape = (_a, syncConfig_1) => __awaiter(void 0, [_a, syncConfig_1], void 0, function* ({ initialAccount, currency, address, derivationMode }, syncConfig) {
29
+ var _b;
30
+ const blockHeight = yield (0, network_1.fetchCurrentBlockHeight)();
31
+ const tronAcc = yield (0, network_1.fetchTronAccount)(address);
32
+ const accountId = (0, account_1.encodeAccountId)({
33
+ type: "js",
34
+ version: "2",
35
+ currencyId: currency.id,
36
+ xpubOrAddress: address,
37
+ derivationMode: derivationMode,
38
+ });
39
+ if (tronAcc.length === 0) {
40
+ const defaultTronResources = yield (0, network_1.getTronResources)();
41
+ return {
42
+ id: accountId,
43
+ blockHeight,
44
+ balance: new bignumber_js_1.default(0),
45
+ tronResources: defaultTronResources,
46
+ };
47
+ }
48
+ const acc = tronAcc[0];
49
+ const spendableBalance = acc.balance ? new bignumber_js_1.default(acc.balance) : new bignumber_js_1.default(0);
50
+ const cacheTransactionInfoById = initialAccount
51
+ ? Object.assign({}, (((_b = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.tronResources) === null || _b === void 0 ? void 0 : _b.cacheTransactionInfoById) || {})) : {};
52
+ const operationsPageSize = Math.min(1000, (0, pagination_1.getOperationsPageSize)(initialAccount && initialAccount.id, syncConfig));
53
+ // FIXME: this is not optional especially that we might already have initialAccount
54
+ // use minimalOperationsBuilderSync to reconciliate and KEEP REF
55
+ const txs = yield (0, network_1.fetchTronAccountTxs)(address, txs => txs.length < operationsPageSize, cacheTransactionInfoById);
56
+ const tronResources = yield (0, network_1.getTronResources)(acc, txs, cacheTransactionInfoById);
57
+ const balance = spendableBalance
58
+ .plus(tronResources.frozen.bandwidth ? tronResources.frozen.bandwidth.amount : new bignumber_js_1.default(0))
59
+ .plus(tronResources.frozen.energy ? tronResources.frozen.energy.amount : new bignumber_js_1.default(0))
60
+ .plus(tronResources.delegatedFrozen.bandwidth
61
+ ? tronResources.delegatedFrozen.bandwidth.amount
62
+ : new bignumber_js_1.default(0))
63
+ .plus(tronResources.delegatedFrozen.energy
64
+ ? tronResources.delegatedFrozen.energy.amount
65
+ : new bignumber_js_1.default(0))
66
+ .plus(tronResources.unFrozen.energy
67
+ ? tronResources.unFrozen.energy.reduce((accum, cur) => {
68
+ return accum.plus(cur.amount);
69
+ }, new bignumber_js_1.default(0))
70
+ : new bignumber_js_1.default(0))
71
+ .plus(tronResources.unFrozen.bandwidth
72
+ ? tronResources.unFrozen.bandwidth.reduce((accum, cur) => {
73
+ return accum.plus(cur.amount);
74
+ }, new bignumber_js_1.default(0))
75
+ : new bignumber_js_1.default(0))
76
+ .plus(tronResources.legacyFrozen.bandwidth
77
+ ? tronResources.legacyFrozen.bandwidth.amount
78
+ : new bignumber_js_1.default(0))
79
+ .plus(tronResources.legacyFrozen.energy
80
+ ? tronResources.legacyFrozen.energy.amount
81
+ : new bignumber_js_1.default(0));
82
+ const parentTxs = txs.filter(utils_1.isParentTx);
83
+ const parentOperations = (0, compact_1.default)(parentTxs.map(tx => (0, utils_1.txInfoToOperation)(accountId, address, tx)));
84
+ const trc10Tokens = (0, get_1.default)(acc, "assetV2", []).reduce((accumulator, { key, value }) => {
85
+ const tokenInfo = (0, index_1.findTokenById)(`tron/trc10/${key}`);
86
+ if (tokenInfo) {
87
+ accumulator.push({
88
+ key,
89
+ type: "trc10",
90
+ tokenId: tokenInfo.id,
91
+ balance: value,
92
+ });
93
+ }
94
+ return accumulator;
95
+ }, []);
96
+ const trc20Tokens = (0, get_1.default)(acc, "trc20", []).reduce((accumulator, trc20) => {
97
+ const [[contractAddress, balance]] = Object.entries(trc20);
98
+ const tokenInfo = (0, index_1.findTokenByAddressInCurrency)(contractAddress, currency.id);
99
+ if (tokenInfo) {
100
+ accumulator.push({
101
+ key: contractAddress,
102
+ type: "trc20",
103
+ tokenId: tokenInfo.id,
104
+ balance,
105
+ });
106
+ }
107
+ return accumulator;
108
+ }, []);
109
+ const { blacklistedTokenIds = [] } = syncConfig;
110
+ const subAccounts = (0, compact_1.default)(trc10Tokens.concat(trc20Tokens).map(({ key, tokenId, balance }) => {
111
+ var _a;
112
+ const { blacklistedTokenIds = [] } = syncConfig;
113
+ const token = (0, index_1.findTokenById)(tokenId);
114
+ if (!token || blacklistedTokenIds.includes(tokenId))
115
+ return;
116
+ const id = (0, account_1.encodeTokenAccountId)(accountId, token);
117
+ const tokenTxs = txs.filter(tx => tx.tokenId === key);
118
+ const operations = (0, compact_1.default)(tokenTxs.map(tx => (0, utils_1.txInfoToOperation)(id, address, tx)));
119
+ const maybeExistingSubAccount = (_a = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.subAccounts) === null || _a === void 0 ? void 0 : _a.find(a => a.id === id);
120
+ const bnBalance = new bignumber_js_1.default(balance);
121
+ const sub = {
122
+ type: "TokenAccount",
123
+ id,
124
+ parentId: accountId,
125
+ token,
126
+ balance: bnBalance,
127
+ spendableBalance: bnBalance,
128
+ operationsCount: operations.length,
129
+ operations,
130
+ pendingOperations: maybeExistingSubAccount ? maybeExistingSubAccount.pendingOperations : [],
131
+ creationDate: operations.length > 0 ? operations[operations.length - 1].date : new Date(),
132
+ swapHistory: maybeExistingSubAccount ? maybeExistingSubAccount.swapHistory : [],
133
+ balanceHistoryCache: account_1.emptyHistoryCache, // calculated in the jsHelpers
134
+ };
135
+ return sub;
136
+ }));
137
+ // Filter blacklisted tokens from the initial account's subAccounts
138
+ // Could be use to filter out tokens that got their CAL id changed
139
+ const filteredInitialSubAccounts = ((initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.subAccounts) || []).filter(subAccount => !blacklistedTokenIds.includes(subAccount.token.id));
140
+ // keep old account with emptyBalance and a history not returned by the BE fixes LIVE-12797
141
+ const mergedSubAccounts = mergeSubAccounts(subAccounts, filteredInitialSubAccounts);
142
+ // get 'OUT' token operations with fee
143
+ const subOutOperationsWithFee = subAccounts
144
+ .flatMap(s => s.operations)
145
+ .filter(o => o.type === "OUT" && o.fee.isGreaterThan(0))
146
+ .map((o) => (Object.assign(Object.assign({}, o), { accountId, value: o.fee, id: (0, operation_1.encodeOperationId)(accountId, o.hash, "OUT"), extra: o.extra })));
147
+ // add them to the parent operations and sort by date desc
148
+ /**
149
+ * FIXME
150
+ *
151
+ * We have a problem here as we're just concatenating ops without ever really linking them.
152
+ * It means no operation can be "FEES" of a subOp by example. It leads to our issues with TRC10/TRC20
153
+ * optimistic operation never really existing in the end.
154
+ */
155
+ const parentOpsAndSubOutOpsWithFee = parentOperations
156
+ .concat(subOutOperationsWithFee)
157
+ .sort((a, b) => b.date.valueOf() - a.date.valueOf());
158
+ return {
159
+ id: accountId,
160
+ balance,
161
+ spendableBalance,
162
+ operationsCount: parentOpsAndSubOutOpsWithFee.length,
163
+ operations: parentOpsAndSubOutOpsWithFee,
164
+ subAccounts: mergedSubAccounts,
165
+ tronResources,
166
+ blockHeight,
167
+ };
168
+ });
169
+ exports.getAccountShape = getAccountShape;
170
+ const postSync = (initial, parent) => {
171
+ function evictRecentOpsIfPending(a) {
172
+ a.pendingOperations.forEach(pending => {
173
+ const i = a.operations.findIndex(o => o.id === pending.id);
174
+ if (i !== -1) {
175
+ const diff = parent.blockHeight - (a.operations[i].blockHeight || 0);
176
+ if (diff < PREFER_PENDING_OPERATIONS_UNTIL_BLOCK_VALIDATION) {
177
+ a.operations.splice(i, 1);
178
+ }
179
+ }
180
+ });
181
+ }
182
+ evictRecentOpsIfPending(parent);
183
+ parent.subAccounts && parent.subAccounts.forEach(evictRecentOpsIfPending);
184
+ return parent;
185
+ };
186
+ /**
187
+ * Merges two arrays of subAccounts according to specific rules:
188
+ * - The first array (subAccounts1) is up-to-date and should not be modified.
189
+ * - Old duplicates from the second array (subAccounts2) should be filtered out.
190
+ * - Only new subAccounts with a unique ID from the second array should be included.
191
+ * - The balance and spendableBalance fields of the second array's subAccounts should be set to 0.
192
+ *
193
+ * @param {Array} subAccounts1 - The first array of subAccounts, which is up-to-date and should not be modified.
194
+ * @param {Array} subAccounts2 - The second array of subAccounts, from which only new unique subAccounts should be included.
195
+ * @returns {Array} - The merged array of subAccounts.
196
+ */
197
+ const mergeSubAccounts = (subAccounts1, subAccounts2) => {
198
+ const existingIds = new Set(subAccounts1.map(subAccount => subAccount.id));
199
+ const filteredSubAccounts2 = subAccounts2
200
+ .map(subAccount => {
201
+ if (existingIds.has(subAccount.id)) {
202
+ return null;
203
+ }
204
+ else {
205
+ // Set balance and spendableBalance to 0 has if they are not here it means balance is 0
206
+ return Object.assign(Object.assign({}, subAccount), { balance: new bignumber_js_1.default(0), spendableBalance: new bignumber_js_1.default(0) });
207
+ }
208
+ })
209
+ .filter((elt) => elt !== null);
210
+ return subAccounts1.concat(filteredSubAccounts2);
211
+ };
212
+ exports.sync = (0, jsHelpers_1.makeSync)({
213
+ getAccountShape: exports.getAccountShape,
214
+ postSync,
215
+ });
216
+ //# sourceMappingURL=synchronization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.js","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Transaction, TransactionRaw } from "../types";
2
+ import type { Account } from "@ledgerhq/types-live";
3
+ export declare const fromTransactionRaw: (tr: TransactionRaw) => Transaction;
4
+ export declare const toTransactionRaw: (t: Transaction) => TransactionRaw;
5
+ export declare const formatTransaction: (t: Transaction, mainAccount: Account) => string;
6
+ declare const _default: {
7
+ formatTransaction: (t: Transaction, mainAccount: Account) => string;
8
+ fromTransactionRaw: (tr: TransactionRaw) => Transaction;
9
+ toTransactionRaw: (t: Transaction) => TransactionRaw;
10
+ fromTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommonRaw) => import("@ledgerhq/types-live").TransactionStatusCommon;
11
+ toTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommon) => import("@ledgerhq/types-live").TransactionStatusCommonRaw;
12
+ formatTransactionStatus: (t: import("@ledgerhq/types-live").TransactionCommon, { errors, warnings, estimatedFees, amount, totalSpent }: import("@ledgerhq/types-live").TransactionStatusCommon, mainAccount: Account) => string;
13
+ };
14
+ export default _default;
15
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,WAoBvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAO,WAAW,KAAG,cAoBjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,WAAW,eAAe,OAAO,KAAG,MAiBxE,CAAC;;;;;;;;;AAEF,wBAOE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatTransaction = exports.toTransactionRaw = exports.fromTransactionRaw = void 0;
4
+ const bignumber_js_1 = require("bignumber.js");
5
+ const formatters_1 = require("@ledgerhq/coin-framework/formatters");
6
+ const serialization_1 = require("@ledgerhq/coin-framework/serialization");
7
+ const account_1 = require("@ledgerhq/coin-framework/account");
8
+ const currencies_1 = require("@ledgerhq/coin-framework/currencies");
9
+ const fromTransactionRaw = (tr) => {
10
+ const common = (0, serialization_1.fromTransactionCommonRaw)(tr);
11
+ const { networkInfo } = tr;
12
+ return Object.assign(Object.assign({}, common), { networkInfo: networkInfo && {
13
+ family: "tron",
14
+ freeNetUsed: new bignumber_js_1.BigNumber(networkInfo.freeNetUsed),
15
+ freeNetLimit: new bignumber_js_1.BigNumber(networkInfo.freeNetLimit),
16
+ netUsed: new bignumber_js_1.BigNumber(networkInfo.netUsed),
17
+ netLimit: new bignumber_js_1.BigNumber(networkInfo.netLimit),
18
+ energyUsed: new bignumber_js_1.BigNumber(networkInfo.energyUsed),
19
+ energyLimit: new bignumber_js_1.BigNumber(networkInfo.energyLimit),
20
+ }, family: tr.family, mode: tr.mode, resource: tr.resource || null, duration: tr.duration || 3, votes: tr.votes });
21
+ };
22
+ exports.fromTransactionRaw = fromTransactionRaw;
23
+ const toTransactionRaw = (t) => {
24
+ const common = (0, serialization_1.toTransactionCommonRaw)(t);
25
+ const { networkInfo } = t;
26
+ return Object.assign(Object.assign({}, common), { networkInfo: networkInfo && {
27
+ family: "tron",
28
+ freeNetUsed: networkInfo.freeNetUsed.toString(),
29
+ freeNetLimit: networkInfo.freeNetLimit.toString(),
30
+ netUsed: networkInfo.netUsed.toString(),
31
+ netLimit: networkInfo.netLimit.toString(),
32
+ energyUsed: networkInfo.energyUsed.toString(),
33
+ energyLimit: networkInfo.energyLimit.toString(),
34
+ }, family: t.family, mode: t.mode, resource: t.resource || null, duration: t.duration || 3, votes: t.votes });
35
+ };
36
+ exports.toTransactionRaw = toTransactionRaw;
37
+ const formatTransaction = (t, mainAccount) => {
38
+ const account = (t.subAccountId && (mainAccount.subAccounts || []).find(a => a.id === t.subAccountId)) ||
39
+ mainAccount;
40
+ return `
41
+ ${t.mode.toUpperCase()}${t.resource ? " " + t.resource : ""} ${t.useAllAmount
42
+ ? "MAX"
43
+ : t.amount.isZero()
44
+ ? ""
45
+ : " " +
46
+ (0, currencies_1.formatCurrencyUnit)((0, account_1.getAccountCurrency)(account).units[0], t.amount, {
47
+ showCode: true,
48
+ disableRounding: true,
49
+ })}${!t.votes ? "" : " " + t.votes.map(v => v.voteCount + "->" + v.address).join(" ")}
50
+ TO ${t.recipient}`;
51
+ };
52
+ exports.formatTransaction = formatTransaction;
53
+ exports.default = {
54
+ formatTransaction: exports.formatTransaction,
55
+ fromTransactionRaw: exports.fromTransactionRaw,
56
+ toTransactionRaw: exports.toTransactionRaw,
57
+ fromTransactionStatusRaw: serialization_1.fromTransactionStatusRawCommon,
58
+ toTransactionStatusRaw: serialization_1.toTransactionStatusRawCommon,
59
+ formatTransactionStatus: formatters_1.formatTransactionStatus,
60
+ };
61
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AAEzC,oEAA8E;AAC9E,0EAKgD;AAEhD,8DAAsE;AACtE,oEAAyE;AAElE,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,IAAA,wCAAwB,EAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IAC3B,uCACK,MAAM,KACT,WAAW,EAAE,WAAW,IAAI;YAC1B,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,WAAW,CAAC;YACnD,YAAY,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;YACrD,OAAO,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,OAAO,CAAC;YAC3C,QAAQ,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC7C,UAAU,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,UAAU,CAAC;YACjD,WAAW,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,WAAW,CAAC;SACpD,EACD,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,EAC7B,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,EAC1B,KAAK,EAAE,EAAE,CAAC,KAAK,IACf;AACJ,CAAC,CAAC;AApBW,QAAA,kBAAkB,sBAoB7B;AAEK,MAAM,gBAAgB,GAAG,CAAC,CAAc,EAAkB,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,sCAAsB,EAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAC1B,uCACK,MAAM,KACT,WAAW,EAAE,WAAW,IAAI;YAC1B,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC/C,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE;YACjD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACzC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7C,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE;SAChD,EACD,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,EAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,EACzB,KAAK,EAAE,CAAC,CAAC,KAAK,IACd;AACJ,CAAC,CAAC;AApBW,QAAA,gBAAgB,oBAoB3B;AAEK,MAAM,iBAAiB,GAAG,CAAC,CAAc,EAAE,WAAoB,EAAU,EAAE;IAChF,MAAM,OAAO,GACX,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;QACtF,WAAW,CAAC;IACd,OAAO;EACP,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IACvD,CAAC,CAAC,YAAY;QACZ,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;YACjB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG;gBACH,IAAA,+BAAkB,EAAC,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;oBACjE,QAAQ,EAAE,IAAI;oBACd,eAAe,EAAE,IAAI;iBACtB,CACT,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAChF,CAAC,CAAC,SAAS,EAAE,CAAC;AACnB,CAAC,CAAC;AAjBW,QAAA,iBAAiB,qBAiB5B;AAEF,kBAAe;IACb,iBAAiB,EAAjB,yBAAiB;IACjB,kBAAkB,EAAlB,0BAAkB;IAClB,gBAAgB,EAAhB,wBAAgB;IAChB,wBAAwB,EAAxB,8CAAwB;IACxB,sBAAsB,EAAtB,4CAAsB;IACtB,uBAAuB,EAAvB,oCAAuB;CACxB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { CurrencyConfig, CoinConfig } from "@ledgerhq/coin-framework/config";
2
+ export type TronConfig = {
3
+ explorer: {
4
+ url: string;
5
+ };
6
+ };
7
+ export type TronCoinConfig = CurrencyConfig & TronConfig;
8
+ export declare const setCoinConfig: (config: CoinConfig<TronCoinConfig>) => void;
9
+ export declare const getCoinConfig: () => TronCoinConfig;
10
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7E,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,UAAU,CAAC;AAIzD,eAAO,MAAM,aAAa,WAAY,WAAW,cAAc,CAAC,KAAG,IAElE,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,cAMhC,CAAC"}
package/lib/config.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCoinConfig = exports.setCoinConfig = void 0;
4
+ const errors_1 = require("@ledgerhq/coin-framework/errors");
5
+ let coinConfig;
6
+ const setCoinConfig = (config) => {
7
+ coinConfig = config;
8
+ };
9
+ exports.setCoinConfig = setCoinConfig;
10
+ const getCoinConfig = () => {
11
+ if (!coinConfig) {
12
+ throw new errors_1.MissingCoinConfig();
13
+ }
14
+ return coinConfig();
15
+ };
16
+ exports.getCoinConfig = getCoinConfig;
17
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AACA,4DAAoE;AAUpE,IAAI,UAAkD,CAAC;AAEhD,MAAM,aAAa,GAAG,CAAC,MAAkC,EAAQ,EAAE;IACxE,UAAU,GAAG,MAAM,CAAC;AACtB,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,aAAa,GAAG,GAAmB,EAAE;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAAiB,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export { createBridges } from "./bridge/index";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}