@ledgerhq/coin-cardano 0.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/.eslintrc.js +20 -0
  2. package/.turbo/turbo-build.log +4 -0
  3. package/.unimportedrc.json +35 -0
  4. package/CHANGELOG.md +19 -0
  5. package/LICENSE.txt +21 -0
  6. package/jest.config.js +8 -0
  7. package/lib/account.d.ts +7 -0
  8. package/lib/account.d.ts.map +1 -0
  9. package/lib/account.js +41 -0
  10. package/lib/account.js.map +1 -0
  11. package/lib/address.unit.test.d.ts +2 -0
  12. package/lib/address.unit.test.d.ts.map +1 -0
  13. package/lib/address.unit.test.js +21 -0
  14. package/lib/address.unit.test.js.map +1 -0
  15. package/lib/api/api-types.d.ts +106 -0
  16. package/lib/api/api-types.d.ts.map +1 -0
  17. package/lib/api/api-types.js +9 -0
  18. package/lib/api/api-types.js.map +1 -0
  19. package/lib/api/getDelegationInfo.d.ts +4 -0
  20. package/lib/api/getDelegationInfo.d.ts.map +1 -0
  21. package/lib/api/getDelegationInfo.js +48 -0
  22. package/lib/api/getDelegationInfo.js.map +1 -0
  23. package/lib/api/getNetworkInfo.d.ts +5 -0
  24. package/lib/api/getNetworkInfo.d.ts.map +1 -0
  25. package/lib/api/getNetworkInfo.js +46 -0
  26. package/lib/api/getNetworkInfo.js.map +1 -0
  27. package/lib/api/getPools.d.ts +5 -0
  28. package/lib/api/getPools.d.ts.map +1 -0
  29. package/lib/api/getPools.js +45 -0
  30. package/lib/api/getPools.js.map +1 -0
  31. package/lib/api/getTransactions.d.ts +10 -0
  32. package/lib/api/getTransactions.d.ts.map +1 -0
  33. package/lib/api/getTransactions.js +139 -0
  34. package/lib/api/getTransactions.js.map +1 -0
  35. package/lib/api/submitTransaction.d.ts +7 -0
  36. package/lib/api/submitTransaction.d.ts.map +1 -0
  37. package/lib/api/submitTransaction.js +34 -0
  38. package/lib/api/submitTransaction.js.map +1 -0
  39. package/lib/bridge/index.d.ts +11 -0
  40. package/lib/bridge/index.d.ts.map +1 -0
  41. package/lib/bridge/index.js +70 -0
  42. package/lib/bridge/index.js.map +1 -0
  43. package/lib/bridge.integration.test.d.ts +4 -0
  44. package/lib/bridge.integration.test.d.ts.map +1 -0
  45. package/lib/bridge.integration.test.js +113 -0
  46. package/lib/bridge.integration.test.js.map +1 -0
  47. package/lib/broadcast.d.ts +8 -0
  48. package/lib/broadcast.d.ts.map +1 -0
  49. package/lib/broadcast.js +28 -0
  50. package/lib/broadcast.js.map +1 -0
  51. package/lib/buildOptimisticOperation.d.ts +4 -0
  52. package/lib/buildOptimisticOperation.d.ts.map +1 -0
  53. package/lib/buildOptimisticOperation.js +125 -0
  54. package/lib/buildOptimisticOperation.js.map +1 -0
  55. package/lib/buildSubAccounts.d.ts +26 -0
  56. package/lib/buildSubAccounts.d.ts.map +1 -0
  57. package/lib/buildSubAccounts.js +124 -0
  58. package/lib/buildSubAccounts.js.map +1 -0
  59. package/lib/buildTransaction.d.ts +11 -0
  60. package/lib/buildTransaction.d.ts.map +1 -0
  61. package/lib/buildTransaction.js +342 -0
  62. package/lib/buildTransaction.js.map +1 -0
  63. package/lib/cli-transaction.d.ts +18 -0
  64. package/lib/cli-transaction.d.ts.map +1 -0
  65. package/lib/cli-transaction.js +66 -0
  66. package/lib/cli-transaction.js.map +1 -0
  67. package/lib/constants.d.ts +8 -0
  68. package/lib/constants.d.ts.map +1 -0
  69. package/lib/constants.js +12 -0
  70. package/lib/constants.js.map +1 -0
  71. package/lib/createTransaction.d.ts +9 -0
  72. package/lib/createTransaction.d.ts.map +1 -0
  73. package/lib/createTransaction.js +23 -0
  74. package/lib/createTransaction.js.map +1 -0
  75. package/lib/datasets/rawAccount.1.d.ts +3 -0
  76. package/lib/datasets/rawAccount.1.d.ts.map +1 -0
  77. package/lib/datasets/rawAccount.1.js +20 -0
  78. package/lib/datasets/rawAccount.1.js.map +1 -0
  79. package/lib/datasets/scanAccounts.d.ts +5 -0
  80. package/lib/datasets/scanAccounts.d.ts.map +1 -0
  81. package/lib/datasets/scanAccounts.js +27 -0
  82. package/lib/datasets/scanAccounts.js.map +1 -0
  83. package/lib/deviceTransactionConfig.d.ts +11 -0
  84. package/lib/deviceTransactionConfig.d.ts.map +1 -0
  85. package/lib/deviceTransactionConfig.js +106 -0
  86. package/lib/deviceTransactionConfig.js.map +1 -0
  87. package/lib/errors.d.ts +22 -0
  88. package/lib/errors.d.ts.map +1 -0
  89. package/lib/errors.js +18 -0
  90. package/lib/errors.js.map +1 -0
  91. package/lib/estimateMaxSpendable.d.ts +9 -0
  92. package/lib/estimateMaxSpendable.d.ts.map +1 -0
  93. package/lib/estimateMaxSpendable.js +53 -0
  94. package/lib/estimateMaxSpendable.js.map +1 -0
  95. package/lib/getTransactionStatus.d.ts +4 -0
  96. package/lib/getTransactionStatus.d.ts.map +1 -0
  97. package/lib/getTransactionStatus.js +214 -0
  98. package/lib/getTransactionStatus.js.map +1 -0
  99. package/lib/getTransactionStatus.unit.test.d.ts +2 -0
  100. package/lib/getTransactionStatus.unit.test.d.ts.map +1 -0
  101. package/lib/getTransactionStatus.unit.test.js +54 -0
  102. package/lib/getTransactionStatus.unit.test.js.map +1 -0
  103. package/lib/hw-getAddress.d.ts +6 -0
  104. package/lib/hw-getAddress.d.ts.map +1 -0
  105. package/lib/hw-getAddress.js +37 -0
  106. package/lib/hw-getAddress.js.map +1 -0
  107. package/lib/logic.d.ts +88 -0
  108. package/lib/logic.d.ts.map +1 -0
  109. package/lib/logic.js +264 -0
  110. package/lib/logic.js.map +1 -0
  111. package/lib/logic.unit.test.d.ts +2 -0
  112. package/lib/logic.unit.test.d.ts.map +1 -0
  113. package/lib/logic.unit.test.js +40 -0
  114. package/lib/logic.unit.test.js.map +1 -0
  115. package/lib/networks.d.ts +3 -0
  116. package/lib/networks.d.ts.map +1 -0
  117. package/lib/networks.js +36 -0
  118. package/lib/networks.js.map +1 -0
  119. package/lib/postSyncPatch.d.ts +6 -0
  120. package/lib/postSyncPatch.d.ts.map +1 -0
  121. package/lib/postSyncPatch.js +35 -0
  122. package/lib/postSyncPatch.js.map +1 -0
  123. package/lib/prepareTransaction.d.ts +10 -0
  124. package/lib/prepareTransaction.d.ts.map +1 -0
  125. package/lib/prepareTransaction.js +44 -0
  126. package/lib/prepareTransaction.js.map +1 -0
  127. package/lib/serialization.d.ts +7 -0
  128. package/lib/serialization.d.ts.map +1 -0
  129. package/lib/serialization.js +146 -0
  130. package/lib/serialization.js.map +1 -0
  131. package/lib/signOperation.d.ts +9 -0
  132. package/lib/signOperation.d.ts.map +1 -0
  133. package/lib/signOperation.js +71 -0
  134. package/lib/signOperation.js.map +1 -0
  135. package/lib/signer.d.ts +92 -0
  136. package/lib/signer.d.ts.map +1 -0
  137. package/lib/signer.js +3 -0
  138. package/lib/signer.js.map +1 -0
  139. package/lib/specs.d.ts +7 -0
  140. package/lib/specs.d.ts.map +1 -0
  141. package/lib/specs.js +218 -0
  142. package/lib/specs.js.map +1 -0
  143. package/lib/speculos-deviceActions.d.ts +4 -0
  144. package/lib/speculos-deviceActions.d.ts.map +1 -0
  145. package/lib/speculos-deviceActions.js +128 -0
  146. package/lib/speculos-deviceActions.js.map +1 -0
  147. package/lib/synchronisation.d.ts +6 -0
  148. package/lib/synchronisation.d.ts.map +1 -0
  149. package/lib/synchronisation.js +237 -0
  150. package/lib/synchronisation.js.map +1 -0
  151. package/lib/synchronisation.unit.test.d.ts +2 -0
  152. package/lib/synchronisation.unit.test.d.ts.map +1 -0
  153. package/lib/synchronisation.unit.test.js +129 -0
  154. package/lib/synchronisation.unit.test.js.map +1 -0
  155. package/lib/transaction.d.ts +15 -0
  156. package/lib/transaction.d.ts.map +1 -0
  157. package/lib/transaction.js +43 -0
  158. package/lib/transaction.js.map +1 -0
  159. package/lib/types.d.ts +188 -0
  160. package/lib/types.d.ts.map +1 -0
  161. package/lib/types.js +18 -0
  162. package/lib/types.js.map +1 -0
  163. package/lib/typhonSerializer.d.ts +17 -0
  164. package/lib/typhonSerializer.d.ts.map +1 -0
  165. package/lib/typhonSerializer.js +213 -0
  166. package/lib/typhonSerializer.js.map +1 -0
  167. package/lib/utils.d.ts +2 -0
  168. package/lib/utils.d.ts.map +1 -0
  169. package/lib/utils.js +8 -0
  170. package/lib/utils.js.map +1 -0
  171. package/lib-es/account.d.ts +7 -0
  172. package/lib-es/account.d.ts.map +1 -0
  173. package/lib-es/account.js +34 -0
  174. package/lib-es/account.js.map +1 -0
  175. package/lib-es/address.unit.test.d.ts +2 -0
  176. package/lib-es/address.unit.test.d.ts.map +1 -0
  177. package/lib-es/address.unit.test.js +19 -0
  178. package/lib-es/address.unit.test.js.map +1 -0
  179. package/lib-es/api/api-types.d.ts +106 -0
  180. package/lib-es/api/api-types.d.ts.map +1 -0
  181. package/lib-es/api/api-types.js +6 -0
  182. package/lib-es/api/api-types.js.map +1 -0
  183. package/lib-es/api/getDelegationInfo.d.ts +4 -0
  184. package/lib-es/api/getDelegationInfo.d.ts.map +1 -0
  185. package/lib-es/api/getDelegationInfo.js +41 -0
  186. package/lib-es/api/getDelegationInfo.js.map +1 -0
  187. package/lib-es/api/getNetworkInfo.d.ts +5 -0
  188. package/lib-es/api/getNetworkInfo.d.ts.map +1 -0
  189. package/lib-es/api/getNetworkInfo.js +39 -0
  190. package/lib-es/api/getNetworkInfo.js.map +1 -0
  191. package/lib-es/api/getPools.d.ts +5 -0
  192. package/lib-es/api/getPools.d.ts.map +1 -0
  193. package/lib-es/api/getPools.js +37 -0
  194. package/lib-es/api/getPools.js.map +1 -0
  195. package/lib-es/api/getTransactions.d.ts +10 -0
  196. package/lib-es/api/getTransactions.d.ts.map +1 -0
  197. package/lib-es/api/getTransactions.js +132 -0
  198. package/lib-es/api/getTransactions.js.map +1 -0
  199. package/lib-es/api/submitTransaction.d.ts +7 -0
  200. package/lib-es/api/submitTransaction.d.ts.map +1 -0
  201. package/lib-es/api/submitTransaction.js +27 -0
  202. package/lib-es/api/submitTransaction.js.map +1 -0
  203. package/lib-es/bridge/index.d.ts +11 -0
  204. package/lib-es/bridge/index.d.ts.map +1 -0
  205. package/lib-es/bridge/index.js +61 -0
  206. package/lib-es/bridge/index.js.map +1 -0
  207. package/lib-es/bridge.integration.test.d.ts +4 -0
  208. package/lib-es/bridge.integration.test.d.ts.map +1 -0
  209. package/lib-es/bridge.integration.test.js +107 -0
  210. package/lib-es/bridge.integration.test.js.map +1 -0
  211. package/lib-es/broadcast.d.ts +8 -0
  212. package/lib-es/broadcast.d.ts.map +1 -0
  213. package/lib-es/broadcast.js +24 -0
  214. package/lib-es/broadcast.js.map +1 -0
  215. package/lib-es/buildOptimisticOperation.d.ts +4 -0
  216. package/lib-es/buildOptimisticOperation.d.ts.map +1 -0
  217. package/lib-es/buildOptimisticOperation.js +118 -0
  218. package/lib-es/buildOptimisticOperation.js.map +1 -0
  219. package/lib-es/buildSubAccounts.d.ts +26 -0
  220. package/lib-es/buildSubAccounts.d.ts.map +1 -0
  221. package/lib-es/buildSubAccounts.js +114 -0
  222. package/lib-es/buildSubAccounts.js.map +1 -0
  223. package/lib-es/buildTransaction.d.ts +11 -0
  224. package/lib-es/buildTransaction.d.ts.map +1 -0
  225. package/lib-es/buildTransaction.js +335 -0
  226. package/lib-es/buildTransaction.js.map +1 -0
  227. package/lib-es/cli-transaction.d.ts +18 -0
  228. package/lib-es/cli-transaction.d.ts.map +1 -0
  229. package/lib-es/cli-transaction.js +60 -0
  230. package/lib-es/cli-transaction.js.map +1 -0
  231. package/lib-es/constants.d.ts +8 -0
  232. package/lib-es/constants.d.ts.map +1 -0
  233. package/lib-es/constants.js +9 -0
  234. package/lib-es/constants.js.map +1 -0
  235. package/lib-es/createTransaction.d.ts +9 -0
  236. package/lib-es/createTransaction.d.ts.map +1 -0
  237. package/lib-es/createTransaction.js +16 -0
  238. package/lib-es/createTransaction.js.map +1 -0
  239. package/lib-es/datasets/rawAccount.1.d.ts +3 -0
  240. package/lib-es/datasets/rawAccount.1.d.ts.map +1 -0
  241. package/lib-es/datasets/rawAccount.1.js +17 -0
  242. package/lib-es/datasets/rawAccount.1.js.map +1 -0
  243. package/lib-es/datasets/scanAccounts.d.ts +5 -0
  244. package/lib-es/datasets/scanAccounts.d.ts.map +1 -0
  245. package/lib-es/datasets/scanAccounts.js +24 -0
  246. package/lib-es/datasets/scanAccounts.js.map +1 -0
  247. package/lib-es/deviceTransactionConfig.d.ts +11 -0
  248. package/lib-es/deviceTransactionConfig.d.ts.map +1 -0
  249. package/lib-es/deviceTransactionConfig.js +101 -0
  250. package/lib-es/deviceTransactionConfig.js.map +1 -0
  251. package/lib-es/errors.d.ts +22 -0
  252. package/lib-es/errors.d.ts.map +1 -0
  253. package/lib-es/errors.js +15 -0
  254. package/lib-es/errors.js.map +1 -0
  255. package/lib-es/estimateMaxSpendable.d.ts +9 -0
  256. package/lib-es/estimateMaxSpendable.d.ts.map +1 -0
  257. package/lib-es/estimateMaxSpendable.js +49 -0
  258. package/lib-es/estimateMaxSpendable.js.map +1 -0
  259. package/lib-es/getTransactionStatus.d.ts +4 -0
  260. package/lib-es/getTransactionStatus.d.ts.map +1 -0
  261. package/lib-es/getTransactionStatus.js +210 -0
  262. package/lib-es/getTransactionStatus.js.map +1 -0
  263. package/lib-es/getTransactionStatus.unit.test.d.ts +2 -0
  264. package/lib-es/getTransactionStatus.unit.test.d.ts.map +1 -0
  265. package/lib-es/getTransactionStatus.unit.test.js +49 -0
  266. package/lib-es/getTransactionStatus.unit.test.js.map +1 -0
  267. package/lib-es/hw-getAddress.d.ts +6 -0
  268. package/lib-es/hw-getAddress.d.ts.map +1 -0
  269. package/lib-es/hw-getAddress.js +35 -0
  270. package/lib-es/hw-getAddress.js.map +1 -0
  271. package/lib-es/logic.d.ts +88 -0
  272. package/lib-es/logic.d.ts.map +1 -0
  273. package/lib-es/logic.js +236 -0
  274. package/lib-es/logic.js.map +1 -0
  275. package/lib-es/logic.unit.test.d.ts +2 -0
  276. package/lib-es/logic.unit.test.d.ts.map +1 -0
  277. package/lib-es/logic.unit.test.js +35 -0
  278. package/lib-es/logic.unit.test.js.map +1 -0
  279. package/lib-es/networks.d.ts +3 -0
  280. package/lib-es/networks.d.ts.map +1 -0
  281. package/lib-es/networks.js +32 -0
  282. package/lib-es/networks.js.map +1 -0
  283. package/lib-es/postSyncPatch.d.ts +6 -0
  284. package/lib-es/postSyncPatch.d.ts.map +1 -0
  285. package/lib-es/postSyncPatch.js +31 -0
  286. package/lib-es/postSyncPatch.js.map +1 -0
  287. package/lib-es/prepareTransaction.d.ts +10 -0
  288. package/lib-es/prepareTransaction.d.ts.map +1 -0
  289. package/lib-es/prepareTransaction.js +40 -0
  290. package/lib-es/prepareTransaction.js.map +1 -0
  291. package/lib-es/serialization.d.ts +7 -0
  292. package/lib-es/serialization.d.ts.map +1 -0
  293. package/lib-es/serialization.js +139 -0
  294. package/lib-es/serialization.js.map +1 -0
  295. package/lib-es/signOperation.d.ts +9 -0
  296. package/lib-es/signOperation.d.ts.map +1 -0
  297. package/lib-es/signOperation.js +64 -0
  298. package/lib-es/signOperation.js.map +1 -0
  299. package/lib-es/signer.d.ts +92 -0
  300. package/lib-es/signer.d.ts.map +1 -0
  301. package/lib-es/signer.js +2 -0
  302. package/lib-es/signer.js.map +1 -0
  303. package/lib-es/specs.d.ts +7 -0
  304. package/lib-es/specs.d.ts.map +1 -0
  305. package/lib-es/specs.js +213 -0
  306. package/lib-es/specs.js.map +1 -0
  307. package/lib-es/speculos-deviceActions.d.ts +4 -0
  308. package/lib-es/speculos-deviceActions.d.ts.map +1 -0
  309. package/lib-es/speculos-deviceActions.js +125 -0
  310. package/lib-es/speculos-deviceActions.js.map +1 -0
  311. package/lib-es/synchronisation.d.ts +6 -0
  312. package/lib-es/synchronisation.d.ts.map +1 -0
  313. package/lib-es/synchronisation.js +230 -0
  314. package/lib-es/synchronisation.js.map +1 -0
  315. package/lib-es/synchronisation.unit.test.d.ts +2 -0
  316. package/lib-es/synchronisation.unit.test.d.ts.map +1 -0
  317. package/lib-es/synchronisation.unit.test.js +124 -0
  318. package/lib-es/synchronisation.unit.test.js.map +1 -0
  319. package/lib-es/transaction.d.ts +15 -0
  320. package/lib-es/transaction.d.ts.map +1 -0
  321. package/lib-es/transaction.js +37 -0
  322. package/lib-es/transaction.js.map +1 -0
  323. package/lib-es/types.d.ts +188 -0
  324. package/lib-es/types.d.ts.map +1 -0
  325. package/lib-es/types.js +15 -0
  326. package/lib-es/types.js.map +1 -0
  327. package/lib-es/typhonSerializer.d.ts +17 -0
  328. package/lib-es/typhonSerializer.d.ts.map +1 -0
  329. package/lib-es/typhonSerializer.js +207 -0
  330. package/lib-es/typhonSerializer.js.map +1 -0
  331. package/lib-es/utils.d.ts +2 -0
  332. package/lib-es/utils.d.ts.map +1 -0
  333. package/lib-es/utils.js +5 -0
  334. package/lib-es/utils.js.map +1 -0
  335. package/package.json +91 -0
  336. package/src/account.ts +39 -0
  337. package/src/address.unit.test.ts +32 -0
  338. package/src/api/api-types.ts +115 -0
  339. package/src/api/getDelegationInfo.ts +39 -0
  340. package/src/api/getNetworkInfo.ts +34 -0
  341. package/src/api/getPools.ts +35 -0
  342. package/src/api/getTransactions.ts +218 -0
  343. package/src/api/submitTransaction.ts +24 -0
  344. package/src/bridge/index.ts +69 -0
  345. package/src/bridge.integration.test.ts +113 -0
  346. package/src/broadcast.ts +21 -0
  347. package/src/buildOptimisticOperation.ts +181 -0
  348. package/src/buildSubAccounts.ts +170 -0
  349. package/src/buildTransaction.ts +435 -0
  350. package/src/cli-transaction.ts +82 -0
  351. package/src/constants.ts +10 -0
  352. package/src/createTransaction.ts +18 -0
  353. package/src/datasets/rawAccount.1.ts +19 -0
  354. package/src/datasets/scanAccounts.ts +23 -0
  355. package/src/deviceTransactionConfig.ts +128 -0
  356. package/src/errors.ts +18 -0
  357. package/src/estimateMaxSpendable.ts +61 -0
  358. package/src/getTransactionStatus.ts +251 -0
  359. package/src/getTransactionStatus.unit.test.ts +45 -0
  360. package/src/hw-getAddress.ts +37 -0
  361. package/src/logic.ts +330 -0
  362. package/src/logic.unit.test.ts +39 -0
  363. package/src/networks.ts +33 -0
  364. package/src/postSyncPatch.ts +42 -0
  365. package/src/prepareTransaction.ts +41 -0
  366. package/src/serialization.ts +219 -0
  367. package/src/signOperation.ts +82 -0
  368. package/src/signer.ts +98 -0
  369. package/src/specs.ts +253 -0
  370. package/src/speculos-deviceActions.ts +132 -0
  371. package/src/synchronisation.ts +347 -0
  372. package/src/synchronisation.unit.test.ts +137 -0
  373. package/src/transaction.ts +66 -0
  374. package/src/types.ts +227 -0
  375. package/src/typhonSerializer.ts +259 -0
  376. package/src/utils.ts +4 -0
  377. package/tsconfig.json +12 -0
