@ledgerhq/live-common 27.2.0 → 27.3.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/lib/apps/logic.test.js +1 -1
  2. package/lib/apps/logic.test.js.map +1 -1
  3. package/lib/apps/polyfill.d.ts +1 -1
  4. package/lib/apps/polyfill.d.ts.map +1 -1
  5. package/lib/apps/polyfill.js +6 -3
  6. package/lib/apps/polyfill.js.map +1 -1
  7. package/lib/apps/polyfill.test.d.ts +2 -0
  8. package/lib/apps/polyfill.test.d.ts.map +1 -0
  9. package/lib/apps/polyfill.test.js +25 -0
  10. package/lib/apps/polyfill.test.js.map +1 -0
  11. package/lib/apps/support.d.ts.map +1 -1
  12. package/lib/apps/support.js +3 -2
  13. package/lib/apps/support.js.map +1 -1
  14. package/lib/bot/engine.d.ts.map +1 -1
  15. package/lib/bot/engine.js +154 -45
  16. package/lib/bot/engine.js.map +1 -1
  17. package/lib/bot/formatters.d.ts +1 -1
  18. package/lib/bot/formatters.d.ts.map +1 -1
  19. package/lib/bot/formatters.js +9 -3
  20. package/lib/bot/formatters.js.map +1 -1
  21. package/lib/bot/index.d.ts.map +1 -1
  22. package/lib/bot/index.js +29 -11
  23. package/lib/bot/index.js.map +1 -1
  24. package/lib/bot/specs.d.ts +12 -1
  25. package/lib/bot/specs.d.ts.map +1 -1
  26. package/lib/bot/specs.js +75 -1
  27. package/lib/bot/specs.js.map +1 -1
  28. package/lib/bot/types.d.ts +18 -1
  29. package/lib/bot/types.d.ts.map +1 -1
  30. package/lib/currencies/sortByMarketcap.d.ts.map +1 -1
  31. package/lib/currencies/sortByMarketcap.js +5 -1
  32. package/lib/currencies/sortByMarketcap.js.map +1 -1
  33. package/lib/currencies/support.d.ts.map +1 -1
  34. package/lib/currencies/support.js +2 -1
  35. package/lib/currencies/support.js.map +1 -1
  36. package/lib/derivation.d.ts.map +1 -1
  37. package/lib/derivation.js +2 -4
  38. package/lib/derivation.js.map +1 -1
  39. package/lib/env.js +1 -1
  40. package/lib/exchange/swap/getExchangeRates.d.ts.map +1 -1
  41. package/lib/exchange/swap/getExchangeRates.js +6 -3
  42. package/lib/exchange/swap/getExchangeRates.js.map +1 -1
  43. package/lib/exchange/swap/getProviders.d.ts.map +1 -1
  44. package/lib/exchange/swap/getProviders.js +45 -5
  45. package/lib/exchange/swap/getProviders.js.map +1 -1
  46. package/lib/exchange/swap/getProviders.test.d.ts +2 -0
  47. package/lib/exchange/swap/getProviders.test.d.ts.map +1 -0
  48. package/lib/exchange/swap/getProviders.test.js +519 -0
  49. package/lib/exchange/swap/getProviders.test.js.map +1 -0
  50. package/lib/exchange/swap/hooks/useProviderRates.d.ts +1 -0
  51. package/lib/exchange/swap/hooks/useProviderRates.d.ts.map +1 -1
  52. package/lib/exchange/swap/hooks/useProviderRates.js +19 -4
  53. package/lib/exchange/swap/hooks/useProviderRates.js.map +1 -1
  54. package/lib/exchange/swap/hooks/useProviderRates.test.js +42 -0
  55. package/lib/exchange/swap/hooks/useProviderRates.test.js.map +1 -1
  56. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts +1 -0
  57. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  58. package/lib/exchange/swap/hooks/useSwapTransaction.js +2 -1
  59. package/lib/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  60. package/lib/exchange/swap/index.d.ts +2 -1
  61. package/lib/exchange/swap/index.d.ts.map +1 -1
  62. package/lib/exchange/swap/index.js +11 -1
  63. package/lib/exchange/swap/index.js.map +1 -1
  64. package/lib/exchange/swap/index.test.js +22 -0
  65. package/lib/exchange/swap/index.test.js.map +1 -1
  66. package/lib/exchange/swap/mock.js +1 -1
  67. package/lib/exchange/swap/mock.js.map +1 -1
  68. package/lib/exchange/swap/types.d.ts +14 -0
  69. package/lib/exchange/swap/types.d.ts.map +1 -1
  70. package/lib/exchange/swap/utils/index.d.ts +1 -0
  71. package/lib/exchange/swap/utils/index.d.ts.map +1 -1
  72. package/lib/exchange/swap/utils/index.js +6 -1
  73. package/lib/exchange/swap/utils/index.js.map +1 -1
  74. package/lib/exchange/swap/utils/index.test.js +12 -0
  75. package/lib/exchange/swap/utils/index.test.js.map +1 -1
  76. package/lib/families/algorand/specs.d.ts.map +1 -1
  77. package/lib/families/algorand/specs.js +2 -0
  78. package/lib/families/algorand/specs.js.map +1 -1
  79. package/lib/families/algorand/speculos-deviceActions.d.ts.map +1 -1
  80. package/lib/families/algorand/speculos-deviceActions.js +2 -29
  81. package/lib/families/algorand/speculos-deviceActions.js.map +1 -1
  82. package/lib/families/bitcoin/specs.d.ts +0 -1
  83. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  84. package/lib/families/bitcoin/specs.js +65 -48
  85. package/lib/families/bitcoin/specs.js.map +1 -1
  86. package/lib/families/bitcoin/speculos-deviceActions.d.ts.map +1 -1
  87. package/lib/families/bitcoin/speculos-deviceActions.js +2 -22
  88. package/lib/families/bitcoin/speculos-deviceActions.js.map +1 -1
  89. package/lib/families/cardano/specs.d.ts.map +1 -1
  90. package/lib/families/cardano/specs.js +9 -4
  91. package/lib/families/cardano/specs.js.map +1 -1
  92. package/lib/families/cardano/speculos-deviceActions.d.ts.map +1 -1
  93. package/lib/families/cardano/speculos-deviceActions.js +2 -10
  94. package/lib/families/cardano/speculos-deviceActions.js.map +1 -1
  95. package/lib/families/celo/specs/createSendMutation.d.ts +1 -0
  96. package/lib/families/celo/specs/createSendMutation.d.ts.map +1 -1
  97. package/lib/families/celo/specs/createSendMutation.js +7 -5
  98. package/lib/families/celo/specs/createSendMutation.js.map +1 -1
  99. package/lib/families/celo/specs.d.ts.map +1 -1
  100. package/lib/families/celo/specs.js +1 -0
  101. package/lib/families/celo/specs.js.map +1 -1
  102. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -1
  103. package/lib/families/celo/speculos-deviceActions.js +3 -10
  104. package/lib/families/celo/speculos-deviceActions.js.map +1 -1
  105. package/lib/families/cosmos/helpers.d.ts +9 -0
  106. package/lib/families/cosmos/helpers.d.ts.map +1 -0
  107. package/lib/families/cosmos/helpers.js +20 -0
  108. package/lib/families/cosmos/helpers.js.map +1 -0
  109. package/lib/families/cosmos/helpers.unit.test.d.ts +2 -0
  110. package/lib/families/cosmos/helpers.unit.test.d.ts.map +1 -0
  111. package/lib/families/cosmos/helpers.unit.test.js +56 -0
  112. package/lib/families/cosmos/helpers.unit.test.js.map +1 -0
  113. package/lib/families/cosmos/js-signOperation.d.ts.map +1 -1
  114. package/lib/families/cosmos/js-signOperation.js +5 -3
  115. package/lib/families/cosmos/js-signOperation.js.map +1 -1
  116. package/lib/families/cosmos/js-synchronisation.d.ts.map +1 -1
  117. package/lib/families/cosmos/js-synchronisation.js +99 -95
  118. package/lib/families/cosmos/js-synchronisation.js.map +1 -1
  119. package/lib/families/cosmos/specs.d.ts.map +1 -1
  120. package/lib/families/cosmos/specs.js +5 -1
  121. package/lib/families/cosmos/specs.js.map +1 -1
  122. package/lib/families/crypto_org/specs.d.ts.map +1 -1
  123. package/lib/families/crypto_org/specs.js +9 -8
  124. package/lib/families/crypto_org/specs.js.map +1 -1
  125. package/lib/families/elrond/specs.d.ts.map +1 -1
  126. package/lib/families/elrond/specs.js +1 -0
  127. package/lib/families/elrond/specs.js.map +1 -1
  128. package/lib/families/elrond/speculos-deviceActions.d.ts.map +1 -1
  129. package/lib/families/elrond/speculos-deviceActions.js +3 -8
  130. package/lib/families/elrond/speculos-deviceActions.js.map +1 -1
  131. package/lib/families/ethereum/specs.d.ts.map +1 -1
  132. package/lib/families/ethereum/specs.js +20 -8
  133. package/lib/families/ethereum/specs.js.map +1 -1
  134. package/lib/families/ethereum/speculos-deviceActions.d.ts.map +1 -1
  135. package/lib/families/ethereum/speculos-deviceActions.js +10 -33
  136. package/lib/families/ethereum/speculos-deviceActions.js.map +1 -1
  137. package/lib/families/evm/specs.d.ts.map +1 -1
  138. package/lib/families/evm/specs.js +20 -10
  139. package/lib/families/evm/specs.js.map +1 -1
  140. package/lib/families/evm/speculos-deviceActions.d.ts.map +1 -1
  141. package/lib/families/evm/speculos-deviceActions.js +5 -25
  142. package/lib/families/evm/speculos-deviceActions.js.map +1 -1
  143. package/lib/families/filecoin/specs.d.ts.map +1 -1
  144. package/lib/families/filecoin/specs.js +3 -0
  145. package/lib/families/filecoin/specs.js.map +1 -1
  146. package/lib/families/filecoin/speculos-deviceActions.d.ts.map +1 -1
  147. package/lib/families/filecoin/speculos-deviceActions.js +6 -7
  148. package/lib/families/filecoin/speculos-deviceActions.js.map +1 -1
  149. package/lib/families/hedera/specs.d.ts.map +1 -1
  150. package/lib/families/hedera/specs.js +2 -0
  151. package/lib/families/hedera/specs.js.map +1 -1
  152. package/lib/families/osmosis/specs.d.ts.map +1 -1
  153. package/lib/families/osmosis/specs.js +3 -0
  154. package/lib/families/osmosis/specs.js.map +1 -1
  155. package/lib/families/polkadot/specs.d.ts.map +1 -1
  156. package/lib/families/polkadot/specs.js +4 -1
  157. package/lib/families/polkadot/specs.js.map +1 -1
  158. package/lib/families/polkadot/speculos-deviceActions.d.ts.map +1 -1
  159. package/lib/families/polkadot/speculos-deviceActions.js +3 -10
  160. package/lib/families/polkadot/speculos-deviceActions.js.map +1 -1
  161. package/lib/families/ripple/specs.d.ts.map +1 -1
  162. package/lib/families/ripple/specs.js +2 -0
  163. package/lib/families/ripple/specs.js.map +1 -1
  164. package/lib/families/ripple/speculos-deviceActions.d.ts.map +1 -1
  165. package/lib/families/ripple/speculos-deviceActions.js +2 -22
  166. package/lib/families/ripple/speculos-deviceActions.js.map +1 -1
  167. package/lib/families/solana/specs.d.ts.map +1 -1
  168. package/lib/families/solana/specs.js +7 -3
  169. package/lib/families/solana/specs.js.map +1 -1
  170. package/lib/families/solana/speculos-deviceActions.d.ts.map +1 -1
  171. package/lib/families/solana/speculos-deviceActions.js +5 -7
  172. package/lib/families/solana/speculos-deviceActions.js.map +1 -1
  173. package/lib/families/stellar/specs.d.ts.map +1 -1
  174. package/lib/families/stellar/specs.js +1 -0
  175. package/lib/families/stellar/specs.js.map +1 -1
  176. package/lib/families/stellar/speculos-deviceActions.d.ts.map +1 -1
  177. package/lib/families/stellar/speculos-deviceActions.js +4 -8
  178. package/lib/families/stellar/speculos-deviceActions.js.map +1 -1
  179. package/lib/families/tezos/specs.d.ts.map +1 -1
  180. package/lib/families/tezos/specs.js +6 -1
  181. package/lib/families/tezos/specs.js.map +1 -1
  182. package/lib/families/tezos/speculos-deviceActions.d.ts.map +1 -1
  183. package/lib/families/tezos/speculos-deviceActions.js +6 -11
  184. package/lib/families/tezos/speculos-deviceActions.js.map +1 -1
  185. package/lib/families/tron/specs.d.ts.map +1 -1
  186. package/lib/families/tron/specs.js +16 -1
  187. package/lib/families/tron/specs.js.map +1 -1
  188. package/lib/families/tron/speculos-deviceActions.d.ts.map +1 -1
  189. package/lib/families/tron/speculos-deviceActions.js +2 -14
  190. package/lib/families/tron/speculos-deviceActions.js.map +1 -1
  191. package/lib/families/tron/synchronisation.integration.test.d.ts +2 -0
  192. package/lib/families/tron/synchronisation.integration.test.d.ts.map +1 -0
  193. package/lib/families/tron/{synchronisation.test.js → synchronisation.integration.test.js} +1 -1
  194. package/lib/families/tron/synchronisation.integration.test.js.map +1 -0
  195. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  196. package/lib/featureFlags/defaultFeatures.js +6 -0
  197. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  198. package/lib/generated/specs.d.ts +0 -1
  199. package/lib/generated/specs.d.ts.map +1 -1
  200. package/lib/hw/actions/installLanguage.js +1 -1
  201. package/lib/hw/extractOnboardingState.d.ts +5 -1
  202. package/lib/hw/extractOnboardingState.d.ts.map +1 -1
  203. package/lib/hw/extractOnboardingState.js +17 -9
  204. package/lib/hw/extractOnboardingState.js.map +1 -1
  205. package/lib/hw/extractOnboardingState.test.js +21 -11
  206. package/lib/hw/extractOnboardingState.test.js.map +1 -1
  207. package/lib/load/speculos.d.ts.map +1 -1
  208. package/lib/load/speculos.js +39 -15
  209. package/lib/load/speculos.js.map +1 -1
  210. package/lib/manager/hooks.d.ts +4 -1
  211. package/lib/manager/hooks.d.ts.map +1 -1
  212. package/lib/manager/hooks.js +4 -3
  213. package/lib/manager/hooks.js.map +1 -1
  214. package/lib/manager/localization.js +2 -2
  215. package/lib/manager/localization.js.map +1 -1
  216. package/lib/mock/account.d.ts.map +1 -1
  217. package/lib/mock/account.js +17 -19
  218. package/lib/mock/account.js.map +1 -1
  219. package/lib/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  220. package/lib/notifications/ServiceStatusProvider/index.js +5 -1
  221. package/lib/notifications/ServiceStatusProvider/index.js.map +1 -1
  222. package/lib/postOnboarding/PostOnboardingProvider.d.ts +20 -0
  223. package/lib/postOnboarding/PostOnboardingProvider.d.ts.map +1 -0
  224. package/lib/postOnboarding/PostOnboardingProvider.js +33 -0
  225. package/lib/postOnboarding/PostOnboardingProvider.js.map +1 -0
  226. package/lib/postOnboarding/actions.d.ts +20 -0
  227. package/lib/postOnboarding/actions.d.ts.map +1 -0
  228. package/lib/postOnboarding/actions.js +37 -0
  229. package/lib/postOnboarding/actions.js.map +1 -0
  230. package/lib/postOnboarding/hooks/index.d.ts +6 -0
  231. package/lib/postOnboarding/hooks/index.d.ts.map +1 -0
  232. package/lib/postOnboarding/hooks/index.js +22 -0
  233. package/lib/postOnboarding/hooks/index.js.map +1 -0
  234. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.d.ts +8 -0
  235. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.d.ts.map +1 -0
  236. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.js +16 -0
  237. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.js.map +1 -0
  238. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.d.ts +2 -0
  239. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.d.ts.map +1 -0
  240. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.js +75 -0
  241. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.js.map +1 -0
  242. package/lib/postOnboarding/hooks/usePostOnboardingContext.d.ts +3 -0
  243. package/lib/postOnboarding/hooks/usePostOnboardingContext.d.ts.map +1 -0
  244. package/lib/postOnboarding/hooks/usePostOnboardingContext.js +10 -0
  245. package/lib/postOnboarding/hooks/usePostOnboardingContext.js.map +1 -0
  246. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.d.ts +8 -0
  247. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.d.ts.map +1 -0
  248. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.js +20 -0
  249. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.js.map +1 -0
  250. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.d.ts +2 -0
  251. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.d.ts.map +1 -0
  252. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.js +64 -0
  253. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.js.map +1 -0
  254. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts +12 -0
  255. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts.map +1 -0
  256. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js +65 -0
  257. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js.map +1 -0
  258. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.d.ts +2 -0
  259. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.d.ts.map +1 -0
  260. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.js +129 -0
  261. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.js.map +1 -0
  262. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.d.ts +13 -0
  263. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.d.ts.map +1 -0
  264. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.js +34 -0
  265. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.js.map +1 -0
  266. package/lib/postOnboarding/mock.d.ts +8 -0
  267. package/lib/postOnboarding/mock.d.ts.map +1 -0
  268. package/lib/postOnboarding/mock.js +46 -0
  269. package/lib/postOnboarding/mock.js.map +1 -0
  270. package/lib/postOnboarding/reducer.d.ts +22 -0
  271. package/lib/postOnboarding/reducer.d.ts.map +1 -0
  272. package/lib/postOnboarding/reducer.js +71 -0
  273. package/lib/postOnboarding/reducer.js.map +1 -0
  274. package/lib/postOnboarding/reducer.test.d.ts +2 -0
  275. package/lib/postOnboarding/reducer.test.d.ts.map +1 -0
  276. package/lib/postOnboarding/reducer.test.js +251 -0
  277. package/lib/postOnboarding/reducer.test.js.map +1 -0
  278. package/package.json +24 -20
  279. package/src/__tests__/__snapshots__/portfolio.v2.ts.snap +16 -0
  280. package/src/apps/__snapshots__/logic.test.ts.snap +18 -11
  281. package/src/apps/logic.test.ts +1 -2
  282. package/src/apps/polyfill.test.ts +24 -0
  283. package/src/apps/polyfill.ts +7 -2
  284. package/src/apps/support.ts +2 -1
  285. package/src/bot/engine.ts +178 -35
  286. package/src/bot/formatters.ts +15 -2
  287. package/src/bot/index.ts +48 -19
  288. package/src/bot/specs.ts +95 -1
  289. package/src/bot/types.ts +23 -1
  290. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +55 -6
  291. package/src/currencies/sortByMarketcap.ts +6 -1
  292. package/src/currencies/support.ts +2 -1
  293. package/src/derivation.ts +2 -4
  294. package/src/env.ts +1 -1
  295. package/src/exchange/swap/getExchangeRates.ts +12 -5
  296. package/src/exchange/swap/getProviders.test.ts +450 -0
  297. package/src/exchange/swap/getProviders.ts +31 -8
  298. package/src/exchange/swap/hooks/useProviderRates.test.ts +43 -0
  299. package/src/exchange/swap/hooks/useProviderRates.ts +22 -3
  300. package/src/exchange/swap/hooks/useSwapTransaction.ts +3 -1
  301. package/src/exchange/swap/index.test.ts +36 -1
  302. package/src/exchange/swap/index.ts +15 -0
  303. package/src/exchange/swap/mock.ts +2 -2
  304. package/src/exchange/swap/types.ts +11 -0
  305. package/src/exchange/swap/utils/index.test.ts +19 -0
  306. package/src/exchange/swap/utils/index.ts +5 -0
  307. package/src/families/algorand/specs.ts +3 -1
  308. package/src/families/algorand/speculos-deviceActions.ts +4 -35
  309. package/src/families/bitcoin/specs.ts +72 -56
  310. package/src/families/bitcoin/speculos-deviceActions.ts +3 -26
  311. package/src/families/cardano/specs.ts +9 -4
  312. package/src/families/cardano/speculos-deviceActions.ts +3 -14
  313. package/src/families/celo/specs/createSendMutation.ts +5 -3
  314. package/src/families/celo/specs.ts +2 -0
  315. package/src/families/celo/speculos-deviceActions.ts +6 -14
  316. package/src/families/cosmos/__snapshots__/bridge.integration.test.ts.snap +24 -44
  317. package/src/families/cosmos/helpers.ts +21 -0
  318. package/src/families/cosmos/helpers.unit.test.ts +63 -0
  319. package/src/families/cosmos/js-signOperation.ts +6 -3
  320. package/src/families/cosmos/js-synchronisation.ts +120 -119
  321. package/src/families/cosmos/specs.ts +11 -2
  322. package/src/families/crypto_org/specs.ts +12 -19
  323. package/src/families/elrond/specs.ts +1 -0
  324. package/src/families/elrond/speculos-deviceActions.ts +4 -9
  325. package/src/families/ethereum/specs.ts +34 -38
  326. package/src/families/ethereum/speculos-deviceActions.ts +16 -46
  327. package/src/families/evm/specs.ts +18 -8
  328. package/src/families/evm/speculos-deviceActions.ts +7 -35
  329. package/src/families/filecoin/specs.ts +4 -1
  330. package/src/families/filecoin/speculos-deviceActions.ts +7 -8
  331. package/src/families/hedera/specs.ts +3 -1
  332. package/src/families/osmosis/specs.ts +4 -1
  333. package/src/families/polkadot/specs.ts +11 -2
  334. package/src/families/polkadot/speculos-deviceActions.ts +5 -16
  335. package/src/families/ripple/specs.ts +3 -1
  336. package/src/families/ripple/speculos-deviceActions.ts +3 -28
  337. package/src/families/solana/specs.ts +15 -4
  338. package/src/families/solana/speculos-deviceActions.ts +6 -8
  339. package/src/families/stellar/specs.ts +1 -0
  340. package/src/families/stellar/speculos-deviceActions.ts +5 -11
  341. package/src/families/tezos/specs.ts +7 -5
  342. package/src/families/tezos/speculos-deviceActions.ts +9 -16
  343. package/src/families/tron/specs.ts +31 -3
  344. package/src/families/tron/speculos-deviceActions.ts +4 -12
  345. package/src/families/tron/{synchronisation.test.ts → synchronisation.integration.test.ts} +0 -0
  346. package/src/featureFlags/defaultFeatures.ts +6 -0
  347. package/src/hw/actions/installLanguage.ts +1 -1
  348. package/src/hw/extractOnboardingState.test.ts +29 -12
  349. package/src/hw/extractOnboardingState.ts +17 -9
  350. package/src/load/speculos.ts +42 -21
  351. package/src/manager/hooks.ts +6 -6
  352. package/src/manager/localization.ts +2 -2
  353. package/src/mock/account.ts +18 -20
  354. package/src/notifications/ServiceStatusProvider/index.tsx +8 -1
  355. package/src/postOnboarding/PostOnboardingProvider.tsx +49 -0
  356. package/src/postOnboarding/actions.ts +40 -0
  357. package/src/postOnboarding/hooks/index.ts +5 -0
  358. package/src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.ts +82 -0
  359. package/src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.ts +12 -0
  360. package/src/postOnboarding/hooks/usePostOnboardingContext.ts +9 -0
  361. package/src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.ts +83 -0
  362. package/src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.ts +22 -0
  363. package/src/postOnboarding/hooks/usePostOnboardingHubState.test.ts +184 -0
  364. package/src/postOnboarding/hooks/usePostOnboardingHubState.ts +56 -0
  365. package/src/postOnboarding/hooks/useStartPostOnboardingCallback.ts +38 -0
  366. package/src/postOnboarding/mock.ts +53 -0
  367. package/src/postOnboarding/reducer.test.ts +247 -0
  368. package/src/postOnboarding/reducer.ts +105 -0
  369. package/lib/families/tron/synchronisation.test.d.ts +0 -2
  370. package/lib/families/tron/synchronisation.test.d.ts.map +0 -1
  371. package/lib/families/tron/synchronisation.test.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.hidePostOnboardingWalletEntryPoint = exports.clearPostOnboardingLastActionCompleted = exports.setPostOnboardingActionCompleted = exports.initPostOnboarding = exports.importPostOnboardingState = void 0;
