@ledgerhq/live-common 27.0.0 → 27.1.0-next.1

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 (565) hide show
  1. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.js +2 -2
  2. package/lib/__tests__/test-helpers/environment.d.ts +2 -0
  3. package/lib/__tests__/test-helpers/environment.d.ts.map +1 -0
  4. package/lib/__tests__/test-helpers/environment.js +107 -0
  5. package/lib/__tests__/test-helpers/environment.js.map +1 -0
  6. package/lib/__tests__/test-helpers/setup.d.ts +1 -1
  7. package/lib/__tests__/test-helpers/setup.d.ts.map +1 -1
  8. package/lib/__tests__/test-helpers/setup.js +1 -101
  9. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  10. package/lib/account/serialization.d.ts +2 -0
  11. package/lib/account/serialization.d.ts.map +1 -1
  12. package/lib/account/serialization.js +105 -47
  13. package/lib/account/serialization.js.map +1 -1
  14. package/lib/apps/support.d.ts.map +1 -1
  15. package/lib/apps/support.js +1 -0
  16. package/lib/apps/support.js.map +1 -1
  17. package/lib/bot/bot-test-context.d.ts +3 -0
  18. package/lib/bot/bot-test-context.d.ts.map +1 -0
  19. package/lib/bot/bot-test-context.js +26 -0
  20. package/lib/bot/bot-test-context.js.map +1 -0
  21. package/lib/bot/bot-test-context.test.d.ts +2 -0
  22. package/lib/bot/bot-test-context.test.d.ts.map +1 -0
  23. package/lib/bot/bot-test-context.test.js +41 -0
  24. package/lib/bot/bot-test-context.test.js.map +1 -0
  25. package/lib/bot/cli.d.ts +2 -0
  26. package/lib/bot/cli.d.ts.map +1 -0
  27. package/lib/bot/cli.js +14 -0
  28. package/lib/bot/cli.js.map +1 -0
  29. package/lib/bot/engine.d.ts +5 -5
  30. package/lib/bot/engine.d.ts.map +1 -1
  31. package/lib/bot/engine.js +161 -112
  32. package/lib/bot/engine.js.map +1 -1
  33. package/lib/bot/formatters.d.ts +2 -2
  34. package/lib/bot/formatters.d.ts.map +1 -1
  35. package/lib/bot/formatters.js +41 -15
  36. package/lib/bot/formatters.js.map +1 -1
  37. package/lib/bot/index.d.ts +1 -1
  38. package/lib/bot/index.d.ts.map +1 -1
  39. package/lib/bot/index.js +90 -15
  40. package/lib/bot/index.js.map +1 -1
  41. package/lib/bot/specs.d.ts +2 -1
  42. package/lib/bot/specs.d.ts.map +1 -1
  43. package/lib/bot/specs.js +13 -9
  44. package/lib/bot/specs.js.map +1 -1
  45. package/lib/bot/types.d.ts +5 -2
  46. package/lib/bot/types.d.ts.map +1 -1
  47. package/lib/countervalues/logic.integration.test.js +65 -0
  48. package/lib/countervalues/logic.integration.test.js.map +1 -1
  49. package/lib/countervalues/modules/weth.d.ts.map +1 -1
  50. package/lib/countervalues/modules/weth.js +5 -10
  51. package/lib/countervalues/modules/weth.js.map +1 -1
  52. package/lib/currencies/sortByMarketcap.d.ts +0 -2
  53. package/lib/currencies/sortByMarketcap.d.ts.map +1 -1
  54. package/lib/currencies/sortByMarketcap.js +3 -17
  55. package/lib/currencies/sortByMarketcap.js.map +1 -1
  56. package/lib/currencies/sortByMarketcap.test.js +0 -5
  57. package/lib/currencies/sortByMarketcap.test.js.map +1 -1
  58. package/lib/env.js +1 -1
  59. package/lib/families/algorand/specs.d.ts.map +1 -1
  60. package/lib/families/algorand/specs.js +18 -10
  61. package/lib/families/algorand/specs.js.map +1 -1
  62. package/lib/families/algorand/speculos-deviceActions.d.ts +1 -4
  63. package/lib/families/algorand/speculos-deviceActions.d.ts.map +1 -1
  64. package/lib/families/algorand/speculos-deviceActions.js +25 -8
  65. package/lib/families/algorand/speculos-deviceActions.js.map +1 -1
  66. package/lib/families/bitcoin/bridge/mock.d.ts.map +1 -1
  67. package/lib/families/bitcoin/bridge/mock.js +6 -1
  68. package/lib/families/bitcoin/bridge/mock.js.map +1 -1
  69. package/lib/families/bitcoin/datasets/bitcoin_cash.d.ts.map +1 -1
  70. package/lib/families/bitcoin/datasets/bitcoin_cash.js +1 -1
  71. package/lib/families/bitcoin/datasets/bitcoin_cash.js.map +1 -1
  72. package/lib/families/bitcoin/datasets/dash.d.ts.map +1 -1
  73. package/lib/families/bitcoin/datasets/dash.js +1 -1
  74. package/lib/families/bitcoin/datasets/dash.js.map +1 -1
  75. package/lib/families/bitcoin/datasets/decred.d.ts.map +1 -1
  76. package/lib/families/bitcoin/datasets/decred.js +1 -1
  77. package/lib/families/bitcoin/datasets/decred.js.map +1 -1
  78. package/lib/families/bitcoin/datasets/digibyte.d.ts.map +1 -1
  79. package/lib/families/bitcoin/datasets/digibyte.js +8 -2
  80. package/lib/families/bitcoin/datasets/digibyte.js.map +1 -1
  81. package/lib/families/bitcoin/datasets/dogecoin.d.ts.map +1 -1
  82. package/lib/families/bitcoin/datasets/dogecoin.js +1 -1
  83. package/lib/families/bitcoin/datasets/dogecoin.js.map +1 -1
  84. package/lib/families/bitcoin/datasets/komodo.js +1 -1
  85. package/lib/families/bitcoin/datasets/komodo.js.map +1 -1
  86. package/lib/families/bitcoin/datasets/litecoin.d.ts.map +1 -1
  87. package/lib/families/bitcoin/datasets/litecoin.js +8 -2
  88. package/lib/families/bitcoin/datasets/litecoin.js.map +1 -1
  89. package/lib/families/bitcoin/datasets/peercoin.js +1 -1
  90. package/lib/families/bitcoin/datasets/peercoin.js.map +1 -1
  91. package/lib/families/bitcoin/datasets/pivx.js +1 -1
  92. package/lib/families/bitcoin/datasets/pivx.js.map +1 -1
  93. package/lib/families/bitcoin/datasets/qtum.js +1 -1
  94. package/lib/families/bitcoin/datasets/qtum.js.map +1 -1
  95. package/lib/families/bitcoin/datasets/stakenet.d.ts.map +1 -1
  96. package/lib/families/bitcoin/datasets/stakenet.js +1 -1
  97. package/lib/families/bitcoin/datasets/stakenet.js.map +1 -1
  98. package/lib/families/bitcoin/datasets/vertcoin.d.ts.map +1 -1
  99. package/lib/families/bitcoin/datasets/vertcoin.js +1 -1
  100. package/lib/families/bitcoin/datasets/vertcoin.js.map +1 -1
  101. package/lib/families/bitcoin/datasets/viacoin.d.ts.map +1 -1
  102. package/lib/families/bitcoin/datasets/viacoin.js +1 -1
  103. package/lib/families/bitcoin/datasets/viacoin.js.map +1 -1
  104. package/lib/families/bitcoin/datasets/zcash.d.ts.map +1 -1
  105. package/lib/families/bitcoin/datasets/zcash.js +1 -1
  106. package/lib/families/bitcoin/datasets/zcash.js.map +1 -1
  107. package/lib/families/bitcoin/datasets/zencash.d.ts.map +1 -1
  108. package/lib/families/bitcoin/datasets/zencash.js +1 -1
  109. package/lib/families/bitcoin/datasets/zencash.js.map +1 -1
  110. package/lib/families/bitcoin/platformAdapter.test.d.ts +2 -0
  111. package/lib/families/bitcoin/platformAdapter.test.d.ts.map +1 -0
  112. package/lib/families/bitcoin/platformAdapter.test.js +48 -0
  113. package/lib/families/bitcoin/platformAdapter.test.js.map +1 -0
  114. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  115. package/lib/families/bitcoin/specs.js +62 -24
  116. package/lib/families/bitcoin/specs.js.map +1 -1
  117. package/lib/families/bitcoin/speculos-deviceActions.d.ts +1 -4
  118. package/lib/families/bitcoin/speculos-deviceActions.d.ts.map +1 -1
  119. package/lib/families/bitcoin/speculos-deviceActions.js +2 -4
  120. package/lib/families/bitcoin/speculos-deviceActions.js.map +1 -1
  121. package/lib/families/cardano/js-estimateMaxSpendable.js +1 -1
  122. package/lib/families/cardano/js-estimateMaxSpendable.js.map +1 -1
  123. package/lib/families/cardano/specs.d.ts.map +1 -1
  124. package/lib/families/cardano/specs.js +19 -8
  125. package/lib/families/cardano/specs.js.map +1 -1
  126. package/lib/families/cardano/speculos-deviceActions.d.ts +1 -4
  127. package/lib/families/cardano/speculos-deviceActions.d.ts.map +1 -1
  128. package/lib/families/cardano/speculos-deviceActions.js +2 -2
  129. package/lib/families/cardano/speculos-deviceActions.js.map +1 -1
  130. package/lib/families/celo/api/hubble.d.ts +6 -1
  131. package/lib/families/celo/api/hubble.d.ts.map +1 -1
  132. package/lib/families/celo/api/hubble.js +135 -13
  133. package/lib/families/celo/api/hubble.js.map +1 -1
  134. package/lib/families/celo/api/index.d.ts +1 -1
  135. package/lib/families/celo/api/index.d.ts.map +1 -1
  136. package/lib/families/celo/api/index.js +2 -1
  137. package/lib/families/celo/api/index.js.map +1 -1
  138. package/lib/families/celo/api/sdk.d.ts +22 -0
  139. package/lib/families/celo/api/sdk.d.ts.map +1 -1
  140. package/lib/families/celo/api/sdk.js +168 -1
  141. package/lib/families/celo/api/sdk.js.map +1 -1
  142. package/lib/families/celo/bridge/js.d.ts.map +1 -1
  143. package/lib/families/celo/bridge/js.js +4 -42
  144. package/lib/families/celo/bridge/js.js.map +1 -1
  145. package/lib/families/celo/cli-transaction.d.ts +12 -2
  146. package/lib/families/celo/cli-transaction.d.ts.map +1 -1
  147. package/lib/families/celo/cli-transaction.js +38 -4
  148. package/lib/families/celo/cli-transaction.js.map +1 -1
  149. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts +1 -0
  150. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts.map +1 -1
  151. package/lib/families/celo/datasets/celo.scanAccounts.1.js +298 -2
  152. package/lib/families/celo/datasets/celo.scanAccounts.1.js.map +1 -1
  153. package/lib/families/celo/errors.d.ts +2 -0
  154. package/lib/families/celo/errors.d.ts.map +1 -0
  155. package/lib/families/celo/errors.js +6 -0
  156. package/lib/families/celo/errors.js.map +1 -0
  157. package/lib/families/celo/js-buildTransaction.d.ts +2 -3
  158. package/lib/families/celo/js-buildTransaction.d.ts.map +1 -1
  159. package/lib/families/celo/js-buildTransaction.js +194 -19
  160. package/lib/families/celo/js-buildTransaction.js.map +1 -1
  161. package/lib/families/celo/js-createTransaction.d.ts.map +1 -1
  162. package/lib/families/celo/js-createTransaction.js +3 -1
  163. package/lib/families/celo/js-createTransaction.js.map +1 -1
  164. package/lib/families/celo/js-estimateMaxSpendable.d.ts.map +1 -1
  165. package/lib/families/celo/js-estimateMaxSpendable.js.map +1 -1
  166. package/lib/families/celo/js-getFeesForTransaction.d.ts +2 -3
  167. package/lib/families/celo/js-getFeesForTransaction.d.ts.map +1 -1
  168. package/lib/families/celo/js-getFeesForTransaction.js +137 -10
  169. package/lib/families/celo/js-getFeesForTransaction.js.map +1 -1
  170. package/lib/families/celo/js-getTransactionStatus.d.ts +2 -3
  171. package/lib/families/celo/js-getTransactionStatus.d.ts.map +1 -1
  172. package/lib/families/celo/js-getTransactionStatus.js +97 -41
  173. package/lib/families/celo/js-getTransactionStatus.js.map +1 -1
  174. package/lib/families/celo/js-prepareTransaction.d.ts +2 -3
  175. package/lib/families/celo/js-prepareTransaction.d.ts.map +1 -1
  176. package/lib/families/celo/js-prepareTransaction.js +8 -3
  177. package/lib/families/celo/js-prepareTransaction.js.map +1 -1
  178. package/lib/families/celo/js-signOperation.d.ts.map +1 -1
  179. package/lib/families/celo/js-signOperation.js +17 -3
  180. package/lib/families/celo/js-signOperation.js.map +1 -1
  181. package/lib/families/celo/js-synchronisation.d.ts.map +1 -1
  182. package/lib/families/celo/js-synchronisation.js +51 -6
  183. package/lib/families/celo/js-synchronisation.js.map +1 -1
  184. package/lib/families/celo/logic.d.ts +21 -0
  185. package/lib/families/celo/logic.d.ts.map +1 -0
  186. package/lib/families/celo/logic.js +132 -0
  187. package/lib/families/celo/logic.js.map +1 -0
  188. package/lib/families/celo/preload.d.ts +10 -0
  189. package/lib/families/celo/preload.d.ts.map +1 -0
  190. package/lib/families/celo/preload.js +118 -0
  191. package/lib/families/celo/preload.js.map +1 -0
  192. package/lib/families/celo/react.d.ts +4 -0
  193. package/lib/families/celo/react.d.ts.map +1 -0
  194. package/lib/families/celo/react.js +47 -0
  195. package/lib/families/celo/react.js.map +1 -0
  196. package/lib/families/celo/serialization.d.ts +4 -0
  197. package/lib/families/celo/serialization.d.ts.map +1 -0
  198. package/lib/families/celo/serialization.js +55 -0
  199. package/lib/families/celo/serialization.js.map +1 -0
  200. package/lib/families/celo/specs/createActivateVoteMutation.d.ts +4 -0
  201. package/lib/families/celo/specs/createActivateVoteMutation.d.ts.map +1 -0
  202. package/lib/families/celo/specs/createActivateVoteMutation.js +38 -0
  203. package/lib/families/celo/specs/createActivateVoteMutation.js.map +1 -0
  204. package/lib/families/celo/specs/createLockMutation.d.ts +4 -0
  205. package/lib/families/celo/specs/createLockMutation.d.ts.map +1 -0
  206. package/lib/families/celo/specs/createLockMutation.js +40 -0
  207. package/lib/families/celo/specs/createLockMutation.js.map +1 -0
  208. package/lib/families/celo/specs/createRegisterAccountMutation.d.ts +4 -0
  209. package/lib/families/celo/specs/createRegisterAccountMutation.d.ts.map +1 -0
  210. package/lib/families/celo/specs/createRegisterAccountMutation.js +31 -0
  211. package/lib/families/celo/specs/createRegisterAccountMutation.js.map +1 -0
  212. package/lib/families/celo/specs/createRevokeVoteMutation.d.ts +4 -0
  213. package/lib/families/celo/specs/createRevokeVoteMutation.d.ts.map +1 -0
  214. package/lib/families/celo/specs/createRevokeVoteMutation.js +39 -0
  215. package/lib/families/celo/specs/createRevokeVoteMutation.js.map +1 -0
  216. package/lib/families/celo/specs/createSendMutation.d.ts +5 -0
  217. package/lib/families/celo/specs/createSendMutation.d.ts.map +1 -0
  218. package/lib/families/celo/specs/createSendMutation.js +44 -0
  219. package/lib/families/celo/specs/createSendMutation.js.map +1 -0
  220. package/lib/families/celo/specs/createUnlockMutation.d.ts +4 -0
  221. package/lib/families/celo/specs/createUnlockMutation.d.ts.map +1 -0
  222. package/lib/families/celo/specs/createUnlockMutation.js +37 -0
  223. package/lib/families/celo/specs/createUnlockMutation.js.map +1 -0
  224. package/lib/families/celo/specs/createVoteMutation.d.ts +4 -0
  225. package/lib/families/celo/specs/createVoteMutation.d.ts.map +1 -0
  226. package/lib/families/celo/specs/createVoteMutation.js +51 -0
  227. package/lib/families/celo/specs/createVoteMutation.js.map +1 -0
  228. package/lib/families/celo/specs/createWithdrawMutation.d.ts +4 -0
  229. package/lib/families/celo/specs/createWithdrawMutation.d.ts.map +1 -0
  230. package/lib/families/celo/specs/createWithdrawMutation.js +36 -0
  231. package/lib/families/celo/specs/createWithdrawMutation.js.map +1 -0
  232. package/lib/families/celo/specs/index.d.ts +9 -0
  233. package/lib/families/celo/specs/index.d.ts.map +1 -0
  234. package/lib/families/celo/specs/index.js +25 -0
  235. package/lib/families/celo/specs/index.js.map +1 -0
  236. package/lib/families/celo/specs.d.ts +1 -1
  237. package/lib/families/celo/specs.d.ts.map +1 -1
  238. package/lib/families/celo/specs.js +22 -37
  239. package/lib/families/celo/specs.js.map +1 -1
  240. package/lib/families/celo/speculos-deviceActions.d.ts +1 -4
  241. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -1
  242. package/lib/families/celo/speculos-deviceActions.js +24 -4
  243. package/lib/families/celo/speculos-deviceActions.js.map +1 -1
  244. package/lib/families/celo/transaction.d.ts.map +1 -1
  245. package/lib/families/celo/transaction.js +8 -6
  246. package/lib/families/celo/transaction.js.map +1 -1
  247. package/lib/families/celo/types.d.ts +102 -1
  248. package/lib/families/celo/types.d.ts.map +1 -1
  249. package/lib/families/celo/validators.d.ts +3 -0
  250. package/lib/families/celo/validators.d.ts.map +1 -0
  251. package/lib/families/celo/validators.js +6 -0
  252. package/lib/families/celo/validators.js.map +1 -0
  253. package/lib/families/cosmos/specs.d.ts.map +1 -1
  254. package/lib/families/cosmos/specs.js +41 -25
  255. package/lib/families/cosmos/specs.js.map +1 -1
  256. package/lib/families/cosmos/speculos-deviceActions.d.ts +1 -4
  257. package/lib/families/cosmos/speculos-deviceActions.d.ts.map +1 -1
  258. package/lib/families/cosmos/speculos-deviceActions.js +2 -4
  259. package/lib/families/cosmos/speculos-deviceActions.js.map +1 -1
  260. package/lib/families/crypto_org/specs.d.ts.map +1 -1
  261. package/lib/families/crypto_org/specs.js +3 -0
  262. package/lib/families/crypto_org/specs.js.map +1 -1
  263. package/lib/families/crypto_org/speculos-deviceActions.d.ts +1 -4
  264. package/lib/families/crypto_org/speculos-deviceActions.d.ts.map +1 -1
  265. package/lib/families/crypto_org/speculos-deviceActions.js +2 -2
  266. package/lib/families/crypto_org/speculos-deviceActions.js.map +1 -1
  267. package/lib/families/elrond/specs.d.ts.map +1 -1
  268. package/lib/families/elrond/specs.js +15 -2
  269. package/lib/families/elrond/specs.js.map +1 -1
  270. package/lib/families/elrond/speculos-deviceActions.d.ts +1 -4
  271. package/lib/families/elrond/speculos-deviceActions.d.ts.map +1 -1
  272. package/lib/families/elrond/speculos-deviceActions.js +2 -4
  273. package/lib/families/elrond/speculos-deviceActions.js.map +1 -1
  274. package/lib/families/ethereum/platformAdapter.test.d.ts +2 -0
  275. package/lib/families/ethereum/platformAdapter.test.d.ts.map +1 -0
  276. package/lib/families/ethereum/platformAdapter.test.js +88 -0
  277. package/lib/families/ethereum/platformAdapter.test.js.map +1 -0
  278. package/lib/families/ethereum/specs.d.ts.map +1 -1
  279. package/lib/families/ethereum/specs.js +36 -12
  280. package/lib/families/ethereum/specs.js.map +1 -1
  281. package/lib/families/ethereum/speculos-deviceActions.d.ts +1 -4
  282. package/lib/families/ethereum/speculos-deviceActions.d.ts.map +1 -1
  283. package/lib/families/ethereum/speculos-deviceActions.js +2 -4
  284. package/lib/families/ethereum/speculos-deviceActions.js.map +1 -1
  285. package/lib/families/filecoin/specs.d.ts.map +1 -1
  286. package/lib/families/filecoin/specs.js +2 -0
  287. package/lib/families/filecoin/specs.js.map +1 -1
  288. package/lib/families/filecoin/speculos-deviceActions.d.ts +1 -4
  289. package/lib/families/filecoin/speculos-deviceActions.d.ts.map +1 -1
  290. package/lib/families/filecoin/speculos-deviceActions.js +2 -2
  291. package/lib/families/filecoin/speculos-deviceActions.js.map +1 -1
  292. package/lib/families/hedera/specs.d.ts.map +1 -1
  293. package/lib/families/hedera/specs.js +11 -3
  294. package/lib/families/hedera/specs.js.map +1 -1
  295. package/lib/families/hedera/speculos-deviceActions.d.ts +1 -4
  296. package/lib/families/hedera/speculos-deviceActions.d.ts.map +1 -1
  297. package/lib/families/hedera/speculos-deviceActions.js +4 -4
  298. package/lib/families/hedera/speculos-deviceActions.js.map +1 -1
  299. package/lib/families/osmosis/specs.d.ts.map +1 -1
  300. package/lib/families/osmosis/specs.js +13 -5
  301. package/lib/families/osmosis/specs.js.map +1 -1
  302. package/lib/families/osmosis/speculos-deviceActions.d.ts +1 -4
  303. package/lib/families/osmosis/speculos-deviceActions.d.ts.map +1 -1
  304. package/lib/families/osmosis/speculos-deviceActions.js +2 -4
  305. package/lib/families/osmosis/speculos-deviceActions.js.map +1 -1
  306. package/lib/families/polkadot/platformAdapter.test.d.ts +2 -0
  307. package/lib/families/polkadot/platformAdapter.test.d.ts.map +1 -0
  308. package/lib/families/polkadot/platformAdapter.test.js +51 -0
  309. package/lib/families/polkadot/platformAdapter.test.js.map +1 -0
  310. package/lib/families/polkadot/specs.d.ts.map +1 -1
  311. package/lib/families/polkadot/specs.js +12 -1
  312. package/lib/families/polkadot/specs.js.map +1 -1
  313. package/lib/families/polkadot/speculos-deviceActions.d.ts +1 -4
  314. package/lib/families/polkadot/speculos-deviceActions.d.ts.map +1 -1
  315. package/lib/families/polkadot/speculos-deviceActions.js +2 -4
  316. package/lib/families/polkadot/speculos-deviceActions.js.map +1 -1
  317. package/lib/families/ripple/platformAdapter.test.d.ts +2 -0
  318. package/lib/families/ripple/platformAdapter.test.d.ts.map +1 -0
  319. package/lib/families/ripple/platformAdapter.test.js +51 -0
  320. package/lib/families/ripple/platformAdapter.test.js.map +1 -0
  321. package/lib/families/ripple/specs.d.ts.map +1 -1
  322. package/lib/families/ripple/specs.js +9 -4
  323. package/lib/families/ripple/specs.js.map +1 -1
  324. package/lib/families/ripple/speculos-deviceActions.d.ts +1 -4
  325. package/lib/families/ripple/speculos-deviceActions.d.ts.map +1 -1
  326. package/lib/families/ripple/speculos-deviceActions.js +2 -4
  327. package/lib/families/ripple/speculos-deviceActions.js.map +1 -1
  328. package/lib/families/solana/api/chain/instruction/token/types.d.ts +2 -2
  329. package/lib/families/solana/specs.d.ts.map +1 -1
  330. package/lib/families/solana/specs.js +29 -11
  331. package/lib/families/solana/specs.js.map +1 -1
  332. package/lib/families/solana/speculos-deviceActions.d.ts +0 -5
  333. package/lib/families/solana/speculos-deviceActions.d.ts.map +1 -1
  334. package/lib/families/solana/speculos-deviceActions.js +0 -4
  335. package/lib/families/solana/speculos-deviceActions.js.map +1 -1
  336. package/lib/families/stellar/api/horizon.d.ts.map +1 -1
  337. package/lib/families/stellar/api/horizon.js +15 -10
  338. package/lib/families/stellar/api/horizon.js.map +1 -1
  339. package/lib/families/stellar/specs.d.ts.map +1 -1
  340. package/lib/families/stellar/specs.js +30 -12
  341. package/lib/families/stellar/specs.js.map +1 -1
  342. package/lib/families/stellar/speculos-deviceActions.d.ts +1 -4
  343. package/lib/families/stellar/speculos-deviceActions.d.ts.map +1 -1
  344. package/lib/families/stellar/speculos-deviceActions.js +2 -4
  345. package/lib/families/stellar/speculos-deviceActions.js.map +1 -1
  346. package/lib/families/tezos/bakers.whitelist-default.d.ts.map +1 -1
  347. package/lib/families/tezos/bakers.whitelist-default.js +1 -1
  348. package/lib/families/tezos/bakers.whitelist-default.js.map +1 -1
  349. package/lib/families/tezos/specs.d.ts.map +1 -1
  350. package/lib/families/tezos/specs.js +2 -0
  351. package/lib/families/tezos/specs.js.map +1 -1
  352. package/lib/families/tezos/speculos-deviceActions.d.ts +1 -4
  353. package/lib/families/tezos/speculos-deviceActions.d.ts.map +1 -1
  354. package/lib/families/tezos/speculos-deviceActions.js +2 -2
  355. package/lib/families/tezos/speculos-deviceActions.js.map +1 -1
  356. package/lib/families/tron/specs.d.ts.map +1 -1
  357. package/lib/families/tron/specs.js +49 -17
  358. package/lib/families/tron/specs.js.map +1 -1
  359. package/lib/families/tron/speculos-deviceActions.d.ts +1 -4
  360. package/lib/families/tron/speculos-deviceActions.d.ts.map +1 -1
  361. package/lib/families/tron/speculos-deviceActions.js +2 -4
  362. package/lib/families/tron/speculos-deviceActions.js.map +1 -1
  363. package/lib/generated/cli-transaction.d.ts +12 -2
  364. package/lib/generated/cli-transaction.d.ts.map +1 -1
  365. package/lib/hw/getGenuineCheckFromDeviceId.d.ts +22 -0
  366. package/lib/hw/getGenuineCheckFromDeviceId.d.ts.map +1 -0
  367. package/lib/hw/getGenuineCheckFromDeviceId.js +49 -0
  368. package/lib/hw/getGenuineCheckFromDeviceId.js.map +1 -0
  369. package/lib/hw/getGenuineCheckFromDeviceId.test.d.ts +2 -0
  370. package/lib/hw/getGenuineCheckFromDeviceId.test.d.ts.map +1 -0
  371. package/lib/hw/getGenuineCheckFromDeviceId.test.js +84 -0
  372. package/lib/hw/getGenuineCheckFromDeviceId.test.js.map +1 -0
  373. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.d.ts +17 -0
  374. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.d.ts.map +1 -0
  375. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.js +27 -0
  376. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.js.map +1 -0
  377. package/lib/hw/hooks/useGenuineCheck.d.ts +34 -0
  378. package/lib/hw/hooks/useGenuineCheck.d.ts.map +1 -0
  379. package/lib/hw/hooks/useGenuineCheck.js +115 -0
  380. package/lib/hw/hooks/useGenuineCheck.js.map +1 -0
  381. package/lib/hw/hooks/useGenuineCheck.test.d.ts +2 -0
  382. package/lib/hw/hooks/useGenuineCheck.test.d.ts.map +1 -0
  383. package/lib/hw/hooks/useGenuineCheck.test.js +316 -0
  384. package/lib/hw/hooks/useGenuineCheck.test.js.map +1 -0
  385. package/lib/hw/hooks/useGetLatestAvailableFirmware.d.ts +29 -0
  386. package/lib/hw/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -0
  387. package/lib/hw/hooks/useGetLatestAvailableFirmware.js +72 -0
  388. package/lib/hw/hooks/useGetLatestAvailableFirmware.js.map +1 -0
  389. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.d.ts +2 -0
  390. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.d.ts.map +1 -0
  391. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.js +155 -0
  392. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.js.map +1 -0
  393. package/lib/load/speculos.d.ts +1 -0
  394. package/lib/load/speculos.d.ts.map +1 -1
  395. package/lib/load/speculos.js +2 -1
  396. package/lib/load/speculos.js.map +1 -1
  397. package/lib/mock/fixtures/cryptoCurrencies.d.ts +5 -0
  398. package/lib/mock/fixtures/cryptoCurrencies.d.ts.map +1 -0
  399. package/lib/mock/fixtures/cryptoCurrencies.js +91 -0
  400. package/lib/mock/fixtures/cryptoCurrencies.js.map +1 -0
  401. package/lib/operation.d.ts.map +1 -1
  402. package/lib/operation.js +6 -0
  403. package/lib/operation.js.map +1 -1
  404. package/lib/platform/converters.test.js +44 -218
  405. package/lib/platform/converters.test.js.map +1 -1
  406. package/lib/platform/logic.d.ts +44 -0
  407. package/lib/platform/logic.d.ts.map +1 -1
  408. package/lib/platform/logic.js +147 -1
  409. package/lib/platform/logic.js.map +1 -1
  410. package/lib/platform/logic.test.d.ts +2 -0
  411. package/lib/platform/logic.test.d.ts.map +1 -0
  412. package/lib/platform/logic.test.js +903 -0
  413. package/lib/platform/logic.test.js.map +1 -0
  414. package/lib/platform/react.d.ts +6 -0
  415. package/lib/platform/react.d.ts.map +1 -1
  416. package/lib/platform/react.js +6 -0
  417. package/lib/platform/react.js.map +1 -1
  418. package/lib/platform/tracking.d.ts +1 -1
  419. package/lib/platform/tracking.d.ts.map +1 -1
  420. package/lib/platform/tracking.test.js +14 -41
  421. package/lib/platform/tracking.test.js.map +1 -1
  422. package/lib/reconciliation.d.ts.map +1 -1
  423. package/lib/reconciliation.js +39 -10
  424. package/lib/reconciliation.js.map +1 -1
  425. package/package.json +5 -7
  426. package/src/__tests__/families/bitcoin/wallet-btc/xpub.syncing.integration.test.ts +2 -2
  427. package/src/__tests__/test-helpers/environment.ts +91 -0
  428. package/src/__tests__/test-helpers/setup.ts +2 -91
  429. package/src/account/serialization.ts +125 -66
  430. package/src/apps/support.ts +1 -0
  431. package/src/bot/bot-test-context.test.ts +37 -0
  432. package/src/bot/bot-test-context.ts +24 -0
  433. package/src/bot/cli.ts +18 -0
  434. package/src/bot/engine.ts +109 -73
  435. package/src/bot/formatters.ts +40 -14
  436. package/src/bot/index.ts +124 -18
  437. package/src/bot/specs.ts +10 -5
  438. package/src/bot/types.ts +7 -3
  439. package/src/countervalues/logic.integration.test.ts +50 -0
  440. package/src/countervalues/modules/weth.ts +9 -12
  441. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +59 -1
  442. package/src/currencies/sortByMarketcap.test.ts +1 -12
  443. package/src/currencies/sortByMarketcap.ts +2 -22
  444. package/src/env.ts +1 -1
  445. package/src/families/algorand/__snapshots__/bridge.integration.test.ts.snap +733 -8
  446. package/src/families/algorand/specs.ts +26 -16
  447. package/src/families/algorand/speculos-deviceActions.ts +31 -10
  448. package/src/families/bitcoin/__snapshots__/bridge.integration.test.ts.snap +43309 -7957
  449. package/src/families/bitcoin/bridge/mock.ts +7 -1
  450. package/src/families/bitcoin/datasets/bitcoin_cash.ts +73 -13
  451. package/src/families/bitcoin/datasets/dash.ts +29 -17
  452. package/src/families/bitcoin/datasets/decred.ts +42 -12
  453. package/src/families/bitcoin/datasets/digibyte.ts +9 -3
  454. package/src/families/bitcoin/datasets/dogecoin.ts +29 -17
  455. package/src/families/bitcoin/datasets/komodo.ts +22 -22
  456. package/src/families/bitcoin/datasets/litecoin.ts +9 -3
  457. package/src/families/bitcoin/datasets/peercoin.ts +17 -17
  458. package/src/families/bitcoin/datasets/pivx.ts +17 -17
  459. package/src/families/bitcoin/datasets/qtum.ts +40 -40
  460. package/src/families/bitcoin/datasets/stakenet.ts +56 -26
  461. package/src/families/bitcoin/datasets/vertcoin.ts +43 -55
  462. package/src/families/bitcoin/datasets/viacoin.ts +35 -23
  463. package/src/families/bitcoin/datasets/zcash.ts +78 -12
  464. package/src/families/bitcoin/datasets/zencash.ts +56 -10
  465. package/src/families/bitcoin/platformAdapter.test.ts +58 -0
  466. package/src/families/bitcoin/specs.ts +81 -41
  467. package/src/families/bitcoin/speculos-deviceActions.ts +68 -69
  468. package/src/families/cardano/js-estimateMaxSpendable.ts +1 -1
  469. package/src/families/cardano/specs.ts +28 -11
  470. package/src/families/cardano/speculos-deviceActions.ts +65 -66
  471. package/src/families/celo/__snapshots__/bridge.integration.test.ts.snap +134 -857
  472. package/src/families/celo/api/hubble.ts +113 -16
  473. package/src/families/celo/api/index.ts +1 -1
  474. package/src/families/celo/api/sdk.ts +88 -0
  475. package/src/families/celo/bridge/js.ts +2 -3
  476. package/src/families/celo/cli-transaction.ts +46 -2
  477. package/src/families/celo/datasets/celo.scanAccounts.1.ts +365 -5
  478. package/src/families/celo/errors.ts +5 -0
  479. package/src/families/celo/js-buildTransaction.ts +173 -20
  480. package/src/families/celo/js-createTransaction.ts +2 -0
  481. package/src/families/celo/js-estimateMaxSpendable.ts +2 -2
  482. package/src/families/celo/js-getFeesForTransaction.ts +118 -19
  483. package/src/families/celo/js-getTransactionStatus.ts +72 -17
  484. package/src/families/celo/js-prepareTransaction.ts +13 -7
  485. package/src/families/celo/js-signOperation.ts +22 -5
  486. package/src/families/celo/js-synchronisation.ts +32 -0
  487. package/src/families/celo/logic.ts +184 -0
  488. package/src/families/celo/preload.ts +78 -0
  489. package/src/families/celo/react.ts +35 -0
  490. package/src/families/celo/serialization.ts +61 -0
  491. package/src/families/celo/specs/createActivateVoteMutation.ts +44 -0
  492. package/src/families/celo/specs/createLockMutation.ts +46 -0
  493. package/src/families/celo/specs/createRegisterAccountMutation.ts +34 -0
  494. package/src/families/celo/specs/createRevokeVoteMutation.ts +43 -0
  495. package/src/families/celo/specs/createSendMutation.ts +44 -0
  496. package/src/families/celo/specs/createUnlockMutation.ts +44 -0
  497. package/src/families/celo/specs/createVoteMutation.ts +67 -0
  498. package/src/families/celo/specs/createWithdrawMutation.ts +44 -0
  499. package/src/families/celo/specs/index.ts +8 -0
  500. package/src/families/celo/specs.ts +34 -34
  501. package/src/families/celo/speculos-deviceActions.ts +63 -45
  502. package/src/families/celo/transaction.ts +12 -4
  503. package/src/families/celo/types.ts +113 -0
  504. package/src/families/celo/validators.ts +2 -0
  505. package/src/families/cosmos/__snapshots__/bridge.integration.test.ts.snap +246 -5
  506. package/src/families/cosmos/specs.ts +44 -28
  507. package/src/families/cosmos/speculos-deviceActions.ts +82 -83
  508. package/src/families/crypto_org/specs.ts +3 -0
  509. package/src/families/crypto_org/speculos-deviceActions.ts +58 -59
  510. package/src/families/elrond/specs.ts +21 -4
  511. package/src/families/elrond/speculos-deviceActions.ts +41 -42
  512. package/src/families/ethereum/__snapshots__/bridge.integration.test.ts.snap +90 -90
  513. package/src/families/ethereum/platformAdapter.test.ts +112 -0
  514. package/src/families/ethereum/specs.ts +47 -23
  515. package/src/families/ethereum/speculos-deviceActions.ts +93 -95
  516. package/src/families/filecoin/specs.ts +2 -1
  517. package/src/families/filecoin/speculos-deviceActions.ts +61 -62
  518. package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +57 -2
  519. package/src/families/hedera/specs.ts +13 -5
  520. package/src/families/hedera/speculos-deviceActions.ts +59 -60
  521. package/src/families/osmosis/specs.ts +15 -7
  522. package/src/families/osmosis/speculos-deviceActions.ts +82 -83
  523. package/src/families/polkadot/platformAdapter.test.ts +61 -0
  524. package/src/families/polkadot/specs.ts +20 -2
  525. package/src/families/polkadot/speculos-deviceActions.ts +83 -82
  526. package/src/families/ripple/platformAdapter.test.ts +54 -0
  527. package/src/families/ripple/specs.ts +14 -7
  528. package/src/families/ripple/speculos-deviceActions.ts +72 -73
  529. package/src/families/solana/specs.ts +33 -14
  530. package/src/families/solana/speculos-deviceActions.ts +0 -5
  531. package/src/families/stellar/api/horizon.ts +10 -6
  532. package/src/families/stellar/specs.ts +37 -19
  533. package/src/families/stellar/speculos-deviceActions.ts +85 -87
  534. package/src/families/tezos/bakers.whitelist-default.ts +0 -1
  535. package/src/families/tezos/specs.ts +2 -0
  536. package/src/families/tezos/speculos-deviceActions.ts +76 -77
  537. package/src/families/tron/specs.ts +67 -30
  538. package/src/families/tron/speculos-deviceActions.ts +81 -84
  539. package/src/hw/getGenuineCheckFromDeviceId.test.ts +98 -0
  540. package/src/hw/getGenuineCheckFromDeviceId.ts +61 -0
  541. package/src/hw/getLatestAvailableFirmwareFromDeviceId.ts +37 -0
  542. package/src/hw/hooks/useGenuineCheck.test.ts +232 -0
  543. package/src/hw/hooks/useGenuineCheck.ts +138 -0
  544. package/src/hw/hooks/useGetLatestAvailableFirmware.test.ts +111 -0
  545. package/src/hw/hooks/useGetLatestAvailableFirmware.ts +90 -0
  546. package/src/load/speculos.ts +2 -0
  547. package/src/mock/fixtures/cryptoCurrencies.ts +88 -0
  548. package/src/operation.ts +6 -0
  549. package/src/platform/converters.test.ts +49 -282
  550. package/src/platform/logic.test.ts +756 -0
  551. package/src/platform/logic.ts +285 -0
  552. package/src/platform/react.ts +6 -0
  553. package/src/platform/tracking.test.ts +6 -7
  554. package/src/platform/tracking.ts +1 -1
  555. package/src/reconciliation.ts +88 -43
  556. package/lib/bot/test.bot.d.ts +0 -2
  557. package/lib/bot/test.bot.d.ts.map +0 -1
  558. package/lib/bot/test.bot.js +0 -62
  559. package/lib/bot/test.bot.js.map +0 -1
  560. package/lib/generated/speculos-deviceActions.d.ts +0 -56
  561. package/lib/generated/speculos-deviceActions.d.ts.map +0 -1
  562. package/lib/generated/speculos-deviceActions.js +0 -42
  563. package/lib/generated/speculos-deviceActions.js.map +0 -1
  564. package/src/bot/test.bot.ts +0 -21
  565. package/src/generated/speculos-deviceActions.ts +0 -37
