@ledgerhq/coin-framework 0.3.6 → 0.3.7-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 (428) hide show
  1. package/.eslintrc.js +8 -46
  2. package/.turbo/turbo-build.log +1 -1
  3. package/CHANGELOG.md +27 -1
  4. package/lib/account/accountId.d.ts +16 -0
  5. package/lib/account/accountId.d.ts.map +1 -0
  6. package/lib/account/accountId.js +67 -0
  7. package/lib/account/accountId.js.map +1 -0
  8. package/lib/account/accountName.d.ts +14 -0
  9. package/lib/account/accountName.d.ts.map +1 -0
  10. package/lib/account/accountName.js +14 -0
  11. package/lib/account/accountName.js.map +1 -0
  12. package/lib/account/balanceHistoryCache.d.ts +28 -0
  13. package/lib/account/balanceHistoryCache.d.ts.map +1 -0
  14. package/lib/account/balanceHistoryCache.js +132 -0
  15. package/lib/account/balanceHistoryCache.js.map +1 -0
  16. package/lib/account/balanceHistoryCache.test.d.ts +2 -0
  17. package/lib/account/balanceHistoryCache.test.d.ts.map +1 -0
  18. package/lib/account/balanceHistoryCache.test.js +21 -0
  19. package/lib/account/balanceHistoryCache.test.js.map +1 -0
  20. package/lib/account/groupOperations.d.ts +17 -0
  21. package/lib/account/groupOperations.d.ts.map +1 -0
  22. package/lib/account/groupOperations.js +122 -0
  23. package/lib/account/groupOperations.js.map +1 -0
  24. package/lib/account/helpers.d.ts +46 -0
  25. package/lib/account/helpers.d.ts.map +1 -0
  26. package/lib/account/helpers.js +296 -0
  27. package/lib/account/helpers.js.map +1 -0
  28. package/lib/account/helpers.test.d.ts +2 -0
  29. package/lib/account/helpers.test.d.ts.map +1 -0
  30. package/lib/account/helpers.test.js +409 -0
  31. package/lib/account/helpers.test.js.map +1 -0
  32. package/lib/account/index.d.ts +10 -0
  33. package/lib/account/index.d.ts.map +1 -0
  34. package/lib/account/index.js +26 -0
  35. package/lib/account/index.js.map +1 -0
  36. package/lib/account/ordering.d.ts +10 -0
  37. package/lib/account/ordering.d.ts.map +1 -0
  38. package/lib/account/ordering.js +80 -0
  39. package/lib/account/ordering.js.map +1 -0
  40. package/lib/account/pending.d.ts +4 -0
  41. package/lib/account/pending.d.ts.map +1 -0
  42. package/lib/account/pending.js +53 -0
  43. package/lib/account/pending.js.map +1 -0
  44. package/lib/account/serialization.d.ts +6 -0
  45. package/lib/account/serialization.d.ts.map +1 -0
  46. package/lib/account/serialization.js +108 -0
  47. package/lib/account/serialization.js.map +1 -0
  48. package/lib/account/support.d.ts +7 -0
  49. package/lib/account/support.d.ts.map +1 -0
  50. package/lib/account/support.js +45 -0
  51. package/lib/account/support.js.map +1 -0
  52. package/lib/account.test.d.ts +2 -0
  53. package/lib/account.test.d.ts.map +1 -0
  54. package/lib/account.test.js +180 -0
  55. package/lib/account.test.js.map +1 -0
  56. package/lib/bot/bot-test-context.d.ts +3 -0
  57. package/lib/bot/bot-test-context.d.ts.map +1 -0
  58. package/lib/bot/bot-test-context.js +26 -0
  59. package/lib/bot/bot-test-context.js.map +1 -0
  60. package/lib/bot/bot-test-context.test.d.ts +2 -0
  61. package/lib/bot/bot-test-context.test.d.ts.map +1 -0
  62. package/lib/bot/bot-test-context.test.js +41 -0
  63. package/lib/bot/bot-test-context.test.js.map +1 -0
  64. package/lib/bot/formatters.d.ts +2 -0
  65. package/lib/bot/formatters.d.ts.map +1 -0
  66. package/lib/bot/formatters.js +30 -0
  67. package/lib/bot/formatters.js.map +1 -0
  68. package/lib/bot/specs.d.ts +50 -0
  69. package/lib/bot/specs.d.ts.map +1 -0
  70. package/lib/bot/specs.js +181 -0
  71. package/lib/bot/specs.js.map +1 -0
  72. package/lib/bot/types.d.ts +177 -0
  73. package/lib/bot/types.d.ts.map +1 -0
  74. package/lib/bot/types.js +3 -0
  75. package/lib/bot/types.js.map +1 -0
  76. package/lib/bridge/getAddressWrapper.d.ts +5 -0
  77. package/lib/bridge/getAddressWrapper.d.ts.map +1 -0
  78. package/lib/bridge/getAddressWrapper.js +36 -0
  79. package/lib/bridge/getAddressWrapper.js.map +1 -0
  80. package/lib/bridge/jsHelpers.d.ts +59 -0
  81. package/lib/bridge/jsHelpers.d.ts.map +1 -0
  82. package/lib/bridge/jsHelpers.js +390 -0
  83. package/lib/bridge/jsHelpers.js.map +1 -0
  84. package/lib/cache.d.ts +11 -0
  85. package/lib/cache.d.ts.map +1 -0
  86. package/lib/cache.js +21 -0
  87. package/lib/cache.js.map +1 -0
  88. package/lib/currencies/BigNumberToLocaleString.d.ts +8 -0
  89. package/lib/currencies/BigNumberToLocaleString.d.ts.map +1 -0
  90. package/lib/currencies/BigNumberToLocaleString.js +62 -0
  91. package/lib/currencies/BigNumberToLocaleString.js.map +1 -0
  92. package/lib/currencies/BigNumberToLocaleString.test.d.ts +2 -0
  93. package/lib/currencies/BigNumberToLocaleString.test.d.ts.map +1 -0
  94. package/lib/currencies/BigNumberToLocaleString.test.js +108 -0
  95. package/lib/currencies/BigNumberToLocaleString.test.js.map +1 -0
  96. package/lib/currencies/CurrencyURIScheme.d.ts +13 -0
  97. package/lib/currencies/CurrencyURIScheme.d.ts.map +1 -0
  98. package/lib/currencies/CurrencyURIScheme.js +95 -0
  99. package/lib/currencies/CurrencyURIScheme.js.map +1 -0
  100. package/lib/currencies/chopCurrencyUnitDecimals.d.ts +3 -0
  101. package/lib/currencies/chopCurrencyUnitDecimals.d.ts.map +1 -0
  102. package/lib/currencies/chopCurrencyUnitDecimals.js +29 -0
  103. package/lib/currencies/chopCurrencyUnitDecimals.js.map +1 -0
  104. package/lib/currencies/formatCurrencyUnit.d.ts +33 -0
  105. package/lib/currencies/formatCurrencyUnit.d.ts.map +1 -0
  106. package/lib/currencies/formatCurrencyUnit.js +109 -0
  107. package/lib/currencies/formatCurrencyUnit.js.map +1 -0
  108. package/lib/currencies/formatShort.d.ts +8 -0
  109. package/lib/currencies/formatShort.d.ts.map +1 -0
  110. package/lib/currencies/formatShort.js +27 -0
  111. package/lib/currencies/formatShort.js.map +1 -0
  112. package/lib/currencies/index.d.ts +13 -0
  113. package/lib/currencies/index.d.ts.map +1 -0
  114. package/lib/currencies/index.js +62 -0
  115. package/lib/currencies/index.js.map +1 -0
  116. package/lib/currencies/localeUtility.d.ts +8 -0
  117. package/lib/currencies/localeUtility.d.ts.map +1 -0
  118. package/lib/currencies/localeUtility.js +45 -0
  119. package/lib/currencies/localeUtility.js.map +1 -0
  120. package/lib/currencies/parseCurrencyUnit.d.ts +4 -0
  121. package/lib/currencies/parseCurrencyUnit.d.ts.map +1 -0
  122. package/lib/currencies/parseCurrencyUnit.js +18 -0
  123. package/lib/currencies/parseCurrencyUnit.js.map +1 -0
  124. package/lib/currencies/sanitizeValueString.d.ts +6 -0
  125. package/lib/currencies/sanitizeValueString.d.ts.map +1 -0
  126. package/lib/currencies/sanitizeValueString.js +56 -0
  127. package/lib/currencies/sanitizeValueString.js.map +1 -0
  128. package/lib/currencies/support.d.ts +8 -0
  129. package/lib/currencies/support.d.ts.map +1 -0
  130. package/lib/currencies/support.js +98 -0
  131. package/lib/currencies/support.js.map +1 -0
  132. package/lib/currencies/valueFromUnit.d.ts +9 -0
  133. package/lib/currencies/valueFromUnit.d.ts.map +1 -0
  134. package/lib/currencies/valueFromUnit.js +12 -0
  135. package/lib/currencies/valueFromUnit.js.map +1 -0
  136. package/lib/derivation.d.ts +232 -0
  137. package/lib/derivation.d.ts.map +1 -0
  138. package/lib/derivation.js +416 -0
  139. package/lib/derivation.js.map +1 -0
  140. package/lib/derivation.test.d.ts +2 -0
  141. package/lib/derivation.test.d.ts.map +1 -0
  142. package/lib/derivation.test.js +35 -0
  143. package/lib/derivation.test.js.map +1 -0
  144. package/lib/errors.d.ts +7 -0
  145. package/lib/errors.d.ts.map +1 -0
  146. package/lib/errors.js +7 -0
  147. package/lib/errors.js.map +1 -0
  148. package/lib/errors.test.d.ts +2 -0
  149. package/lib/errors.test.d.ts.map +1 -0
  150. package/lib/errors.test.js +20 -0
  151. package/lib/errors.test.js.map +1 -0
  152. package/lib/mocks/account.d.ts +26 -0
  153. package/lib/mocks/account.d.ts.map +1 -0
  154. package/lib/mocks/account.js +334 -0
  155. package/lib/mocks/account.js.map +1 -0
  156. package/lib/mocks/fixtures/nfts.d.ts +36 -0
  157. package/lib/mocks/fixtures/nfts.d.ts.map +1 -0
  158. package/lib/mocks/fixtures/nfts.js +401 -0
  159. package/lib/mocks/fixtures/nfts.js.map +1 -0
  160. package/lib/mocks/fixtures/nfts.test.d.ts +2 -0
  161. package/lib/mocks/fixtures/nfts.test.d.ts.map +1 -0
  162. package/lib/mocks/fixtures/nfts.test.js +20 -0
  163. package/lib/mocks/fixtures/nfts.test.js.map +1 -0
  164. package/lib/mocks/helpers.d.ts +15 -0
  165. package/lib/mocks/helpers.d.ts.map +1 -0
  166. package/lib/mocks/helpers.js +32 -0
  167. package/lib/mocks/helpers.js.map +1 -0
  168. package/lib/network.d.ts +9 -0
  169. package/lib/network.d.ts.map +1 -0
  170. package/lib/network.js +3 -0
  171. package/lib/network.js.map +1 -0
  172. package/lib/nft/nftId.d.ts +8 -0
  173. package/lib/nft/nftId.d.ts.map +1 -0
  174. package/lib/nft/nftId.js +18 -0
  175. package/lib/nft/nftId.js.map +1 -0
  176. package/lib/operation.d.ts +31 -0
  177. package/lib/operation.d.ts.map +1 -0
  178. package/lib/operation.js +211 -0
  179. package/lib/operation.js.map +1 -0
  180. package/lib/operation.test.d.ts +2 -0
  181. package/lib/operation.test.d.ts.map +1 -0
  182. package/lib/operation.test.js +116 -0
  183. package/lib/operation.test.js.map +1 -0
  184. package/lib/signer.d.ts +3 -0
  185. package/lib/signer.d.ts.map +1 -0
  186. package/lib/signer.js +3 -0
  187. package/lib/signer.js.map +1 -0
  188. package/lib/test-helpers/staticTime.d.ts +2 -0
  189. package/lib/test-helpers/staticTime.d.ts.map +1 -0
  190. package/lib/test-helpers/staticTime.js +10 -0
  191. package/lib/test-helpers/staticTime.js.map +1 -0
  192. package/lib/transaction/common.d.ts +26 -0
  193. package/lib/transaction/common.d.ts.map +1 -0
  194. package/lib/transaction/common.js +101 -0
  195. package/lib/transaction/common.js.map +1 -0
  196. package/lib-es/account/accountId.d.ts +16 -0
  197. package/lib-es/account/accountId.d.ts.map +1 -0
  198. package/lib-es/account/accountId.js +56 -0
  199. package/lib-es/account/accountId.js.map +1 -0
  200. package/lib-es/account/accountName.d.ts +14 -0
  201. package/lib-es/account/accountName.d.ts.map +1 -0
  202. package/lib-es/account/accountName.js +9 -0
  203. package/lib-es/account/accountName.js.map +1 -0
  204. package/lib-es/account/balanceHistoryCache.d.ts +28 -0
  205. package/lib-es/account/balanceHistoryCache.d.ts.map +1 -0
  206. package/lib-es/account/balanceHistoryCache.js +123 -0
  207. package/lib-es/account/balanceHistoryCache.js.map +1 -0
  208. package/lib-es/account/balanceHistoryCache.test.d.ts +2 -0
  209. package/lib-es/account/balanceHistoryCache.test.d.ts.map +1 -0
  210. package/lib-es/account/balanceHistoryCache.test.js +19 -0
  211. package/lib-es/account/balanceHistoryCache.test.js.map +1 -0
  212. package/lib-es/account/groupOperations.d.ts +17 -0
  213. package/lib-es/account/groupOperations.d.ts.map +1 -0
  214. package/lib-es/account/groupOperations.js +117 -0
  215. package/lib-es/account/groupOperations.js.map +1 -0
  216. package/lib-es/account/helpers.d.ts +46 -0
  217. package/lib-es/account/helpers.d.ts.map +1 -0
  218. package/lib-es/account/helpers.js +264 -0
  219. package/lib-es/account/helpers.js.map +1 -0
  220. package/lib-es/account/helpers.test.d.ts +2 -0
  221. package/lib-es/account/helpers.test.d.ts.map +1 -0
  222. package/lib-es/account/helpers.test.js +404 -0
  223. package/lib-es/account/helpers.test.js.map +1 -0
  224. package/lib-es/account/index.d.ts +10 -0
  225. package/lib-es/account/index.d.ts.map +1 -0
  226. package/lib-es/account/index.js +10 -0
  227. package/lib-es/account/index.js.map +1 -0
  228. package/lib-es/account/ordering.d.ts +10 -0
  229. package/lib-es/account/ordering.d.ts.map +1 -0
  230. package/lib-es/account/ordering.js +73 -0
  231. package/lib-es/account/ordering.js.map +1 -0
  232. package/lib-es/account/pending.d.ts +4 -0
  233. package/lib-es/account/pending.d.ts.map +1 -0
  234. package/lib-es/account/pending.js +48 -0
  235. package/lib-es/account/pending.js.map +1 -0
  236. package/lib-es/account/serialization.d.ts +6 -0
  237. package/lib-es/account/serialization.d.ts.map +1 -0
  238. package/lib-es/account/serialization.js +102 -0
  239. package/lib-es/account/serialization.js.map +1 -0
  240. package/lib-es/account/support.d.ts +7 -0
  241. package/lib-es/account/support.d.ts.map +1 -0
  242. package/lib-es/account/support.js +39 -0
  243. package/lib-es/account/support.js.map +1 -0
  244. package/lib-es/account.test.d.ts +2 -0
  245. package/lib-es/account.test.d.ts.map +1 -0
  246. package/lib-es/account.test.js +175 -0
  247. package/lib-es/account.test.js.map +1 -0
  248. package/lib-es/bot/bot-test-context.d.ts +3 -0
  249. package/lib-es/bot/bot-test-context.d.ts.map +1 -0
  250. package/lib-es/bot/bot-test-context.js +21 -0
  251. package/lib-es/bot/bot-test-context.js.map +1 -0
  252. package/lib-es/bot/bot-test-context.test.d.ts +2 -0
  253. package/lib-es/bot/bot-test-context.test.d.ts.map +1 -0
  254. package/lib-es/bot/bot-test-context.test.js +39 -0
  255. package/lib-es/bot/bot-test-context.test.js.map +1 -0
  256. package/lib-es/bot/formatters.d.ts +2 -0
  257. package/lib-es/bot/formatters.d.ts.map +1 -0
  258. package/lib-es/bot/formatters.js +26 -0
  259. package/lib-es/bot/formatters.js.map +1 -0
  260. package/lib-es/bot/specs.d.ts +50 -0
  261. package/lib-es/bot/specs.d.ts.map +1 -0
  262. package/lib-es/bot/specs.js +170 -0
  263. package/lib-es/bot/specs.js.map +1 -0
  264. package/lib-es/bot/types.d.ts +177 -0
  265. package/lib-es/bot/types.d.ts.map +1 -0
  266. package/lib-es/bot/types.js +2 -0
  267. package/lib-es/bot/types.js.map +1 -0
  268. package/lib-es/bridge/getAddressWrapper.d.ts +5 -0
  269. package/lib-es/bridge/getAddressWrapper.d.ts.map +1 -0
  270. package/lib-es/bridge/getAddressWrapper.js +34 -0
  271. package/lib-es/bridge/getAddressWrapper.js.map +1 -0
  272. package/lib-es/bridge/jsHelpers.d.ts +59 -0
  273. package/lib-es/bridge/jsHelpers.d.ts.map +1 -0
  274. package/lib-es/bridge/jsHelpers.js +378 -0
  275. package/lib-es/bridge/jsHelpers.js.map +1 -0
  276. package/lib-es/cache.d.ts +11 -0
  277. package/lib-es/cache.d.ts.map +1 -0
  278. package/lib-es/cache.js +17 -0
  279. package/lib-es/cache.js.map +1 -0
  280. package/lib-es/currencies/BigNumberToLocaleString.d.ts +8 -0
  281. package/lib-es/currencies/BigNumberToLocaleString.d.ts.map +1 -0
  282. package/lib-es/currencies/BigNumberToLocaleString.js +58 -0
  283. package/lib-es/currencies/BigNumberToLocaleString.js.map +1 -0
  284. package/lib-es/currencies/BigNumberToLocaleString.test.d.ts +2 -0
  285. package/lib-es/currencies/BigNumberToLocaleString.test.d.ts.map +1 -0
  286. package/lib-es/currencies/BigNumberToLocaleString.test.js +106 -0
  287. package/lib-es/currencies/BigNumberToLocaleString.test.js.map +1 -0
  288. package/lib-es/currencies/CurrencyURIScheme.d.ts +13 -0
  289. package/lib-es/currencies/CurrencyURIScheme.d.ts.map +1 -0
  290. package/lib-es/currencies/CurrencyURIScheme.js +87 -0
  291. package/lib-es/currencies/CurrencyURIScheme.js.map +1 -0
  292. package/lib-es/currencies/chopCurrencyUnitDecimals.d.ts +3 -0
  293. package/lib-es/currencies/chopCurrencyUnitDecimals.d.ts.map +1 -0
  294. package/lib-es/currencies/chopCurrencyUnitDecimals.js +25 -0
  295. package/lib-es/currencies/chopCurrencyUnitDecimals.js.map +1 -0
  296. package/lib-es/currencies/formatCurrencyUnit.d.ts +33 -0
  297. package/lib-es/currencies/formatCurrencyUnit.d.ts.map +1 -0
  298. package/lib-es/currencies/formatCurrencyUnit.js +104 -0
  299. package/lib-es/currencies/formatCurrencyUnit.js.map +1 -0
  300. package/lib-es/currencies/formatShort.d.ts +8 -0
  301. package/lib-es/currencies/formatShort.d.ts.map +1 -0
  302. package/lib-es/currencies/formatShort.js +20 -0
  303. package/lib-es/currencies/formatShort.js.map +1 -0
  304. package/lib-es/currencies/index.d.ts +13 -0
  305. package/lib-es/currencies/index.d.ts.map +1 -0
  306. package/lib-es/currencies/index.js +14 -0
  307. package/lib-es/currencies/index.js.map +1 -0
  308. package/lib-es/currencies/localeUtility.d.ts +8 -0
  309. package/lib-es/currencies/localeUtility.d.ts.map +1 -0
  310. package/lib-es/currencies/localeUtility.js +39 -0
  311. package/lib-es/currencies/localeUtility.js.map +1 -0
  312. package/lib-es/currencies/parseCurrencyUnit.d.ts +4 -0
  313. package/lib-es/currencies/parseCurrencyUnit.d.ts.map +1 -0
  314. package/lib-es/currencies/parseCurrencyUnit.js +14 -0
  315. package/lib-es/currencies/parseCurrencyUnit.js.map +1 -0
  316. package/lib-es/currencies/sanitizeValueString.d.ts +6 -0
  317. package/lib-es/currencies/sanitizeValueString.d.ts.map +1 -0
  318. package/lib-es/currencies/sanitizeValueString.js +52 -0
  319. package/lib-es/currencies/sanitizeValueString.js.map +1 -0
  320. package/lib-es/currencies/support.d.ts +8 -0
  321. package/lib-es/currencies/support.d.ts.map +1 -0
  322. package/lib-es/currencies/support.js +89 -0
  323. package/lib-es/currencies/support.js.map +1 -0
  324. package/lib-es/currencies/valueFromUnit.d.ts +9 -0
  325. package/lib-es/currencies/valueFromUnit.d.ts.map +1 -0
  326. package/lib-es/currencies/valueFromUnit.js +8 -0
  327. package/lib-es/currencies/valueFromUnit.js.map +1 -0
  328. package/lib-es/derivation.d.ts +232 -0
  329. package/lib-es/derivation.d.ts.map +1 -0
  330. package/lib-es/derivation.js +388 -0
  331. package/lib-es/derivation.js.map +1 -0
  332. package/lib-es/derivation.test.d.ts +2 -0
  333. package/lib-es/derivation.test.d.ts.map +1 -0
  334. package/lib-es/derivation.test.js +33 -0
  335. package/lib-es/derivation.test.js.map +1 -0
  336. package/lib-es/errors.d.ts +7 -0
  337. package/lib-es/errors.d.ts.map +1 -0
  338. package/lib-es/errors.js +4 -0
  339. package/lib-es/errors.js.map +1 -0
  340. package/lib-es/errors.test.d.ts +2 -0
  341. package/lib-es/errors.test.d.ts.map +1 -0
  342. package/lib-es/errors.test.js +18 -0
  343. package/lib-es/errors.test.js.map +1 -0
  344. package/lib-es/mocks/account.d.ts +26 -0
  345. package/lib-es/mocks/account.d.ts.map +1 -0
  346. package/lib-es/mocks/account.js +324 -0
  347. package/lib-es/mocks/account.js.map +1 -0
  348. package/lib-es/mocks/fixtures/nfts.d.ts +36 -0
  349. package/lib-es/mocks/fixtures/nfts.d.ts.map +1 -0
  350. package/lib-es/mocks/fixtures/nfts.js +393 -0
  351. package/lib-es/mocks/fixtures/nfts.js.map +1 -0
  352. package/lib-es/mocks/fixtures/nfts.test.d.ts +2 -0
  353. package/lib-es/mocks/fixtures/nfts.test.d.ts.map +1 -0
  354. package/lib-es/mocks/fixtures/nfts.test.js +18 -0
  355. package/lib-es/mocks/fixtures/nfts.test.js.map +1 -0
  356. package/lib-es/mocks/helpers.d.ts +15 -0
  357. package/lib-es/mocks/helpers.d.ts.map +1 -0
  358. package/lib-es/mocks/helpers.js +26 -0
  359. package/lib-es/mocks/helpers.js.map +1 -0
  360. package/lib-es/network.d.ts +9 -0
  361. package/lib-es/network.d.ts.map +1 -0
  362. package/lib-es/network.js +2 -0
  363. package/lib-es/network.js.map +1 -0
  364. package/lib-es/nft/nftId.d.ts +8 -0
  365. package/lib-es/nft/nftId.d.ts.map +1 -0
  366. package/lib-es/nft/nftId.js +13 -0
  367. package/lib-es/nft/nftId.js.map +1 -0
  368. package/lib-es/operation.d.ts +31 -0
  369. package/lib-es/operation.d.ts.map +1 -0
  370. package/lib-es/operation.js +190 -0
  371. package/lib-es/operation.js.map +1 -0
  372. package/lib-es/operation.test.d.ts +2 -0
  373. package/lib-es/operation.test.d.ts.map +1 -0
  374. package/lib-es/operation.test.js +111 -0
  375. package/lib-es/operation.test.js.map +1 -0
  376. package/lib-es/signer.d.ts +3 -0
  377. package/lib-es/signer.d.ts.map +1 -0
  378. package/lib-es/signer.js +2 -0
  379. package/lib-es/signer.js.map +1 -0
  380. package/lib-es/test-helpers/staticTime.d.ts +2 -0
  381. package/lib-es/test-helpers/staticTime.d.ts.map +1 -0
  382. package/lib-es/test-helpers/staticTime.js +5 -0
  383. package/lib-es/test-helpers/staticTime.js.map +1 -0
  384. package/lib-es/transaction/common.d.ts +26 -0
  385. package/lib-es/transaction/common.d.ts.map +1 -0
  386. package/lib-es/transaction/common.js +93 -0
  387. package/lib-es/transaction/common.js.map +1 -0
  388. package/package.json +8 -21
  389. package/src/account/accountId.ts +20 -30
  390. package/src/account/accountName.ts +1 -4
  391. package/src/account/balanceHistoryCache.test.ts +19 -0
  392. package/src/account/balanceHistoryCache.ts +52 -38
  393. package/src/account/groupOperations.ts +4 -6
  394. package/src/account/helpers.test.ts +6 -26
  395. package/src/account/helpers.ts +28 -60
  396. package/src/account/ordering.ts +10 -18
  397. package/src/account/pending.ts +6 -15
  398. package/src/account/serialization.ts +8 -19
  399. package/src/account/support.ts +8 -18
  400. package/src/account.test.ts +25 -40
  401. package/src/bot/specs.ts +24 -43
  402. package/src/bot/types.ts +2 -3
  403. package/src/bridge/getAddressWrapper.ts +7 -15
  404. package/src/bridge/jsHelpers.ts +228 -293
  405. package/src/cache.ts +4 -4
  406. package/src/currencies/BigNumberToLocaleString.test.ts +25 -33
  407. package/src/currencies/BigNumberToLocaleString.ts +3 -8
  408. package/src/currencies/CurrencyURIScheme.ts +1 -3
  409. package/src/currencies/chopCurrencyUnitDecimals.ts +1 -4
  410. package/src/currencies/formatCurrencyUnit.ts +11 -21
  411. package/src/currencies/index.ts +1 -4
  412. package/src/currencies/localeUtility.ts +2 -4
  413. package/src/currencies/parseCurrencyUnit.ts +1 -4
  414. package/src/currencies/sanitizeValueString.ts +1 -1
  415. package/src/currencies/support.ts +3 -9
  416. package/src/derivation.test.ts +1 -4
  417. package/src/derivation.ts +45 -95
  418. package/src/errors.test.ts +1 -1
  419. package/src/errors.ts +2 -6
  420. package/src/mocks/account.ts +27 -80
  421. package/src/mocks/fixtures/nfts.test.ts +2 -6
  422. package/src/mocks/fixtures/nfts.ts +12 -38
  423. package/src/mocks/helpers.ts +2 -8
  424. package/src/nft/nftId.ts +2 -2
  425. package/src/operation.test.ts +119 -32
  426. package/src/operation.ts +74 -26
  427. package/src/signer.ts +5 -0
  428. package/src/transaction/common.ts +9 -22