4
+ var importPostOnboardingState = function (_a) {
5
+ var newState = _a.newState;
6
+ return ({
7
+ type: "POST_ONBOARDING_IMPORT_STATE",
8
+ newState: newState
9
+ });
10
+ };
11
+ exports.importPostOnboardingState = importPostOnboardingState;
12
+ var initPostOnboarding = function (_a) {
13
+ var deviceModelId = _a.deviceModelId, actionsIds = _a.actionsIds;
14
+ return ({
15
+ type: "POST_ONBOARDING_INIT",
16
+ deviceModelId: deviceModelId,
17
+ actionsIds: actionsIds
18
+ });
19
+ };
20
+ exports.initPostOnboarding = initPostOnboarding;
21
+ var setPostOnboardingActionCompleted = function (_a) {
22
+ var actionId = _a.actionId;
23
+ return ({
24
+ type: "POST_ONBOARDING_SET_ACTION_COMPLETED",
25
+ actionId: actionId
26
+ });
27
+ };
28
+ exports.setPostOnboardingActionCompleted = setPostOnboardingActionCompleted;
29
+ var clearPostOnboardingLastActionCompleted = function () { return ({
30
+ type: "POST_ONBOARDING_CLEAR_LAST_ACTION_COMPLETED"
31
+ }); };
32
+ exports.clearPostOnboardingLastActionCompleted = clearPostOnboardingLastActionCompleted;
33
+ var hidePostOnboardingWalletEntryPoint = function () { return ({
34
+ type: "POST_ONBOARDING_HIDE_WALLET_ENTRY_POINT"
35
+ }); };
36
+ exports.hidePostOnboardingWalletEntryPoint = hidePostOnboardingWalletEntryPoint;
37
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/postOnboarding/actions.ts"],"names":[],"mappings":";;;AASO,IAAM,yBAAyB,GAEjC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAAO,OAAA,CAAC;QACtB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,UAAA;KACT,CAAC;AAHqB,CAGrB,CAAC;AALU,QAAA,yBAAyB,6BAKnC;AAEI,IAAM,kBAAkB,GAG1B,UAAC,EAA6B;QAA3B,aAAa,mBAAA,EAAE,UAAU,gBAAA;IAAO,OAAA,CAAC;QACvC,IAAI,EAAE,sBAAsB;QAC5B,aAAa,eAAA;QACb,UAAU,YAAA;KACX,CAAC;AAJsC,CAItC,CAAC;AAPU,QAAA,kBAAkB,sBAO5B;AAEI,IAAM,gCAAgC,GAExC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAAO,OAAA,CAAC;QACtB,IAAI,EAAE,sCAAsC;QAC5C,QAAQ,UAAA;KACT,CAAC;AAHqB,CAGrB,CAAC;AALU,QAAA,gCAAgC,oCAK1C;AAEI,IAAM,sCAAsC,GACjD,cAAM,OAAA,CAAC;IACL,IAAI,EAAE,6CAA6C;CACpD,CAAC,EAFI,CAEJ,CAAC;AAHQ,QAAA,sCAAsC,0CAG9C;AAEE,IAAM,kCAAkC,GAAuB,cAAM,OAAA,CAAC;IAC3E,IAAI,EAAE,yCAAyC;CAChD,CAAC,EAF0E,CAE1E,CAAC;AAFU,QAAA,kCAAkC,sCAE5C"}
@@ -0,0 +1,6 @@
1
+ export * from "./useAllPostOnboardingActionsCompleted";
2
+ export * from "./usePostOnboardingContext";
3
+ export * from "./usePostOnboardingEntryPointVisibleOnWallet";
4
+ export * from "./usePostOnboardingHubState";
5
+ export * from "./useStartPostOnboardingCallback";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ exports.__esModule = true;
17
+ __exportStar(require("./useAllPostOnboardingActionsCompleted"), exports);
18
+ __exportStar(require("./usePostOnboardingContext"), exports);
19
+ __exportStar(require("./usePostOnboardingEntryPointVisibleOnWallet"), exports);
20
+ __exportStar(require("./usePostOnboardingHubState"), exports);
21
+ __exportStar(require("./useStartPostOnboardingCallback"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,6DAA2C;AAC3C,+EAA6D;AAC7D,8DAA4C;AAC5C,mEAAiD"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @returns a boolean representing whether all the post onboarding actions have
4
+ * been completed.
5
+ * TODO: unit test this
6
+ */
7
+ export declare function useAllPostOnboardingActionsCompleted(): boolean;
8
+ //# sourceMappingURL=useAllPostOnboardingActionsCompleted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAllPostOnboardingActionsCompleted.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,oCAAoC,IAAI,OAAO,CAG9D"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.useAllPostOnboardingActionsCompleted = void 0;
4
+ var usePostOnboardingHubState_1 = require("./usePostOnboardingHubState");
5
+ /**
6
+ *
7
+ * @returns a boolean representing whether all the post onboarding actions have
8
+ * been completed.
9
+ * TODO: unit test this
10
+ */
11
+ function useAllPostOnboardingActionsCompleted() {
12
+ var actionsState = (0, usePostOnboardingHubState_1.usePostOnboardingHubState)().actionsState;
13
+ return actionsState.every(function (action) { return action.completed; });
14
+ }
15
+ exports.useAllPostOnboardingActionsCompleted = useAllPostOnboardingActionsCompleted;
16
+ //# sourceMappingURL=useAllPostOnboardingActionsCompleted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAllPostOnboardingActionsCompleted.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.ts"],"names":[],"mappings":";;;AAAA,yEAAwE;AAExE;;;;;GAKG;AACH,SAAgB,oCAAoC;IAC1C,IAAA,YAAY,GAAK,IAAA,qDAAyB,GAAE,aAAhC,CAAiC;IACrD,OAAO,YAAY,CAAC,KAAK,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,SAAS,EAAhB,CAAgB,CAAC,CAAC;AAC1D,CAAC;AAHD,oFAGC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useAllPostOnboardingActionsCompleted.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAllPostOnboardingActionsCompleted.test.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ exports.__esModule = true;
14
+ var react_hooks_1 = require("@testing-library/react-hooks");
15
+ var useAllPostOnboardingActionsCompleted_1 = require("./useAllPostOnboardingActionsCompleted");
16
+ var mock_1 = require("../mock");
17
+ var usePostOnboardingHubState_1 = require("./usePostOnboardingHubState");
18
+ jest.mock("./usePostOnboardingHubState");
19
+ jest.mock("react-redux", function () { return ({}); });
20
+ var mockedUsePostOnboardingHubState = jest.mocked(usePostOnboardingHubState_1.usePostOnboardingHubState);
21
+ var mockedStateNoActions = {
22
+ deviceModelId: null,
23
+ lastActionCompleted: null,
24
+ actionsState: []
25
+ };
26
+ var mockedStateAllActionsCompleted = {
27
+ deviceModelId: null,
28
+ lastActionCompleted: null,
29
+ actionsState: [
30
+ __assign(__assign({}, mock_1.claimTestMock), { completed: true }),
31
+ __assign(__assign({}, mock_1.personalizeTestMock), { completed: true }),
32
+ __assign(__assign({}, mock_1.migrateAssetsTestMock), { completed: true }),
33
+ ]
34
+ };
35
+ var mockedStateNoActionsCompleted = {
36
+ deviceModelId: null,
37
+ lastActionCompleted: null,
38
+ actionsState: [
39
+ __assign(__assign({}, mock_1.claimTestMock), { completed: false }),
40
+ __assign(__assign({}, mock_1.personalizeTestMock), { completed: false }),
41
+ __assign(__assign({}, mock_1.migrateAssetsTestMock), { completed: false }),
42
+ ]
43
+ };
44
+ var mockedStateSomeActionsCompleted = {
45
+ deviceModelId: null,
46
+ lastActionCompleted: null,
47
+ actionsState: [
48
+ __assign(__assign({}, mock_1.claimTestMock), { completed: false }),
49
+ __assign(__assign({}, mock_1.personalizeTestMock), { completed: true }),
50
+ __assign(__assign({}, mock_1.migrateAssetsTestMock), { completed: false }),
51
+ ]
52
+ };
53
+ describe("useAllPostOnboardingActionsCompleted", function () {
54
+ it("should return true if no actions are present", function () {
55
+ mockedUsePostOnboardingHubState.mockReturnValue(mockedStateNoActions);
56
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, useAllPostOnboardingActionsCompleted_1.useAllPostOnboardingActionsCompleted)(); }).result;
57
+ expect(result.current).toBe(true);
58
+ });
59
+ it("should return true if all actions are completed", function () {
60
+ mockedUsePostOnboardingHubState.mockReturnValue(mockedStateAllActionsCompleted);
61
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, useAllPostOnboardingActionsCompleted_1.useAllPostOnboardingActionsCompleted)(); }).result;
62
+ expect(result.current).toBe(true);
63
+ });
64
+ it("should return false if some actions are completed", function () {
65
+ mockedUsePostOnboardingHubState.mockReturnValue(mockedStateSomeActionsCompleted);
66
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, useAllPostOnboardingActionsCompleted_1.useAllPostOnboardingActionsCompleted)(); }).result;
67
+ expect(result.current).toBe(false);
68
+ });
69
+ it("should return false if no actions are completed", function () {
70
+ mockedUsePostOnboardingHubState.mockReturnValue(mockedStateNoActionsCompleted);
71
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, useAllPostOnboardingActionsCompleted_1.useAllPostOnboardingActionsCompleted)(); }).result;
72
+ expect(result.current).toBe(false);
73
+ });
74
+ });
75
+ //# sourceMappingURL=useAllPostOnboardingActionsCompleted.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAllPostOnboardingActionsCompleted.test.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PostOnboardingDependencies } from "../PostOnboardingProvider";
2
+ export declare function usePostOnboardingContext(): PostOnboardingDependencies;
3
+ //# sourceMappingURL=usePostOnboardingContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingContext.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingContext.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,wBAAwB,IAAI,0BAA0B,CAErE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.usePostOnboardingContext = void 0;
4
+ var react_1 = require("react");
5
+ var PostOnboardingProvider_1 = require("../PostOnboardingProvider");
6
+ function usePostOnboardingContext() {
7
+ return (0, react_1.useContext)(PostOnboardingProvider_1.PostOnboardingContext);
8
+ }
9
+ exports.usePostOnboardingContext = usePostOnboardingContext;
10
+ //# sourceMappingURL=usePostOnboardingContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingContext.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingContext.ts"],"names":[],"mappings":";;;AAAA,+BAAmC;AACnC,oEAGmC;AAEnC,SAAgB,wBAAwB;IACtC,OAAO,IAAA,kBAAU,EAAC,8CAAqB,CAAC,CAAC;AAC3C,CAAC;AAFD,4DAEC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @returns a boolean representing whether the post onboarding entry point
4
+ * should be visible on the wallet page.
5
+ * TODO: unit test this
6
+ */
7
+ export declare function usePostOnboardingEntryPointVisibleOnWallet(): boolean;
8
+ //# sourceMappingURL=usePostOnboardingEntryPointVisibleOnWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingEntryPointVisibleOnWallet.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,0CAA0C,IAAI,OAAO,CAQpE"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.usePostOnboardingEntryPointVisibleOnWallet = void 0;
4
+ var react_redux_1 = require("react-redux");
5
+ var reducer_1 = require("../reducer");
6
+ var useAllPostOnboardingActionsCompleted_1 = require("./useAllPostOnboardingActionsCompleted");
7
+ /**
8
+ *
9
+ * @returns a boolean representing whether the post onboarding entry point
10
+ * should be visible on the wallet page.
11
+ * TODO: unit test this
12
+ */
13
+ function usePostOnboardingEntryPointVisibleOnWallet() {
14
+ var deviceModelId = (0, react_redux_1.useSelector)(reducer_1.postOnboardingDeviceModelIdSelector);
15
+ var dismissed = (0, react_redux_1.useSelector)(reducer_1.walletPostOnboardingEntryPointDismissedSelector);
16
+ var allCompleted = (0, useAllPostOnboardingActionsCompleted_1.useAllPostOnboardingActionsCompleted)();
17
+ return !!deviceModelId && !(dismissed || allCompleted);
18
+ }
19
+ exports.usePostOnboardingEntryPointVisibleOnWallet = usePostOnboardingEntryPointVisibleOnWallet;
20
+ //# sourceMappingURL=usePostOnboardingEntryPointVisibleOnWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingEntryPointVisibleOnWallet.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,sCAGoB;AACpB,+FAA8F;AAE9F;;;;;GAKG;AACH,SAAgB,0CAA0C;IACxD,IAAM,aAAa,GAAG,IAAA,yBAAW,EAAC,6CAAmC,CAAC,CAAC;IACvE,IAAM,SAAS,GAAG,IAAA,yBAAW,EAC3B,yDAA+C,CAChD,CAAC;IACF,IAAM,YAAY,GAAG,IAAA,2EAAoC,GAAE,CAAC;IAE5D,OAAO,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC;AACzD,CAAC;AARD,gGAQC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usePostOnboardingEntryPointVisibleOnWallet.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingEntryPointVisibleOnWallet.test.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var react_hooks_1 = require("@testing-library/react-hooks");
4
+ var reducer_1 = require("../reducer");
5
+ var useAllPostOnboardingActionsCompleted_1 = require("./useAllPostOnboardingActionsCompleted");
6
+ var usePostOnboardingEntryPointVisibleOnWallet_1 = require("./usePostOnboardingEntryPointVisibleOnWallet");
7
+ var types_devices_1 = require("@ledgerhq/types-devices");
8
+ jest.mock("react-redux", function () { return ({
9
+ useSelector: function (fun) { return fun(); }
10
+ }); });
11
+ jest.mock("../reducer");
12
+ jest.mock("./useAllPostOnboardingActionsCompleted");
13
+ var mockedUseAllCompleted = jest.mocked(useAllPostOnboardingActionsCompleted_1.useAllPostOnboardingActionsCompleted);
14
+ var mockedDismissedSelector = jest.mocked(reducer_1.walletPostOnboardingEntryPointDismissedSelector);
15
+ var mockedDeviceModelIdSelector = jest.mocked(reducer_1.postOnboardingDeviceModelIdSelector);
16
+ describe("usePostOnboardingEntryPointVisibleOnWallet", function () {
17
+ beforeEach(function () {
18
+ mockedUseAllCompleted.mockClear();
19
+ mockedDismissedSelector.mockClear();
20
+ mockedDeviceModelIdSelector.mockClear();
21
+ });
22
+ it("should be false if deviceModelId is null", function () {
23
+ mockedUseAllCompleted.mockReturnValue(false);
24
+ mockedDismissedSelector.mockReturnValue(false);
25
+ mockedDeviceModelIdSelector.mockReturnValue(null);
26
+ var result = (0, react_hooks_1.renderHook)(function () {
27
+ return (0, usePostOnboardingEntryPointVisibleOnWallet_1.usePostOnboardingEntryPointVisibleOnWallet)();
28
+ }).result;
29
+ expect(result.current).toBe(false);
30
+ });
31
+ it("should be false if the the entry point HAS been dismissed", function () {
32
+ mockedDismissedSelector.mockReturnValue(true);
33
+ mockedDeviceModelIdSelector.mockReturnValue(types_devices_1.DeviceModelId.nanoX);
34
+ mockedUseAllCompleted.mockReturnValue(false);
35
+ var res1 = (0, react_hooks_1.renderHook)(function () {
36
+ return (0, usePostOnboardingEntryPointVisibleOnWallet_1.usePostOnboardingEntryPointVisibleOnWallet)();
37
+ }).result;
38
+ expect(res1.current).toBe(false);
39
+ mockedUseAllCompleted.mockReturnValue(true);
40
+ var res2 = (0, react_hooks_1.renderHook)(function () {
41
+ return (0, usePostOnboardingEntryPointVisibleOnWallet_1.usePostOnboardingEntryPointVisibleOnWallet)();
42
+ }).result;
43
+ expect(res2.current).toBe(false);
44
+ });
45
+ it("should be false if all actions are completed", function () {
46
+ mockedDismissedSelector.mockReturnValue(false);
47
+ mockedUseAllCompleted.mockReturnValue(true);
48
+ mockedDeviceModelIdSelector.mockReturnValue(types_devices_1.DeviceModelId.nanoX);
49
+ var result = (0, react_hooks_1.renderHook)(function () {
50
+ return (0, usePostOnboardingEntryPointVisibleOnWallet_1.usePostOnboardingEntryPointVisibleOnWallet)();
51
+ }).result;
52
+ expect(result.current).toBe(false);
53
+ });
54
+ it("should be true if the entry point HAS NOT been dismissed and all actions are NOT completed", function () {
55
+ mockedDismissedSelector.mockReturnValue(false);
56
+ mockedUseAllCompleted.mockReturnValue(false);
57
+ mockedDeviceModelIdSelector.mockReturnValue(types_devices_1.DeviceModelId.nanoX);
58
+ var result = (0, react_hooks_1.renderHook)(function () {
59
+ return (0, usePostOnboardingEntryPointVisibleOnWallet_1.usePostOnboardingEntryPointVisibleOnWallet)();
60
+ }).result;
61
+ expect(result.current).toBe(true);
62
+ });
63
+ });
64
+ //# sourceMappingURL=usePostOnboardingEntryPointVisibleOnWallet.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingEntryPointVisibleOnWallet.test.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { PostOnboardingHubState } from "@ledgerhq/types-live";
2
+ /**
3
+ * @returns an object representing the state that should be rendered on the post
4
+ * onboarding hub screen.
5
+ *
6
+ * This takes feature flagging into account so the logic is
7
+ * resistant to flags getting enabled/disabled over time (for a given disabled
8
+ * feature flag, the actions pointing to it will be excluded).
9
+ * TODO: unit test this
10
+ * */
11
+ export declare function usePostOnboardingHubState(): PostOnboardingHubState;
12
+ //# sourceMappingURL=usePostOnboardingHubState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingHubState.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingHubState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAK9D;;;;;;;;KAQK;AACL,wBAAgB,yBAAyB,IAAI,sBAAsB,CAuClE"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ exports.__esModule = true;
14
+ exports.usePostOnboardingHubState = void 0;
15
+ var react_redux_1 = require("react-redux");
16
+ var react_1 = require("react");
17
+ var featureFlags_1 = require("../../featureFlags");
18
+ var reducer_1 = require("../reducer");
19
+ var usePostOnboardingContext_1 = require("./usePostOnboardingContext");
20
+ /**
21
+ * @returns an object representing the state that should be rendered on the post
22
+ * onboarding hub screen.
23
+ *
24
+ * This takes feature flagging into account so the logic is
25
+ * resistant to flags getting enabled/disabled over time (for a given disabled
26
+ * feature flag, the actions pointing to it will be excluded).
27
+ * TODO: unit test this
28
+ * */
29
+ function usePostOnboardingHubState() {
30
+ var hubState = (0, react_redux_1.useSelector)(reducer_1.hubStateSelector);
31
+ var postOnboardingContext = (0, usePostOnboardingContext_1.usePostOnboardingContext)();
32
+ var getPostOnboardingAction = postOnboardingContext.getPostOnboardingAction;
33
+ var getFeature = (0, featureFlags_1.useFeatureFlags)().getFeature;
34
+ return (0, react_1.useMemo)(function () {
35
+ var _a;
36
+ if (!getPostOnboardingAction)
37
+ return {
38
+ deviceModelId: hubState.deviceModelId,
39
+ lastActionCompleted: null,
40
+ actionsState: []
41
+ };
42
+ var actionsState = hubState.actionsToComplete
43
+ .map(function (actionId) { return (__assign(__assign({}, getPostOnboardingAction(actionId)), { completed: !!hubState.actionsCompleted[actionId] })); })
44
+ .filter(function (actionWithState) {
45
+ var _a;
46
+ return !actionWithState.featureFlagId ||
47
+ ((_a = getFeature(actionWithState.featureFlagId)) === null || _a === void 0 ? void 0 : _a.enabled);
48
+ });
49
+ var lastActionCompleted = hubState.lastActionCompleted
50
+ ? getPostOnboardingAction(hubState.lastActionCompleted)
51
+ : null;
52
+ var isLastActionCompletedEnabled = lastActionCompleted &&
53
+ (!lastActionCompleted.featureFlagId ||
54
+ ((_a = getFeature(lastActionCompleted.featureFlagId)) === null || _a === void 0 ? void 0 : _a.enabled));
55
+ return {
56
+ deviceModelId: hubState.deviceModelId,
57
+ lastActionCompleted: isLastActionCompletedEnabled
58
+ ? lastActionCompleted
59
+ : null,
60
+ actionsState: actionsState
61
+ };
62
+ }, [getFeature, hubState, getPostOnboardingAction]);
63
+ }
64
+ exports.usePostOnboardingHubState = usePostOnboardingHubState;
65
+ //# sourceMappingURL=usePostOnboardingHubState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingHubState.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingHubState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2CAA0C;AAC1C,+BAAgC;AAEhC,mDAAqD;AACrD,sCAA8C;AAC9C,uEAAsE;AAEtE;;;;;;;;KAQK;AACL,SAAgB,yBAAyB;IACvC,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,0BAAgB,CAAC,CAAC;IAC/C,IAAM,qBAAqB,GAAG,IAAA,mDAAwB,GAAE,CAAC;IACjD,IAAA,uBAAuB,GAAK,qBAAqB,wBAA1B,CAA2B;IAClD,IAAA,UAAU,GAAK,IAAA,8BAAe,GAAE,WAAtB,CAAuB;IACzC,OAAO,IAAA,eAAO,EAAC;;QACb,IAAI,CAAC,uBAAuB;YAC1B,OAAO;gBACL,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,mBAAmB,EAAE,IAAI;gBACzB,YAAY,EAAE,EAAE;aACjB,CAAC;QACJ,IAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB;aAC5C,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,uBACd,uBAAuB,CAAC,QAAQ,CAAC,KACpC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAChD,EAHiB,CAGjB,CAAC;aACF,MAAM,CACL,UAAC,eAAe;;YACd,OAAA,CAAC,eAAe,CAAC,aAAa;iBAC9B,MAAA,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,0CAAE,OAAO,CAAA,CAAA;SAAA,CACrD,CAAC;QACJ,IAAM,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB;YACtD,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC;QAET,IAAM,4BAA4B,GAChC,mBAAmB;YACnB,CAAC,CAAC,mBAAmB,CAAC,aAAa;iBACjC,MAAA,UAAU,CAAC,mBAAmB,CAAC,aAAa,CAAC,0CAAE,OAAO,CAAA,CAAC,CAAC;QAE5D,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,mBAAmB,EAAE,4BAA4B;gBAC/C,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,IAAI;YACR,YAAY,cAAA;SACb,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;AACtD,CAAC;AAvCD,8DAuCC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usePostOnboardingHubState.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingHubState.test.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingHubState.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ exports.__esModule = true;
4
+ var featureFlags_1 = require("../../featureFlags");
5
+ var reducer_1 = require("../reducer");
6
+ var usePostOnboardingContext_1 = require("./usePostOnboardingContext");
7
+ var mock_1 = require("../mock");
8
+ var react_hooks_1 = require("@testing-library/react-hooks");
9
+ var types_devices_1 = require("@ledgerhq/types-devices");
10
+ var types_live_1 = require("@ledgerhq/types-live");
11
+ var usePostOnboardingHubState_1 = require("./usePostOnboardingHubState");
12
+ jest.mock("react-redux", function () { return ({
13
+ useSelector: function (val) { return val(); }
14
+ }); });
15
+ jest.mock("../../featureFlags");
16
+ jest.mock("./usePostOnboardingContext");
17
+ jest.mock("../reducer");
18
+ var mockedUseFeatureFlags = jest.mocked(featureFlags_1.useFeatureFlags);
19
+ var mockedGetFeatureWithMockFeatureEnabled = function (enabled) { return ({
20
+ getFeature: function (id) {
21
+ if (id === mock_1.mockedFeatureIdToTest)
22
+ return { enabled: enabled };
23
+ return { enabled: true };
24
+ },
25
+ overrideFeature: function () { },
26
+ resetFeature: function () { }
27
+ }); };
28
+ var mockedUsePostOnboardingContext = jest.mocked(usePostOnboardingContext_1.usePostOnboardingContext);
29
+ var mockedHubStateSelector = jest.mocked(reducer_1.hubStateSelector);
30
+ var defaultHubState = {
31
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
32
+ actionsToComplete: [],
33
+ actionsCompleted: {},
34
+ lastActionCompleted: null
35
+ };
36
+ var stateAllCompleted = {
37
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
38
+ actionsToComplete: [
39
+ types_live_1.PostOnboardingActionId.claimMock,
40
+ types_live_1.PostOnboardingActionId.personalizeMock,
41
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
42
+ ],
43
+ actionsCompleted: (_a = {},
44
+ _a[types_live_1.PostOnboardingActionId.claimMock] = true,
45
+ _a[types_live_1.PostOnboardingActionId.personalizeMock] = true,
46
+ _a[types_live_1.PostOnboardingActionId.migrateAssetsMock] = true,
47
+ _a),
48
+ lastActionCompleted: types_live_1.PostOnboardingActionId.personalizeMock
49
+ };
50
+ var stateAllNotCompleted = {
51
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
52
+ actionsToComplete: [
53
+ types_live_1.PostOnboardingActionId.claimMock,
54
+ types_live_1.PostOnboardingActionId.personalizeMock,
55
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
56
+ ],
57
+ actionsCompleted: (_b = {},
58
+ _b[types_live_1.PostOnboardingActionId.claimMock] = false,
59
+ _b[types_live_1.PostOnboardingActionId.personalizeMock] = false,
60
+ _b[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
61
+ _b),
62
+ lastActionCompleted: null
63
+ };
64
+ describe("usePostOnboardingHubState", function () {
65
+ beforeEach(function () {
66
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
67
+ mockedUsePostOnboardingContext.mockReturnValue({
68
+ getPostOnboardingActionsForDevice: function () { return []; },
69
+ navigateToPostOnboardingHub: function () { },
70
+ getPostOnboardingAction: mock_1.getPostOnboardingAction
71
+ });
72
+ });
73
+ it("should return an empty state if the context isn't properly set (`getPostOnboardingAction` missing)", function () {
74
+ var state = stateAllCompleted;
75
+ mockedHubStateSelector.mockReturnValue(state);
76
+ mockedUsePostOnboardingContext.mockReturnValue({
77
+ getPostOnboardingActionsForDevice: function () { return []; },
78
+ navigateToPostOnboardingHub: function () { },
79
+ getPostOnboardingAction: undefined
80
+ });
81
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result;
82
+ expect(result.current).toEqual({
83
+ deviceModelId: state.deviceModelId,
84
+ lastActionCompleted: null,
85
+ actionsState: []
86
+ });
87
+ });
88
+ it("should return an empty state if the store is in an empty state", function () {
89
+ var state = defaultHubState;
90
+ mockedHubStateSelector.mockReturnValue(state);
91
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result;
92
+ expect(result.current).toEqual({
93
+ deviceModelId: state.deviceModelId,
94
+ lastActionCompleted: null,
95
+ actionsState: []
96
+ });
97
+ });
98
+ it("should not return actions that have a disabled feature flag ", function () {
99
+ var state = stateAllCompleted;
100
+ mockedHubStateSelector.mockReturnValue(state);
101
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(false));
102
+ var _a = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current, actionsState = _a.actionsState, lastActionCompleted = _a.lastActionCompleted;
103
+ expect(actionsState.find(function (action) { return action.featureFlagId === mock_1.mockedFeatureIdToTest; })).toBe(undefined);
104
+ expect(lastActionCompleted).toBe(null);
105
+ });
106
+ it("should return actions that have a feature flag enabled", function () {
107
+ var state = stateAllCompleted;
108
+ mockedHubStateSelector.mockReturnValue(state);
109
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
110
+ var _a = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current, actionsState = _a.actionsState, lastActionCompleted = _a.lastActionCompleted;
111
+ expect(actionsState.find(function (action) { return action.featureFlagId === mock_1.mockedFeatureIdToTest; })).toBeTruthy();
112
+ expect(lastActionCompleted).toBeTruthy();
113
+ });
114
+ it("should return actions in their correct state (all actions completed)", function () {
115
+ var state = stateAllCompleted;
116
+ mockedHubStateSelector.mockReturnValue(state);
117
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
118
+ var actionsState = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current.actionsState;
119
+ expect(actionsState.every(function (action) { return action.completed; })).toBe(true);
120
+ });
121
+ it("should return actions in their correct state (no actions completed)", function () {
122
+ var state = stateAllNotCompleted;
123
+ mockedHubStateSelector.mockReturnValue(state);
124
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
125
+ var actionsState = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current.actionsState;
126
+ expect(actionsState.every(function (action) { return action.completed; })).toBe(false);
127
+ });
128
+ });
129
+ //# sourceMappingURL=usePostOnboardingHubState.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingHubState.test.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingHubState.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { DeviceModelId } from "@ledgerhq/types-devices";
2
+ /**
3
+ * Use this to initialize AND navigate to the post onboarding hub for a given
4
+ * device model.
5
+ *
6
+ * @param deviceModelId
7
+ * @returns a function that can be called to initialize the post
8
+ * onboarding for the given device model and navigate to the post onboarding
9
+ * hub.
10
+ * TODO: unit test this
11
+ */
12
+ export declare function useStartPostOnboardingCallback(deviceModelId: DeviceModelId, mock?: boolean): () => void;
13
+ //# sourceMappingURL=useStartPostOnboardingCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStartPostOnboardingCallback.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useStartPostOnboardingCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKxD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,aAAa,EAC5B,IAAI,UAAQ,GACX,MAAM,IAAI,CAkBZ"}