@@ -1,4 +1,289 @@
1
+ import {
2
+ Account,
3
+ AccountLike,
4
+ Operation,
5
+ SignedOperation,
6
+ TransactionCommon,
7
+ } from "@ledgerhq/types-live";
8
+
9
+ import {
10
+ accountToPlatformAccount,
11
+ getPlatformTransactionSignFlowInfos,
12
+ } from "./converters";
13
+ import {
14
+ RawPlatformTransaction,
15
+ RawPlatformSignedTransaction,
16
+ } from "./rawTypes";
17
+ import {
18
+ deserializePlatformTransaction,
19
+ deserializePlatformSignedTransaction,
20
+ } from "./serializers";
21
+ import type { TrackFunction } from "./tracking";
22
+ import { AppManifest } from "./types";
23
+ import { isTokenAccount, getMainAccount, isAccount } from "../account/index";
24
+ import { getAccountBridge } from "../bridge/index";
25
+ import { Transaction } from "../generated/types";
26
+ import { MessageData } from "../hw/signMessage/types";
27
+ import { prepareMessageToSign } from "../hw/signMessage/index";
28
+
1
29
  export function translateContent(content: any, locale = "en"): string {
2
30
  if (!content || typeof content !== "object") return content;
3
31
  return content[locale] || content.en;
4
32
  }
