@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,125 @@
1
+ import { getAccountStakeCredential, getBipPathString } from "./logic";
2
+ import { deviceActionFlow, formatDeviceAmount, SpeculosButton, } from "@ledgerhq/coin-framework/bot/specs";
3
+ export const acceptTransaction = deviceActionFlow({
4
+ steps: [
5
+ {
6
+ title: "New ordinary",
7
+ },
8
+ {
9
+ title: "transaction?",
10
+ button: SpeculosButton.BOTH,
11
+ },
12
+ {
13
+ title: "Warning:",
14
+ button: SpeculosButton.BOTH,
15
+ expectedValue: () => "cannot verify network id: no outputs or withrawals",
16
+ },
17
+ {
18
+ title: "Auxiliary data hash",
19
+ button: SpeculosButton.BOTH,
20
+ },
21
+ {
22
+ title: "Send to address (1/3)",
23
+ button: SpeculosButton.RIGHT,
24
+ },
25
+ {
26
+ title: "Send to address (2/3)",
27
+ button: SpeculosButton.RIGHT,
28
+ },
29
+ {
30
+ title: "Send to address (3/3)",
31
+ button: SpeculosButton.BOTH,
32
+ },
33
+ {
34
+ title: "Send to address (1/2)",
35
+ button: SpeculosButton.RIGHT,
36
+ },
37
+ {
38
+ title: "Send to address (2/2)",
39
+ button: SpeculosButton.BOTH,
40
+ },
41
+ {
42
+ title: "Send",
43
+ button: SpeculosButton.BOTH,
44
+ ignoreAssertionFailure: true,
45
+ expectedValue: ({ account, status }) => formatDeviceAmount(account.currency, status.amount),
46
+ },
47
+ {
48
+ title: "Asset fingerprint",
49
+ button: SpeculosButton.BOTH,
50
+ },
51
+ {
52
+ title: "Token amount",
53
+ button: SpeculosButton.BOTH,
54
+ },
55
+ {
56
+ title: "Confirm",
57
+ },
58
+ {
59
+ title: "output?",
60
+ button: SpeculosButton.BOTH,
61
+ },
62
+ {
63
+ title: "Transaction fee",
64
+ button: SpeculosButton.BOTH,
65
+ ignoreAssertionFailure: true,
66
+ expectedValue: ({ account, status }) => formatDeviceAmount(account.currency, status.estimatedFees),
67
+ },
68
+ {
69
+ title: "Register",
70
+ },
71
+ {
72
+ title: "Deregister",
73
+ },
74
+ {
75
+ title: "stake key",
76
+ button: SpeculosButton.BOTH,
77
+ },
78
+ {
79
+ title: "Stake key",
80
+ button: SpeculosButton.BOTH,
81
+ expectedValue: ({ account }) => {
82
+ const stakeCred = getAccountStakeCredential(account.xpub, account.index);
83
+ const bipPath = getBipPathString({
84
+ account: stakeCred.path.account,
85
+ chain: stakeCred.path.chain,
86
+ index: stakeCred.path.index,
87
+ });
88
+ return `m/${bipPath}`;
89
+ },
90
+ },
91
+ {
92
+ title: "Transaction TTL",
93
+ button: SpeculosButton.BOTH,
94
+ },
95
+ {
96
+ title: "...",
97
+ },
98
+ {
99
+ title: "registration?",
100
+ button: SpeculosButton.BOTH,
101
+ },
102
+ {
103
+ title: "deregistration?",
104
+ button: SpeculosButton.BOTH,
105
+ },
106
+ {
107
+ title: "Delegate stake (1/2)",
108
+ button: SpeculosButton.RIGHT,
109
+ },
110
+ {
111
+ title: "Delegate stake (2/2)",
112
+ button: SpeculosButton.BOTH,
113
+ },
114
+ {
115
+ title: "delegation?",
116
+ button: SpeculosButton.BOTH,
117
+ },
118
+ {
119
+ title: "transaction?",
120
+ final: true,
121
+ button: SpeculosButton.BOTH,
122
+ },
123
+ ],
124
+ });
125
+ //# sourceMappingURL=speculos-deviceActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculos-deviceActions.js","sourceRoot":"","sources":["../src/speculos-deviceActions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,oCAAoC,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAmC,gBAAgB,CAAC;IAChF,KAAK,EAAE;QACL;YACE,KAAK,EAAE,cAAc;SACtB;QACD;YACE,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,IAAI;YAC3B,aAAa,EAAE,GAAG,EAAE,CAAC,oDAAoD;SAC1E;QACD;YACE,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,cAAc,CAAC,IAAI;YAC3B,sBAAsB,EAAE,IAAI;YAC5B,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;SAC5F;QACD;YACE,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,SAAS;SACjB;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,cAAc,CAAC,IAAI;YAC3B,sBAAsB,EAAE,IAAI;YAC5B,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CACrC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC;SAC7D;QACD;YACE,KAAK,EAAE,UAAU;SAClB;QACD;YACE,KAAK,EAAE,YAAY;SACpB;QACD;YACE,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,cAAc,CAAC,IAAI;YAC3B,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC7B,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnF,MAAM,OAAO,GAAG,gBAAgB,CAAC;oBAC/B,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;oBAC/B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;oBAC3B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;iBAC5B,CAAC,CAAC;gBACH,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,CAAC;SACF;QACD;YACE,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,KAAK;SACb;QACD;YACE,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;QACD;YACE,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { GetAccountShape } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
3
+ import { CardanoSigner } from "./signer";
4
+ import { CardanoAccount } from "./types";
5
+ export declare const makeGetAccountShape: (signerContext: SignerContext<CardanoSigner>) => GetAccountShape<CardanoAccount>;
6
+ //# sourceMappingURL=synchronisation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../src/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EAEhB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAchE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,cAAc,EAOf,MAAM,SAAS,CAAC;AAYjB,eAAO,MAAM,mBAAmB,kBACd,cAAc,aAAa,CAAC,KAAG,gBAAgB,cAAc,CAwJ5E,CAAC"}
@@ -0,0 +1,230 @@
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 uniqBy from "lodash/uniqBy";
11
+ import BigNumber from "bignumber.js";
12
+ import { mergeOps, } from "@ledgerhq/coin-framework/bridge/jsHelpers";
13
+ import { utils as TyphonUtils } from "@stricahq/typhonjs";
14
+ import { listTokensForCryptoCurrency } from "@ledgerhq/cryptoassets";
15
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
16
+ import { encodeAccountId } from "@ledgerhq/coin-framework/account/index";
17
+ import { calculateMinUtxoAmount } from "@stricahq/typhonjs/dist/utils/utils";
18
+ import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
19
+ import { inferSubOperations } from "@ledgerhq/coin-framework/serialization/index";
20
+ import { getDelegationInfo } from "./api/getDelegationInfo";
21
+ import { HashType } from "./api/api-types";
22
+ import { getTransactions } from "./api/getTransactions";
23
+ import { getNetworkInfo } from "./api/getNetworkInfo";
24
+ import { buildSubAccounts } from "./buildSubAccounts";
25
+ import { getNetworkParameters } from "./networks";
26
+ import { getAccountChange, getAccountStakeCredential, getBaseAddress, getBipPathString, getMemoFromTx, getOperationType, isHexString, mergeTokens, } from "./logic";
27
+ export const makeGetAccountShape = (signerContext) => (info_1, _a) => __awaiter(void 0, [info_1, _a], void 0, function* (info, { blacklistedTokenIds }) {
28
+ var _b;
29
+ const { currency, index: accountIndex, derivationPath, derivationMode, initialAccount, deviceId, } = info;
30
+ // In case we get a full derivation path
31
+ const rootPath = derivationPath.split("/", 2).join("/");
32
+ const accountPath = `${rootPath}/${accountIndex}'`;
33
+ const paramXpub = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.xpub;
34
+ let xpub;
35
+ if (!paramXpub) {
36
+ if (deviceId === undefined || deviceId === null) {
37
+ // deviceId not provided
38
+ throw new Error("deviceId required to generate the xpub");
39
+ }
40
+ const extendedPubKeyRes = yield signerContext(deviceId, signer => signer.getPublicKey(accountPath));
41
+ xpub = `${extendedPubKeyRes.publicKeyHex}${extendedPubKeyRes.chainCodeHex}`;
42
+ }
43
+ else {
44
+ xpub = paramXpub;
45
+ }
46
+ const accountId = encodeAccountId({
47
+ type: "js",
48
+ version: "2",
49
+ currencyId: currency.id,
50
+ xpubOrAddress: xpub,
51
+ derivationMode,
52
+ });
53
+ // when new tokens are added / blacklist changes, we need to sync again because we need to go through all operations again
54
+ const syncHash = JSON.stringify(blacklistedTokenIds || []) +
55
+ "_" +
56
+ listTokensForCryptoCurrency(currency, {
57
+ withDelisted: true,
58
+ }).length;
59
+ const outdatedSyncHash = (initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.syncHash) !== syncHash;
60
+ const requiredConfirmations = 90;
61
+ const oldOperations = (initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.operations) || [];
62
+ const lastBlockHeight = oldOperations.length ? (oldOperations[0].blockHeight || 0) + 1 : 0;
63
+ const syncFromBlockHeight = outdatedSyncHash
64
+ ? 0
65
+ : lastBlockHeight > requiredConfirmations
66
+ ? lastBlockHeight - requiredConfirmations
67
+ : 0;
68
+ const { transactions: newTransactions, blockHeight, externalCredentials, internalCredentials, } = yield getTransactions(xpub, accountIndex, initialAccount, syncFromBlockHeight, currency);
69
+ const accountCredentialsMap = [...externalCredentials, ...internalCredentials].reduce((finalMap, cred) => {
70
+ finalMap[cred.key] = cred;
71
+ return finalMap;
72
+ }, {});
73
+ const stableOperationsByIds = {};
74
+ ((initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.operations) || []).forEach(o => {
75
+ if (o.blockHeight < syncFromBlockHeight) {
76
+ stableOperationsByIds[o.hash] = o;
77
+ }
78
+ });
79
+ const stableUtxos = (((_b = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.cardanoResources) === null || _b === void 0 ? void 0 : _b.utxos) || []).filter(u => stableOperationsByIds[u.hash]);
80
+ const utxos = prepareUtxos(newTransactions, stableUtxos, accountCredentialsMap);
81
+ const utxosSum = utxos.reduce((total, u) => total.plus(u.amount), new BigNumber(0));
82
+ const tokenBalance = mergeTokens(utxos.map(u => u.tokens).flat());
83
+ const subAccounts = buildSubAccounts({
84
+ initialAccount,
85
+ parentAccountId: accountId,
86
+ parentCurrency: currency,
87
+ newTransactions,
88
+ tokens: tokenBalance,
89
+ accountCredentialsMap,
90
+ }).filter(a => !(blacklistedTokenIds === null || blacklistedTokenIds === void 0 ? void 0 : blacklistedTokenIds.includes(a.token.id)));
91
+ const stakeCredential = getAccountStakeCredential(xpub, accountIndex);
92
+ const networkParams = getNetworkParameters(currency.id);
93
+ const freshAddresses = externalCredentials
94
+ .filter(c => !c.isUsed)
95
+ .map(c => ({
96
+ derivationPath: getBipPathString(c.path),
97
+ address: getBaseAddress({
98
+ networkId: networkParams.networkId,
99
+ paymentCred: c,
100
+ stakeCred: stakeCredential,
101
+ }).getBech32(),
102
+ }));
103
+ const cardanoNetworkInfo = yield getNetworkInfo(initialAccount, currency);
104
+ const delegationInfo = yield getDelegationInfo(currency, stakeCredential.key);
105
+ const totalBalance = (delegationInfo === null || delegationInfo === void 0 ? void 0 : delegationInfo.rewards) ? utxosSum.plus(delegationInfo.rewards) : utxosSum;
106
+ const minAdaBalanceForTokens = tokenBalance.length
107
+ ? calculateMinUtxoAmount(tokenBalance, new BigNumber(cardanoNetworkInfo.protocolParams.lovelacePerUtxoWord), false)
108
+ : new BigNumber(0);
109
+ const newOperations = newTransactions.map(t => mapTxToAccountOperation(t, accountId, accountCredentialsMap, stakeCredential, subAccounts, info, cardanoNetworkInfo.protocolParams));
110
+ const operations = mergeOps(Object.values(stableOperationsByIds), newOperations);
111
+ return {
112
+ id: accountId,
113
+ xpub,
114
+ balance: totalBalance,
115
+ spendableBalance: utxosSum.minus(minAdaBalanceForTokens),
116
+ operations: operations,
117
+ syncHash,
118
+ subAccounts,
119
+ freshAddress: freshAddresses[0].address,
120
+ freshAddressPath: freshAddresses[0].derivationPath,
121
+ blockHeight,
122
+ cardanoResources: {
123
+ utxos,
124
+ externalCredentials,
125
+ internalCredentials,
126
+ delegation: delegationInfo,
127
+ protocolParams: cardanoNetworkInfo.protocolParams,
128
+ },
129
+ };
130
+ });
131
+ function mapTxToAccountOperation(tx, accountId, accountCredentialsMap, stakeCredential, subAccounts, accountShapeInfo, protocolParams) {
132
+ const accountChange = getAccountChange(tx, accountCredentialsMap);
133
+ const subOperations = inferSubOperations(tx.hash, subAccounts);
134
+ const memo = getMemoFromTx(tx);
135
+ const extra = {};
136
+ if (memo) {
137
+ extra.memo = memo;
138
+ }
139
+ let operationValue = accountChange.ada;
140
+ if (tx.certificate.stakeRegistrations.length) {
141
+ const walletRegistration = tx.certificate.stakeRegistrations.find(c => c.stakeCredential.type === HashType.ADDRESS &&
142
+ c.stakeCredential.key === stakeCredential.key);
143
+ if (walletRegistration) {
144
+ extra.deposit = formatCurrencyUnit(accountShapeInfo.currency.units[0], new BigNumber(protocolParams.stakeKeyDeposit), {
145
+ showCode: true,
146
+ disableRounding: true,
147
+ });
148
+ }
149
+ }
150
+ if (tx.certificate.stakeDeRegistrations.length) {
151
+ const walletDeRegistration = tx.certificate.stakeDeRegistrations.find(c => c.stakeCredential.type === HashType.ADDRESS &&
152
+ c.stakeCredential.key === stakeCredential.key);
153
+ if (walletDeRegistration) {
154
+ operationValue = operationValue.minus(protocolParams.stakeKeyDeposit);
155
+ extra.refund = formatCurrencyUnit(accountShapeInfo.currency.units[0], new BigNumber(protocolParams.stakeKeyDeposit), {
156
+ showCode: true,
157
+ disableRounding: true,
158
+ });
159
+ }
160
+ }
161
+ if (tx.withdrawals && tx.withdrawals.length) {
162
+ const walletWithdraw = tx.withdrawals.find(w => w.stakeCredential.type === HashType.ADDRESS &&
163
+ w.stakeCredential.key === stakeCredential.key);
164
+ if (walletWithdraw) {
165
+ operationValue = operationValue.minus(walletWithdraw.amount);
166
+ extra.rewards = formatCurrencyUnit(accountShapeInfo.currency.units[0], new BigNumber(walletWithdraw.amount), {
167
+ showCode: true,
168
+ disableRounding: true,
169
+ });
170
+ }
171
+ }
172
+ const mainOperationType = tx.certificate.stakeDelegations.length
173
+ ? "DELEGATE"
174
+ : tx.certificate.stakeDeRegistrations.length
175
+ ? "UNDELEGATE"
176
+ : getOperationType({
177
+ valueChange: operationValue,
178
+ fees: new BigNumber(tx.fees),
179
+ });
180
+ return {
181
+ accountId,
182
+ id: encodeOperationId(accountId, tx.hash, mainOperationType),
183
+ hash: tx.hash,
184
+ type: mainOperationType,
185
+ fee: new BigNumber(tx.fees),
186
+ value: operationValue.absoluteValue(),
187
+ senders: tx.inputs.map(i => isHexString(i.address) ? TyphonUtils.getAddressFromHex(i.address).getBech32() : i.address),
188
+ recipients: tx.outputs.map(o => isHexString(o.address) ? TyphonUtils.getAddressFromHex(o.address).getBech32() : o.address),
189
+ subOperations,
190
+ blockHeight: tx.blockHeight,
191
+ date: new Date(tx.timestamp),
192
+ extra: extra,
193
+ blockHash: undefined,
194
+ };
195
+ }
196
+ function prepareUtxos(newTransactions, stableUtxos, accountCredentialsMap) {
197
+ const newUtxos = [];
198
+ // spentUtxoKey = txId#index
199
+ const spentUtxoKeys = new Set();
200
+ newTransactions.forEach(t => {
201
+ t.inputs.forEach(i => {
202
+ const cred = accountCredentialsMap[i.paymentKey];
203
+ if (cred)
204
+ spentUtxoKeys.add(`${i.txId}#${i.index}`);
205
+ });
206
+ t.outputs.forEach((o, outputIndex) => {
207
+ const cred = accountCredentialsMap[o.paymentKey];
208
+ if (cred) {
209
+ newUtxos.push({
210
+ hash: t.hash,
211
+ index: outputIndex,
212
+ address: o.address,
213
+ amount: new BigNumber(o.value),
214
+ tokens: o.tokens.map(token => ({
215
+ assetName: token.assetName,
216
+ policyId: token.policyId,
217
+ amount: new BigNumber(token.value),
218
+ })),
219
+ paymentCredential: {
220
+ key: o.paymentKey,
221
+ path: cred.path,
222
+ },
223
+ });
224
+ }
225
+ });
226
+ });
227
+ const utxos = uniqBy([...stableUtxos, ...newUtxos], u => `${u.hash}#${u.index}`).filter(u => !spentUtxoKeys.has(`${u.hash}#${u.index}`));
228
+ return utxos;
229
+ }
230
+ //# sourceMappingURL=synchronisation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../src/synchronisation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAGL,QAAQ,GACT,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAkB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAWlD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,aAA2C,EAAmC,EAAE,CACjF,aAAsC,EAAE,oDAAjC,IAAI,EAAE,EAAE,mBAAmB,EAAE;;IAClC,MAAM,EACJ,QAAQ,EACR,KAAK,EAAE,YAAY,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,QAAQ,GACT,GAAG,IAAI,CAAC;IACT,wCAAwC;IACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,YAAY,GAAG,CAAC;IAEnD,MAAM,SAAS,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC;IACvC,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChD,wBAAwB;YACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAC/D,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CACjC,CAAC;QACF,IAAI,GAAG,GAAG,iBAAiB,CAAC,YAAY,GAAG,iBAAiB,CAAC,YAAY,EAAE,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,IAAI;QACnB,cAAc;KACf,CAAC,CAAC;IAEH,0HAA0H;IAC1H,MAAM,QAAQ,GACZ,IAAI,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,CAAC;QACzC,GAAG;QACH,2BAA2B,CAAC,QAAQ,EAAE;YACpC,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC,MAAM,CAAC;IACZ,MAAM,gBAAgB,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,MAAK,QAAQ,CAAC;IAE/D,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,KAAI,EAAE,CAAC;IACvD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,MAAM,mBAAmB,GAAG,gBAAgB;QAC1C,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,eAAe,GAAG,qBAAqB;YACvC,CAAC,CAAC,eAAe,GAAG,qBAAqB;YACzC,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,EACJ,YAAY,EAAE,eAAe,EAC7B,WAAW,EACX,mBAAmB,EACnB,mBAAmB,GACpB,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAE7F,MAAM,qBAAqB,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC,MAAM,CACnF,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,EAAuC,CACxC,CAAC;IAEF,MAAM,qBAAqB,GAA8B,EAAE,CAAC;IAC5D,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,KAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC7C,IAAK,CAAC,CAAC,WAAsB,GAAG,mBAAmB,EAAE,CAAC;YACpD,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,CAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,gBAAgB,0CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,MAAM,CACxE,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CACnC,CAAC;IAEF,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,gBAAgB,CAAC;QACnC,cAAc;QACd,eAAe,EAAE,SAAS;QAC1B,cAAc,EAAE,QAAQ;QACxB,eAAe;QACf,MAAM,EAAE,YAAY;QACpB,qBAAqB;KACtB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC;IAE3D,MAAM,eAAe,GAAG,yBAAyB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,mBAAmB;SACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,OAAO,EAAE,cAAc,CAAC;YACtB,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAC,SAAS,EAAE;KACf,CAAC,CAAC,CAAC;IACN,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IAE9E,MAAM,YAAY,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEhG,MAAM,sBAAsB,GAAG,YAAY,CAAC,MAAM;QAChD,CAAC,CAAC,sBAAsB,CACpB,YAAY,EACZ,IAAI,SAAS,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAmB,CAAC,EACpE,KAAK,CACN;QACH,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAErB,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC5C,uBAAuB,CACrB,CAAC,EACD,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,IAAI,EACJ,kBAAkB,CAAC,cAAc,CAClC,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,aAAa,CAAC,CAAC;IAEjF,OAAO;QACL,EAAE,EAAE,SAAS;QACb,IAAI;QACJ,OAAO,EAAE,YAAY;QACrB,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC;QACxD,UAAU,EAAE,UAAU;QACtB,QAAQ;QACR,WAAW;QACX,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO;QACvC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc;QAClD,WAAW;QACX,gBAAgB,EAAE;YAChB,KAAK;YACL,mBAAmB;YACnB,mBAAmB;YACnB,UAAU,EAAE,cAAc;YAC1B,cAAc,EAAE,kBAAkB,CAAC,cAAc;SAClD;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEJ,SAAS,uBAAuB,CAC9B,EAAkB,EAClB,SAAiB,EACjB,qBAAwD,EACxD,eAAgC,EAChC,WAAgC,EAChC,gBAAkC,EAClC,cAA8B;IAE9B,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC;IAEvC,IAAI,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,kBAAkB,GAAG,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAC/D,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;YAC3C,CAAC,CAAC,eAAe,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAChD,CAAC;QACF,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAChC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAClC,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,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,oBAAoB,GAAG,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CACnE,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;YAC3C,CAAC,CAAC,eAAe,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAChD,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,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAClC,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,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;YAC3C,CAAC,CAAC,eAAe,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAChD,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,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAClC,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,iBAAiB,GAAkB,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM;QAC7E,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,MAAM;YAC1C,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,gBAAgB,CAAC;gBACf,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;aAC7B,CAAC,CAAC;IAET,OAAO;QACL,SAAS;QACT,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC5D,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE;QACrC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACzB,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1F;QACD,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC7B,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1F;QACD,aAAa;QACb,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;QAC5B,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,eAAsC,EACtC,WAAiC,EACjC,qBAAwD;IAExD,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,4BAA4B;IAC5B,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE7C,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC1B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,IAAI;gBAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,MAAM,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;qBACnC,CAAC,CAAC;oBACH,iBAAiB,EAAE;wBACjB,GAAG,EAAE,CAAC,CAAC,UAAU;wBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CACrF,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAChD,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=synchronisation.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronisation.unit.test.d.ts","sourceRoot":"","sources":["../src/synchronisation.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,124 @@
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 BigNumber from "bignumber.js";
11
+ import { getDelegationInfo } from "./api/getDelegationInfo";
12
+ import { makeGetAccountShape } from "./synchronisation";
13
+ import { getTransactions } from "./api/getTransactions";
14
+ import { buildSubAccounts } from "./buildSubAccounts";
15
+ import { getNetworkInfo } from "./api/getNetworkInfo";
16
+ jest.mock("./buildSubAccounts");
17
+ jest.mock("./api/getTransactions");
18
+ jest.mock("./api/getNetworkInfo");
19
+ jest.mock("./api/getDelegationInfo");
20
+ describe("makeGetAccountShape", () => {
21
+ let signerContext;
22
+ let shape;
23
+ let accountShapeInfo;
24
+ let getTransactionsMock;
25
+ beforeEach(() => {
26
+ const pubKeyMock = {
27
+ chainCodeHex: "chainCodeHex",
28
+ publicKeyHex: "publicKeyHex",
29
+ };
30
+ const fakeSigner = {
31
+ getAddress: jest.fn(),
32
+ sign: jest.fn(),
33
+ getPublicKey: jest.fn().mockResolvedValue(pubKeyMock),
34
+ };
35
+ signerContext = (_, fn) => fn(fakeSigner);
36
+ shape = makeGetAccountShape(signerContext);
37
+ accountShapeInfo = {
38
+ currency: { id: "cardano" },
39
+ address: "add",
40
+ index: 0,
41
+ initialAccount: {
42
+ cardanoResources: {
43
+ utxos: [
44
+ {
45
+ hash: "hash",
46
+ index: 0,
47
+ address: "addr",
48
+ amount: new BigNumber(1),
49
+ tokens: [],
50
+ paymentCredential: {
51
+ key: "key",
52
+ path: {
53
+ purpose: 1852,
54
+ coin: 1815,
55
+ account: 0,
56
+ chain: 0,
57
+ index: 0,
58
+ },
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ },
64
+ derivationPath: "",
65
+ derivationMode: "cardano",
66
+ deviceId: "id",
67
+ };
68
+ const buildSubAccountsMock = jest.mocked(buildSubAccounts);
69
+ buildSubAccountsMock.mockReturnValue([]);
70
+ getTransactionsMock = jest.mocked(getTransactions);
71
+ const getNetworkInfoMock = jest.mocked(getNetworkInfo);
72
+ getNetworkInfoMock.mockReturnValue(Promise.resolve({ protocolParams: { lovelacePerUtxoWord: "1" } }));
73
+ });
74
+ afterEach(() => {
75
+ jest.resetAllMocks();
76
+ });
77
+ describe("balance", () => {
78
+ it("should return 0 balance when there is no utxos", () => __awaiter(void 0, void 0, void 0, function* () {
79
+ getTransactionsMock.mockReturnValue(Promise.resolve({
80
+ transactions: [],
81
+ externalCredentials: [
82
+ { path: { index: 0 }, networkId: "id", isUsed: false, key: "" },
83
+ ],
84
+ internalCredentials: [],
85
+ blockHeight: 0,
86
+ }));
87
+ const result = yield shape(accountShapeInfo, { paginationConfig: {} });
88
+ expect(result.balance).toEqual(new BigNumber(0));
89
+ }));
90
+ it("should return the sum of utxos with delegation reward value", () => __awaiter(void 0, void 0, void 0, function* () {
91
+ getTransactionsMock.mockReturnValue(Promise.resolve({
92
+ transactions: [],
93
+ externalCredentials: [
94
+ { path: { index: 0 }, networkId: "id", isUsed: false, key: "" },
95
+ ],
96
+ internalCredentials: [
97
+ {
98
+ isUsed: true,
99
+ key: "cred",
100
+ },
101
+ ],
102
+ blockHeight: 0,
103
+ }));
104
+ const getDelegationInfoMock = jest.mocked(getDelegationInfo);
105
+ getDelegationInfoMock.mockReturnValue(Promise.resolve({ rewards: new BigNumber(42) }));
106
+ const result = yield shape(accountShapeInfo, { paginationConfig: {} });
107
+ expect(result.balance).toEqual(new BigNumber(42));
108
+ }));
109
+ });
110
+ describe("spendableBalance", () => {
111
+ it("should return 0 spendable balance when there is no utxos", () => __awaiter(void 0, void 0, void 0, function* () {
112
+ const getTransactionsMock = jest.mocked(getTransactions);
113
+ getTransactionsMock.mockReturnValue(Promise.resolve({
114
+ transactions: [],
115
+ externalCredentials: [{ path: "p", networkId: "id" }],
116
+ internalCredentials: [],
117
+ }));
118
+ const result = yield shape(accountShapeInfo, { paginationConfig: {} });
119
+ expect(result.spendableBalance).toEqual(new BigNumber(0));
120
+ }));
121
+ // it("should return the sum of utxos minus ada minimum for tokens", async () => {});
122
+ });
123
+ });
124
+ //# sourceMappingURL=synchronisation.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronisation.unit.test.js","sourceRoot":"","sources":["../src/synchronisation.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Transaction, TransactionRaw } from "./types";
2
+ import type { Account } from "@ledgerhq/types-live";
3
+ export declare const formatTransaction: ({ mode, amount, recipient, useAllAmount, subAccountId }: Transaction, mainAccount: Account) => string;
4
+ export declare const fromTransactionRaw: (tr: TransactionRaw) => Transaction;
5
+ export declare const toTransactionRaw: (t: Transaction) => TransactionRaw;
6
+ declare const _default: {
7
+ formatTransaction: ({ mode, amount, recipient, useAllAmount, subAccountId }: Transaction, mainAccount: Account) => string;
8
+ fromTransactionRaw: (tr: TransactionRaw) => Transaction;
9
+ toTransactionRaw: (t: Transaction) => TransactionRaw;
10
+ fromTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommonRaw) => import("@ledgerhq/types-live").TransactionStatusCommon;
11
+ toTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommon) => import("@ledgerhq/types-live").TransactionStatusCommonRaw;
12
+ formatTransactionStatus: (t: import("@ledgerhq/types-live").TransactionCommon, { errors, warnings, estimatedFees, amount, totalSpent }: import("@ledgerhq/types-live").TransactionStatusCommon, mainAccount: Account) => string;
13
+ };
14
+ export default _default;
15
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAW3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,4DAC6B,WAAW,eACvD,OAAO,KACnB,MAgBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,WAUvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAO,WAAW,KAAG,cAUjD,CAAC;;;;;;;;;AAEF,wBAOE"}
@@ -0,0 +1,37 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import { formatTransactionStatus } from "@ledgerhq/coin-framework/formatters";
3
+ import { fromTransactionCommonRaw, fromTransactionStatusRawCommon as fromTransactionStatusRaw, toTransactionCommonRaw, toTransactionStatusRawCommon as toTransactionStatusRaw, } from "@ledgerhq/coin-framework/serialization";
4
+ import { getAccountCurrency } from "@ledgerhq/coin-framework/account/index";
5
+ import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
6
+ export const formatTransaction = ({ mode, amount, recipient, useAllAmount, subAccountId }, mainAccount) => {
7
+ const account = (subAccountId && (mainAccount.subAccounts || []).find(a => a.id === subAccountId)) ||
8
+ mainAccount;
9
+ return `
10
+ ${mode.toUpperCase()} ${useAllAmount
11
+ ? "MAX"
12
+ : amount.isZero()
13
+ ? ""
14
+ : " " +
15
+ formatCurrencyUnit(getAccountCurrency(account).units[0], amount, {
16
+ showCode: true,
17
+ disableRounding: true,
18
+ })}${recipient ? `\nTO ${recipient}` : ""}`;
19
+ };
20
+ export const fromTransactionRaw = (tr) => {
21
+ const common = fromTransactionCommonRaw(tr);
22
+ return Object.assign(Object.assign({}, common), { family: tr.family, mode: tr.mode, fees: tr.fees ? new BigNumber(tr.fees) : undefined, memo: tr.memo, poolId: tr.poolId });
23
+ };
24
+ export const toTransactionRaw = (t) => {
25
+ var _a;
26
+ const common = toTransactionCommonRaw(t);
27
+ return Object.assign(Object.assign({}, common), { family: t.family, mode: t.mode, fees: ((_a = t.fees) === null || _a === void 0 ? void 0 : _a.toString()) || undefined, memo: t.memo, poolId: t.poolId });
28
+ };
29
+ export default {
30
+ formatTransaction,
31
+ fromTransactionRaw,
32
+ toTransactionRaw,
33
+ fromTransactionStatusRaw,
34
+ toTransactionStatusRaw,
35
+ formatTransactionStatus,
36
+ };
37
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,8BAA8B,IAAI,wBAAwB,EAC1D,sBAAsB,EACtB,4BAA4B,IAAI,sBAAsB,GACvD,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAG/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAe,EACpE,WAAoB,EACZ,EAAE;IACV,MAAM,OAAO,GACX,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;QAClF,WAAW,CAAC;IACd,OAAO;IACL,IAAI,CAAC,WAAW,EAAE,IAClB,YAAY;QACV,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;YACf,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG;gBACH,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,eAAe,EAAE,IAAI;iBACtB,CACT,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC5C,uCACK,MAAM,KACT,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAClD,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,MAAM,EAAE,EAAE,CAAC,MAAM,IACjB;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAc,EAAkB,EAAE;;IACjE,MAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACzC,uCACK,MAAM,KACT,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,IAAI,EAAE,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,QAAQ,EAAE,KAAI,SAAS,EACrC,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,MAAM,EAAE,CAAC,CAAC,MAAM,IAChB;AACJ,CAAC,CAAC;AAEF,eAAe;IACb,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,wBAAwB;IACxB,sBAAsB;IACtB,uBAAuB;CACxB,CAAC"}