@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,218 @@
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
+ const account_1 = require("@ledgerhq/coin-framework/account");
16
+ const errors_1 = require("@ledgerhq/errors");
17
+ const currencies_1 = require("@ledgerhq/coin-framework/currencies");
18
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
19
+ const sumBy_1 = __importDefault(require("lodash/sumBy"));
20
+ const constants_1 = require("../logic/constants");
21
+ const network_1 = require("../network");
22
+ const errors_2 = require("../types/errors");
23
+ const getEstimateFees_1 = __importDefault(require("./getEstimateFees"));
24
+ const getTransactionStatus = (acc, transaction) => __awaiter(void 0, void 0, void 0, function* () {
25
+ var _a, _b, _c, _d;
26
+ const errors = {};
27
+ const warnings = {};
28
+ const { family, mode, recipient, resource, votes, useAllAmount = false } = transaction;
29
+ const tokenAccount = !transaction.subAccountId
30
+ ? null
31
+ : acc.subAccounts && acc.subAccounts.find(ta => ta.id === transaction.subAccountId);
32
+ const account = tokenAccount || acc;
33
+ const isContractAddressRecipient = (yield (0, network_1.fetchTronContract)(recipient)) !== undefined;
34
+ if (mode === "send" && !recipient) {
35
+ errors.recipient = new errors_1.RecipientRequired();
36
+ }
37
+ if (["send", "unDelegateResource", "legacyUnfreeze"].includes(mode)) {
38
+ if (recipient === acc.freshAddress) {
39
+ errors.recipient = new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
40
+ }
41
+ else if (recipient && !(yield (0, network_1.validateAddress)(recipient))) {
42
+ errors.recipient = new errors_1.InvalidAddress(undefined, {
43
+ currencyName: acc.currency.name,
44
+ });
45
+ }
46
+ else if (recipient &&
47
+ mode === "send" &&
48
+ account.type === "TokenAccount" &&
49
+ account.token.tokenType === "trc20" &&
50
+ !isContractAddressRecipient && // send trc20 to a smart contract is allowed
51
+ (yield (0, network_1.fetchTronAccount)(recipient)).length === 0) {
52
+ // send trc20 to a new account is forbidden by us (because it will not activate the account)
53
+ errors.recipient = new errors_2.TronSendTrc20ToNewAccountForbidden();
54
+ }
55
+ }
56
+ if (mode === "unfreeze") {
57
+ const { bandwidth, energy } = acc.tronResources.frozen;
58
+ if (resource === "BANDWIDTH" && transaction.amount.gt((bandwidth === null || bandwidth === void 0 ? void 0 : bandwidth.amount) || new bignumber_js_1.default(0))) {
59
+ errors.resource = new errors_2.TronNoFrozenForBandwidth();
60
+ }
61
+ else if (resource === "ENERGY" && transaction.amount.gt((energy === null || energy === void 0 ? void 0 : energy.amount) || new bignumber_js_1.default(0))) {
62
+ errors.resource = new errors_2.TronNoFrozenForEnergy();
63
+ }
64
+ }
65
+ if (mode === "legacyUnfreeze") {
66
+ const now = new Date();
67
+ const expirationDate = resource === "ENERGY"
68
+ ? (_a = acc.tronResources.legacyFrozen.energy) === null || _a === void 0 ? void 0 : _a.expiredAt
69
+ : (_b = acc.tronResources.legacyFrozen.bandwidth) === null || _b === void 0 ? void 0 : _b.expiredAt;
70
+ if (!expirationDate) {
71
+ if (resource === "BANDWIDTH") {
72
+ errors.resource = new errors_2.TronNoFrozenForBandwidth();
73
+ }
74
+ else {
75
+ errors.resource = new errors_2.TronNoFrozenForEnergy();
76
+ }
77
+ }
78
+ else if (now.getTime() < expirationDate.getTime()) {
79
+ errors.resource = new errors_2.TronLegacyUnfreezeNotExpired();
80
+ }
81
+ }
82
+ if (mode === "withdrawExpireUnfreeze") {
83
+ const now = new Date();
84
+ if ((!acc.tronResources.unFrozen.bandwidth ||
85
+ acc.tronResources.unFrozen.bandwidth.length === 0) &&
86
+ (!acc.tronResources.unFrozen.energy || acc.tronResources.unFrozen.energy.length === 0)) {
87
+ errors.resource = new errors_2.TronNoUnfrozenResource();
88
+ }
89
+ else {
90
+ const unfreezingResources = [
91
+ ...((_c = acc.tronResources.unFrozen.bandwidth) !== null && _c !== void 0 ? _c : []),
92
+ ...((_d = acc.tronResources.unFrozen.energy) !== null && _d !== void 0 ? _d : []),
93
+ ];
94
+ const hasNoExpiredResource = !unfreezingResources.some(unfrozen => unfrozen.expireTime.getTime() <= now.getTime());
95
+ if (hasNoExpiredResource) {
96
+ const closestExpireTime = unfreezingResources.reduce((closest, current) => {
97
+ if (!closest) {
98
+ return current;
99
+ }
100
+ const closestTimeDifference = Math.abs(closest.expireTime.getTime() - now.getTime());
101
+ const currentTimeDifference = Math.abs(current.expireTime.getTime() - now.getTime());
102
+ return currentTimeDifference < closestTimeDifference ? current : closest;
103
+ });
104
+ errors.resource = new errors_2.TronUnfreezeNotExpired(undefined, {
105
+ time: closestExpireTime.expireTime.toISOString(),
106
+ });
107
+ }
108
+ }
109
+ }
110
+ if (mode === "unDelegateResource" && resource && acc.tronResources) {
111
+ const delegatedResourceAmount = yield (0, network_1.getDelegatedResource)(acc, transaction, resource);
112
+ if (delegatedResourceAmount.lt(transaction.amount)) {
113
+ errors.resource = new errors_2.TronInvalidUnDelegateResourceAmount();
114
+ }
115
+ }
116
+ if (mode === "vote") {
117
+ if (votes.length === 0) {
118
+ errors.vote = new errors_2.TronVoteRequired();
119
+ }
120
+ else {
121
+ const superRepresentatives = yield (0, network_1.getTronSuperRepresentatives)();
122
+ const isValidVoteCounts = votes.every(v => v.voteCount > 0);
123
+ const isValidAddresses = votes.every(v => superRepresentatives.some(s => s.address === v.address));
124
+ if (!isValidAddresses) {
125
+ errors.vote = new errors_1.InvalidAddress("", {
126
+ currencyName: acc.currency.name,
127
+ });
128
+ }
129
+ else if (!isValidVoteCounts) {
130
+ errors.vote = new errors_2.TronInvalidVoteCount();
131
+ }
132
+ else {
133
+ const totalVoteCount = (0, sumBy_1.default)(votes, "voteCount");
134
+ const tronPower = (acc.tronResources && acc.tronResources.tronPower) || 0;
135
+ if (totalVoteCount > tronPower) {
136
+ errors.vote = new errors_2.TronNotEnoughTronPower();
137
+ }
138
+ }
139
+ }
140
+ }
141
+ if (mode === "claimReward") {
142
+ const lastRewardOp = account.operations.find(o => o.type === "REWARD");
143
+ const claimableRewardDate = lastRewardOp
144
+ ? new Date(lastRewardOp.date.getTime() + 24 * 60 * 60 * 1000) // date + 24 hours
145
+ : new Date();
146
+ if (acc.tronResources && acc.tronResources.unwithdrawnReward.eq(0)) {
147
+ errors.reward = new errors_2.TronNoReward();
148
+ }
149
+ else if (lastRewardOp && claimableRewardDate.valueOf() > new Date().valueOf()) {
150
+ errors.reward = new errors_2.TronRewardNotAvailable("Reward is not claimable", {
151
+ until: claimableRewardDate.toISOString(),
152
+ });
153
+ }
154
+ }
155
+ const estimatedFees = Object.entries(errors).length > 0
156
+ ? new bignumber_js_1.default(0)
157
+ : yield (0, getEstimateFees_1.default)(acc, transaction, isContractAddressRecipient);
158
+ const balance = account.type === "Account"
159
+ ? bignumber_js_1.default.max(0, account.spendableBalance.minus(estimatedFees))
160
+ : account.balance;
161
+ const amount = useAllAmount ? balance : transaction.amount;
162
+ const amountSpent = ["send", "freeze", "undelegateResource"].includes(mode)
163
+ ? amount
164
+ : new bignumber_js_1.default(0);
165
+ if (mode === "freeze" && amount.lt(constants_1.ONE_TRX)) {
166
+ errors.amount = new errors_2.TronInvalidFreezeAmount();
167
+ }
168
+ // fees are applied in the parent only (TRX)
169
+ const totalSpent = account.type === "Account" ? amountSpent.plus(estimatedFees) : amountSpent;
170
+ if (["send", "freeze"].includes(mode)) {
171
+ if (amount.eq(0)) {
172
+ errors.amount = new errors_1.AmountRequired();
173
+ }
174
+ if (amountSpent.eq(0)) {
175
+ errors.amount = useAllAmount ? new errors_1.NotEnoughBalance() : new errors_1.AmountRequired();
176
+ }
177
+ else if (amount.gt(balance)) {
178
+ errors.amount = new errors_1.NotEnoughBalance();
179
+ }
180
+ else if (account.type === "TokenAccount" && estimatedFees.gt(acc.balance)) {
181
+ errors.amount = new errors_1.NotEnoughBalance();
182
+ }
183
+ const energy = (acc.tronResources && acc.tronResources.energy) || new bignumber_js_1.default(0);
184
+ // For the moment, we rely on this rule:
185
+ // Add a 'TronNotEnoughEnergy' warning only if the account sastifies theses 3 conditions:
186
+ // - no energy
187
+ // - balance is lower than 1 TRX
188
+ // - contract consumes user energy (ie: user's ratio > 0%)
189
+ if (account.type === "TokenAccount" &&
190
+ account.token.tokenType === "trc20" &&
191
+ energy.lt(47619) // temporary value corresponding to usdt trc20 energy
192
+ ) {
193
+ const contractUserEnergyConsumption = yield (0, network_1.getContractUserEnergyRatioConsumption)(account.token.contractAddress);
194
+ if (contractUserEnergyConsumption > 0) {
195
+ warnings.amount = new errors_2.TronNotEnoughEnergy();
196
+ }
197
+ }
198
+ }
199
+ if (!errors.recipient && estimatedFees.gt(0)) {
200
+ const fees = (0, currencies_1.formatCurrencyUnit)((0, account_1.getAccountCurrency)(acc).units[0], estimatedFees, {
201
+ showCode: true,
202
+ disableRounding: true,
203
+ });
204
+ warnings.fee = new errors_2.TronUnexpectedFees("Estimated fees", {
205
+ fees,
206
+ });
207
+ }
208
+ return Promise.resolve({
209
+ errors,
210
+ warnings,
211
+ amount: amountSpent,
212
+ estimatedFees,
213
+ totalSpent,
214
+ family,
215
+ });
216
+ });
217
+ exports.default = getTransactionStatus;
218
+ //# sourceMappingURL=getTransactionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { CoinConfig } from "@ledgerhq/coin-framework/config";
2
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
3
+ import type { AccountBridge, CurrencyBridge } from "@ledgerhq/types-live";
4
+ import { type Transaction, TronAccount, TronSigner } from "../types";
5
+ import { TronCoinConfig } from "../config";
6
+ export declare function createBridges(signerContext: SignerContext<TronSigner>, coinConfig: CoinConfig<TronCoinConfig>): {
7
+ currencyBridge: CurrencyBridge;
8
+ accountBridge: AccountBridge<Transaction, TronAccount, import("@ledgerhq/types-live").TransactionStatusCommon, import("@ledgerhq/types-live").AccountRaw>;
9
+ };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAgBrE,OAAO,EAAiB,cAAc,EAAE,MAAM,WAAW,CAAC;AA0C1D,wBAAgB,aAAa,CAC3B,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,EACxC,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC;;;EAQvC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createBridges = void 0;
7
+ const getAddressWrapper_1 = __importDefault(require("@ledgerhq/coin-framework/bridge/getAddressWrapper"));
8
+ const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
9
+ const signer_1 = __importDefault(require("../signer"));
10
+ const broadcast_1 = __importDefault(require("./broadcast"));
11
+ const createTransaction_1 = __importDefault(require("./createTransaction"));
12
+ const estimateMaxSpendable_1 = __importDefault(require("./estimateMaxSpendable"));
13
+ const getTransactionStatus_1 = __importDefault(require("./getTransactionStatus"));
14
+ const preload_1 = require("./preload");
15
+ const prepareTransaction_1 = require("./prepareTransaction");
16
+ const serialization_1 = require("./serialization");
17
+ const signOperation_1 = require("./signOperation");
18
+ const synchronization_1 = require("./synchronization");
19
+ const config_1 = require("../config");
20
+ function buildCurrencyBridge(signerContext) {
21
+ const getAddress = (0, signer_1.default)(signerContext);
22
+ const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
23
+ getAccountShape: synchronization_1.getAccountShape,
24
+ getAddressFn: (0, getAddressWrapper_1.default)(getAddress),
25
+ });
26
+ return {
27
+ preload: preload_1.preload,
28
+ hydrate: preload_1.hydrate,
29
+ scanAccounts,
30
+ };
31
+ }
32
+ function buildAccountBridge(signerContext) {
33
+ const getAddress = (0, signer_1.default)(signerContext);
34
+ const receive = (0, jsHelpers_1.makeAccountBridgeReceive)((0, getAddressWrapper_1.default)(getAddress));
35
+ const signOperation = (0, signOperation_1.buildSignOperation)(signerContext);
36
+ return {
37
+ estimateMaxSpendable: estimateMaxSpendable_1.default,
38
+ createTransaction: createTransaction_1.default,
39
+ updateTransaction: jsHelpers_1.defaultUpdateTransaction,
40
+ getTransactionStatus: getTransactionStatus_1.default,
41
+ prepareTransaction: prepareTransaction_1.prepareTransaction,
42
+ sync: synchronization_1.sync,
43
+ receive,
44
+ signOperation,
45
+ broadcast: broadcast_1.default,
46
+ assignFromAccountRaw: serialization_1.assignFromAccountRaw,
47
+ assignToAccountRaw: serialization_1.assignToAccountRaw,
48
+ fromOperationExtraRaw: serialization_1.fromOperationExtraRaw,
49
+ toOperationExtraRaw: serialization_1.toOperationExtraRaw,
50
+ };
51
+ }
52
+ function createBridges(signerContext, coinConfig) {
53
+ (0, config_1.setCoinConfig)(coinConfig);
54
+ return {
55
+ currencyBridge: buildCurrencyBridge(signerContext),
56
+ accountBridge: buildAccountBridge(signerContext),
57
+ };
58
+ }
59
+ exports.createBridges = createBridges;
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":";;;;;;AAAA,0GAAkF;AAClF,yEAImD;AAKnD,uDAAyC;AACzC,4DAAoC;AACpC,4EAAoD;AACpD,kFAA0D;AAC1D,kFAA0D;AAC1D,uCAA6C;AAC7C,6DAA0D;AAC1D,mDAKyB;AACzB,mDAAqD;AACrD,uDAA0D;AAC1D,sCAA0D;AAE1D,SAAS,mBAAmB,CAAC,aAAwC;IACnE,MAAM,UAAU,GAAG,IAAA,gBAAgB,EAAC,aAAa,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,IAAA,4BAAgB,EAAC;QACpC,eAAe,EAAf,iCAAe;QACf,YAAY,EAAE,IAAA,2BAAiB,EAAC,UAAU,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAP,iBAAO;QACP,OAAO,EAAP,iBAAO;QACP,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,aAAwC;IAExC,MAAM,UAAU,GAAG,IAAA,gBAAgB,EAAC,aAAa,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,IAAA,oCAAwB,EAAC,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAA,kCAAkB,EAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACL,oBAAoB,EAApB,8BAAoB;QACpB,iBAAiB,EAAjB,2BAAiB;QACjB,iBAAiB,EAAE,oCAAwB;QAC3C,oBAAoB,EAApB,8BAAoB;QACpB,kBAAkB,EAAlB,uCAAkB;QAClB,IAAI,EAAJ,sBAAI;QACJ,OAAO;QACP,aAAa;QACb,SAAS,EAAT,mBAAS;QACT,oBAAoB,EAApB,oCAAoB;QACpB,kBAAkB,EAAlB,kCAAkB;QAClB,qBAAqB,EAArB,qCAAqB;QACrB,mBAAmB,EAAnB,mCAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAC3B,aAAwC,EACxC,UAAsC;IAEtC,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAC;IAE1B,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,8 @@
1
+ import { SuperRepresentative } from "../types";
2
+ export declare const preload: () => Promise<{
3
+ superRepresentatives: SuperRepresentative[];
4
+ }>;
5
+ export declare const hydrate: (data?: {
6
+ superRepresentatives?: SuperRepresentative[];
7
+ }) => void;
8
+ //# sourceMappingURL=preload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../src/bridge/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,OAAO;;EAKnB,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW;IAAE,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAAE,SAa9E,CAAC"}
@@ -0,0 +1,32 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.hydrate = exports.preload = void 0;
13
+ const network_1 = require("../network");
14
+ const preload = () => __awaiter(void 0, void 0, void 0, function* () {
15
+ const superRepresentatives = yield (0, network_1.getTronSuperRepresentatives)();
16
+ return {
17
+ superRepresentatives,
18
+ };
19
+ });
20
+ exports.preload = preload;
21
+ const hydrate = (data) => {
22
+ if (!data || !data.superRepresentatives)
23
+ return;
24
+ const { superRepresentatives } = data;
25
+ if (!superRepresentatives ||
26
+ typeof superRepresentatives !== "object" ||
27
+ !Array.isArray(superRepresentatives))
28
+ return;
29
+ (0, network_1.hydrateSuperRepresentatives)(superRepresentatives);
30
+ };
31
+ exports.hydrate = hydrate;
32
+ //# sourceMappingURL=preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/bridge/preload.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAsF;AAG/E,MAAM,OAAO,GAAG,GAAS,EAAE;IAChC,MAAM,oBAAoB,GAAG,MAAM,IAAA,qCAA2B,GAAE,CAAC;IACjE,OAAO;QACL,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAA,CAAC;AALW,QAAA,OAAO,WAKlB;AAEK,MAAM,OAAO,GAAG,CAAC,IAAuD,EAAE,EAAE;IACjF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB;QAAE,OAAO;IAEhD,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IAEtC,IACE,CAAC,oBAAoB;QACrB,OAAO,oBAAoB,KAAK,QAAQ;QACxC,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAEpC,OAAO;IAET,IAAA,qCAA2B,EAAC,oBAAoB,CAAC,CAAC;AACpD,CAAC,CAAC;AAbW,QAAA,OAAO,WAalB"}
@@ -0,0 +1,4 @@
1
+ import { AccountBridge } from "@ledgerhq/types-live";
2
+ import { Transaction, TronAccount } from "../types";
3
+ export declare const prepareTransaction: AccountBridge<Transaction, TronAccount>["prepareTransaction"];
4
+ //# sourceMappingURL=prepareTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,WAAW,EACX,WAAW,CACZ,CAAC,oBAAoB,CAIrB,CAAC"}
@@ -0,0 +1,19 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.prepareTransaction = void 0;
13
+ const network_1 = require("../network");
14
+ const prepareTransaction = (account, transaction) => __awaiter(void 0, void 0, void 0, function* () {
15
+ const networkInfo = transaction.networkInfo || (yield (0, network_1.getTronAccountNetwork)(account.freshAddress));
16
+ return transaction.networkInfo === networkInfo ? transaction : Object.assign(Object.assign({}, transaction), { networkInfo });
17
+ });
18
+ exports.prepareTransaction = prepareTransaction;
19
+ //# sourceMappingURL=prepareTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAAmD;AAG5C,MAAM,kBAAkB,GAGL,CAAO,OAAO,EAAE,WAAW,EAAE,EAAE;IACvD,MAAM,WAAW,GACf,WAAW,CAAC,WAAW,IAAI,CAAC,MAAM,IAAA,+BAAqB,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACjF,OAAO,WAAW,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,iCAAM,WAAW,KAAE,WAAW,GAAE,CAAC;AACjG,CAAC,CAAA,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
@@ -0,0 +1,9 @@
1
+ import { type TronResources, type TronResourcesRaw, type TrongridExtraTxInfo, type TrongridExtraTxInfoRaw } from "../types";
2
+ import { Account, AccountRaw, OperationExtra, OperationExtraRaw } from "@ledgerhq/types-live";
3
+ export declare const toTronResourcesRaw: ({ frozen, unFrozen, delegatedFrozen, legacyFrozen, votes, tronPower, energy, bandwidth, unwithdrawnReward, lastWithdrawnRewardDate, lastVotedDate, cacheTransactionInfoById: cacheTx, }: TronResources) => TronResourcesRaw;
4
+ export declare const fromTronResourcesRaw: ({ frozen, unFrozen, delegatedFrozen, legacyFrozen, votes, tronPower, energy, bandwidth, unwithdrawnReward, lastWithdrawnRewardDate, lastVotedDate, cacheTransactionInfoById: cacheTransactionInfoByIdRaw, }: TronResourcesRaw) => TronResources;
5
+ export declare function assignToAccountRaw(account: Account, accountRaw: AccountRaw): void;
6
+ export declare function assignFromAccountRaw(accountRaw: AccountRaw, account: Account): void;
7
+ export declare function fromOperationExtraRaw(extraRaw: OperationExtraRaw): TrongridExtraTxInfo;
8
+ export declare function toOperationExtraRaw(extra: OperationExtra): TrongridExtraTxInfoRaw;
9
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/bridge/serialization.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9F,eAAO,MAAM,kBAAkB,4LAa5B,aAAa,KAAG,gBAmFlB,CAAC;AACF,eAAO,MAAM,oBAAoB,gNAa9B,gBAAgB,KAAG,aA2FrB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,QAK1E;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,QAI5E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,mBAAmB,CA2BtF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,sBAAsB,CA2BjF"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toOperationExtraRaw = exports.fromOperationExtraRaw = exports.assignFromAccountRaw = exports.assignToAccountRaw = exports.fromTronResourcesRaw = exports.toTronResourcesRaw = void 0;
4
+ const bignumber_js_1 = require("bignumber.js");
5
+ const types_1 = require("../types");
6
+ const toTronResourcesRaw = ({ frozen, unFrozen, delegatedFrozen, legacyFrozen, votes, tronPower, energy, bandwidth, unwithdrawnReward, lastWithdrawnRewardDate, lastVotedDate, cacheTransactionInfoById: cacheTx, }) => {
7
+ const frozenBandwidth = frozen.bandwidth;
8
+ const frozenEnergy = frozen.energy;
9
+ const delegatedFrozenBandwidth = delegatedFrozen.bandwidth;
10
+ const delegatedFrozenEnergy = delegatedFrozen.energy;
11
+ const cacheTransactionInfoById = {};
12
+ const unFrozenBandwidth = unFrozen === null || unFrozen === void 0 ? void 0 : unFrozen.bandwidth;
13
+ const unFrozenEnergy = unFrozen === null || unFrozen === void 0 ? void 0 : unFrozen.energy;
14
+ const legacyFrozenBandwidth = legacyFrozen === null || legacyFrozen === void 0 ? void 0 : legacyFrozen.bandwidth;
15
+ const legacyFrozenEnergy = legacyFrozen === null || legacyFrozen === void 0 ? void 0 : legacyFrozen.energy;
16
+ for (const k in cacheTx) {
17
+ const { fee, blockNumber, withdraw_amount, unfreeze_amount } = cacheTx[k];
18
+ cacheTransactionInfoById[k] = [fee, blockNumber, withdraw_amount, unfreeze_amount];
19
+ }
20
+ return {
21
+ frozen: {
22
+ bandwidth: frozenBandwidth
23
+ ? {
24
+ amount: frozenBandwidth.amount.toString(),
25
+ }
26
+ : undefined,
27
+ energy: frozenEnergy
28
+ ? {
29
+ amount: frozenEnergy.amount.toString(),
30
+ }
31
+ : undefined,
32
+ },
33
+ delegatedFrozen: {
34
+ bandwidth: delegatedFrozenBandwidth
35
+ ? {
36
+ amount: delegatedFrozenBandwidth.amount.toString(),
37
+ }
38
+ : undefined,
39
+ energy: delegatedFrozenEnergy
40
+ ? {
41
+ amount: delegatedFrozenEnergy.amount.toString(),
42
+ }
43
+ : undefined,
44
+ },
45
+ unFrozen: {
46
+ bandwidth: unFrozenBandwidth
47
+ ? unFrozenBandwidth.map(entry => {
48
+ return { amount: entry.amount.toString(), expireTime: entry.expireTime.toISOString() };
49
+ })
50
+ : undefined,
51
+ energy: unFrozenEnergy
52
+ ? unFrozenEnergy.map(entry => {
53
+ return { amount: entry.amount.toString(), expireTime: entry.expireTime.toISOString() };
54
+ })
55
+ : undefined,
56
+ },
57
+ legacyFrozen: {
58
+ bandwidth: legacyFrozenBandwidth
59
+ ? {
60
+ amount: legacyFrozenBandwidth.amount.toString(),
61
+ expiredAt: legacyFrozenBandwidth.expiredAt.toISOString(),
62
+ }
63
+ : undefined,
64
+ energy: legacyFrozenEnergy
65
+ ? {
66
+ amount: legacyFrozenEnergy.amount.toString(),
67
+ expiredAt: legacyFrozenEnergy.expiredAt.toISOString(),
68
+ }
69
+ : undefined,
70
+ },
71
+ votes,
72
+ tronPower,
73
+ energy: energy.toString(),
74
+ bandwidth: {
75
+ freeUsed: bandwidth.freeUsed.toString(),
76
+ freeLimit: bandwidth.freeLimit.toString(),
77
+ gainedUsed: bandwidth.gainedUsed.toString(),
78
+ gainedLimit: bandwidth.gainedLimit.toString(),
79
+ },
80
+ unwithdrawnReward: unwithdrawnReward.toString(),
81
+ lastWithdrawnRewardDate: lastWithdrawnRewardDate
82
+ ? lastWithdrawnRewardDate.toISOString()
83
+ : undefined,
84
+ lastVotedDate: lastVotedDate ? lastVotedDate.toISOString() : undefined,
85
+ cacheTransactionInfoById,
86
+ };
87
+ };
88
+ exports.toTronResourcesRaw = toTronResourcesRaw;
89
+ const fromTronResourcesRaw = ({ frozen, unFrozen, delegatedFrozen, legacyFrozen, votes, tronPower, energy, bandwidth, unwithdrawnReward, lastWithdrawnRewardDate, lastVotedDate, cacheTransactionInfoById: cacheTransactionInfoByIdRaw, }) => {
90
+ const frozenBandwidth = frozen.bandwidth;
91
+ const frozenEnergy = frozen.energy;
92
+ const delegatedFrozenBandwidth = delegatedFrozen.bandwidth;
93
+ const delegatedFrozenEnergy = delegatedFrozen.energy;
94
+ const unFrozenBandwidth = unFrozen === null || unFrozen === void 0 ? void 0 : unFrozen.bandwidth;
95
+ const unFrozenEnergy = unFrozen === null || unFrozen === void 0 ? void 0 : unFrozen.energy;
96
+ const legacyFrozenBandwidth = legacyFrozen === null || legacyFrozen === void 0 ? void 0 : legacyFrozen.bandwidth;
97
+ const legacyFrozenEnergy = legacyFrozen === null || legacyFrozen === void 0 ? void 0 : legacyFrozen.energy;
98
+ const cacheTransactionInfoById = {};
99
+ if (cacheTransactionInfoByIdRaw) {
100
+ for (const k in cacheTransactionInfoByIdRaw) {
101
+ const [fee, blockNumber, withdraw_amount, unfreeze_amount] = cacheTransactionInfoByIdRaw[k];
102
+ cacheTransactionInfoById[k] = {
103
+ fee,
104
+ blockNumber,
105
+ withdraw_amount,
106
+ unfreeze_amount,
107
+ };
108
+ }
109
+ }
110
+ return {
111
+ frozen: {
112
+ bandwidth: frozenBandwidth
113
+ ? {
114
+ amount: new bignumber_js_1.BigNumber(frozenBandwidth.amount),
115
+ }
116
+ : undefined,
117
+ energy: frozenEnergy
118
+ ? {
119
+ amount: new bignumber_js_1.BigNumber(frozenEnergy.amount),
120
+ }
121
+ : undefined,
122
+ },
123
+ delegatedFrozen: {
124
+ bandwidth: delegatedFrozenBandwidth
125
+ ? {
126
+ amount: new bignumber_js_1.BigNumber(delegatedFrozenBandwidth.amount),
127
+ }
128
+ : undefined,
129
+ energy: delegatedFrozenEnergy
130
+ ? {
131
+ amount: new bignumber_js_1.BigNumber(delegatedFrozenEnergy.amount),
132
+ }
133
+ : undefined,
134
+ },
135
+ unFrozen: {
136
+ bandwidth: unFrozenBandwidth
137
+ ? unFrozenBandwidth.map(entry => {
138
+ return { amount: new bignumber_js_1.BigNumber(entry.amount), expireTime: new Date(entry.expireTime) };
139
+ })
140
+ : undefined,
141
+ energy: unFrozenEnergy
142
+ ? unFrozenEnergy.map(entry => {
143
+ return { amount: new bignumber_js_1.BigNumber(entry.amount), expireTime: new Date(entry.expireTime) };
144
+ })
145
+ : undefined,
146
+ },
147
+ legacyFrozen: {
148
+ bandwidth: legacyFrozenBandwidth
149
+ ? {
150
+ amount: new bignumber_js_1.BigNumber(legacyFrozenBandwidth.amount),
151
+ expiredAt: new Date(legacyFrozenBandwidth.expiredAt),
152
+ }
153
+ : undefined,
154
+ energy: legacyFrozenEnergy
155
+ ? {
156
+ amount: new bignumber_js_1.BigNumber(legacyFrozenEnergy.amount),
157
+ expiredAt: new Date(legacyFrozenEnergy.expiredAt),
158
+ }
159
+ : undefined,
160
+ },
161
+ votes,
162
+ tronPower,
163
+ energy: new bignumber_js_1.BigNumber(energy),
164
+ bandwidth: {
165
+ freeUsed: new bignumber_js_1.BigNumber(bandwidth.freeUsed),
166
+ freeLimit: new bignumber_js_1.BigNumber(bandwidth.freeLimit),
167
+ gainedUsed: new bignumber_js_1.BigNumber(bandwidth.gainedUsed),
168
+ gainedLimit: new bignumber_js_1.BigNumber(bandwidth.gainedLimit),
169
+ },
170
+ unwithdrawnReward: new bignumber_js_1.BigNumber(unwithdrawnReward),
171
+ lastWithdrawnRewardDate: lastWithdrawnRewardDate
172
+ ? new Date(lastWithdrawnRewardDate)
173
+ : undefined,
174
+ lastVotedDate: lastVotedDate ? new Date(lastVotedDate) : undefined,
175
+ cacheTransactionInfoById,
176
+ };
177
+ };
178
+ exports.fromTronResourcesRaw = fromTronResourcesRaw;
179
+ function assignToAccountRaw(account, accountRaw) {
180
+ const tronAccount = account;
181
+ if (tronAccount.tronResources) {
182
+ accountRaw.tronResources = (0, exports.toTronResourcesRaw)(tronAccount.tronResources);
183
+ }
184
+ }
185
+ exports.assignToAccountRaw = assignToAccountRaw;
186
+ function assignFromAccountRaw(accountRaw, account) {
187
+ const tronResourcesRaw = accountRaw.tronResources;
188
+ if (tronResourcesRaw)
189
+ account.tronResources = (0, exports.fromTronResourcesRaw)(tronResourcesRaw);
190
+ }
191
+ exports.assignFromAccountRaw = assignFromAccountRaw;
192
+ function fromOperationExtraRaw(extraRaw) {
193
+ const extra = {};
194
+ if (!(0, types_1.isTrongridExtraTxInfoRaw)(extraRaw)) {
195
+ return extra;
196
+ }
197
+ if (extraRaw.frozenAmount) {
198
+ extra.frozenAmount = new bignumber_js_1.BigNumber(extraRaw.frozenAmount);
199
+ }
200
+ if (extraRaw.unfreezeAmount) {
201
+ extra.unfreezeAmount = new bignumber_js_1.BigNumber(extraRaw.unfreezeAmount);
202
+ }
203
+ if (extraRaw.votes) {
204
+ extra.votes = extraRaw.votes;
205
+ }
206
+ if (extraRaw.unDelegatedAmount) {
207
+ extra.unDelegatedAmount = new bignumber_js_1.BigNumber(extraRaw.unDelegatedAmount);
208
+ }
209
+ if (extraRaw.receiverAddress) {
210
+ extra.receiverAddress = extraRaw.receiverAddress;
211
+ }
212
+ return extra;
213
+ }
214
+ exports.fromOperationExtraRaw = fromOperationExtraRaw;
215
+ function toOperationExtraRaw(extra) {
216
+ const extraRaw = {};
217
+ if (!(0, types_1.isTrongridExtraTxInfo)(extra)) {
218
+ return extraRaw;
219
+ }
220
+ if (extra.frozenAmount) {
221
+ extraRaw.frozenAmount = extra.frozenAmount.toString();
222
+ }
223
+ if (extra.unfreezeAmount) {
224
+ extraRaw.unfreezeAmount = extra.unfreezeAmount.toString();
225
+ }
226
+ if (extra.votes) {
227
+ extraRaw.votes = extra.votes;
228
+ }
229
+ if (extra.unDelegatedAmount) {
230
+ extraRaw.unDelegatedAmount = extra.unDelegatedAmount.toString();
231
+ }
232
+ if (extra.receiverAddress) {
233
+ extraRaw.receiverAddress = extra.receiverAddress;
234
+ }
235
+ return extraRaw;
236
+ }
237
+ exports.toOperationExtraRaw = toOperationExtraRaw;
238
+ //# sourceMappingURL=serialization.js.map