33
+
34
+ export type WebPlatformContext = {
35
+ manifest: AppManifest;
36
+ accounts: AccountLike[];
37
+ tracking: Record<string, TrackFunction>;
38
+ };
39
+
40
+ function getParentAccount(
41
+ account: AccountLike,
42
+ fromAccounts: AccountLike[]
43
+ ): Account | null {
44
+ return isTokenAccount(account)
45
+ ? (fromAccounts.find((a) => a.id === account.parentId) as Account)
46
+ : null;
47
+ }
48
+
49
+ export function receiveOnAccountLogic(
50
+ { manifest, accounts, tracking }: WebPlatformContext,
51
+ accountId: string,
52
+ uiNavigation: (
53
+ account: AccountLike,
54
+ parentAccount: Account | null,
55
+ accountAddress: string
56
+ ) => Promise<string>
57
+ ): Promise<string> {
58
+ tracking.platformReceiveRequested(manifest);
59
+
60
+ const account = accounts.find((account) => account.id === accountId);
61
+
62
+ if (!account) {
63
+ tracking.platformReceiveFail(manifest);
64
+ return Promise.reject(new Error("Account required"));
65
+ }
66
+
67
+ const parentAccount = getParentAccount(account, accounts);
68
+ const accountAddress = accountToPlatformAccount(
69
+ account,
70
+ parentAccount ?? undefined //FIXME-STP
71
+ ).address;
72
+
73
+ return uiNavigation(account, parentAccount, accountAddress);
74
+ }
75
+
76
+ export function signTransactionLogic(
77
+ { manifest, accounts, tracking }: WebPlatformContext,
78
+ accountId: string,
79
+ transaction: RawPlatformTransaction,
80
+ uiNavigation: (
81
+ account: AccountLike,
82
+ parentAccount: Account | null,
83
+ signFlowInfos: {
84
+ canEditFees: boolean;
85
+ hasFeesProvided: boolean;
86
+ liveTx: Partial<Transaction>;
87
+ }
88
+ ) => Promise<RawPlatformSignedTransaction>
89
+ ): Promise<RawPlatformSignedTransaction> {
90
+ tracking.platformSignTransactionRequested(manifest);
91
+
92
+ if (!transaction) {
93
+ tracking.platformSignTransactionFail(manifest);
94
+ return Promise.reject(new Error("Transaction required"));
95
+ }
96
+
97
+ const platformTransaction = deserializePlatformTransaction(transaction);
98
+ const account = accounts.find((account) => account.id === accountId);
99
+
100
+ if (!account) {
101
+ tracking.platformSignTransactionFail(manifest);
102
+ return Promise.reject(new Error("Account required"));
103
+ }
104
+
105
+ const parentAccount = getParentAccount(account, accounts);
106
+
107
+ if (
108
+ (isTokenAccount(account)
109
+ ? parentAccount?.currency.family
110
+ : account.currency.family) !== platformTransaction.family
111
+ ) {
112
+ return Promise.reject(
113
+ new Error("Transaction family not matching account currency family")
114
+ );
115
+ }
116
+
117
+ const { canEditFees, liveTx, hasFeesProvided } =
118
+ getPlatformTransactionSignFlowInfos(platformTransaction);
119
+
120
+ return uiNavigation(account, parentAccount, {
121
+ canEditFees,
122
+ liveTx,
123
+ hasFeesProvided,
124
+ });
125
+ }
126
+
127
+ export function broadcastTransactionLogic(
128
+ { manifest, accounts, tracking }: WebPlatformContext,
129
+ accountId: string,
130
+ signedTransaction: RawPlatformSignedTransaction,
131
+ uiNavigation: (
132
+ account: AccountLike,
133
+ parentAccount: Account | null,
134
+ signedOperation: SignedOperation
135
+ ) => Promise<string>
136
+ ): Promise<string> {
137
+ if (!signedTransaction) {
138
+ tracking.platformBroadcastFail(manifest);
139
+ return Promise.reject(new Error("Transaction required"));
140
+ }
141
+
142
+ const account = accounts.find((account) => account.id === accountId);
143
+ if (!account) {
144
+ tracking.platformBroadcastFail(manifest);
145
+ return Promise.reject(new Error("Account required"));
146
+ }
147
+
148
+ const parentAccount = getParentAccount(account, accounts);
149
+
150
+ const signedOperation = deserializePlatformSignedTransaction(
151
+ signedTransaction,
152
+ accountId
153
+ );
154
+
155
+ return uiNavigation(account, parentAccount, signedOperation);
156
+ }
157
+
158
+ export type CompleteExchangeRequest = {
159
+ provider: string;
160
+ fromAccountId: string;
161
+ toAccountId: string;
162
+ transaction: RawPlatformTransaction;
163
+ binaryPayload: string;
164
+ signature: string;
165
+ feesStrategy: string;
166
+ exchangeType: number;
167
+ };
168
+ export type CompleteExchangeUiRequest = {
169
+ provider: string;
170
+ exchange: {
171
+ fromAccount: AccountLike;
172
+ fromParentAccount: Account | null;
173
+ toAccount?: AccountLike;
174
+ toParentAccount: Account | null;
175
+ };
176
+ transaction: TransactionCommon;
177
+ binaryPayload: string;
178
+ signature: string;
179
+ feesStrategy: string;
180
+ exchangeType: number;
181
+ };
182
+ export function completeExchangeLogic(
183
+ { manifest, accounts, tracking }: WebPlatformContext,
184
+ {
185
+ provider,
186
+ fromAccountId,
187
+ toAccountId,
188
+ transaction,
189
+ binaryPayload,
190
+ signature,
191
+ feesStrategy,
192
+ exchangeType,
193
+ }: CompleteExchangeRequest,
194
+ uiNavigation: (request: CompleteExchangeUiRequest) => Promise<Operation>
195
+ ): Promise<Operation> {
196
+ tracking.platformCompleteExchangeRequested(manifest);
197
+
198
+ // Nb get a hold of the actual accounts, and parent accounts
199
+ const fromAccount = accounts.find((a) => a.id === fromAccountId);
200
+
201
+ const toAccount = accounts.find((a) => a.id === toAccountId);
202
+
203
+ if (!fromAccount) {
204
+ return Promise.reject();
205
+ }
206
+
207
+ if (exchangeType === 0x00 && !toAccount) {
208
+ // if we do a swap, a destination account must be provided
209
+ return Promise.reject();
210
+ }
211
+
212
+ const fromParentAccount = getParentAccount(fromAccount, accounts);
213
+ const toParentAccount = toAccount
214
+ ? getParentAccount(toAccount, accounts)
215
+ : null;
216
+ const exchange = {
217
+ fromAccount,
218
+ fromParentAccount,
219
+ toAccount,
220
+ toParentAccount,
221
+ };
222
+
223
+ const accountBridge = getAccountBridge(fromAccount, fromParentAccount);
224
+ const mainFromAccount = getMainAccount(fromAccount, fromParentAccount);
225
+
226
+ if (transaction.family !== mainFromAccount.currency.family) {
227
+ return Promise.reject(
228
+ new Error("Account and transaction must be from the same family")
229
+ );
230
+ }
231
+
232
+ const platformTransaction = deserializePlatformTransaction(transaction);
233
+ const { liveTx: liveTransaction } =
234
+ getPlatformTransactionSignFlowInfos(platformTransaction);
235
+
236
+ let processedTransaction = accountBridge.createTransaction(mainFromAccount);
237
+ processedTransaction = accountBridge.updateTransaction(
238
+ {
239
+ ...processedTransaction,
240
+ recipient: liveTransaction.recipient,
241
+ },
242
+ {
243
+ ...liveTransaction,
244
+ feesStrategy,
245
+ }
246
+ );
247
+
248
+ return uiNavigation({
249
+ provider,
250
+ exchange,
251
+ transaction: processedTransaction,
252
+ binaryPayload,
253
+ signature,
254
+ feesStrategy,
255
+ exchangeType,
256
+ });
257
+ }
258
+
259
+ export function signMessageLogic(
260
+ { manifest, accounts, tracking }: WebPlatformContext,
261
+ accountId: string,
262
+ message: string,
263
+ uiNavigation: (
264
+ account: AccountLike,
265
+ message: MessageData | null
266
+ ) => Promise<string>
267
+ ): Promise<string> {
268
+ tracking.platformSignMessageRequested(manifest);
269
+
270
+ const account = accounts.find((account) => account.id === accountId);
271
+ if (account === undefined) {
272
+ tracking.platformSignMessageFail(manifest);
273
+ return Promise.reject(new Error("account not found"));
274
+ }
275
+
276
+ let formattedMessage: MessageData | null;
277
+ try {
278
+ if (isAccount(account)) {
279
+ formattedMessage = prepareMessageToSign(account, message);
280
+ } else {
281
+ throw new Error("account provided should be the main one");
282
+ }
283
+ } catch (error) {
284
+ tracking.platformSignMessageFail(manifest);
285
+ return Promise.reject(error);
286
+ }
287
+
288
+ return uiNavigation(account, formattedMessage);
289
+ }
@@ -20,6 +20,12 @@ import {
20
20
  import { getParentAccount } from "../account";
21
21
  import { listCurrencies } from "../currencies";
22
22
 
23
+ /**
24
+ * TODO: we might want to use "searchParams.append" instead of "searchParams.set"
25
+ * to handle duplicated query params (example: "?foo=bar&foo=baz")
26
+ *
27
+ * We can also use the stringify method of qs (https://github.com/ljharb/qs#stringifying)
28
+ */
23
29
  export function usePlatformUrl(
24
30
  manifest: AppManifest,
25
31
  params: { background: string; text: string; loadDate?: Date },
@@ -2,7 +2,7 @@ import trackingWrapper from "./tracking";
2
2
  import { AppManifest } from "./types";
3
3
 
4
4
  describe("trackingWrapper", () => {
5
- const methodToMessage = [
5
+ test.each([
6
6
  {
7
7
  method: "platformLoad",
8
8
  message: "Platform Load",
@@ -107,10 +107,9 @@ describe("trackingWrapper", () => {
107
107
  method: "platformSignMessageUserRefused",
108
108
  message: "Platform sign message user refused",
109
109
  },
110
- ];
111
-
112
- for (const { method, message } of methodToMessage) {
113
- it(`calls once inner trackPlatform function ${method} with event named: ${message}`, () => {
110
+ ])(
111
+ "calls once inner trackPlatform function $method with event named: $message",
112
+ ({ method, message }) => {
114
113
  // Given
115
114
  const appManifest = appManifestFixture();
116
115
  const mockedTrack = jest.fn();
@@ -127,8 +126,8 @@ describe("trackingWrapper", () => {
127
126
  },
128
127
  null
129
128
  );
130
- });
131
- }
129
+ }
130
+ );
132
131
  });
133
132
 
134
133
  function appManifestFixture(name = "live-app"): AppManifest {
@@ -11,7 +11,7 @@ type TrackPlatform = (
11
11
  mandatory: boolean | null
12
12
  ) => void;
13
13
 
14
- type TrackFunction = (manifest: AppManifest) => void;
14
+ export type TrackFunction = (manifest: AppManifest) => void;
15
15
 
16
16
  /**
17
17
  * Obtain Event data from Platform App manifest
@@ -20,17 +20,24 @@ import {
20
20
  fromCosmosResourcesRaw,
21
21
  fromBitcoinResourcesRaw,
22
22
  fromAlgorandResourcesRaw,
23
+ fromCardanoResourceRaw,
23
24
  fromPolkadotResourcesRaw,
24
25
  fromTezosResourcesRaw,
25
26
  fromElrondResourcesRaw,
26
27
  fromCryptoOrgResourcesRaw,
27
28
  fromSolanaResourcesRaw,
29
+ fromCeloResourcesRaw,
28
30
  fromNFTRaw,
29
- fromCardanoResourceRaw,
31
+ toTronResourcesRaw,
32
+ toCosmosResourcesRaw,
33
+ toAlgorandResourcesRaw,
34
+ toCardanoResourceRaw,
35
+ toPolkadotResourcesRaw,
36
+ toTezosResourcesRaw,
37
+ toElrondResourcesRaw,
30
38
  toCryptoOrgResourcesRaw,
31
39
  toSolanaResourcesRaw,
32
- toCosmosResourcesRaw,
33
- toTronResourcesRaw,
40
+ toCeloResourcesRaw,
34
41
  } from "./account";
35
42
  import consoleWarnExpectToEqual from "./consoleWarnExpectToEqual";
36
43
  import { AlgorandAccount, AlgorandAccountRaw } from "./families/algorand/types";
@@ -46,6 +53,7 @@ import { PolkadotAccount, PolkadotAccountRaw } from "./families/polkadot/types";
46
53
  import { SolanaAccount, SolanaAccountRaw } from "./families/solana/types";
47
54
  import { TezosAccount, TezosAccountRaw } from "./families/tezos/types";
48
55
  import { TronAccount, TronAccountRaw } from "./families/tron/types";
56
+ import { CeloAccount, CeloAccountRaw } from "./families/celo/types";
49
57
 
50
58
  // aim to build operations with the minimal diff & call to coin implementation possible
51
59
  export async function minimalOperationsBuilder<CO>(
@@ -288,6 +296,13 @@ export function patchAccount(
288
296
  }
289
297
  }
290
298
 
299
+ // TODO This will be reworked to belong in each coin family
300
+ // Temporary logic to patch resources for each coin is:
301
+ // - there is raw data to patch from
302
+ // AND
303
+ // - there is no current account data
304
+ // OR
305
+ // - current account data is different
291
306
  switch (account.currency.family) {
292
307
  case "tron":
293
308
  {
@@ -295,10 +310,11 @@ export function patchAccount(
295
310
  const tronUpdatedRaw = updatedRaw as TronAccountRaw;
296
311
  if (
297
312
  tronUpdatedRaw.tronResources &&
298
- !areSameResources(
299
- toTronResourcesRaw(tronAcc.tronResources),
300
- tronUpdatedRaw.tronResources
301
- )
313
+ (!tronAcc.tronResources ||
314
+ !areSameResources(
315
+ toTronResourcesRaw(tronAcc.tronResources),
316
+ tronUpdatedRaw.tronResources
317
+ ))
302
318
  ) {
303
319
  (next as TronAccount).tronResources = fromTronResourcesRaw(
304
320
  tronUpdatedRaw.tronResources
@@ -312,10 +328,11 @@ export function patchAccount(
312
328
  const cosmosUpdatedRaw = updatedRaw as CosmosAccountRaw;
313
329
  if (
314
330
  cosmosUpdatedRaw.cosmosResources &&
315
- !areSameResources(
316
- toCosmosResourcesRaw(cosmosAcc.cosmosResources),
317
- cosmosUpdatedRaw.cosmosResources
318
- )
331
+ (!cosmosAcc.cosmosResources ||
332
+ !areSameResources(
333
+ toCosmosResourcesRaw(cosmosAcc.cosmosResources),
334
+ cosmosUpdatedRaw.cosmosResources
335
+ ))
319
336
  ) {
320
337
  (next as CosmosAccount).cosmosResources = fromCosmosResourcesRaw(
321
338
  cosmosUpdatedRaw.cosmosResources
@@ -328,10 +345,12 @@ export function patchAccount(
328
345
  const cosmosAcc = account as CosmosAccount;
329
346
  const cosmosUpdatedRaw = updatedRaw as CosmosAccountRaw;
330
347
  if (
331
- !areSameResources(
332
- toCosmosResourcesRaw(cosmosAcc.cosmosResources),
333
- cosmosUpdatedRaw.cosmosResources
334
- )
348
+ cosmosUpdatedRaw.cosmosResources &&
349
+ (!cosmosAcc.cosmosResources ||
350
+ !areSameResources(
351
+ toCosmosResourcesRaw(cosmosAcc.cosmosResources),
352
+ cosmosUpdatedRaw.cosmosResources
353
+ ))
335
354
  ) {
336
355
  (next as CosmosAccount).cosmosResources = fromCosmosResourcesRaw(
337
356
  cosmosUpdatedRaw.cosmosResources
@@ -345,10 +364,11 @@ export function patchAccount(
345
364
  const algorandUpdatedRaw = updatedRaw as AlgorandAccountRaw;
346
365
  if (
347
366
  algorandUpdatedRaw.algorandResources &&
348
- !areSameResources(
349
- algorandAcc.algorandResources,
350
- algorandUpdatedRaw.algorandResources
351
- )
367
+ (!algorandAcc.algorandResources ||
368
+ !areSameResources(
369
+ toAlgorandResourcesRaw(algorandAcc.algorandResources),
370
+ algorandUpdatedRaw.algorandResources
371
+ ))
352
372
  ) {
353
373
  (next as AlgorandAccount).algorandResources = fromAlgorandResourcesRaw(
354
374
  algorandUpdatedRaw.algorandResources
@@ -370,10 +390,11 @@ export function patchAccount(
370
390
  const polkadotUpdatedRaw = updatedRaw as PolkadotAccountRaw;
371
391
  if (
372
392
  polkadotUpdatedRaw.polkadotResources &&
373
- !areSameResources(
374
- polkadotAcc.polkadotResources,
375
- polkadotUpdatedRaw.polkadotResources
376
- )
393
+ (!polkadotAcc.polkadotResources ||
394
+ !areSameResources(
395
+ toPolkadotResourcesRaw(polkadotAcc.polkadotResources),
396
+ polkadotUpdatedRaw.polkadotResources
397
+ ))
377
398
  ) {
378
399
  (next as PolkadotAccount).polkadotResources = fromPolkadotResourcesRaw(
379
400
  polkadotUpdatedRaw.polkadotResources
@@ -387,10 +408,11 @@ export function patchAccount(
387
408
  const tezosUpdatedRaw = updatedRaw as TezosAccountRaw;
388
409
  if (
389
410
  tezosUpdatedRaw.tezosResources &&
390
- !areSameResources(
391
- tezosAcc.tezosResources,
392
- tezosUpdatedRaw.tezosResources
393
- )
411
+ (!tezosAcc.tezosResources ||
412
+ !areSameResources(
413
+ toTezosResourcesRaw(tezosAcc.tezosResources),
414
+ tezosUpdatedRaw.tezosResources
415
+ ))
394
416
  ) {
395
417
  (next as TezosAccount).tezosResources = fromTezosResourcesRaw(
396
418
  tezosUpdatedRaw.tezosResources
@@ -404,10 +426,11 @@ export function patchAccount(
404
426
  const elrondUpdatedRaw = updatedRaw as ElrondAccountRaw;
405
427
  if (
406
428
  elrondUpdatedRaw.elrondResources &&
407
- areSameResources(
408
- elrondAcc.elrondResources,
409
- elrondUpdatedRaw.elrondResources
410
- )
429
+ (!elrondAcc.elrondResources ||
430
+ !areSameResources(
431
+ toElrondResourcesRaw(elrondAcc.elrondResources),
432
+ elrondUpdatedRaw.elrondResources
433
+ ))
411
434
  ) {
412
435
  (next as ElrondAccount).elrondResources = fromElrondResourcesRaw(
413
436
  elrondUpdatedRaw.elrondResources
@@ -421,10 +444,11 @@ export function patchAccount(
421
444
  const cardanoUpdatedRaw = updatedRaw as CardanoAccountRaw;
422
445
  if (
423
446
  cardanoUpdatedRaw.cardanoResources &&
424
- !areSameResources(
425
- cardanoAcc.cardanoResources,
426
- cardanoUpdatedRaw.cardanoResources
427
- )
447
+ (!cardanoAcc.cardanoResources ||
448
+ !areSameResources(
449
+ toCardanoResourceRaw(cardanoAcc.cardanoResources),
450
+ cardanoUpdatedRaw.cardanoResources
451
+ ))
428
452
  ) {
429
453
  (next as CardanoAccount).cardanoResources = fromCardanoResourceRaw(
430
454
  cardanoUpdatedRaw.cardanoResources
@@ -438,10 +462,11 @@ export function patchAccount(
438
462
  const cryptoOrgUpdatedRaw = updatedRaw as CryptoOrgAccountRaw;
439
463
  if (
440
464
  cryptoOrgUpdatedRaw.cryptoOrgResources &&
441
- !areSameResources(
442
- toCryptoOrgResourcesRaw(cryptoOrgAcc.cryptoOrgResources),
443
- cryptoOrgUpdatedRaw.cryptoOrgResources
444
- )
465
+ (!cryptoOrgAcc.cryptoOrgResources ||
466
+ !areSameResources(
467
+ toCryptoOrgResourcesRaw(cryptoOrgAcc.cryptoOrgResources),
468
+ cryptoOrgUpdatedRaw.cryptoOrgResources
469
+ ))
445
470
  ) {
446
471
  (next as CryptoOrgAccount).cryptoOrgResources =
447
472
  fromCryptoOrgResourcesRaw(cryptoOrgUpdatedRaw.cryptoOrgResources);
@@ -455,10 +480,11 @@ export function patchAccount(
455
480
 
456
481
  if (
457
482
  solanaUpdatedRaw.solanaResources &&
458
- !areSameResources(
459
- toSolanaResourcesRaw(solanaAcc.solanaResources),
460
- solanaUpdatedRaw.solanaResources
461
- )
483
+ (!solanaAcc.solanaResources ||
484
+ !areSameResources(
485
+ toSolanaResourcesRaw(solanaAcc.solanaResources),
486
+ solanaUpdatedRaw.solanaResources
487
+ ))
462
488
  ) {
463
489
  (next as SolanaAccount).solanaResources = fromSolanaResourcesRaw(
464
490
  solanaUpdatedRaw.solanaResources
@@ -467,6 +493,25 @@ export function patchAccount(
467
493
  }
468
494
  break;
469
495
  }
496
+ case "celo": {
497
+ const celoAcc = account as CeloAccount;
498
+ const celoUpdatedRaw = updatedRaw as CeloAccountRaw;
499
+
500
+ if (
501
+ celoUpdatedRaw.celoResources &&
502
+ (!celoAcc.celoResources ||
503
+ !areSameResources(
504
+ toCeloResourcesRaw(celoAcc.celoResources),
505
+ celoUpdatedRaw.celoResources
506
+ ))
507
+ ) {
508
+ (next as CeloAccount).celoResources = fromCeloResourcesRaw(
509
+ celoUpdatedRaw.celoResources
510
+ );
511
+ changed = true;
512
+ }
513
+ break;
514
+ }
470
515
  }
471
516
 
472
517
  const nfts = updatedRaw?.nfts?.map(fromNFTRaw);
@@ -1,2 +0,0 @@
1
- import "../__tests__/test-helpers/setup";
2
- //# sourceMappingURL=test.bot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.bot.d.ts","sourceRoot":"","sources":["../../src/bot/test.bot.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- exports.__esModule = true;
39
- require("../__tests__/test-helpers/setup");
40
- var _1 = require(".");
41
- jest.setTimeout(110 * 60 * 1000);
42
- var _a = process.env, BOT_FILTER_CURRENCY = _a.BOT_FILTER_CURRENCY, BOT_FILTER_FAMILY = _a.BOT_FILTER_FAMILY;
43
- test("bot", function () { return __awaiter(void 0, void 0, void 0, function () {
44
- var arg;
45
- return __generator(this, function (_a) {
46
- switch (_a.label) {
47
- case 0:
48
- arg = {};
49
- if (BOT_FILTER_CURRENCY) {
50
- arg.currency = BOT_FILTER_CURRENCY;
51
- }
52
- if (BOT_FILTER_FAMILY) {
53
- arg.family = BOT_FILTER_FAMILY;
54
- }
55
- return [4 /*yield*/, (0, _1.bot)(arg)];
56
- case 1:
57
- _a.sent();
58
- return [2 /*return*/];
59
- }
60
- });
61
- }); });
62
- //# sourceMappingURL=test.bot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.bot.js","sourceRoot":"","sources":["../../src/bot/test.bot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyC;AACzC,sBAAwB;AAExB,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3B,IAAA,KAA6C,OAAO,CAAC,GAAG,EAAtD,mBAAmB,yBAAA,EAAE,iBAAiB,uBAAgB,CAAC;AAC/D,IAAI,CAAC,KAAK,EAAE;;;;;gBACJ,GAAG,GAGL,EAAE,CAAC;gBAEP,IAAI,mBAAmB,EAAE;oBACvB,GAAG,CAAC,QAAQ,GAAG,mBAAmB,CAAC;iBACpC;gBAED,IAAI,iBAAiB,EAAE;oBACrB,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC;iBAChC;gBAED,qBAAM,IAAA,MAAG,EAAC,GAAG,CAAC,EAAA;;gBAAd,SAAc,CAAC;;;;KAChB,CAAC,CAAC"}