@@ -0,0 +1,404 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { areAllOperationsLoaded, emptyHistoryCache, getAccountCurrency, getAccountName, getAccountSpendableBalance, getAccountUnit, getFeesCurrency, } from ".";
3
+ import { isAccountEmpty, isAccountBalanceSignificant, clearAccount } from "./helpers";
4
+ const mockAccount = {};
5
+ const childAccount = Object.assign(Object.assign({}, mockAccount), { type: "ChildAccount", parentId: "sampleId", address: "sampleAddress" });
6
+ const tokenAccount = Object.assign(Object.assign({}, mockAccount), { type: "TokenAccount", token: {}, parentId: "sampleId" });
7
+ describe(getAccountCurrency.name, () => {
8
+ describe("given an Account", () => {
9
+ beforeEach(() => {
10
+ mockAccount.type = "Account";
11
+ });
12
+ it("should return the currency", () => {
13
+ const sampleCurrency = { family: "bitcoin" };
14
+ mockAccount.currency = sampleCurrency;
15
+ expect(getAccountCurrency(mockAccount)).toEqual(sampleCurrency);
16
+ });
17
+ });
18
+ describe("given a ChildAccount", () => {
19
+ it("should return the currency", () => {
20
+ const sampleCurrency = { family: "bitcoin" };
21
+ childAccount.currency = sampleCurrency;
22
+ expect(getAccountCurrency(childAccount)).toEqual(sampleCurrency);
23
+ });
24
+ });
25
+ describe("given a TokenAccount", () => {
26
+ it("should return the token currency", () => {
27
+ const sampleToken = { id: "tokenId" };
28
+ tokenAccount.token = sampleToken;
29
+ expect(getAccountCurrency(tokenAccount)).toEqual(sampleToken);
30
+ });
31
+ });
32
+ describe("given an unknown type Account", () => {
33
+ beforeEach(() => {
34
+ mockAccount.type = "DefinitelyNotAStandardAccount";
35
+ });
36
+ it("should throw an error", () => {
37
+ expect(() => getAccountCurrency(mockAccount)).toThrow(Error);
38
+ });
39
+ it("should display the account type in the error message", () => {
40
+ expect.assertions(1);
41
+ try {
42
+ getAccountCurrency(mockAccount);
43
+ }
44
+ catch (e) {
45
+ expect(e.message.includes(mockAccount.type)).toEqual(true);
46
+ }
47
+ });
48
+ });
49
+ });
50
+ describe(getAccountUnit.name, () => {
51
+ describe("given an Account", () => {
52
+ beforeEach(() => {
53
+ mockAccount.type = "Account";
54
+ });
55
+ it("should return the unit", () => {
56
+ const sampleUnit = { name: "unit" };
57
+ mockAccount.unit = sampleUnit;
58
+ expect(getAccountUnit(mockAccount)).toEqual(sampleUnit);
59
+ });
60
+ });
61
+ describe("given a ChildAccount", () => {
62
+ it("should return the currency unit", () => {
63
+ const sampleUnit = { name: "unit" };
64
+ childAccount.currency = { units: [sampleUnit] };
65
+ expect(getAccountUnit(childAccount)).toEqual(sampleUnit);
66
+ });
67
+ });
68
+ describe("given a TokenAccount", () => {
69
+ it("should return the token unit", () => {
70
+ const sampleUnit = { name: "unit" };
71
+ tokenAccount.token = { units: [sampleUnit] };
72
+ expect(getAccountUnit(tokenAccount)).toEqual(sampleUnit);
73
+ });
74
+ });
75
+ describe("given an unknown type Account", () => {
76
+ beforeEach(() => {
77
+ mockAccount.type = "DefinitelyNotAStandardAccount";
78
+ });
79
+ it("should throw an error", () => {
80
+ expect(() => getAccountUnit(mockAccount)).toThrow(Error);
81
+ });
82
+ it("should display the account type in the error message", () => {
83
+ expect.assertions(1);
84
+ try {
85
+ getAccountUnit(mockAccount);
86
+ }
87
+ catch (e) {
88
+ expect(e.message.includes(mockAccount.type)).toEqual(true);
89
+ }
90
+ });
91
+ });
92
+ });
93
+ describe(getFeesCurrency.name, () => {
94
+ describe("given an Account", () => {
95
+ beforeEach(() => {
96
+ mockAccount.type = "Account";
97
+ });
98
+ describe("without feesCurrency", () => {
99
+ it("should return the account's currency", () => {
100
+ const sampleCurrency = { family: "bitcoin" };
101
+ mockAccount.currency = sampleCurrency;
102
+ expect(getFeesCurrency(mockAccount)).toEqual(sampleCurrency);
103
+ });
104
+ });
105
+ describe("with feesCurrency", () => {
106
+ it("should return the fees currency", () => {
107
+ const sampleCurrency = { family: "vechain" };
108
+ const sampleFeesCurrency = { id: "VTHO" };
109
+ mockAccount.currency = sampleCurrency;
110
+ mockAccount.feesCurrency = sampleFeesCurrency;
111
+ expect(getFeesCurrency(mockAccount)).toEqual(sampleFeesCurrency);
112
+ });
113
+ });
114
+ });
115
+ describe("given a ChildAccount", () => {
116
+ it("should return the currency", () => {
117
+ const sampleCurrency = { family: "bitcoin" };
118
+ childAccount.currency = sampleCurrency;
119
+ expect(getFeesCurrency(childAccount)).toEqual(sampleCurrency);
120
+ });
121
+ });
122
+ describe("given a TokenAccount", () => {
123
+ it("should return the token currency", () => {
124
+ const sampleToken = { id: "tokenId" };
125
+ tokenAccount.token = sampleToken;
126
+ expect(getFeesCurrency(tokenAccount)).toEqual(sampleToken);
127
+ });
128
+ });
129
+ describe("given an unknown type Account", () => {
130
+ beforeEach(() => {
131
+ mockAccount.type = "DefinitelyNotAStandardAccount";
132
+ });
133
+ it("should throw an error", () => {
134
+ expect(() => getFeesCurrency(mockAccount)).toThrow(Error);
135
+ });
136
+ it("should display the account type in the error message", () => {
137
+ expect.assertions(1);
138
+ try {
139
+ getFeesCurrency(mockAccount);
140
+ }
141
+ catch (e) {
142
+ expect(e.message.includes(mockAccount.type)).toEqual(true);
143
+ }
144
+ });
145
+ });
146
+ });
147
+ describe(getAccountName.name, () => {
148
+ describe("given an Account", () => {
149
+ beforeEach(() => {
150
+ mockAccount.type = "Account";
151
+ });
152
+ it("should return the account name", () => {
153
+ const sampleAccountName = "SampleAccountName";
154
+ mockAccount.name = sampleAccountName;
155
+ expect(getAccountName(mockAccount)).toEqual(sampleAccountName);
156
+ });
157
+ });
158
+ describe("given a ChildAccount", () => {
159
+ it("should return the account name", () => {
160
+ const sampleAccountName = "SampleAccountName";
161
+ childAccount.name = sampleAccountName;
162
+ expect(getAccountName(childAccount)).toEqual(sampleAccountName);
163
+ });
164
+ });
165
+ describe("given a TokenAccount", () => {
166
+ it("should return the token account name", () => {
167
+ const sampleAccountName = "SampleAccountName";
168
+ tokenAccount.token = { name: sampleAccountName };
169
+ expect(getAccountName(tokenAccount)).toEqual(sampleAccountName);
170
+ });
171
+ });
172
+ describe("given an unknown type Account", () => {
173
+ beforeEach(() => {
174
+ mockAccount.type = "DefinitelyNotAStandardAccount";
175
+ });
176
+ it("should throw an error", () => {
177
+ expect(() => getAccountName(mockAccount)).toThrow(Error);
178
+ });
179
+ it("should display the account type in the error message", () => {
180
+ expect.assertions(1);
181
+ try {
182
+ getAccountName(mockAccount);
183
+ }
184
+ catch (e) {
185
+ expect(e.message.includes(mockAccount.type)).toEqual(true);
186
+ }
187
+ });
188
+ });
189
+ });
190
+ describe(getAccountSpendableBalance.name, () => {
191
+ describe("given an Account", () => {
192
+ beforeEach(() => {
193
+ mockAccount.type = "Account";
194
+ });
195
+ it("should return the account spendable balance", () => {
196
+ const sampleAccountBalance = new BigNumber(10);
197
+ mockAccount.spendableBalance = sampleAccountBalance;
198
+ expect(getAccountSpendableBalance(mockAccount)).toEqual(sampleAccountBalance);
199
+ });
200
+ });
201
+ describe("given a ChildAccount", () => {
202
+ it("should return the account balance", () => {
203
+ const sampleAccountBalance = new BigNumber(10);
204
+ childAccount.balance = sampleAccountBalance;
205
+ expect(getAccountSpendableBalance(childAccount)).toEqual(sampleAccountBalance);
206
+ });
207
+ });
208
+ describe("given a TokenAccount", () => {
209
+ it("should return the token account spendable balance", () => {
210
+ const sampleAccountBalance = new BigNumber(10);
211
+ tokenAccount.spendableBalance = sampleAccountBalance;
212
+ expect(getAccountSpendableBalance(tokenAccount)).toEqual(sampleAccountBalance);
213
+ });
214
+ });
215
+ describe("given an unknown type Account", () => {
216
+ beforeEach(() => {
217
+ mockAccount.type = "DefinitelyNotAStandardAccount";
218
+ });
219
+ it("should throw an error", () => {
220
+ expect(() => getAccountSpendableBalance(mockAccount)).toThrow(Error);
221
+ });
222
+ it("should display the account type in the error message", () => {
223
+ expect.assertions(1);
224
+ try {
225
+ getAccountSpendableBalance(mockAccount);
226
+ }
227
+ catch (e) {
228
+ expect(e.message.includes(mockAccount.type)).toEqual(true);
229
+ }
230
+ });
231
+ });
232
+ });
233
+ describe(isAccountEmpty.name, () => {
234
+ describe("given an account", () => {
235
+ beforeEach(() => {
236
+ mockAccount.type = "Account";
237
+ mockAccount.currency = { family: "ethereum" };
238
+ });
239
+ describe("when account has no subaccounts", () => {
240
+ beforeEach(() => {
241
+ mockAccount.subAccounts = [];
242
+ });
243
+ describe("and balance is zero", () => {
244
+ beforeEach(() => {
245
+ mockAccount.balance = new BigNumber(0);
246
+ });
247
+ it("should return true if operationsCount is 0", () => {
248
+ mockAccount.operationsCount = 0;
249
+ expect(isAccountEmpty(mockAccount)).toEqual(true);
250
+ });
251
+ it("should return false if operationsCount is higher than 0", () => {
252
+ mockAccount.operationsCount = 1;
253
+ expect(isAccountEmpty(mockAccount)).toEqual(false);
254
+ });
255
+ });
256
+ describe("and balance is higher than 0", () => {
257
+ beforeEach(() => {
258
+ mockAccount.balance = new BigNumber(42);
259
+ });
260
+ it("should return false if operationsCount is 0", () => {
261
+ mockAccount.operationsCount = 0;
262
+ expect(isAccountEmpty(mockAccount)).toEqual(false);
263
+ });
264
+ it("should return false if operationsCount is higher than 0", () => {
265
+ mockAccount.operationsCount = 1;
266
+ expect(isAccountEmpty(mockAccount)).toEqual(false);
267
+ });
268
+ });
269
+ });
270
+ describe("when account has subaccounts", () => {
271
+ beforeEach(() => {
272
+ mockAccount.subAccounts = [{}];
273
+ });
274
+ it("should return false", () => {
275
+ expect(isAccountEmpty(mockAccount)).toEqual(false);
276
+ });
277
+ });
278
+ });
279
+ });
280
+ describe(areAllOperationsLoaded.name, () => {
281
+ describe("given an account with subAccounts", () => {
282
+ beforeEach(() => {
283
+ mockAccount.type = "Account";
284
+ mockAccount.operations = [];
285
+ mockAccount.operationsCount = 0;
286
+ mockAccount.subAccounts = [
287
+ {
288
+ operations: [],
289
+ operationsCount: 0,
290
+ },
291
+ {
292
+ operations: [{}],
293
+ operationsCount: 1,
294
+ },
295
+ ];
296
+ });
297
+ describe("when sub account operation aren't loaded", () => {
298
+ beforeEach(() => {
299
+ mockAccount.subAccounts[1].operations = [];
300
+ });
301
+ it("should return false", () => {
302
+ expect(areAllOperationsLoaded(mockAccount)).toEqual(false);
303
+ });
304
+ });
305
+ describe("when sub account operation are loaded", () => {
306
+ it("should return true", () => {
307
+ expect(areAllOperationsLoaded(mockAccount)).toEqual(true);
308
+ });
309
+ });
310
+ });
311
+ describe("given an account without subAccounts", () => {
312
+ describe("when operations count is different from operations length", () => {
313
+ beforeEach(() => {
314
+ childAccount.operationsCount = 2;
315
+ childAccount.operations = [{}];
316
+ });
317
+ it("should return false", () => {
318
+ expect(areAllOperationsLoaded(childAccount)).toEqual(false);
319
+ });
320
+ });
321
+ describe("when operations count is same as operations length", () => {
322
+ beforeEach(() => {
323
+ childAccount.operationsCount = 1;
324
+ childAccount.operations = [{}];
325
+ });
326
+ it("should return true", () => {
327
+ expect(areAllOperationsLoaded(childAccount)).toEqual(true);
328
+ });
329
+ });
330
+ });
331
+ });
332
+ describe(isAccountBalanceSignificant.name, () => {
333
+ describe("when balance is low", () => {
334
+ beforeEach(() => {
335
+ mockAccount.balance = new BigNumber(10);
336
+ });
337
+ it("should return false", () => {
338
+ expect(isAccountBalanceSignificant(mockAccount)).toEqual(false);
339
+ });
340
+ });
341
+ describe("when balance is high", () => {
342
+ beforeEach(() => {
343
+ mockAccount.balance = new BigNumber(101);
344
+ });
345
+ it("should return true", () => {
346
+ expect(isAccountBalanceSignificant(mockAccount)).toEqual(true);
347
+ });
348
+ });
349
+ });
350
+ describe(clearAccount.name, () => {
351
+ describe("given a TokenAccount", () => {
352
+ const tokenAccount = Object.assign(Object.assign({}, mockAccount), { token: {}, parentId: "sampleId", type: "TokenAccount" });
353
+ it("should clear operations", () => {
354
+ const clearedAccount = clearAccount(tokenAccount);
355
+ expect(clearedAccount.operations.length).toEqual(0);
356
+ expect(clearedAccount.pendingOperations.length).toEqual(0);
357
+ });
358
+ it("should clear balanceHistory", () => {
359
+ const clearedAccount = clearAccount(tokenAccount);
360
+ expect(clearedAccount.balanceHistoryCache).toEqual(emptyHistoryCache);
361
+ });
362
+ });
363
+ describe("given a ChildAccount", () => {
364
+ const childAccount = Object.assign(Object.assign({}, mockAccount), { type: "ChildAccount", parentId: "sampleId", address: "sampleAddress" });
365
+ it("should clear operations", () => {
366
+ const clearedAccount = clearAccount(childAccount);
367
+ expect(clearedAccount.operations.length).toEqual(0);
368
+ expect(clearedAccount.pendingOperations.length).toEqual(0);
369
+ });
370
+ it("should clear balanceHistory", () => {
371
+ const clearedAccount = clearAccount(childAccount);
372
+ expect(clearedAccount.balanceHistoryCache).toEqual(emptyHistoryCache);
373
+ });
374
+ });
375
+ describe("given an Account", () => {
376
+ const ethereumCurrency = {
377
+ family: "ethereum",
378
+ };
379
+ const withSubAccounts = Object.assign(Object.assign({}, mockAccount), { subAccounts: [
380
+ {
381
+ currency: ethereumCurrency,
382
+ },
383
+ ], currency: ethereumCurrency });
384
+ it("should clear operations", () => {
385
+ const clearedAccount = clearAccount(withSubAccounts);
386
+ expect(clearedAccount.operations.length).toEqual(0);
387
+ expect(clearedAccount.pendingOperations.length).toEqual(0);
388
+ });
389
+ it("should clear balanceHistory", () => {
390
+ const clearedAccount = clearAccount(withSubAccounts);
391
+ expect(clearedAccount.balanceHistoryCache).toEqual(emptyHistoryCache);
392
+ });
393
+ it("should reset lastSyncDate", () => {
394
+ const clearedAccount = clearAccount(withSubAccounts);
395
+ expect(clearedAccount.lastSyncDate).toEqual(new Date(0));
396
+ });
397
+ it("should delete nfts attribute", () => {
398
+ withSubAccounts.nfts = [];
399
+ const clearedAccount = clearAccount(withSubAccounts);
400
+ expect(Object.keys(clearedAccount).indexOf("nfts")).toEqual(-1);
401
+ });
402
+ });
403
+ });
404
+ //# sourceMappingURL=helpers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../src/account/helpers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from "./accountId";
2
+ export * from "./accountName";
3
+ export * from "./balanceHistoryCache";
4
+ export * from "./groupOperations";
5
+ export * from "./helpers";
6
+ export * from "./ordering";
7
+ export * from "./pending";
8
+ export * from "./serialization";
9
+ export * from "./support";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from "./accountId";
2
+ export * from "./accountName";
3
+ export * from "./balanceHistoryCache";
4
+ export * from "./groupOperations";
5
+ export * from "./helpers";
6
+ export * from "./ordering";
7
+ export * from "./pending";
8
+ export * from "./serialization";
9
+ export * from "./support";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/account/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import type { FlattenAccountsOptions } from "./helpers";
3
+ import type { Account, AccountLike } from "@ledgerhq/types-live";
4
+ import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
5
+ export type AccountComparator = (a: AccountLike, b: AccountLike) => number;
6
+ export declare const sortAccountsComparatorFromOrder: (orderAccounts: string, calculateCountervalue: (currency: TokenCurrency | CryptoCurrency, value: BigNumber) => BigNumber | null | undefined) => AccountComparator;
7
+ export declare const comparatorSortAccounts: <TA extends AccountLike>(accounts: TA[], comparator: AccountComparator) => TA[];
8
+ export declare const flattenSortAccounts: (accounts: Account[], comparator: AccountComparator, o?: FlattenAccountsOptions) => AccountLike[];
9
+ export declare const nestedSortAccounts: (topAccounts: Account[], comparator: AccountComparator) => Account[];
10
+ //# sourceMappingURL=ordering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordering.d.ts","sourceRoot":"","sources":["../../src/account/ordering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,KAAK,MAAM,CAAC;AAkB3E,eAAO,MAAM,+BAA+B,kBAC3B,MAAM,oCAET,aAAa,GAAG,cAAc,SACjC,SAAS,KACb,SAAS,GAAG,IAAI,GAAG,SAAS,KAChC,iBA0BF,CAAC;AACF,eAAO,MAAM,sBAAsB,uDAErB,iBAAiB,SAgB9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,OAAO,EAAE,cACP,iBAAiB,MACzB,sBAAsB,KACzB,WAAW,EAEb,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBAChB,OAAO,EAAE,cACV,iBAAiB,KAC5B,OAAO,EAYT,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import { flattenAccounts, getAccountCurrency } from "./helpers";
3
+ const sortNameLense = (a) => {
4
+ switch (a.type) {
5
+ case "Account":
6
+ return a.name;
7
+ case "TokenAccount":
8
+ return a.token.name;
9
+ case "ChildAccount":
10
+ return a.currency.name;
11
+ default:
12
+ return "";
13
+ }
14
+ };
15
+ export const sortAccountsComparatorFromOrder = (orderAccounts, calculateCountervalue) => {
16
+ const [order, sort] = orderAccounts.split("|");
17
+ const ascValue = sort === "desc" ? -1 : 1;
18
+ if (order === "name") {
19
+ return (a, b) => ascValue *
20
+ sortNameLense(a).localeCompare(sortNameLense(b), undefined, {
21
+ numeric: true,
22
+ });
23
+ }
24
+ const cvCaches = {};
25
+ const lazyCalcCV = (a) => {
26
+ if (a.id in cvCaches)
27
+ return cvCaches[a.id];
28
+ const v = calculateCountervalue(getAccountCurrency(a), a.balance) || new BigNumber(-1);
29
+ cvCaches[a.id] = v;
30
+ return v;
31
+ };
32
+ return (a, b) => {
33
+ const diff = ascValue * lazyCalcCV(a).minus(lazyCalcCV(b)).toNumber();
34
+ if (diff === 0)
35
+ return sortNameLense(a).localeCompare(sortNameLense(b));
36
+ return diff;
37
+ };
38
+ };
39
+ export const comparatorSortAccounts = (accounts, comparator) => {
40
+ const meta = accounts
41
+ .map((ta, index) => ({
42
+ account: ta,
43
+ index,
44
+ }))
45
+ .sort((a, b) => comparator(a.account, b.account));
46
+ if (meta.every((m, i) => m.index === i)) {
47
+ // account ordering is preserved, we keep the same array reference (this should happen most of the time)
48
+ return accounts;
49
+ }
50
+ // otherwise, need to reorder
51
+ return meta.map(m => accounts[m.index]);
52
+ };
53
+ // flatten accounts and sort between them (used for grid mode)
54
+ export const flattenSortAccounts = (accounts, comparator, o) => {
55
+ return comparatorSortAccounts(flattenAccounts(accounts, o), comparator);
56
+ };
57
+ // sort top level accounts and the inner sub accounts if necessary (used for lists)
58
+ export const nestedSortAccounts = (topAccounts, comparator) => {
59
+ let oneAccountHaveChanged = false;
60
+ // first of all we sort the inner token accounts
61
+ const accounts = topAccounts.map(a => {
62
+ if (!a.subAccounts)
63
+ return a;
64
+ const subAccounts = comparatorSortAccounts(a.subAccounts, comparator);
65
+ if (subAccounts === a.subAccounts)
66
+ return a;
67
+ oneAccountHaveChanged = true;
68
+ return Object.assign(Object.assign({}, a), { subAccounts });
69
+ });
70
+ // then we sort again between them
71
+ return comparatorSortAccounts(oneAccountHaveChanged ? accounts : topAccounts, comparator);
72
+ };
73
+ //# sourceMappingURL=ordering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordering.js","sourceRoot":"","sources":["../../src/account/ordering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Account, Operation } from "@ledgerhq/types-live";
2
+ export declare function shouldRetainPendingOperation(account: Account, op: Operation): boolean;
3
+ export declare const addPendingOperation: (account: Account, operation: Operation) => Account;
4
+ //# sourceMappingURL=pending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAc,MAAM,sBAAsB,CAAC;AAE3E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAerF;AAUD,eAAO,MAAM,mBAAmB,YAAa,OAAO,aAAa,SAAS,KAAG,OAgC5E,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { getEnv } from "@ledgerhq/live-env";
2
+ export function shouldRetainPendingOperation(account, op) {
3
+ // FIXME: valueOf to compare dates in typescript
4
+ const delay = new Date().valueOf() - op.date.valueOf();
5
+ const last = account.operations[0];
6
+ if (last &&
7
+ last.transactionSequenceNumber &&
8
+ op.transactionSequenceNumber &&
9
+ op.transactionSequenceNumber <= last.transactionSequenceNumber) {
10
+ return false;
11
+ }
12
+ return delay < getEnv("OPERATION_OPTIMISTIC_RETENTION");
13
+ }
14
+ const appendPendingOp = (ops, op) => {
15
+ const filtered = ops.filter(o => o.transactionSequenceNumber !== op.transactionSequenceNumber);
16
+ filtered.unshift(op);
17
+ return filtered;
18
+ };
19
+ export const addPendingOperation = (account, operation) => {
20
+ const accountCopy = Object.assign({}, account);
21
+ const { subOperations } = operation;
22
+ const { subAccounts } = account;
23
+ function addInSubAccount(subaccounts, op) {
24
+ const acc = subaccounts.find(sub => sub.id === op.accountId);
25
+ if (acc) {
26
+ const copy = Object.assign({}, acc);
27
+ copy.pendingOperations = appendPendingOp(acc.pendingOperations, op);
28
+ subaccounts[subaccounts.indexOf(acc)] = copy;
29
+ }
30
+ }
31
+ if (subOperations && subAccounts) {
32
+ const taCopy = subAccounts.slice(0);
33
+ subOperations.forEach(op => {
34
+ addInSubAccount(taCopy, op);
35
+ });
36
+ accountCopy.subAccounts = taCopy;
37
+ }
38
+ if (accountCopy.id === operation.accountId) {
39
+ accountCopy.pendingOperations = appendPendingOp(accountCopy.pendingOperations, operation);
40
+ }
41
+ else if (subAccounts) {
42
+ const taCopy = subAccounts.slice(0);
43
+ addInSubAccount(taCopy, operation);
44
+ accountCopy.subAccounts = taCopy;
45
+ }
46
+ return accountCopy;
47
+ };
48
+ //# sourceMappingURL=pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/account/pending.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,MAAM,UAAU,4BAA4B,CAAC,OAAgB,EAAE,EAAa;IAC1E,gDAAgD;IAChD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEnC,IACE,IAAI;QACJ,IAAI,CAAC,yBAAyB;QAC9B,EAAE,CAAC,yBAAyB;QAC5B,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,yBAAyB,EAC9D;QACA,OAAO,KAAK,CAAC;KACd;IAED,OAAO,KAAK,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,GAAgB,EAAE,EAAa,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAgB,GAAG,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,KAAK,EAAE,CAAC,yBAAyB,CAClE,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,SAAoB,EAAW,EAAE;IACrF,MAAM,WAAW,qBAAQ,OAAO,CAAE,CAAC;IACnC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhC,SAAS,eAAe,CAAC,WAAyB,EAAE,EAAa;QAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QAE7D,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,qBAAoB,GAAG,CAAE,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACpE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;SAC9C;IACH,CAAC;IAED,IAAI,aAAa,IAAI,WAAW,EAAE;QAChC,MAAM,MAAM,GAAiB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClD,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACzB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;KAClC;IAED,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE;QAC1C,WAAW,CAAC,iBAAiB,GAAG,eAAe,CAAC,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;KAC3F;SAAM,IAAI,WAAW,EAAE;QACtB,MAAM,MAAM,GAAiB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClD,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;KAClC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Operation, OperationRaw, SubAccount } from "@ledgerhq/types-live";
2
+ export type ExtractExtraFn = (extra: Record<string, any>) => Record<string, any>;
3
+ export declare const toOperationRaw: ({ date, value, fee, subOperations, internalOperations, nftOperations, extra, id, hash, type, senders, recipients, blockHeight, blockHash, transactionSequenceNumber, accountId, hasFailed, contract, operator, standard, tokenId, transactionRaw, }: Operation, preserveSubOperation?: boolean) => OperationRaw;
4
+ export declare const inferSubOperations: (txHash: string, subAccounts: SubAccount[]) => Operation[];
5
+ export declare const fromOperationRaw: ({ date, value, fee, extra, subOperations, internalOperations, nftOperations, id, hash, type, senders, recipients, blockHeight, blockHash, transactionSequenceNumber, hasFailed, contract, operator, standard, tokenId, transactionRaw, }: OperationRaw, accountId: string, subAccounts?: SubAccount[] | null | undefined) => Operation;
6
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/account/serialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhF,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEjF,eAAO,MAAM,cAAc,wPAwBtB,SAAS,yBACW,OAAO,KAC7B,YA6CF,CAAC;AACF,eAAO,MAAM,kBAAkB,WAAY,MAAM,eAAe,UAAU,EAAE,KAAG,SAAS,EAwBvF,CAAC;AACF,eAAO,MAAM,gBAAgB,6OAuBxB,YAAY,aACJ,MAAM,gBACH,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,KAC5C,SAiDF,CAAC"}