@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,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"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fromOperationRaw = exports.inferSubOperations = exports.toOperationRaw = void 0;
4
+ const bignumber_js_1 = require("bignumber.js");
5
+ const toOperationRaw = ({ date, value, fee, subOperations, internalOperations, nftOperations, extra, id, hash, type, senders, recipients, blockHeight, blockHash, transactionSequenceNumber, accountId, hasFailed, contract, operator, standard, tokenId, transactionRaw, }, preserveSubOperation) => {
6
+ const copy = {
7
+ id,
8
+ hash,
9
+ type,
10
+ senders,
11
+ recipients,
12
+ accountId,
13
+ blockHash,
14
+ blockHeight,
15
+ extra,
16
+ date: date.toISOString(),
17
+ value: value.toFixed(),
18
+ fee: fee.toString(),
19
+ contract,
20
+ operator,
21
+ standard,
22
+ tokenId,
23
+ };
24
+ if (transactionSequenceNumber !== undefined) {
25
+ copy.transactionSequenceNumber = transactionSequenceNumber;
26
+ }
27
+ if (hasFailed !== undefined) {
28
+ copy.hasFailed = hasFailed;
29
+ }
30
+ if (subOperations && preserveSubOperation) {
31
+ copy.subOperations = subOperations.map((o) => (0, exports.toOperationRaw)(o));
32
+ }
33
+ if (internalOperations) {
34
+ copy.internalOperations = internalOperations.map((o) => (0, exports.toOperationRaw)(o));
35
+ }
36
+ if (nftOperations) {
37
+ copy.nftOperations = nftOperations.map((o) => (0, exports.toOperationRaw)(o));
38
+ }
39
+ if (transactionRaw !== undefined) {
40
+ copy.transactionRaw = transactionRaw;
41
+ }
42
+ return copy;
43
+ };
44
+ exports.toOperationRaw = toOperationRaw;
45
+ const inferSubOperations = (txHash, subAccounts) => {
46
+ const all = [];
47
+ for (let i = 0; i < subAccounts.length; i++) {
48
+ const ta = subAccounts[i];
49
+ for (let j = 0; j < ta.operations.length; j++) {
50
+ const op = ta.operations[j];
51
+ if (op.hash === txHash) {
52
+ all.push(op);
53
+ }
54
+ }
55
+ for (let j = 0; j < ta.pendingOperations.length; j++) {
56
+ const op = ta.pendingOperations[j];
57
+ if (op.hash === txHash) {
58
+ all.push(op);
59
+ }
60
+ }
61
+ }
62
+ return all;
63
+ };
64
+ exports.inferSubOperations = inferSubOperations;
65
+ const fromOperationRaw = ({ date, value, fee, extra, subOperations, internalOperations, nftOperations, id, hash, type, senders, recipients, blockHeight, blockHash, transactionSequenceNumber, hasFailed, contract, operator, standard, tokenId, transactionRaw, }, accountId, subAccounts) => {
66
+ const res = {
67
+ id,
68
+ hash,
69
+ type,
70
+ senders,
71
+ recipients,
72
+ accountId,
73
+ blockHash,
74
+ blockHeight,
75
+ date: new Date(date),
76
+ value: new bignumber_js_1.BigNumber(value),
77
+ fee: new bignumber_js_1.BigNumber(fee),
78
+ extra,
79
+ contract,
80
+ operator,
81
+ standard,
82
+ tokenId,
83
+ };
84
+ if (transactionSequenceNumber !== undefined) {
85
+ res.transactionSequenceNumber = transactionSequenceNumber;
86
+ }
87
+ if (hasFailed !== undefined) {
88
+ res.hasFailed = hasFailed;
89
+ }
90
+ if (subAccounts) {
91
+ res.subOperations = (0, exports.inferSubOperations)(hash, subAccounts);
92
+ }
93
+ else if (subOperations) {
94
+ res.subOperations = subOperations.map((o) => (0, exports.fromOperationRaw)(o, o.accountId));
95
+ }
96
+ if (internalOperations) {
97
+ res.internalOperations = internalOperations.map((o) => (0, exports.fromOperationRaw)(o, o.accountId));
98
+ }
99
+ if (nftOperations) {
100
+ res.nftOperations = nftOperations.map((o) => (0, exports.fromOperationRaw)(o, o.accountId));
101
+ }
102
+ if (transactionRaw !== undefined) {
103
+ res.transactionRaw = transactionRaw;
104
+ }
105
+ return res;
106
+ };
107
+ exports.fromOperationRaw = fromOperationRaw;
108
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/account/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
2
+ import type { Account, AccountLike } from "@ledgerhq/types-live";
3
+ import type { DerivationMode } from "../derivation";
4
+ export declare const shouldShowNewAccount: (currency: CryptoCurrency, derivationMode: DerivationMode) => boolean;
5
+ export declare const getReceiveFlowError: (account: AccountLike, parentAccount: Account | null | undefined) => Error | null | undefined;
6
+ export declare function checkAccountSupported(account: Account): Error | null | undefined;
7
+ //# sourceMappingURL=support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/account/support.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,oBAAoB,aACrB,cAAc,kBACR,cAAc,KAC7B,OAkBF,CAAC;AACF,eAAO,MAAM,mBAAmB,YACrB,WAAW,iBACL,OAAO,GAAG,IAAI,GAAG,SAAS,KACxC,KAAK,GAAG,IAAI,GAAG,SAIjB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAahF"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkAccountSupported = exports.getReceiveFlowError = exports.shouldShowNewAccount = void 0;
4
+ const errors_1 = require("@ledgerhq/errors");
5
+ const live_env_1 = require("@ledgerhq/live-env");
6
+ const derivation_1 = require("../derivation");
7
+ const currencies_1 = require("../currencies");
8
+ const shouldShowNewAccount = (currency, derivationMode) => {
9
+ const modes = (0, derivation_1.getDerivationModesForCurrency)(currency);
10
+ // last mode is always creatable by convention
11
+ if (modes[modes.length - 1] === derivationMode)
12
+ return true;
13
+ // legacy is only available with flag SHOW_LEGACY_NEW_ACCOUNT
14
+ if (derivationMode === "" &&
15
+ (!!(0, live_env_1.getEnv)("SHOW_LEGACY_NEW_ACCOUNT") || currency.family === "bitcoin"))
16
+ return true;
17
+ // native segwit being not yet supported everywhere, segwit is always available for creation
18
+ if (derivationMode === "segwit" ||
19
+ (currency.family === "bitcoin" &&
20
+ (derivationMode === "native_segwit" || derivationMode === "taproot")))
21
+ return true;
22
+ return false;
23
+ };
24
+ exports.shouldShowNewAccount = shouldShowNewAccount;
25
+ const getReceiveFlowError = (account, parentAccount) => {
26
+ if (parentAccount && parentAccount.currency.id === "tezos") {
27
+ return new errors_1.UnavailableTezosOriginatedAccountReceive("");
28
+ }
29
+ };
30
+ exports.getReceiveFlowError = getReceiveFlowError;
31
+ function checkAccountSupported(account) {
32
+ if (!(0, derivation_1.getAllDerivationModes)().includes(account.derivationMode)) {
33
+ return new errors_1.AccountNotSupported("derivation not supported " + account.derivationMode, {
34
+ reason: account.derivationMode,
35
+ });
36
+ }
37
+ if (!(0, currencies_1.isCurrencySupported)(account.currency)) {
38
+ const currencyName = account.currency.name;
39
+ return new errors_1.CurrencyNotSupported("currency not supported: " + currencyName, {
40
+ currencyName,
41
+ });
42
+ }
43
+ }
44
+ exports.checkAccountSupported = checkAccountSupported;
45
+ //# sourceMappingURL=support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/account/support.ts"],"names":[],"mappings":";;;AAAA,6CAI0B;AAC1B,iDAA4C;AAC5C,8CAAqF;AACrF,8CAAoD;AAK7C,MAAM,oBAAoB,GAAG,CAClC,QAAwB,EACxB,cAA8B,EACrB,EAAE;IACX,MAAM,KAAK,GAAG,IAAA,0CAA6B,EAAC,QAAQ,CAAC,CAAC;IACtD,8CAA8C;IAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC5D,6DAA6D;IAC7D,IACE,cAAc,KAAK,EAAE;QACrB,CAAC,CAAC,CAAC,IAAA,iBAAM,EAAC,yBAAyB,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;QAEtE,OAAO,IAAI,CAAC;IACd,4FAA4F;IAC5F,IACE,cAAc,KAAK,QAAQ;QAC3B,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC5B,CAAC,cAAc,KAAK,eAAe,IAAI,cAAc,KAAK,SAAS,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArBW,QAAA,oBAAoB,wBAqB/B;AACK,MAAM,mBAAmB,GAAG,CACjC,OAAoB,EACpB,aAAyC,EACf,EAAE;IAC5B,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,EAAE;QAC1D,OAAO,IAAI,iDAAwC,CAAC,EAAE,CAAC,CAAC;KACzD;AACH,CAAC,CAAC;AAPW,QAAA,mBAAmB,uBAO9B;AAEF,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,IAAI,CAAC,IAAA,kCAAqB,GAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAgC,CAAC,EAAE;QAC/E,OAAO,IAAI,4BAAmB,CAAC,2BAA2B,GAAG,OAAO,CAAC,cAAc,EAAE;YACnF,MAAM,EAAE,OAAO,CAAC,cAAc;SAC/B,CAAC,CAAC;KACJ;IAED,IAAI,CAAC,IAAA,gCAAmB,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3C,OAAO,IAAI,6BAAoB,CAAC,0BAA0B,GAAG,YAAY,EAAE;YACzE,YAAY;SACb,CAAC,CAAC;KACJ;AACH,CAAC;AAbD,sDAaC"}
@@ -0,0 +1,2 @@
1
+ import "./test-helpers/staticTime";
2
+ //# sourceMappingURL=account.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.test.d.ts","sourceRoot":"","sources":["../src/account.test.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ require("./test-helpers/staticTime");
7
+ const bignumber_js_1 = require("bignumber.js");
8
+ const flatMap_1 = __importDefault(require("lodash/flatMap"));
9
+ const currencies_1 = require("./currencies");
10
+ const account_1 = require("./account");
11
+ const account_2 = require("./mocks/account");
12
+ (0, currencies_1.setSupportedCurrencies)(["ethereum", "ethereum_classic", "tron"]);
13
+ describe("groupAccountOperationsByDay", () => {
14
+ test("basic", () => {
15
+ const account = (0, account_2.genAccount)("seed_7", {
16
+ operationsSize: 20,
17
+ });
18
+ const res1 = (0, account_1.groupAccountOperationsByDay)(account, {
19
+ count: 10,
20
+ });
21
+ expect(res1.completed).toBe(false);
22
+ expect(res1).toMatchSnapshot();
23
+ const res2 = (0, account_1.groupAccountOperationsByDay)(account, {
24
+ count: Infinity,
25
+ });
26
+ expect(res2.completed).toBe(true);
27
+ expect(
28
+ // $FlowFixMe
29
+ (0, flatMap_1.default)(res2.sections, s => s.data).slice(0, 10)).toMatchObject(
30
+ // $FlowFixMe
31
+ (0, flatMap_1.default)(res1.sections, s => s.data));
32
+ });
33
+ test("basic 2", () => {
34
+ const accounts = Array(10)
35
+ .fill(null)
36
+ .map((_, i) => (0, account_2.genAccount)("gaobd" + i));
37
+ const res1 = (0, account_1.groupAccountsOperationsByDay)(accounts, {
38
+ count: 100,
39
+ });
40
+ expect(res1.completed).toBe(false);
41
+ expect(res1).toMatchSnapshot();
42
+ const res2 = (0, account_1.groupAccountsOperationsByDay)(accounts, {
43
+ count: Infinity,
44
+ });
45
+ expect(res2.completed).toBe(true);
46
+ expect(
47
+ // $FlowFixMe
48
+ (0, flatMap_1.default)(res2.sections, s => s.data).slice(0, 100)).toMatchObject(
49
+ // $FlowFixMe
50
+ (0, flatMap_1.default)(res1.sections, s => s.data));
51
+ });
52
+ test("filterOperation", () => {
53
+ const account = (0, account_2.genAccount)("seed_7");
54
+ account.pendingOperations = account.operations.splice(0, 2);
55
+ const res1 = (0, account_1.groupAccountOperationsByDay)(account, {
56
+ count: 10,
57
+ filterOperation: () => false,
58
+ });
59
+ expect(res1.sections.length).toBe(0);
60
+ expect(res1.completed).toBe(true);
61
+ const res2 = (0, account_1.groupAccountOperationsByDay)(account, {
62
+ count: 10,
63
+ filterOperation: () => true,
64
+ });
65
+ expect(res2).toEqual((0, account_1.groupAccountOperationsByDay)(account, {
66
+ count: 10,
67
+ }));
68
+ const res3 = (0, account_1.groupAccountOperationsByDay)(account, {
69
+ count: 10,
70
+ filterOperation: (op, acc) => {
71
+ expect(acc).toBe(account);
72
+ return op.type === "OUT";
73
+ },
74
+ });
75
+ expect(res3).toEqual((0, account_1.groupAccountOperationsByDay)(Object.assign(Object.assign({}, account), { operations: account.operations.filter(op => op.type === "OUT"), pendingOperations: account.pendingOperations.filter(op => op.type === "OUT") }), {
76
+ count: 10,
77
+ }));
78
+ });
79
+ test("provide at least the requested count even if some op yield nothing", () => {
80
+ const ethAccount = (0, account_2.genAccount)("eth_1", {
81
+ currency: (0, currencies_1.getCryptoCurrencyById)("ethereum"),
82
+ operationsSize: 300,
83
+ });
84
+ ethAccount.operations = Array(50)
85
+ .fill(Object.assign(Object.assign({}, ethAccount.operations[0]), { value: new bignumber_js_1.BigNumber(0), type: "NONE" }))
86
+ .concat(ethAccount.operations);
87
+ const res1 = (0, account_1.groupAccountOperationsByDay)(ethAccount, {
88
+ count: 100,
89
+ });
90
+ expect(res1.completed).toBe(false);
91
+ expect(res1.sections.reduce((acc, s) => acc.concat(s.data), []).length).toBeGreaterThanOrEqual(100);
92
+ });
93
+ test("to dedup", () => {
94
+ const account = (0, account_2.genAccount)("seed_8");
95
+ account.pendingOperations = account.operations.slice(0, 3);
96
+ const accountClone = (0, account_2.genAccount)("seed_8");
97
+ const res1 = (0, account_1.groupAccountOperationsByDay)(account, {
98
+ count: 100,
99
+ });
100
+ const res2 = (0, account_1.groupAccountOperationsByDay)(accountClone, {
101
+ count: 100,
102
+ });
103
+ expect(res1).toMatchObject(res2);
104
+ });
105
+ });
106
+ test("shortAddressPreview", () => {
107
+ expect((0, account_1.shortAddressPreview)("0x112233445566778899001234567890aAbBcCdDeEfF")).toBe("0x112233...cCdDeEfF");
108
+ expect((0, account_1.shortAddressPreview)("0x112233445566778899001234567890aAbBcCdDeEfF", 30)).toBe("0x11223344556...0aAbBcCdDeEfF");
109
+ });
110
+ test("accountWithMandatoryTokens ethereum", () => {
111
+ const currency = (0, currencies_1.getCryptoCurrencyById)("ethereum");
112
+ const account = (0, account_2.genAccount)("", {
113
+ currency,
114
+ subAccountsCount: 5,
115
+ });
116
+ const enhance = (0, account_1.accountWithMandatoryTokens)(account, [(0, currencies_1.getTokenById)("ethereum/erc20/0x_project")]);
117
+ const doubleEnhance = (0, account_1.accountWithMandatoryTokens)(enhance, [
118
+ (0, currencies_1.getTokenById)("ethereum/erc20/0x_project"),
119
+ ]);
120
+ expect(doubleEnhance).toEqual(enhance);
121
+ expect(Object.assign(Object.assign({}, enhance), { subAccounts: [] })).toMatchObject(Object.assign(Object.assign({}, account), { subAccounts: [] }));
122
+ expect((enhance.subAccounts || []).map(a => a.id)).toMatchSnapshot();
123
+ });
124
+ test("withoutToken ethereum", () => {
125
+ const isTokenAccount = (account, tokenId) => account.type === "TokenAccount" && account.token.id === tokenId;
126
+ const tokenIds = [
127
+ "ethereum/erc20/0x_project",
128
+ "ethereum/erc20/leo_token",
129
+ "ethereum/erc20/cro",
130
+ "ethereum/erc20/huobitoken",
131
+ ];
132
+ const currency = (0, currencies_1.getCryptoCurrencyById)("ethereum");
133
+ const account = (0, account_2.genAccount)("", {
134
+ currency,
135
+ subAccountsCount: 0,
136
+ });
137
+ //Enhance the account with some tokens
138
+ const enhance = (0, account_1.accountWithMandatoryTokens)(account, tokenIds.map(currencies_1.getTokenById));
139
+ //Get a version of that account without all the tokens
140
+ let demote = enhance;
141
+ for (const tokenId of tokenIds) {
142
+ demote = (0, account_1.withoutToken)(demote, tokenId);
143
+ }
144
+ const saTokens = enhance.subAccounts || [];
145
+ const saNoTokens = demote.subAccounts || [];
146
+ //See if we have added/removed them correctly
147
+ for (const tokenId of tokenIds) {
148
+ expect(saTokens.find(a => isTokenAccount(a, tokenId))).toBeTruthy();
149
+ expect(saNoTokens.find(a => isTokenAccount(a, tokenId))).toBeFalsy();
150
+ }
151
+ });
152
+ test("withoutToken tron", () => {
153
+ const isTokenAccount = (account, tokenId) => account.type === "TokenAccount" && account.token.id === tokenId;
154
+ const tokenIds = [
155
+ "tron/trc10/1002000",
156
+ "tron/trc10/1002398",
157
+ "tron/trc10/1000226",
158
+ "tron/trc20/TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7",
159
+ ];
160
+ const currency = (0, currencies_1.getCryptoCurrencyById)("tron");
161
+ const account = (0, account_2.genAccount)("", {
162
+ currency,
163
+ subAccountsCount: 0,
164
+ });
165
+ //Enhance the account with some tokens
166
+ const enhance = (0, account_1.accountWithMandatoryTokens)(account, tokenIds.map(currencies_1.getTokenById));
167
+ //Get a version of that account without all the tokens
168
+ let demote = enhance;
169
+ for (const tokenId of tokenIds) {
170
+ demote = (0, account_1.withoutToken)(demote, tokenId);
171
+ }
172
+ const saTokens = enhance.subAccounts || [];
173
+ const saNoTokens = demote.subAccounts || [];
174
+ //See if we have added/removed them correctly
175
+ for (const tokenId of tokenIds) {
176
+ expect(saTokens.find(a => isTokenAccount(a, tokenId))).toBeTruthy();
177
+ expect(saNoTokens.find(a => isTokenAccount(a, tokenId))).toBeFalsy();
178
+ }
179
+ });
180
+ //# sourceMappingURL=account.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.test.js","sourceRoot":"","sources":["../src/account.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function botTest(description: string, f: () => void): void;
2
+ export declare function getContext(error: any): string | undefined;
3
+ //# sourceMappingURL=bot-test-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-test-context.d.ts","sourceRoot":"","sources":["../../src/bot/bot-test-context.ts"],"names":[],"mappings":"AAKA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAWhE;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAIzD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getContext = exports.botTest = void 0;
4
+ // This provides a botTest("description", () => {}) helper in order to give context in bot expect tests
5
+ function botTest(description, f) {
6
+ try {
7
+ f();
8
+ }
9
+ catch (e) {
10
+ if (e instanceof Error) {
11
+ const err = e;
12
+ err._bot_context = [description].concat(err._bot_context || []);
13
+ throw err;
14
+ }
15
+ throw e;
16
+ }
17
+ }
18
+ exports.botTest = botTest;
19
+ // retrieve the text context of a given error that was thrown from inside a botTest(...)
20
+ function getContext(error) {
21
+ if (error instanceof Error) {
22
+ return (error._bot_context || []).join(" > ");
23
+ }
24
+ }
25
+ exports.getContext = getContext;
26
+ //# sourceMappingURL=bot-test-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-test-context.js","sourceRoot":"","sources":["../../src/bot/bot-test-context.ts"],"names":[],"mappings":";;;AAIA,uGAAuG;AACvG,SAAgB,OAAO,CAAC,WAAmB,EAAE,CAAa;IACxD,IAAI;QACF,CAAC,EAAE,CAAC;KACL;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,KAAK,EAAE;YACtB,MAAM,GAAG,GAAG,CAAkB,CAAC;YAC/B,GAAG,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,GAAG,CAAC;SACX;QACD,MAAM,CAAC,CAAC;KACT;AACH,CAAC;AAXD,0BAWC;AAED,wFAAwF;AACxF,SAAgB,UAAU,CAAC,KAAU;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO,CAAE,KAAuB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClE;AACH,CAAC;AAJD,gCAIC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bot-test-context.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-test-context.test.d.ts","sourceRoot":"","sources":["../../src/bot/bot-test-context.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bot_test_context_1 = require("./bot-test-context");
4
+ const formatters_1 = require("./formatters");
5
+ describe("test the botTest context itself", () => {
6
+ test("botTest", () => {
7
+ const f = () => {
8
+ try {
9
+ (0, bot_test_context_1.botTest)("CTX", () => expect(true).toEqual(false));
10
+ }
11
+ catch (e) {
12
+ return (0, bot_test_context_1.getContext)(e);
13
+ }
14
+ };
15
+ expect(f()).toEqual("CTX");
16
+ });
17
+ test("double botTest", () => {
18
+ const f = () => {
19
+ try {
20
+ (0, bot_test_context_1.botTest)("1", () => (0, bot_test_context_1.botTest)("2", () => expect(true).toEqual(false)));
21
+ }
22
+ catch (e) {
23
+ return (0, bot_test_context_1.getContext)(e);
24
+ }
25
+ };
26
+ expect(f()).toEqual("1 > 2");
27
+ });
28
+ test("formatError", () => {
29
+ var _a;
30
+ const f = () => {
31
+ try {
32
+ (0, bot_test_context_1.botTest)("CTX", () => expect(true).toEqual(false));
33
+ }
34
+ catch (e) {
35
+ return (0, formatters_1.formatError)(e);
36
+ }
37
+ };
38
+ expect((_a = f()) === null || _a === void 0 ? void 0 : _a.slice(0, 8)).toEqual("TEST CTX");
39
+ });
40
+ });
41
+ //# sourceMappingURL=bot-test-context.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-test-context.test.js","sourceRoot":"","sources":["../../src/bot/bot-test-context.test.ts"],"names":[],"mappings":";;AAAA,yDAAyD;AACzD,6CAA2C;AAE3C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,GAAG,EAAE;YACb,IAAI;gBACF,IAAA,0BAAO,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,IAAA,6BAAU,EAAC,CAAC,CAAC,CAAC;aACtB;QACH,CAAC,CAAC;QACF,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,GAAG,GAAG,EAAE;YACb,IAAI;gBACF,IAAA,0BAAO,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,0BAAO,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACrE;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,IAAA,6BAAU,EAAC,CAAC,CAAC,CAAC;aACtB;QACH,CAAC,CAAC;QACF,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;;QACvB,MAAM,CAAC,GAAG,GAAG,EAAE;YACb,IAAI;gBACF,IAAA,0BAAO,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,IAAA,wBAAW,EAAC,CAAC,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;QACF,MAAM,CAAC,MAAA,CAAC,EAAE,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function formatError(e: unknown, longform?: boolean): string;
2
+ //# sourceMappingURL=formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/bot/formatters.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAmBhE"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatError = void 0;
4
+ const bot_test_context_1 = require("./bot-test-context");
5
+ function formatError(e, longform = false) {
6
+ let out = "";
7
+ if (!e || typeof e !== "object") {
8
+ out = String(e);
9
+ }
10
+ else if (e instanceof Error) {
11
+ const ctx = (0, bot_test_context_1.getContext)(e);
12
+ if (ctx)
13
+ out += `TEST ${ctx}\n`;
14
+ out += String(e);
15
+ }
16
+ else {
17
+ try {
18
+ out = "raw object: " + JSON.stringify(e);
19
+ }
20
+ catch (_e) {
21
+ out = String(e);
22
+ }
23
+ }
24
+ if (longform) {
25
+ return out.slice(0, 500);
26
+ }
27
+ return out.replace(/[`]/g, "").replace(/\n/g, " ").slice(0, 200);
28
+ }
29
+ exports.formatError = formatError;
30
+ //# sourceMappingURL=formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/bot/formatters.ts"],"names":[],"mappings":";;;AAAA,yDAAgD;AAEhD,SAAgB,WAAW,CAAC,CAAU,EAAE,QAAQ,GAAG,KAAK;IACtD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC/B,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjB;SAAM,IAAI,CAAC,YAAY,KAAK,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAA,6BAAU,EAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG;YAAE,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC;QAChC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;SAAM;QACL,IAAI;YACF,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1C;QAAC,OAAO,EAAE,EAAE;YACX,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,IAAI,QAAQ,EAAE;QACZ,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC;AAnBD,kCAmBC"}
@@ -0,0 +1,50 @@
1
+ import type { DeviceAction, DeviceActionArg, TransactionDestinationTestInput } from "./types";
2
+ import { Account, TransactionCommon } from "@ledgerhq/types-live";
3
+ import { botTest } from "./bot-test-context";
4
+ import { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
5
+ import BigNumber from "bignumber.js";
6
+ export { botTest };
7
+ export declare function pickSiblings(siblings: Account[], maxAccount?: number): Account;
8
+ type State<T extends TransactionCommon> = {
9
+ finalState: boolean;
10
+ stepTitle: string;
11
+ stepValue: string;
12
+ acc: Array<{
13
+ title: string;
14
+ value: string;
15
+ }>;
16
+ currentStep: Step<T> | null | undefined;
17
+ };
18
+ export declare enum SpeculosButton {
19
+ LEFT = "Ll",
20
+ RIGHT = "Rr",
21
+ BOTH = "LRlr"
22
+ }
23
+ type Step<T extends TransactionCommon> = {
24
+ title: string;
25
+ stepValueTransform?: (s: string) => string;
26
+ expectedValue?: (arg0: DeviceActionArg<T, State<T>>, acc: Array<{
27
+ title: string;
28
+ value: string;
29
+ }>) => string;
30
+ ignoreAssertionFailure?: boolean;
31
+ trimValue?: boolean;
32
+ button?: SpeculosButton;
33
+ final?: boolean;
34
+ maxY?: number;
35
+ };
36
+ type FlowDesc<T extends TransactionCommon> = {
37
+ steps: Array<Step<T>>;
38
+ fallback?: (arg0: DeviceActionArg<T, State<T>>) => Step<T> | null | undefined;
39
+ };
40
+ export declare function deviceActionFlow<T extends TransactionCommon>(description: FlowDesc<T>): DeviceAction<T, State<T>>;
41
+ type DeviceAmountFormatOptions = {
42
+ postfixCode: boolean;
43
+ forceFloating: boolean;
44
+ hideCode: boolean;
45
+ showAllDigits: boolean;
46
+ };
47
+ export declare function formatDeviceAmount(currency: CryptoCurrency | TokenCurrency, value: BigNumber, options?: Partial<DeviceAmountFormatOptions>): string;
48
+ export declare function expectSiblingsHaveSpendablePartGreaterThan(siblings: Account[], threshold: number): void;
49
+ export declare const genericTestDestination: <T>({ destination, operation, destinationBeforeTransaction, sendingOperation, }: TransactionDestinationTestInput<T>) => void;
50
+ //# sourceMappingURL=specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/bot/specs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,CAAC;AAKnB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,SAAI,GAAG,OAAO,CAyBzE;AAED,KAAK,KAAK,CAAC,CAAC,SAAS,iBAAiB,IAAI;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,oBAAY,cAAc;IACxB,IAAI,OAAO;IACX,KAAK,OAAO;IACZ,IAAI,SAAS;CACd;AAED,KAAK,IAAI,CAAC,CAAC,SAAS,iBAAiB,IAAI;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAClC,GAAG,EAAE,KAAK,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,KACC,MAAM,CAAC;IACZ,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,KAAK,QAAQ,CAAC,CAAC,SAAS,iBAAiB,IAAI;IAC3C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/E,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAC1D,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,GACvB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CA0F3B;AAED,KAAK,yBAAyB,GAAG;IAE/B,WAAW,EAAE,OAAO,CAAC;IAErB,aAAa,EAAE,OAAO,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AASF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,GAAG,aAAa,EACxC,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,OAAO,CAAC,yBAAyB,CAAwB,GACjE,MAAM,CAiBR;AAKD,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,MAAM,GAChB,IAAI,CAWN;AAED,eAAO,MAAM,sBAAsB,0HAKK,IAgBvC,CAAC"}