@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,88 @@
1
+ import { types as TyphonTypes, address as TyphonAddress } from "@stricahq/typhonjs";
2
+ import { CardanoAccount, BipPath, PaymentChain, PaymentCredential, StakeChain, StakeCredential, Token } from "./types";
3
+ import { Bip32PublicKey } from "@stricahq/bip32ed25519";
4
+ import BigNumber from "bignumber.js";
5
+ import { APITransaction } from "./api/api-types";
6
+ import type { OperationType } from "@ledgerhq/types-live";
7
+ import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
8
+ /**
9
+ * returns BipPath object with account, chain and index field for cardano
10
+ *
11
+ * @param {string} path
12
+ */
13
+ export declare function getBipPathFromString(path: string): BipPath;
14
+ /**
15
+ *
16
+ * @returns true if the account can stake, false otherwise
17
+ */
18
+ export declare function canStake(account: CardanoAccount): boolean;
19
+ /**
20
+ *
21
+ * @returns true if account is staked, false otherwise
22
+ */
23
+ export declare function isAlreadyStaking(account: CardanoAccount): boolean;
24
+ /**
25
+ * returns complete bipPath with purpose, coin, account, chain and index for cardano
26
+ */
27
+ export declare function getBipPath({ account, chain, index, }: {
28
+ account: number;
29
+ chain: PaymentChain | StakeChain;
30
+ index: number;
31
+ }): BipPath;
32
+ /**
33
+ * returns bipPathString from account, chain and index for cardano
34
+ */
35
+ export declare function getBipPathString({ account, chain, index, }: {
36
+ account: number;
37
+ chain: number;
38
+ index: number;
39
+ }): string;
40
+ export declare function getExtendedPublicKeyFromHex(keyHex: string): Bip32PublicKey;
41
+ export declare function getCredentialKey(accountKey: Bip32PublicKey, path: BipPath): {
42
+ key: string;
43
+ path: BipPath;
44
+ };
45
+ /**
46
+ * returns cardano base address by paymentKey and stakeKey
47
+ */
48
+ export declare function getBaseAddress({ networkId, paymentCred, stakeCred, }: {
49
+ networkId: number;
50
+ paymentCred: PaymentCredential;
51
+ stakeCred: StakeCredential;
52
+ }): TyphonAddress.BaseAddress;
53
+ /**
54
+ * Returns true if address is a valid
55
+ *
56
+ * @param {string} address
57
+ */
58
+ export declare const isValidAddress: (address: string, networkId: number) => boolean;
59
+ export declare const getAbsoluteSlot: (networkName: string, time: Date) => number;
60
+ /**
61
+ * Returns the time to live for transaction
62
+ *
63
+ * @returns {number}
64
+ */
65
+ export declare function getTTL(networkName: string): number;
66
+ export declare function getEpoch(networkName: string, time: Date): number;
67
+ export declare function mergeTokens(tokens: Array<TyphonTypes.Token>): Array<TyphonTypes.Token>;
68
+ /**
69
+ * @param { Array<TyphonTypes.Token> } b
70
+ * @param { Array<TyphonTypes.Token> } a
71
+ * @returns a - b
72
+ */
73
+ export declare function getTokenDiff(a: Array<TyphonTypes.Token>, b: Array<TyphonTypes.Token>): Array<TyphonTypes.Token>;
74
+ export declare function getAccountStakeCredential(xpub: string, index: number): StakeCredential;
75
+ export declare function getOperationType({ valueChange, fees, }: {
76
+ valueChange: BigNumber;
77
+ fees: BigNumber;
78
+ }): OperationType;
79
+ export declare function isTestnet(currency: CryptoCurrency): boolean;
80
+ export declare function getAccountChange(t: APITransaction, accountCredentialsMap: Record<string, PaymentCredential>): {
81
+ ada: BigNumber;
82
+ tokens: Array<Token>;
83
+ };
84
+ export declare function getMemoFromTx(tx: APITransaction): string | undefined;
85
+ export declare function isHexString(value: string): boolean;
86
+ export declare function decodeTokenName(assetName: string): string;
87
+ export declare function getBech32PoolId(poolId: string, networkName: string): string;
88
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ import { CARDANO_COIN_TYPE, CARDANO_PURPOSE, MEMO_LABEL, STAKING_ADDRESS_INDEX, TTL_GAP, } from "./constants";
2
+ import { utils as TyphonUtils, types as TyphonTypes, address as TyphonAddress, } from "@stricahq/typhonjs";
3
+ import { StakeChain, } from "./types";
4
+ import { Bip32PublicKey } from "@stricahq/bip32ed25519";
5
+ import BigNumber from "bignumber.js";
6
+ import { getNetworkParameters } from "./networks";
7
+ import groupBy from "lodash/groupBy";
8
+ import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets";
9
+ import ShelleyTypeAddress from "@stricahq/typhonjs/dist/address/ShelleyTypeAddress";
10
+ import bech32 from "bech32";
11
+ /**
12
+ * returns BipPath object with account, chain and index field for cardano
13
+ *
14
+ * @param {string} path
15
+ */
16
+ export function getBipPathFromString(path) {
17
+ const regEx = new RegExp(`^${CARDANO_PURPOSE}'/${CARDANO_COIN_TYPE}'/(\\d*)'/([012])/(\\d*)`);
18
+ const result = path.match(regEx);
19
+ if (result == null) {
20
+ throw new Error("Invalid derivation path");
21
+ }
22
+ return getBipPath({
23
+ account: parseInt(result[1]),
24
+ chain: parseInt(result[2]),
25
+ index: parseInt(result[3]),
26
+ });
27
+ }
28
+ /**
29
+ *
30
+ * @returns true if the account can stake, false otherwise
31
+ */
32
+ export function canStake(account) {
33
+ return account.balance.gt(0);
34
+ }
35
+ /**
36
+ *
37
+ * @returns true if account is staked, false otherwise
38
+ */
39
+ export function isAlreadyStaking(account) {
40
+ var _a, _b;
41
+ return !!((_b = (_a = account.cardanoResources) === null || _a === void 0 ? void 0 : _a.delegation) === null || _b === void 0 ? void 0 : _b.poolId);
42
+ }
43
+ /**
44
+ * returns complete bipPath with purpose, coin, account, chain and index for cardano
45
+ */
46
+ export function getBipPath({ account, chain, index, }) {
47
+ return {
48
+ purpose: CARDANO_PURPOSE,
49
+ coin: CARDANO_COIN_TYPE,
50
+ account,
51
+ chain,
52
+ index,
53
+ };
54
+ }
55
+ /**
56
+ * returns bipPathString from account, chain and index for cardano
57
+ */
58
+ export function getBipPathString({ account, chain, index, }) {
59
+ return `${CARDANO_PURPOSE}'/${CARDANO_COIN_TYPE}'/${account}'/${chain}/${index}`;
60
+ }
61
+ export function getExtendedPublicKeyFromHex(keyHex) {
62
+ return Bip32PublicKey.fromBytes(Buffer.from(keyHex, "hex"));
63
+ }
64
+ export function getCredentialKey(accountKey, path) {
65
+ const keyBytes = accountKey.derive(path.chain).derive(path.index).toPublicKey().hash();
66
+ const pubKeyHex = keyBytes.toString("hex");
67
+ return {
68
+ key: pubKeyHex,
69
+ path,
70
+ };
71
+ }
72
+ /**
73
+ * returns cardano base address by paymentKey and stakeKey
74
+ */
75
+ export function getBaseAddress({ networkId, paymentCred, stakeCred, }) {
76
+ const paymentCredential = {
77
+ hash: paymentCred.key,
78
+ type: TyphonTypes.HashType.ADDRESS,
79
+ bipPath: paymentCred.path,
80
+ };
81
+ const stakeCredential = {
82
+ hash: stakeCred.key,
83
+ type: TyphonTypes.HashType.ADDRESS,
84
+ bipPath: stakeCred.path,
85
+ };
86
+ return new TyphonAddress.BaseAddress(networkId, paymentCredential, stakeCredential);
87
+ }
88
+ /**
89
+ * Returns true if address is a valid
90
+ *
91
+ * @param {string} address
92
+ */
93
+ export const isValidAddress = (address, networkId) => {
94
+ if (!address)
95
+ return false;
96
+ try {
97
+ const cardanoAddress = TyphonUtils.getAddressFromBech32(address);
98
+ if (cardanoAddress instanceof ShelleyTypeAddress) {
99
+ const addressNetworkId = Number(cardanoAddress.getHex().toLowerCase().charAt(1));
100
+ if (addressNetworkId !== networkId) {
101
+ return false;
102
+ }
103
+ }
104
+ }
105
+ catch (error) {
106
+ return false;
107
+ }
108
+ return true;
109
+ };
110
+ export const getAbsoluteSlot = function (networkName, time) {
111
+ const networkParams = getNetworkParameters(networkName);
112
+ const byronChainEndSlots = networkParams.shelleyStartEpoch * networkParams.byronSlotsPerEpoch;
113
+ const byronChainEndTime = byronChainEndSlots * networkParams.byronSlotDuration;
114
+ const shelleyChainTime = time.getTime() - networkParams.chainStartTime - byronChainEndTime;
115
+ const shelleyChainSlots = Math.floor(shelleyChainTime / networkParams.shelleySlotDuration);
116
+ return byronChainEndSlots + shelleyChainSlots;
117
+ };
118
+ /**
119
+ * Returns the time to live for transaction
120
+ *
121
+ * @returns {number}
122
+ */
123
+ export function getTTL(networkName) {
124
+ return getAbsoluteSlot(networkName, new Date()) + TTL_GAP;
125
+ }
126
+ export function getEpoch(networkName, time) {
127
+ const networkParams = getNetworkParameters(networkName);
128
+ const chainTime = time.getTime() - networkParams.chainStartTime;
129
+ const epoch = Math.floor(chainTime / (networkParams.shelleySlotsPerEpoch * networkParams.shelleySlotDuration));
130
+ return epoch;
131
+ }
132
+ export function mergeTokens(tokens) {
133
+ return Object.values(groupBy(tokens, t => `${t.policyId}${t.assetName}`)).map(similarTokens => ({
134
+ policyId: similarTokens[0].policyId,
135
+ assetName: similarTokens[0].assetName,
136
+ amount: similarTokens.reduce((total, token) => total.plus(token.amount), new BigNumber(0)),
137
+ }));
138
+ }
139
+ /**
140
+ * @param { Array<TyphonTypes.Token> } b
141
+ * @param { Array<TyphonTypes.Token> } a
142
+ * @returns a - b
143
+ */
144
+ export function getTokenDiff(a, b) {
145
+ return mergeTokens(a.concat(b.map(t => (Object.assign(Object.assign({}, t), { amount: t.amount.negated() }))))).filter(t => !t.amount.eq(0));
146
+ }
147
+ export function getAccountStakeCredential(xpub, index) {
148
+ const accountXPubKey = getExtendedPublicKeyFromHex(xpub);
149
+ const keyPath = getCredentialKey(accountXPubKey, getBipPath({
150
+ account: index,
151
+ chain: StakeChain.stake,
152
+ index: STAKING_ADDRESS_INDEX,
153
+ }));
154
+ return {
155
+ key: keyPath.key,
156
+ path: keyPath.path,
157
+ };
158
+ }
159
+ export function getOperationType({ valueChange, fees, }) {
160
+ return valueChange.isNegative()
161
+ ? valueChange.absoluteValue().eq(fees)
162
+ ? "FEES"
163
+ : "OUT"
164
+ : valueChange.isPositive()
165
+ ? "IN"
166
+ : "NONE";
167
+ }
168
+ export function isTestnet(currency) {
169
+ return getCryptoCurrencyById(currency.id).isTestnetFor ? true : false;
170
+ }
171
+ export function getAccountChange(t, accountCredentialsMap) {
172
+ let accountInputAda = new BigNumber(0);
173
+ const accountInputTokens = [];
174
+ t.inputs.forEach(i => {
175
+ if (accountCredentialsMap[i.paymentKey]) {
176
+ accountInputAda = accountInputAda.plus(i.value);
177
+ accountInputTokens.push(...i.tokens.map(t => ({
178
+ assetName: t.assetName,
179
+ policyId: t.policyId,
180
+ amount: new BigNumber(t.value),
181
+ })));
182
+ }
183
+ });
184
+ let accountOutputAda = new BigNumber(0);
185
+ const accountOutputTokens = [];
186
+ t.outputs.forEach(o => {
187
+ if (accountCredentialsMap[o.paymentKey]) {
188
+ accountOutputAda = accountOutputAda.plus(o.value);
189
+ accountOutputTokens.push(...o.tokens.map(t => ({
190
+ assetName: t.assetName,
191
+ policyId: t.policyId,
192
+ amount: new BigNumber(t.value),
193
+ })));
194
+ }
195
+ });
196
+ return {
197
+ ada: accountOutputAda.minus(accountInputAda),
198
+ tokens: getTokenDiff(accountOutputTokens, accountInputTokens),
199
+ };
200
+ }
201
+ export function getMemoFromTx(tx) {
202
+ var _a;
203
+ let memo;
204
+ const metadataValue = (_a = tx.metadata) === null || _a === void 0 ? void 0 : _a.data.find(m => m.label === MEMO_LABEL.toString());
205
+ if (metadataValue) {
206
+ try {
207
+ const parsedValue = JSON.parse(metadataValue.value);
208
+ if (parsedValue.msg && Array.isArray(parsedValue.msg) && parsedValue.msg.length) {
209
+ memo = parsedValue.msg.join(", ");
210
+ }
211
+ // eslint-disable-next-line no-empty
212
+ }
213
+ catch (e) { }
214
+ }
215
+ return memo;
216
+ }
217
+ export function isHexString(value) {
218
+ const regExp = /^[0-9a-fA-F]+$/;
219
+ return regExp.test(value);
220
+ }
221
+ export function decodeTokenName(assetName) {
222
+ if (assetName.length > 0) {
223
+ const bytes = [...Buffer.from(assetName, "hex")];
224
+ if (bytes.filter(byte => byte <= 32 || byte >= 127).length === 0) {
225
+ return String.fromCharCode(...bytes);
226
+ }
227
+ }
228
+ return assetName;
229
+ }
230
+ export function getBech32PoolId(poolId, networkName) {
231
+ const networkParams = getNetworkParameters(networkName);
232
+ const words = bech32.toWords(Buffer.from(poolId, "hex"));
233
+ const encoded = bech32.encode(networkParams.poolIdPrefix, words, 1000);
234
+ return encoded;
235
+ }
236
+ //# sourceMappingURL=logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logic.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.unit.test.d.ts","sourceRoot":"","sources":["../src/logic.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { canStake, isAlreadyStaking } from "./logic";
3
+ describe("canStake", () => {
4
+ it("should return false when acc has no funds", () => {
5
+ const accWithNoFunds = {
6
+ balance: new BigNumber(0),
7
+ };
8
+ expect(canStake(accWithNoFunds)).toEqual(false);
9
+ });
10
+ it("should return true when acc has funds", () => {
11
+ const accWithFunds = {
12
+ balance: new BigNumber(1),
13
+ };
14
+ expect(canStake(accWithFunds)).toEqual(true);
15
+ });
16
+ });
17
+ describe("isAlreadyStaking", () => {
18
+ it("should return false when acc isn't delegating", () => {
19
+ const noResourcesAcc = {};
20
+ expect(isAlreadyStaking(noResourcesAcc)).toEqual(false);
21
+ const noDelegationAcc = {
22
+ cardanoResources: {},
23
+ };
24
+ expect(isAlreadyStaking(noDelegationAcc)).toEqual(false);
25
+ const noPoolIdAcc = { cardanoResources: { delegation: {} } };
26
+ expect(isAlreadyStaking(noPoolIdAcc)).toEqual(false);
27
+ });
28
+ it("should return true when acc is delegating", () => {
29
+ const noResourcesAcc = {
30
+ cardanoResources: { delegation: { poolId: "itspoolid" } },
31
+ };
32
+ expect(isAlreadyStaking(noResourcesAcc)).toEqual(true);
33
+ });
34
+ });
35
+ //# sourceMappingURL=logic.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.unit.test.js","sourceRoot":"","sources":["../src/logic.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGrD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,cAAc,GAAG;YACrB,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;SACR,CAAC;QACpB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;SACR,CAAC;QACpB,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,cAAc,GAAG,EAAoB,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG;YACtB,gBAAgB,EAAE,EAAE;SACH,CAAC;QACpB,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAoB,CAAC;QAC/E,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,cAAc,GAAG;YACrB,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;SACxC,CAAC;QACpB,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CardanoLikeNetworkParameters } from "./types";
2
+ export declare const getNetworkParameters: (networkName: string) => CardanoLikeNetworkParameters;
3
+ //# sourceMappingURL=networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAE5D,eAAO,MAAM,oBAAoB,gBAAiB,MAAM,KAAG,4BA8B1D,CAAC"}
@@ -0,0 +1,32 @@
1
+ export const getNetworkParameters = (networkName) => {
2
+ if (networkName === "cardano") {
3
+ return {
4
+ identifier: "cardano",
5
+ networkId: 1,
6
+ chainStartTime: 1506203091000,
7
+ byronSlotDuration: 20000,
8
+ byronSlotsPerEpoch: 21600,
9
+ shelleyStartEpoch: 208,
10
+ shelleySlotDuration: 1000,
11
+ shelleySlotsPerEpoch: 432000,
12
+ addressPrefix: "addr",
13
+ poolIdPrefix: "pool",
14
+ };
15
+ }
16
+ else if (networkName === "cardano_testnet") {
17
+ return {
18
+ identifier: "cardano_testnet",
19
+ networkId: 0,
20
+ chainStartTime: 1563999616000,
21
+ byronSlotDuration: 20000,
22
+ byronSlotsPerEpoch: 21600,
23
+ shelleyStartEpoch: 74,
24
+ shelleySlotDuration: 1000,
25
+ shelleySlotsPerEpoch: 432000,
26
+ addressPrefix: "addr_test",
27
+ poolIdPrefix: "pool",
28
+ };
29
+ }
30
+ throw new Error("No network parameters set for " + networkName);
31
+ };
32
+ //# sourceMappingURL=networks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.js","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAAmB,EAAgC,EAAE;IACxF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,aAAa;YAC7B,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,KAAK;YACzB,iBAAiB,EAAE,GAAG;YACtB,mBAAmB,EAAE,IAAI;YACzB,oBAAoB,EAAE,MAAM;YAC5B,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,MAAM;SACrB,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;QAC7C,OAAO;YACL,UAAU,EAAE,iBAAiB;YAC7B,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,aAAa;YAC7B,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,KAAK;YACzB,iBAAiB,EAAE,EAAE;YACrB,mBAAmB,EAAE,IAAI;YACzB,oBAAoB,EAAE,MAAM;YAC5B,aAAa,EAAE,WAAW;YAC1B,YAAY,EAAE,MAAM;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,WAAW,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Code reference taken from src/families/ethereum/postSyncPatch.ts
3
+ */
4
+ import { CardanoAccount } from "./types";
5
+ export declare const postSyncPatch: (initial: CardanoAccount, synced: CardanoAccount) => CardanoAccount;
6
+ //# sourceMappingURL=postSyncPatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postSyncPatch.d.ts","sourceRoot":"","sources":["../src/postSyncPatch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAsBzC,eAAO,MAAM,aAAa,YAAa,cAAc,UAAU,cAAc,KAAG,cAc/E,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Code reference taken from src/families/ethereum/postSyncPatch.ts
3
+ */
4
+ // we need to preserve ADA pendingOperations because there is no mempool to do this
5
+ // we assume we need to preserve until:
6
+ // - that txid appears in operations
7
+ const postSyncPatchGen = (initial, synced, parentPendingOperation) => {
8
+ const pendingOperations = initial.pendingOperations || [];
9
+ if (pendingOperations.length === 0)
10
+ return synced;
11
+ const { operations } = synced;
12
+ synced.pendingOperations = pendingOperations.filter(op => (!parentPendingOperation || // a child pending parent need to disappear if parent ada op disappear
13
+ parentPendingOperation.some(o => o.hash === op.hash)) &&
14
+ !operations.some(o => o.hash === op.hash));
15
+ return synced;
16
+ };
17
+ export const postSyncPatch = (initial, synced) => {
18
+ const acc = postSyncPatchGen(initial, synced);
19
+ const { subAccounts, pendingOperations } = acc;
20
+ const initialSubAccounts = initial.subAccounts;
21
+ if (subAccounts && initialSubAccounts) {
22
+ acc.subAccounts = subAccounts.map(subAccount => {
23
+ const initialSubAccount = initialSubAccounts.find(a => a.id === subAccount.id);
24
+ if (!initialSubAccount)
25
+ return subAccount;
26
+ return postSyncPatchGen(initialSubAccount, subAccount, pendingOperations);
27
+ });
28
+ }
29
+ return acc;
30
+ };
31
+ //# sourceMappingURL=postSyncPatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postSyncPatch.js","sourceRoot":"","sources":["../src/postSyncPatch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,mFAAmF;AACnF,uCAAuC;AACvC,oCAAoC;AACpC,MAAM,gBAAgB,GAAG,CACvB,OAAU,EACV,MAAS,EACT,sBAAoC,EACjC,EAAE;IACL,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC1D,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CACjD,EAAE,CAAC,EAAE,CACH,CAAC,CAAC,sBAAsB,IAAI,sEAAsE;QAChG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAC5C,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAuB,EAAE,MAAsB,EAAkB,EAAE;IAC/F,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC;IAC/C,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAE/C,IAAI,WAAW,IAAI,kBAAkB,EAAE,CAAC;QACtC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC7C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,iBAAiB;gBAAE,OAAO,UAAU,CAAC;YAC1C,OAAO,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { CardanoAccount, Transaction } from "./types";
2
+ import { AccountBridge } from "@ledgerhq/types-live";
3
+ /**
4
+ * Prepare transaction before checking status
5
+ *
6
+ * @param {Account} account
7
+ * @param {Transaction} transaction
8
+ */
9
+ export declare const prepareTransaction: AccountBridge<Transaction, CardanoAccount>["prepareTransaction"];
10
+ //# sourceMappingURL=prepareTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,WAAW,EACX,cAAc,CACf,CAAC,oBAAoB,CAuBrB,CAAC"}
@@ -0,0 +1,40 @@
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 { types as TyphonTypes, address as TyphonAddress } from "@stricahq/typhonjs";
12
+ import { defaultUpdateTransaction } from "@ledgerhq/coin-framework/bridge/jsHelpers";
13
+ import { buildTransaction } from "./buildTransaction";
14
+ /**
15
+ * Prepare transaction before checking status
16
+ *
17
+ * @param {Account} account
18
+ * @param {Transaction} transaction
19
+ */
20
+ export const prepareTransaction = (account, transaction) => __awaiter(void 0, void 0, void 0, function* () {
21
+ let patch = {};
22
+ try {
23
+ const cardanoTransaction = yield buildTransaction(account, transaction);
24
+ const transactionFees = cardanoTransaction.getFee();
25
+ const transactionAmount = transaction.subAccountId
26
+ ? transaction.amount
27
+ : cardanoTransaction
28
+ .getOutputs()
29
+ .filter(o => !(o.address instanceof TyphonAddress.BaseAddress) ||
30
+ !(o.address.paymentCredential.type === TyphonTypes.HashType.ADDRESS) ||
31
+ o.address.paymentCredential.bipPath === undefined)
32
+ .reduce((total, o) => total.plus(o.amount), new BigNumber(0));
33
+ patch = { fees: transactionFees, amount: transactionAmount };
34
+ }
35
+ catch (error) {
36
+ patch = { fees: new BigNumber(0), amount: transaction.amount };
37
+ }
38
+ return defaultUpdateTransaction(transaction, patch);
39
+ });
40
+ //# sourceMappingURL=prepareTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAGL,CAAO,OAAO,EAAE,WAAW,EAAE,EAAE;IACvD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY;YAChD,CAAC,CAAC,WAAW,CAAC,MAAM;YACpB,CAAC,CAAC,kBAAkB;iBACf,UAAU,EAAE;iBACZ,MAAM,CACL,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,CAAC,CAAC,OAAO,YAAY,aAAa,CAAC,WAAW,CAAC;gBACjD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,KAAK,SAAS,CACpD;iBACA,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;QAEpE,KAAK,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;IAED,OAAO,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAA,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CardanoResources, CardanoResourcesRaw } from "./types";
2
+ import { Account, AccountRaw } from "@ledgerhq/types-live";
3
+ export declare function toCardanoResourceRaw(r: CardanoResources): CardanoResourcesRaw;
4
+ export declare function fromCardanoResourceRaw(r: CardanoResourcesRaw): CardanoResources;
5
+ export declare function assignToAccountRaw(account: Account, accountRaw: AccountRaw): void;
6
+ export declare function assignFromAccountRaw(accountRaw: AccountRaw, account: Account): void;
7
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EASV,gBAAgB,EAChB,mBAAmB,EAOpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAsK3D,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,CAQ7E;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,CAQ/E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAOjF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,QAI5E"}