@@ -0,0 +1,139 @@
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.getTransactions = void 0;
16
+ const network_1 = __importDefault(require("@ledgerhq/live-network/network"));
17
+ const chunk_1 = __importDefault(require("lodash/chunk"));
18
+ const range_1 = __importDefault(require("lodash/range"));
19
+ const live_env_1 = require("@ledgerhq/live-env");
20
+ const constants_1 = require("../constants");
21
+ const logic_1 = require("../logic");
22
+ const types_1 = require("../types");
23
+ function fetchTransactions(paymentKeys, pageNo, blockHeight, currency) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const res = yield (0, network_1.default)({
26
+ method: "POST",
27
+ url: (0, logic_1.isTestnet)(currency)
28
+ ? `${constants_1.CARDANO_TESTNET_API_ENDPOINT}/v1/transaction`
29
+ : `${constants_1.CARDANO_API_ENDPOINT}/v1/transaction`,
30
+ data: {
31
+ paymentKeys,
32
+ pageNo,
33
+ blockHeight,
34
+ },
35
+ });
36
+ return res.data;
37
+ });
38
+ }
39
+ function getAllTransactionsByKeys(paymentKeys, blockHeight, currency) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const transactions = [];
42
+ let latestBlockHeight = 0;
43
+ let isAllTrxFetched = false;
44
+ let pageNo = 1;
45
+ while (!isAllTrxFetched) {
46
+ const res = yield fetchTransactions(paymentKeys, pageNo, blockHeight, currency);
47
+ transactions.push(...res.transactions);
48
+ latestBlockHeight = Math.max(res.blockHeight, latestBlockHeight);
49
+ isAllTrxFetched = res.transactions.length < res.limit;
50
+ pageNo += 1;
51
+ }
52
+ return {
53
+ transactions,
54
+ blockHeight: latestBlockHeight,
55
+ };
56
+ });
57
+ }
58
+ function getSyncedTransactionsByChain(accountPubKey, accountIndex, chainType, blockHeight, initialPaymentCredentials, currency) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const keyChainRange = (0, live_env_1.getEnv)("KEYCHAIN_OBSERVABLE_RANGE") || 20;
61
+ // credentialsMap for efficient use
62
+ const initialPaymentCredentialMap = {};
63
+ let maxUsedKeyIndex = -1;
64
+ initialPaymentCredentials.forEach(cred => {
65
+ initialPaymentCredentialMap[cred.key] = cred;
66
+ if (cred.isUsed)
67
+ maxUsedKeyIndex = cred.path.index;
68
+ });
69
+ const transactions = [];
70
+ let latestBlockHeight = 0;
71
+ // fetch transactions for existing keys
72
+ const trxsRes = yield Promise.all((0, chunk_1.default)(Object.keys(initialPaymentCredentialMap), keyChainRange).map(keys => getAllTransactionsByKeys(keys, blockHeight, currency)));
73
+ trxsRes.forEach(txRes => {
74
+ transactions.push(...txRes.transactions);
75
+ latestBlockHeight = Math.max(latestBlockHeight, txRes.blockHeight);
76
+ });
77
+ // fetch transactions for new avaialble keys
78
+ let newPaymentCredentialsMap = {};
79
+ let lastSyncedKeyIndex = initialPaymentCredentials.length
80
+ ? initialPaymentCredentials[initialPaymentCredentials.length - 1].path.index
81
+ : -1;
82
+ let syncToKeyIndex = maxUsedKeyIndex + keyChainRange;
83
+ while (syncToKeyIndex !== lastSyncedKeyIndex) {
84
+ const currentPaymentKeysMap = {};
85
+ (0, range_1.default)(lastSyncedKeyIndex + 1, syncToKeyIndex + 1, 1).forEach(keyIndex => {
86
+ const keyPath = (0, logic_1.getCredentialKey)(accountPubKey, (0, logic_1.getBipPath)({
87
+ account: accountIndex,
88
+ chain: chainType,
89
+ index: keyIndex,
90
+ }));
91
+ currentPaymentKeysMap[keyPath.key] = {
92
+ isUsed: false,
93
+ key: keyPath.key,
94
+ path: keyPath.path,
95
+ };
96
+ });
97
+ const trxRes = yield getAllTransactionsByKeys(Object.keys(currentPaymentKeysMap), blockHeight, currency);
98
+ transactions.push(...trxRes.transactions);
99
+ lastSyncedKeyIndex = syncToKeyIndex;
100
+ latestBlockHeight = Math.max(latestBlockHeight, trxRes.blockHeight);
101
+ newPaymentCredentialsMap = Object.assign({}, newPaymentCredentialsMap, currentPaymentKeysMap);
102
+ maxUsedKeyIndex = trxRes.transactions.reduce((maxIndexA, { inputs, outputs }) => [...inputs, ...outputs].reduce((maxIndexB, io) => { var _a; return Math.max(((_a = newPaymentCredentialsMap[io.paymentKey]) === null || _a === void 0 ? void 0 : _a.path.index) || -1, maxIndexB); }, maxIndexA), maxUsedKeyIndex);
103
+ syncToKeyIndex = maxUsedKeyIndex + keyChainRange;
104
+ }
105
+ const availablePaymentCredentialsMap = Object.assign(Object.assign({}, initialPaymentCredentialMap), newPaymentCredentialsMap);
106
+ transactions.forEach(trx => {
107
+ [...trx.inputs, ...trx.outputs].forEach(io => {
108
+ if (availablePaymentCredentialsMap[io.paymentKey]) {
109
+ availablePaymentCredentialsMap[io.paymentKey].isUsed = true;
110
+ }
111
+ });
112
+ });
113
+ return {
114
+ transactions,
115
+ latestBlockHeight,
116
+ paymentCredentials: Object.values(availablePaymentCredentialsMap).sort((aCred, bCred) => aCred.path.index - bCred.path.index),
117
+ };
118
+ });
119
+ }
120
+ function getTransactions(xpub, accountIndex, initialAccount, blockHeight, currency) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ var _a, _b;
123
+ const accountPubKey = (0, logic_1.getExtendedPublicKeyFromHex)(xpub);
124
+ const oldExternalCredentials = ((_a = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.cardanoResources) === null || _a === void 0 ? void 0 : _a.externalCredentials) || [];
125
+ const oldInternalCredentials = ((_b = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.cardanoResources) === null || _b === void 0 ? void 0 : _b.internalCredentials) || [];
126
+ const [{ transactions: externalKeyTransactions, latestBlockHeight: aBlockHeight, paymentCredentials: externalCredentials, }, { transactions: internalKeyTransactions, latestBlockHeight: bBlockHeight, paymentCredentials: internalCredentials, },] = yield Promise.all([
127
+ getSyncedTransactionsByChain(accountPubKey, accountIndex, types_1.PaymentChain.external, blockHeight, oldExternalCredentials, currency),
128
+ getSyncedTransactionsByChain(accountPubKey, accountIndex, types_1.PaymentChain.internal, blockHeight, oldInternalCredentials, currency),
129
+ ]);
130
+ return {
131
+ transactions: [...externalKeyTransactions, ...internalKeyTransactions],
132
+ blockHeight: Math.max(aBlockHeight, bBlockHeight),
133
+ externalCredentials,
134
+ internalCredentials,
135
+ };
136
+ });
137
+ }
138
+ exports.getTransactions = getTransactions;
139
+ //# sourceMappingURL=getTransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactions.js","sourceRoot":"","sources":["../../src/api/getTransactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
2
+ import { APITransaction } from "./api-types";
3
+ export declare function submitTransaction({ transaction, currency, }: {
4
+ transaction: string;
5
+ currency: CryptoCurrency;
6
+ }): Promise<APITransaction>;
7
+ //# sourceMappingURL=submitTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitTransaction.d.ts","sourceRoot":"","sources":["../../src/api/submitTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAsB,iBAAiB,CAAC,EACtC,WAAW,EACX,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;CAC1B,GAAG,OAAO,CAAC,cAAc,CAAC,CAW1B"}
@@ -0,0 +1,34 @@
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.submitTransaction = void 0;
16
+ const network_1 = __importDefault(require("@ledgerhq/live-network/network"));
17
+ const constants_1 = require("../constants");
18
+ const logic_1 = require("../logic");
19
+ function submitTransaction(_a) {
20
+ return __awaiter(this, arguments, void 0, function* ({ transaction, currency, }) {
21
+ const res = yield (0, network_1.default)({
22
+ method: "POST",
23
+ url: (0, logic_1.isTestnet)(currency)
24
+ ? `${constants_1.CARDANO_TESTNET_API_ENDPOINT}/v1/transaction/submit`
25
+ : `${constants_1.CARDANO_API_ENDPOINT}/v1/transaction/submit`,
26
+ data: {
27
+ transaction: transaction,
28
+ },
29
+ });
30
+ return res.data.transaction;
31
+ });
32
+ }
33
+ exports.submitTransaction = submitTransaction;
34
+ //# sourceMappingURL=submitTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitTransaction.js","sourceRoot":"","sources":["../../src/api/submitTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6EAAqD;AAErD,4CAAkF;AAClF,oCAAqC;AAGrC,SAAsB,iBAAiB;yDAAC,EACtC,WAAW,EACX,QAAQ,GAIT;QACC,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAO,EAAC;YACxB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC;gBACtB,CAAC,CAAC,GAAG,wCAA4B,wBAAwB;gBACzD,CAAC,CAAC,GAAG,gCAAoB,wBAAwB;YACnD,IAAI,EAAE;gBACJ,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9B,CAAC;CAAA;AAjBD,8CAiBC"}
@@ -0,0 +1,11 @@
1
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
2
+ import type { AccountBridge, CurrencyBridge } from "@ledgerhq/types-live";
3
+ import type { CardanoAccount, Transaction, TransactionStatus } from "../types";
4
+ import { CardanoSigner } from "../signer";
5
+ export declare function buildCurrencyBridge(signerContext: SignerContext<CardanoSigner>): CurrencyBridge;
6
+ export declare function buildAccountBridge(signerContext: SignerContext<CardanoSigner>): AccountBridge<Transaction, CardanoAccount, TransactionStatus>;
7
+ export declare function createBridges(signerContext: SignerContext<CardanoSigner>): {
8
+ currencyBridge: CurrencyBridge;
9
+ accountBridge: AccountBridge<Transaction, CardanoAccount, import("@ledgerhq/types-live").TransactionStatusCommon, import("@ledgerhq/types-live").AccountRaw>;
10
+ };
11
+ //# 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,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAS/E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,cAAc,CAY/F;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,GAC1C,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAuB/D;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC;;;EAKxE"}
@@ -0,0 +1,70 @@
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.createBridges = exports.buildAccountBridge = exports.buildCurrencyBridge = void 0;
16
+ const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
17
+ const getAddressWrapper_1 = __importDefault(require("@ledgerhq/coin-framework/bridge/getAddressWrapper"));
18
+ const serialization_1 = require("../serialization");
19
+ const estimateMaxSpendable_1 = require("../estimateMaxSpendable");
20
+ const getTransactionStatus_1 = require("../getTransactionStatus");
21
+ const prepareTransaction_1 = require("../prepareTransaction");
22
+ const createTransaction_1 = require("../createTransaction");
23
+ const synchronisation_1 = require("../synchronisation");
24
+ const signOperation_1 = require("../signOperation");
25
+ const postSyncPatch_1 = require("../postSyncPatch");
26
+ const broadcast_1 = require("../broadcast");
27
+ const hw_getAddress_1 = __importDefault(require("../hw-getAddress"));
28
+ function buildCurrencyBridge(signerContext) {
29
+ const getAddress = (0, hw_getAddress_1.default)(signerContext);
30
+ const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
31
+ getAccountShape: (0, synchronisation_1.makeGetAccountShape)(signerContext),
32
+ getAddressFn: (0, getAddressWrapper_1.default)(getAddress),
33
+ });
34
+ return {
35
+ scanAccounts,
36
+ preload: () => __awaiter(this, void 0, void 0, function* () { return ({}); }),
37
+ hydrate: () => { },
38
+ };
39
+ }
40
+ exports.buildCurrencyBridge = buildCurrencyBridge;
41
+ function buildAccountBridge(signerContext) {
42
+ const sync = (0, jsHelpers_1.makeSync)({
43
+ getAccountShape: (0, synchronisation_1.makeGetAccountShape)(signerContext),
44
+ postSync: postSyncPatch_1.postSyncPatch,
45
+ });
46
+ const getAddress = (0, hw_getAddress_1.default)(signerContext);
47
+ const receive = (0, jsHelpers_1.makeAccountBridgeReceive)((0, getAddressWrapper_1.default)(getAddress));
48
+ return {
49
+ estimateMaxSpendable: estimateMaxSpendable_1.estimateMaxSpendable,
50
+ createTransaction: createTransaction_1.createTransaction,
51
+ updateTransaction: jsHelpers_1.defaultUpdateTransaction,
52
+ getTransactionStatus: getTransactionStatus_1.getTransactionStatus,
53
+ prepareTransaction: prepareTransaction_1.prepareTransaction,
54
+ sync,
55
+ receive,
56
+ signOperation: (0, signOperation_1.buildSignOperation)(signerContext),
57
+ broadcast: broadcast_1.broadcast,
58
+ assignToAccountRaw: serialization_1.assignToAccountRaw,
59
+ assignFromAccountRaw: serialization_1.assignFromAccountRaw,
60
+ };
61
+ }
62
+ exports.buildAccountBridge = buildAccountBridge;
63
+ function createBridges(signerContext) {
64
+ return {
65
+ currencyBridge: buildCurrencyBridge(signerContext),
66
+ accountBridge: buildAccountBridge(signerContext),
67
+ };
68
+ }
69
+ exports.createBridges = createBridges;
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yEAKmD;AAGnD,0GAAkF;AAElF,oDAA4E;AAC5E,kEAA+D;AAC/D,kEAA+D;AAC/D,8DAA2D;AAC3D,4DAAyD;AACzD,wDAAyD;AACzD,oDAAsD;AACtD,oDAAiD;AAEjD,4CAAyC;AACzC,qEAAwC;AAExC,SAAgB,mBAAmB,CAAC,aAA2C;IAC7E,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAA,4BAAgB,EAAC;QACpC,eAAe,EAAE,IAAA,qCAAmB,EAAC,aAAa,CAAC;QACnD,YAAY,EAAE,IAAA,2BAAiB,EAAC,UAAU,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,OAAO,EAAE,GAAS,EAAE,gDAAC,OAAA,CAAC,EAAE,CAAC,CAAA,GAAA;QACzB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;KAClB,CAAC;AACJ,CAAC;AAZD,kDAYC;AAED,SAAgB,kBAAkB,CAChC,aAA2C;IAE3C,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC;QACpB,eAAe,EAAE,IAAA,qCAAmB,EAAC,aAAa,CAAC;QACnD,QAAQ,EAAE,6BAAa;KACxB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAA,oCAAwB,EAAC,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,oBAAoB,EAApB,2CAAoB;QACpB,iBAAiB,EAAjB,qCAAiB;QACjB,iBAAiB,EAAE,oCAAwB;QAC3C,oBAAoB,EAApB,2CAAoB;QACpB,kBAAkB,EAAlB,uCAAkB;QAClB,IAAI;QACJ,OAAO;QACP,aAAa,EAAE,IAAA,kCAAkB,EAAC,aAAa,CAAC;QAChD,SAAS,EAAT,qBAAS;QACT,kBAAkB,EAAlB,kCAAkB;QAClB,oBAAoB,EAApB,oCAAoB;KACrB,CAAC;AACJ,CAAC;AAzBD,gDAyBC;AAED,SAAgB,aAAa,CAAC,aAA2C;IACvE,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AALD,sCAKC"}
@@ -0,0 +1,4 @@
1
+ import type { Transaction } from "./types";
2
+ import type { DatasetTest } from "@ledgerhq/types-live";
3
+ export declare const dataset: DatasetTest<Transaction>;
4
+ //# sourceMappingURL=bridge.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.integration.test.d.ts","sourceRoot":"","sources":["../src/bridge.integration.test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAkG5C,CAAC"}
@@ -0,0 +1,113 @@
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.dataset = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const rawAccount_1_1 = require("./datasets/rawAccount.1");
9
+ const scanAccounts_1 = require("./datasets/scanAccounts");
10
+ const errors_1 = require("./errors");
11
+ const transaction_1 = require("./transaction");
12
+ exports.dataset = {
13
+ implementations: ["js"],
14
+ currencies: {
15
+ cardano_testnet: {
16
+ scanAccounts: scanAccounts_1.cardanoScanAccounts,
17
+ accounts: [
18
+ {
19
+ raw: rawAccount_1_1.cardanoRawAccount1,
20
+ transactions: [
21
+ {
22
+ name: "amount less then minimum",
23
+ transaction: (0, transaction_1.fromTransactionRaw)({
24
+ family: "cardano",
25
+ recipient: "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
26
+ amount: "0.1",
27
+ mode: "send",
28
+ poolId: undefined,
29
+ }),
30
+ expectedStatus: {
31
+ amount: new bignumber_js_1.default("0.1"),
32
+ errors: {
33
+ amount: new errors_1.CardanoMinAmountError(),
34
+ },
35
+ },
36
+ },
37
+ /* // FIXME broken test
38
+ {
39
+ name: "token amount more than balance",
40
+ transaction: fromTransactionRaw({
41
+ family: "cardano",
42
+ recipient:
43
+ "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
44
+ amount: "101",
45
+ subAccountId:
46
+ "js:2:cardano_testnet:806499588e0c4a58f4119f7e6e096bf42c3f774a528d2acec9e82ceebf87d1ceb3d4f3622dd2c77c65cc89c123f79337db22cf8a69f122e36dab1bf5083bf82d:cardano+cardano_testnet%2Fnative%2F47be64fcc8a7fe5321b976282ce4e43e4d29015f6613cfabcea28eab54657374",
47
+ mode: "send",
48
+ poolId: undefined,
49
+ }),
50
+ expectedStatus: {
51
+ amount: new BigNumber("101"),
52
+ errors: {
53
+ amount: new NotEnoughBalance(),
54
+ },
55
+ },
56
+ },
57
+ {
58
+ name: "send max token",
59
+ transaction: fromTransactionRaw({
60
+ family: "cardano",
61
+ recipient:
62
+ "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
63
+ amount: "0",
64
+ subAccountId:
65
+ "js:2:cardano_testnet:806499588e0c4a58f4119f7e6e096bf42c3f774a528d2acec9e82ceebf87d1ceb3d4f3622dd2c77c65cc89c123f79337db22cf8a69f122e36dab1bf5083bf82d:cardano+cardano_testnet%2Fnative%2F47be64fcc8a7fe5321b976282ce4e43e4d29015f6613cfabcea28eab54657374",
66
+ mode: "send",
67
+ useAllAmount: true,
68
+ poolId: undefined,
69
+ }),
70
+ expectedStatus: {
71
+ amount: new BigNumber("100"),
72
+ totalSpent: new BigNumber("100"),
73
+ errors: {},
74
+ warnings: {},
75
+ },
76
+ },
77
+ */
78
+ {
79
+ name: "delegate to invalid poolId",
80
+ transaction: (0, transaction_1.fromTransactionRaw)({
81
+ family: "cardano",
82
+ recipient: "",
83
+ amount: "0",
84
+ mode: "delegate",
85
+ poolId: "efae72c07a26e4542ba55ef59d35ad45ffaaac312865e3a758ede",
86
+ }),
87
+ expectedStatus: {
88
+ errors: {
89
+ poolId: new errors_1.CardanoInvalidPoolId(),
90
+ },
91
+ },
92
+ },
93
+ {
94
+ name: "delegate valid poolId",
95
+ transaction: (0, transaction_1.fromTransactionRaw)({
96
+ family: "cardano",
97
+ recipient: "",
98
+ amount: "0",
99
+ mode: "delegate",
100
+ poolId: "efae72c07a26e4542ba55ef59d35ad45ffaaac312865e3a758ede997",
101
+ }),
102
+ expectedStatus: {},
103
+ },
104
+ ],
105
+ },
106
+ ],
107
+ },
108
+ },
109
+ };
110
+ describe("Cardano bridge", () => {
111
+ test.todo("This is an empty test to make jest command pass. Remove it once there is a real test.");
112
+ });
113
+ //# sourceMappingURL=bridge.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.integration.test.js","sourceRoot":"","sources":["../src/bridge.integration.test.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,0DAA6D;AAC7D,0DAA8D;AAC9D,qCAAuE;AACvE,+CAAmD;AAItC,QAAA,OAAO,GAA6B;IAC/C,eAAe,EAAE,CAAC,IAAI,CAAC;IACvB,UAAU,EAAE;QACV,eAAe,EAAE;YACf,YAAY,EAAE,kCAAmB;YACjC,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,iCAAkB;oBACvB,YAAY,EAAE;wBACZ;4BACE,IAAI,EAAE,0BAA0B;4BAChC,WAAW,EAAE,IAAA,gCAAkB,EAAC;gCAC9B,MAAM,EAAE,SAAS;gCACjB,SAAS,EACP,8GAA8G;gCAChH,MAAM,EAAE,KAAK;gCACb,IAAI,EAAE,MAAM;gCACZ,MAAM,EAAE,SAAS;6BAClB,CAAC;4BACF,cAAc,EAAE;gCACd,MAAM,EAAE,IAAI,sBAAS,CAAC,KAAK,CAAC;gCAC5B,MAAM,EAAE;oCACN,MAAM,EAAE,IAAI,8BAAqB,EAAE;iCACpC;6BACF;yBACF;wBACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAwCE;wBACF;4BACE,IAAI,EAAE,4BAA4B;4BAClC,WAAW,EAAE,IAAA,gCAAkB,EAAC;gCAC9B,MAAM,EAAE,SAAS;gCACjB,SAAS,EAAE,EAAE;gCACb,MAAM,EAAE,GAAG;gCACX,IAAI,EAAE,UAAU;gCAChB,MAAM,EAAE,uDAAuD;6BAChE,CAAC;4BACF,cAAc,EAAE;gCACd,MAAM,EAAE;oCACN,MAAM,EAAE,IAAI,6BAAoB,EAAE;iCACnC;6BACF;yBACF;wBACD;4BACE,IAAI,EAAE,uBAAuB;4BAC7B,WAAW,EAAE,IAAA,gCAAkB,EAAC;gCAC9B,MAAM,EAAE,SAAS;gCACjB,SAAS,EAAE,EAAE;gCACb,MAAM,EAAE,GAAG;gCACX,IAAI,EAAE,UAAU;gCAChB,MAAM,EAAE,0DAA0D;6BACnE,CAAC;4BACF,cAAc,EAAE,EAAE;yBACnB;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAC;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,IAAI,CACP,uFAAuF,CACxF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AccountBridge } from "@ledgerhq/types-live";
2
+ import { Transaction } from "./types";
3
+ /**
4
+ * Broadcast the signed transaction
5
+ * @param {signature: string, operation: string} signedOperation
6
+ */
7
+ export declare const broadcast: AccountBridge<Transaction>["broadcast"];
8
+ //# sourceMappingURL=broadcast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAW7D,CAAC"}
@@ -0,0 +1,28 @@
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.broadcast = void 0;
13
+ const operation_1 = require("@ledgerhq/coin-framework/operation");
14
+ const submitTransaction_1 = require("./api/submitTransaction");
15
+ /**
16
+ * Broadcast the signed transaction
17
+ * @param {signature: string, operation: string} signedOperation
18
+ */
19
+ const broadcast = (_a) => __awaiter(void 0, [_a], void 0, function* ({ signedOperation, account, }) {
20
+ const signedTx = signedOperation.signature;
21
+ const pendingTransaction = yield (0, submitTransaction_1.submitTransaction)({
22
+ transaction: signedTx,
23
+ currency: account.currency,
24
+ });
25
+ return (0, operation_1.patchOperationWithHash)(signedOperation.operation, pendingTransaction.hash);
26
+ });
27
+ exports.broadcast = broadcast;
28
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,kEAA4E;AAC5E,+DAA4D;AAG5D;;;GAGG;AACI,MAAM,SAAS,GAA4C,KAG/D,EAAE,4CAHoE,EACvE,eAAe,EACf,OAAO,GACR;IACC,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC;IAC3C,MAAM,kBAAkB,GAAG,MAAM,IAAA,qCAAiB,EAAC;QACjD,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO,IAAA,kCAAsB,EAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC,CAAA,CAAC;AAXW,QAAA,SAAS,aAWpB"}
@@ -0,0 +1,4 @@
1
+ import { Transaction as TyphonTransaction } from "@stricahq/typhonjs";
2
+ import { CardanoAccount, CardanoOperation, Transaction } from "./types";
3
+ export declare const buildOptimisticOperation: (account: CardanoAccount, unsignedTransaction: TyphonTransaction, transaction: Transaction) => CardanoOperation;
4
+ //# sourceMappingURL=buildOptimisticOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOptimisticOperation.d.ts","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAwB,WAAW,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5F,OAAO,EACL,cAAc,EACd,gBAAgB,EAGhB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,wBAAwB,YAC1B,cAAc,uBACF,iBAAiB,eACzB,WAAW,KACvB,gBA+JF,CAAC"}
@@ -0,0 +1,125 @@
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.buildOptimisticOperation = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const types_1 = require("@stricahq/typhonjs/dist/types");
9
+ const operation_1 = require("@ledgerhq/coin-framework/operation");
10
+ const currencies_1 = require("@ledgerhq/coin-framework/currencies");
11
+ const ShelleyTypeAddress_1 = __importDefault(require("@stricahq/typhonjs/dist/address/ShelleyTypeAddress"));
12
+ const typhonjs_1 = require("@stricahq/typhonjs");
13
+ const logic_1 = require("./logic");
14
+ const constants_1 = require("./constants");
15
+ const buildOptimisticOperation = (account, unsignedTransaction, transaction) => {
16
+ var _a;
17
+ const cardanoResources = account.cardanoResources;
18
+ const accountCreds = new Set([...cardanoResources.externalCredentials, ...cardanoResources.internalCredentials].map(cred => cred.key));
19
+ const stakeCredential = (0, logic_1.getAccountStakeCredential)(account.xpub, account.index);
20
+ const protocolParams = account.cardanoResources.protocolParams;
21
+ const accountInput = unsignedTransaction
22
+ .getInputs()
23
+ .reduce((total, i) => accountCreds.has(i.address.paymentCredential.hash) ? total.plus(i.amount) : total.plus(0), new bignumber_js_1.default(0));
24
+ const accountOutput = unsignedTransaction
25
+ .getOutputs()
26
+ .reduce((total, o) => o.address instanceof ShelleyTypeAddress_1.default &&
27
+ accountCreds.has(o.address.paymentCredential.hash)
28
+ ? total.plus(o.amount)
29
+ : total.plus(0), new bignumber_js_1.default(0));
30
+ const txCertificates = unsignedTransaction.getCertificates();
31
+ const stakeRegistrationCertificates = txCertificates.filter(c => c.certType === typhonjs_1.types.CertificateType.STAKE_REGISTRATION);
32
+ const stakeDeRegistrationCertificates = txCertificates.filter(c => c.certType === typhonjs_1.types.CertificateType.STAKE_DE_REGISTRATION);
33
+ const txWithdrawals = unsignedTransaction.getWithdrawals();
34
+ const transactionHash = unsignedTransaction.getTransactionHash().toString("hex");
35
+ const auxiliaryData = unsignedTransaction.getAuxiliaryData();
36
+ const extra = {};
37
+ if (auxiliaryData) {
38
+ const memoMetadata = auxiliaryData.metadata.find(m => m.label === constants_1.MEMO_LABEL);
39
+ if (memoMetadata && memoMetadata.data instanceof Map) {
40
+ const msg = memoMetadata.data.get("msg");
41
+ if (Array.isArray(msg) && msg.length) {
42
+ extra.memo = msg.join(", ");
43
+ }
44
+ }
45
+ }
46
+ let operationValue = accountOutput.minus(accountInput);
47
+ if (stakeRegistrationCertificates.length) {
48
+ const walletRegistration = stakeRegistrationCertificates.find(c => c.stakeCredential.type === types_1.HashType.ADDRESS &&
49
+ c.stakeCredential.hash === stakeCredential.key);
50
+ if (walletRegistration) {
51
+ extra.deposit = (0, currencies_1.formatCurrencyUnit)(account.currency.units[0], new bignumber_js_1.default(protocolParams.stakeKeyDeposit), {
52
+ showCode: true,
53
+ disableRounding: true,
54
+ });
55
+ }
56
+ }
57
+ if (stakeDeRegistrationCertificates.length) {
58
+ const walletDeRegistration = stakeDeRegistrationCertificates.find(c => c.stakeCredential.type === types_1.HashType.ADDRESS &&
59
+ c.stakeCredential.hash === stakeCredential.key);
60
+ if (walletDeRegistration) {
61
+ operationValue = operationValue.minus(protocolParams.stakeKeyDeposit);
62
+ extra.refund = (0, currencies_1.formatCurrencyUnit)(account.currency.units[0], new bignumber_js_1.default(protocolParams.stakeKeyDeposit), {
63
+ showCode: true,
64
+ disableRounding: true,
65
+ });
66
+ }
67
+ }
68
+ if (txWithdrawals && txWithdrawals.length) {
69
+ const walletWithdraw = txWithdrawals.find(w => w.rewardAccount.stakeCredential.type === types_1.HashType.ADDRESS &&
70
+ w.rewardAccount.stakeCredential.hash === stakeCredential.key);
71
+ if (walletWithdraw) {
72
+ operationValue = operationValue.minus(walletWithdraw.amount);
73
+ extra.rewards = (0, currencies_1.formatCurrencyUnit)(account.currency.units[0], new bignumber_js_1.default(walletWithdraw.amount), {
74
+ showCode: true,
75
+ disableRounding: true,
76
+ });
77
+ }
78
+ }
79
+ const opType = txCertificates.find(c => c.certType === typhonjs_1.types.CertificateType.STAKE_DELEGATION)
80
+ ? "DELEGATE"
81
+ : txCertificates.find(c => c.certType === typhonjs_1.types.CertificateType.STAKE_DE_REGISTRATION)
82
+ ? "UNDELEGATE"
83
+ : (0, logic_1.getOperationType)({
84
+ valueChange: operationValue,
85
+ fees: unsignedTransaction.getFee(),
86
+ });
87
+ const op = {
88
+ id: (0, operation_1.encodeOperationId)(account.id, transactionHash, opType),
89
+ hash: transactionHash,
90
+ type: opType,
91
+ value: operationValue.absoluteValue(),
92
+ fee: unsignedTransaction.getFee(),
93
+ blockHash: undefined,
94
+ blockHeight: null,
95
+ senders: unsignedTransaction.getInputs().map(i => i.address.getBech32()),
96
+ recipients: unsignedTransaction.getOutputs().map(o => o.address.getBech32()),
97
+ accountId: account.id,
98
+ date: new Date(),
99
+ extra,
100
+ };
101
+ const tokenAccount = transaction.subAccountId
102
+ ? (_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a.find(ta => ta.id === transaction.subAccountId)
103
+ : null;
104
+ if (tokenAccount && opType === "OUT") {
105
+ op.subOperations = [
106
+ {
107
+ id: (0, operation_1.encodeOperationId)(tokenAccount.id, transactionHash, opType),
108
+ hash: transactionHash,
109
+ type: opType,
110
+ value: transaction.useAllAmount ? tokenAccount.balance : transaction.amount,
111
+ fee: transaction.fees,
112
+ blockHash: undefined,
113
+ blockHeight: null,
114
+ senders: unsignedTransaction.getInputs().map(i => i.address.getBech32()),
115
+ recipients: unsignedTransaction.getOutputs().map(o => o.address.getBech32()),
116
+ accountId: tokenAccount.id,
117
+ date: new Date(),
118
+ extra: {},
119
+ },
120
+ ];
121
+ }
122
+ return op;
123
+ };
124
+ exports.buildOptimisticOperation = buildOptimisticOperation;
125
+ //# sourceMappingURL=buildOptimisticOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"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"}