@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,107 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { cardanoRawAccount1 } from "./datasets/rawAccount.1";
3
+ import { cardanoScanAccounts } from "./datasets/scanAccounts";
4
+ import { CardanoInvalidPoolId, CardanoMinAmountError } from "./errors";
5
+ import { fromTransactionRaw } from "./transaction";
6
+ export const dataset = {
7
+ implementations: ["js"],
8
+ currencies: {
9
+ cardano_testnet: {
10
+ scanAccounts: cardanoScanAccounts,
11
+ accounts: [
12
+ {
13
+ raw: cardanoRawAccount1,
14
+ transactions: [
15
+ {
16
+ name: "amount less then minimum",
17
+ transaction: fromTransactionRaw({
18
+ family: "cardano",
19
+ recipient: "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
20
+ amount: "0.1",
21
+ mode: "send",
22
+ poolId: undefined,
23
+ }),
24
+ expectedStatus: {
25
+ amount: new BigNumber("0.1"),
26
+ errors: {
27
+ amount: new CardanoMinAmountError(),
28
+ },
29
+ },
30
+ },
31
+ /* // FIXME broken test
32
+ {
33
+ name: "token amount more than balance",
34
+ transaction: fromTransactionRaw({
35
+ family: "cardano",
36
+ recipient:
37
+ "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
38
+ amount: "101",
39
+ subAccountId:
40
+ "js:2:cardano_testnet:806499588e0c4a58f4119f7e6e096bf42c3f774a528d2acec9e82ceebf87d1ceb3d4f3622dd2c77c65cc89c123f79337db22cf8a69f122e36dab1bf5083bf82d:cardano+cardano_testnet%2Fnative%2F47be64fcc8a7fe5321b976282ce4e43e4d29015f6613cfabcea28eab54657374",
41
+ mode: "send",
42
+ poolId: undefined,
43
+ }),
44
+ expectedStatus: {
45
+ amount: new BigNumber("101"),
46
+ errors: {
47
+ amount: new NotEnoughBalance(),
48
+ },
49
+ },
50
+ },
51
+ {
52
+ name: "send max token",
53
+ transaction: fromTransactionRaw({
54
+ family: "cardano",
55
+ recipient:
56
+ "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
57
+ amount: "0",
58
+ subAccountId:
59
+ "js:2:cardano_testnet:806499588e0c4a58f4119f7e6e096bf42c3f774a528d2acec9e82ceebf87d1ceb3d4f3622dd2c77c65cc89c123f79337db22cf8a69f122e36dab1bf5083bf82d:cardano+cardano_testnet%2Fnative%2F47be64fcc8a7fe5321b976282ce4e43e4d29015f6613cfabcea28eab54657374",
60
+ mode: "send",
61
+ useAllAmount: true,
62
+ poolId: undefined,
63
+ }),
64
+ expectedStatus: {
65
+ amount: new BigNumber("100"),
66
+ totalSpent: new BigNumber("100"),
67
+ errors: {},
68
+ warnings: {},
69
+ },
70
+ },
71
+ */
72
+ {
73
+ name: "delegate to invalid poolId",
74
+ transaction: fromTransactionRaw({
75
+ family: "cardano",
76
+ recipient: "",
77
+ amount: "0",
78
+ mode: "delegate",
79
+ poolId: "efae72c07a26e4542ba55ef59d35ad45ffaaac312865e3a758ede",
80
+ }),
81
+ expectedStatus: {
82
+ errors: {
83
+ poolId: new CardanoInvalidPoolId(),
84
+ },
85
+ },
86
+ },
87
+ {
88
+ name: "delegate valid poolId",
89
+ transaction: fromTransactionRaw({
90
+ family: "cardano",
91
+ recipient: "",
92
+ amount: "0",
93
+ mode: "delegate",
94
+ poolId: "efae72c07a26e4542ba55ef59d35ad45ffaaac312865e3a758ede997",
95
+ }),
96
+ expectedStatus: {},
97
+ },
98
+ ],
99
+ },
100
+ ],
101
+ },
102
+ },
103
+ };
104
+ describe("Cardano bridge", () => {
105
+ test.todo("This is an empty test to make jest command pass. Remove it once there is a real test.");
106
+ });
107
+ //# 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,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,eAAe,EAAE,CAAC,IAAI,CAAC;IACvB,UAAU,EAAE;QACV,eAAe,EAAE;YACf,YAAY,EAAE,mBAAmB;YACjC,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,kBAAkB;oBACvB,YAAY,EAAE;wBACZ;4BACE,IAAI,EAAE,0BAA0B;4BAChC,WAAW,EAAE,kBAAkB,CAAC;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,SAAS,CAAC,KAAK,CAAC;gCAC5B,MAAM,EAAE;oCACN,MAAM,EAAE,IAAI,qBAAqB,EAAE;iCACpC;6BACF;yBACF;wBACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAwCE;wBACF;4BACE,IAAI,EAAE,4BAA4B;4BAClC,WAAW,EAAE,kBAAkB,CAAC;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,oBAAoB,EAAE;iCACnC;6BACF;yBACF;wBACD;4BACE,IAAI,EAAE,uBAAuB;4BAC7B,WAAW,EAAE,kBAAkB,CAAC;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,24 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
11
+ import { submitTransaction } from "./api/submitTransaction";
12
+ /**
13
+ * Broadcast the signed transaction
14
+ * @param {signature: string, operation: string} signedOperation
15
+ */
16
+ export const broadcast = (_a) => __awaiter(void 0, [_a], void 0, function* ({ signedOperation, account, }) {
17
+ const signedTx = signedOperation.signature;
18
+ const pendingTransaction = yield submitTransaction({
19
+ transaction: signedTx,
20
+ currency: account.currency,
21
+ });
22
+ return patchOperationWithHash(signedOperation.operation, pendingTransaction.hash);
23
+ });
24
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;GAGG;AACH,MAAM,CAAC,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,iBAAiB,CAAC;QACjD,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC,CAAA,CAAC"}
@@ -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,118 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { HashType } from "@stricahq/typhonjs/dist/types";
3
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
4
+ import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies";
5
+ import ShelleyTypeAddress from "@stricahq/typhonjs/dist/address/ShelleyTypeAddress";
6
+ import { types as TyphonTypes } from "@stricahq/typhonjs";
7
+ import { getAccountStakeCredential, getOperationType } from "./logic";
8
+ import { MEMO_LABEL } from "./constants";
9
+ export const buildOptimisticOperation = (account, unsignedTransaction, transaction) => {
10
+ var _a;
11
+ const cardanoResources = account.cardanoResources;
12
+ const accountCreds = new Set([...cardanoResources.externalCredentials, ...cardanoResources.internalCredentials].map(cred => cred.key));
13
+ const stakeCredential = getAccountStakeCredential(account.xpub, account.index);
14
+ const protocolParams = account.cardanoResources.protocolParams;
15
+ const accountInput = unsignedTransaction
16
+ .getInputs()
17
+ .reduce((total, i) => accountCreds.has(i.address.paymentCredential.hash) ? total.plus(i.amount) : total.plus(0), new BigNumber(0));
18
+ const accountOutput = unsignedTransaction
19
+ .getOutputs()
20
+ .reduce((total, o) => o.address instanceof ShelleyTypeAddress &&
21
+ accountCreds.has(o.address.paymentCredential.hash)
22
+ ? total.plus(o.amount)
23
+ : total.plus(0), new BigNumber(0));
24
+ const txCertificates = unsignedTransaction.getCertificates();
25
+ const stakeRegistrationCertificates = txCertificates.filter(c => c.certType === TyphonTypes.CertificateType.STAKE_REGISTRATION);
26
+ const stakeDeRegistrationCertificates = txCertificates.filter(c => c.certType === TyphonTypes.CertificateType.STAKE_DE_REGISTRATION);
27
+ const txWithdrawals = unsignedTransaction.getWithdrawals();
28
+ const transactionHash = unsignedTransaction.getTransactionHash().toString("hex");
29
+ const auxiliaryData = unsignedTransaction.getAuxiliaryData();
30
+ const extra = {};
31
+ if (auxiliaryData) {
32
+ const memoMetadata = auxiliaryData.metadata.find(m => m.label === MEMO_LABEL);
33
+ if (memoMetadata && memoMetadata.data instanceof Map) {
34
+ const msg = memoMetadata.data.get("msg");
35
+ if (Array.isArray(msg) && msg.length) {
36
+ extra.memo = msg.join(", ");
37
+ }
38
+ }
39
+ }
40
+ let operationValue = accountOutput.minus(accountInput);
41
+ if (stakeRegistrationCertificates.length) {
42
+ const walletRegistration = stakeRegistrationCertificates.find(c => c.stakeCredential.type === HashType.ADDRESS &&
43
+ c.stakeCredential.hash === stakeCredential.key);
44
+ if (walletRegistration) {
45
+ extra.deposit = formatCurrencyUnit(account.currency.units[0], new BigNumber(protocolParams.stakeKeyDeposit), {
46
+ showCode: true,
47
+ disableRounding: true,
48
+ });
49
+ }
50
+ }
51
+ if (stakeDeRegistrationCertificates.length) {
52
+ const walletDeRegistration = stakeDeRegistrationCertificates.find(c => c.stakeCredential.type === HashType.ADDRESS &&
53
+ c.stakeCredential.hash === stakeCredential.key);
54
+ if (walletDeRegistration) {
55
+ operationValue = operationValue.minus(protocolParams.stakeKeyDeposit);
56
+ extra.refund = formatCurrencyUnit(account.currency.units[0], new BigNumber(protocolParams.stakeKeyDeposit), {
57
+ showCode: true,
58
+ disableRounding: true,
59
+ });
60
+ }
61
+ }
62
+ if (txWithdrawals && txWithdrawals.length) {
63
+ const walletWithdraw = txWithdrawals.find(w => w.rewardAccount.stakeCredential.type === HashType.ADDRESS &&
64
+ w.rewardAccount.stakeCredential.hash === stakeCredential.key);
65
+ if (walletWithdraw) {
66
+ operationValue = operationValue.minus(walletWithdraw.amount);
67
+ extra.rewards = formatCurrencyUnit(account.currency.units[0], new BigNumber(walletWithdraw.amount), {
68
+ showCode: true,
69
+ disableRounding: true,
70
+ });
71
+ }
72
+ }
73
+ const opType = txCertificates.find(c => c.certType === TyphonTypes.CertificateType.STAKE_DELEGATION)
74
+ ? "DELEGATE"
75
+ : txCertificates.find(c => c.certType === TyphonTypes.CertificateType.STAKE_DE_REGISTRATION)
76
+ ? "UNDELEGATE"
77
+ : getOperationType({
78
+ valueChange: operationValue,
79
+ fees: unsignedTransaction.getFee(),
80
+ });
81
+ const op = {
82
+ id: encodeOperationId(account.id, transactionHash, opType),
83
+ hash: transactionHash,
84
+ type: opType,
85
+ value: operationValue.absoluteValue(),
86
+ fee: unsignedTransaction.getFee(),
87
+ blockHash: undefined,
88
+ blockHeight: null,
89
+ senders: unsignedTransaction.getInputs().map(i => i.address.getBech32()),
90
+ recipients: unsignedTransaction.getOutputs().map(o => o.address.getBech32()),
91
+ accountId: account.id,
92
+ date: new Date(),
93
+ extra,
94
+ };
95
+ const tokenAccount = transaction.subAccountId
96
+ ? (_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a.find(ta => ta.id === transaction.subAccountId)
97
+ : null;
98
+ if (tokenAccount && opType === "OUT") {
99
+ op.subOperations = [
100
+ {
101
+ id: encodeOperationId(tokenAccount.id, transactionHash, opType),
102
+ hash: transactionHash,
103
+ type: opType,
104
+ value: transaction.useAllAmount ? tokenAccount.balance : transaction.amount,
105
+ fee: transaction.fees,
106
+ blockHash: undefined,
107
+ blockHeight: null,
108
+ senders: unsignedTransaction.getInputs().map(i => i.address.getBech32()),
109
+ recipients: unsignedTransaction.getOutputs().map(o => o.address.getBech32()),
110
+ accountId: tokenAccount.id,
111
+ date: new Date(),
112
+ extra: {},
113
+ },
114
+ ];
115
+ }
116
+ return op;
117
+ };
118
+ //# sourceMappingURL=buildOptimisticOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,kBAAkB,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,KAAK,IAAI,WAAW,EAAoC,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAuB,EACvB,mBAAsC,EACtC,WAAwB,EACN,EAAE;;IACpB,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAoC,CAAC;IACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,CAAC,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,GAAG,CACpF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CACjB,CACF,CAAC;IACF,MAAM,eAAe,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAE/D,MAAM,YAAY,GAAG,mBAAmB;SACrC,SAAS,EAAE;SACX,MAAM,CACL,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACX,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3F,IAAI,SAAS,CAAC,CAAC,CAAC,CACjB,CAAC;IAEJ,MAAM,aAAa,GAAG,mBAAmB;SACtC,UAAU,EAAE;SACZ,MAAM,CACL,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACX,CAAC,CAAC,OAAO,YAAY,kBAAkB;QACvC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,IAAI,SAAS,CAAC,CAAC,CAAC,CACjB,CAAC;IAEJ,MAAM,cAAc,GAAG,mBAAmB,CAAC,eAAe,EAAE,CAAC;IAC7D,MAAM,6BAA6B,GAAG,cAAc,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,eAAe,CAAC,kBAAkB,CACnE,CAAC;IACF,MAAM,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAC3D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,eAAe,CAAC,qBAAqB,CACtE,CAAC;IACF,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC;IAE3D,MAAM,eAAe,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;IAC7D,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;QAC9E,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,YAAY,GAAG,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAEvD,IAAI,6BAA6B,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,IAAI,CAC3D,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;YAC3C,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,GAAG,CACjD,CAAC;QACF,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EACzB,IAAI,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAC7C;gBACE,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;aACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,+BAA+B,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,oBAAoB,GAAG,+BAA+B,CAAC,IAAI,CAC/D,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;YAC3C,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,GAAG,CACjD,CAAC;QACF,IAAI,oBAAoB,EAAE,CAAC;YACzB,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACtE,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EACzB,IAAI,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAC7C;gBACE,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;aACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;YACzD,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,GAAG,CAC/D,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7D,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EACzB,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,EACpC;gBACE,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;aACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAkB,cAAc,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,eAAe,CAAC,gBAAgB,CACjE;QACC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,eAAe,CAAC,qBAAqB,CAAC;YAC1F,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,gBAAgB,CAAC;gBACf,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE;aACnC,CAAC,CAAC;IAET,MAAM,EAAE,GAAqB;QAC3B,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC;QAC1D,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE;QACrC,GAAG,EAAE,mBAAmB,CAAC,MAAM,EAAE;QACjC,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxE,UAAU,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,KAAK;KACN,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY;QAC3C,CAAC,CAAC,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,YAAY,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,YAAY,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrC,EAAE,CAAC,aAAa,GAAG;YACjB;gBACE,EAAE,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC;gBAC/D,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM;gBAC3E,GAAG,EAAE,WAAW,CAAC,IAAiB;gBAClC,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACxE,UAAU,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC5E,SAAS,EAAE,YAAY,CAAC,EAAE;gBAC1B,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,KAAK,EAAE,EAAE;aACV;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Account, TokenAccount } from "@ledgerhq/types-live";
2
+ import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
3
+ import { PaymentCredential, Token } from "./types";
4
+ import { APITransaction } from "./api/api-types";
5
+ export declare const getTokenAssetId: ({ policyId, assetName, }: {
6
+ policyId: string;
7
+ assetName: string;
8
+ }) => string;
9
+ export declare const decodeTokenAssetId: (id: string) => {
10
+ policyId: string;
11
+ assetName: string;
12
+ };
13
+ export declare const decodeTokenCurrencyId: (id: string) => {
14
+ parentCurrencyId: string;
15
+ type: string;
16
+ assetId: string;
17
+ };
18
+ export declare function buildSubAccounts({ initialAccount, parentAccountId, parentCurrency, newTransactions, tokens, accountCredentialsMap, }: {
19
+ initialAccount: Account | undefined;
20
+ parentAccountId: string;
21
+ parentCurrency: CryptoCurrency;
22
+ newTransactions: Array<APITransaction>;
23
+ tokens: Array<Token>;
24
+ accountCredentialsMap: Record<string, PaymentCredential>;
25
+ }): Array<TokenAccount>;
26
+ //# sourceMappingURL=buildSubAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSubAccounts.d.ts","sourceRoot":"","sources":["../src/buildSubAccounts.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAA2C,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,eAAO,MAAM,eAAe;cAIhB,MAAM;eACL,MAAM;MACf,MAAmC,CAAC;AAExC,eAAO,MAAM,kBAAkB,OAAQ,MAAM;cAAe,MAAM;eAAa,MAAM;CAIpF,CAAC;AAKF,eAAO,MAAM,qBAAqB,OAC5B,MAAM;sBACW,MAAM;UAAQ,MAAM;aAAW,MAAM;CAO3D,CAAC;AAiEF,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,MAAM,EACN,qBAAqB,GACtB,EAAE;IACD,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACvC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC1D,GAAG,KAAK,CAAC,YAAY,CAAC,CA8CtB"}
@@ -0,0 +1,114 @@
1
+ import { decodeTokenAccountId, emptyHistoryCache, encodeTokenAccountId, } from "@ledgerhq/coin-framework/account/index";
2
+ import keyBy from "lodash/keyBy";
3
+ import groupBy from "lodash/groupBy";
4
+ import BigNumber from "bignumber.js";
5
+ import { findTokenById } from "@ledgerhq/cryptoassets";
6
+ import { utils as TyphonUtils } from "@stricahq/typhonjs";
7
+ import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
8
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
9
+ import { getAccountChange, getMemoFromTx, isHexString } from "./logic";
10
+ export const getTokenAssetId = ({ policyId, assetName, }) => `${policyId}${assetName}`;
11
+ export const decodeTokenAssetId = (id) => {
12
+ const policyId = id.slice(0, 56);
13
+ const assetName = id.slice(56);
14
+ return { policyId, assetName };
15
+ };
16
+ const encodeTokenCurrencyId = (parentCurrency, assetId) => `${parentCurrency.id}/native/${assetId}`;
17
+ export const decodeTokenCurrencyId = (id) => {
18
+ const [parentCurrencyId, type, assetId] = id.split("/");
19
+ return {
20
+ parentCurrencyId,
21
+ type,
22
+ assetId,
23
+ };
24
+ };
25
+ /**
26
+ * @returns operations of tokens that are defined in ledgerjs cryptoassets
27
+ */
28
+ const mapTxToTokenAccountOperation = ({ parentAccountId, parentCurrency, newTransactions, accountCredentialsMap, }) => {
29
+ const operations = [];
30
+ newTransactions.forEach(tx => {
31
+ const accountChange = getAccountChange(tx, accountCredentialsMap);
32
+ accountChange.tokens.forEach(token => {
33
+ const assetId = getTokenAssetId({
34
+ policyId: token.policyId,
35
+ assetName: token.assetName,
36
+ });
37
+ const tokenCurrencyId = encodeTokenCurrencyId(parentCurrency, assetId);
38
+ const tokenCurrency = findTokenById(tokenCurrencyId);
39
+ // skip the unsupported tokens by ledger-live
40
+ if (tokenCurrency === null || tokenCurrency === undefined) {
41
+ return;
42
+ }
43
+ const tokenAccountId = encodeTokenAccountId(parentAccountId, tokenCurrency);
44
+ const tokenOperationType = token.amount.lt(0) ? "OUT" : "IN";
45
+ const memo = getMemoFromTx(tx);
46
+ const extra = {};
47
+ if (memo) {
48
+ extra.memo = memo;
49
+ }
50
+ const operation = {
51
+ accountId: tokenAccountId,
52
+ id: encodeOperationId(tokenAccountId, tx.hash, tokenOperationType),
53
+ hash: tx.hash,
54
+ type: tokenOperationType,
55
+ fee: new BigNumber(tx.fees),
56
+ value: token.amount.absoluteValue(),
57
+ senders: tx.inputs.map(i => isHexString(i.address) ? TyphonUtils.getAddressFromHex(i.address).getBech32() : i.address),
58
+ recipients: tx.outputs.map(o => isHexString(o.address) ? TyphonUtils.getAddressFromHex(o.address).getBech32() : o.address),
59
+ blockHeight: tx.blockHeight,
60
+ date: new Date(tx.timestamp),
61
+ extra,
62
+ blockHash: undefined,
63
+ };
64
+ operations.push(operation);
65
+ });
66
+ });
67
+ return operations;
68
+ };
69
+ export function buildSubAccounts({ initialAccount, parentAccountId, parentCurrency, newTransactions, tokens, accountCredentialsMap, }) {
70
+ var _a;
71
+ const tokenAccountsById = {};
72
+ if (initialAccount && initialAccount.subAccounts) {
73
+ for (const existingAccount of initialAccount.subAccounts) {
74
+ if (existingAccount.type === "TokenAccount") {
75
+ tokenAccountsById[existingAccount.id] = existingAccount;
76
+ }
77
+ }
78
+ }
79
+ const tokenOperations = mapTxToTokenAccountOperation({
80
+ parentAccountId,
81
+ parentCurrency,
82
+ newTransactions: newTransactions,
83
+ accountCredentialsMap,
84
+ });
85
+ const tokenOperationsByAccId = groupBy(tokenOperations, o => o.accountId);
86
+ const tokensBalanceByAssetId = keyBy(tokens, t => getTokenAssetId(t));
87
+ for (const tokenAccountId in tokenOperationsByAccId) {
88
+ const initialTokenAccount = tokenAccountsById[tokenAccountId];
89
+ const oldOperations = (initialTokenAccount === null || initialTokenAccount === void 0 ? void 0 : initialTokenAccount.operations) || [];
90
+ const newOperations = tokenOperationsByAccId[tokenAccountId] || [];
91
+ const operations = mergeOps(oldOperations, newOperations);
92
+ const { token: tokenCurrency } = decodeTokenAccountId(tokenAccountId);
93
+ if (tokenCurrency) {
94
+ const accountBalance = ((_a = tokensBalanceByAssetId[tokenCurrency.contractAddress]) === null || _a === void 0 ? void 0 : _a.amount) || new BigNumber(0);
95
+ const tokenAccount = {
96
+ type: "TokenAccount",
97
+ id: tokenAccountId,
98
+ parentId: parentAccountId,
99
+ token: tokenCurrency,
100
+ balance: accountBalance,
101
+ spendableBalance: accountBalance,
102
+ creationDate: operations.length > 0 ? operations[operations.length - 1].date : new Date(),
103
+ operationsCount: operations.length,
104
+ operations,
105
+ pendingOperations: [],
106
+ balanceHistoryCache: emptyHistoryCache,
107
+ swapHistory: [],
108
+ };
109
+ tokenAccountsById[tokenAccountId] = tokenAccount;
110
+ }
111
+ }
112
+ return Object.values(tokenAccountsById);
113
+ }
114
+ //# sourceMappingURL=buildSubAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSubAccounts.js","sourceRoot":"","sources":["../src/buildSubAccounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Transaction as TyphonTransaction } from "@stricahq/typhonjs";
2
+ import { CardanoAccount, Transaction } from "./types";
3
+ /**
4
+ *
5
+ * @param {CardanoAccount} account
6
+ * @param {Transaction} transaction
7
+ *
8
+ * @returns {TyphonTransaction}
9
+ */
10
+ export declare const buildTransaction: (account: CardanoAccount, transaction: Transaction) => Promise<TyphonTransaction>;
11
+ //# sourceMappingURL=buildTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTransaction.d.ts","sourceRoot":"","sources":["../src/buildTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,iBAAiB,EAGjC,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EACL,cAAc,EAKd,WAAW,EACZ,MAAM,SAAS,CAAC;AAuUjB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAClB,cAAc,eACV,WAAW,KACvB,QAAQ,iBAAiB,CA+E3B,CAAC"}