@ledgerhq/live-common 34.52.0 → 34.53.0-nightly.20251108023448

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 (478) hide show
  1. package/lib/DataModel.d.ts +2 -2
  2. package/lib/DataModel.d.ts.map +1 -1
  3. package/lib/DataModel.js +2 -2
  4. package/lib/DataModel.js.map +1 -1
  5. package/lib/__tests__/test-helpers/bridge.d.ts.map +1 -1
  6. package/lib/__tests__/test-helpers/bridge.js +103 -47
  7. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  8. package/lib/__tests__/test-helpers/setup.d.ts.map +1 -1
  9. package/lib/__tests__/test-helpers/setup.js +6 -5
  10. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  11. package/lib/account/serialization.d.ts +1 -1
  12. package/lib/account/serialization.d.ts.map +1 -1
  13. package/lib/account/serialization.js +2 -2
  14. package/lib/account/serialization.js.map +1 -1
  15. package/lib/api/ofacGeoBlockApi.d.ts +4 -0
  16. package/lib/api/ofacGeoBlockApi.d.ts.map +1 -0
  17. package/lib/api/ofacGeoBlockApi.js +21 -0
  18. package/lib/api/ofacGeoBlockApi.js.map +1 -0
  19. package/lib/apps/config.d.ts.map +1 -1
  20. package/lib/apps/config.js +1 -0
  21. package/lib/apps/config.js.map +1 -1
  22. package/lib/bot/engine.d.ts +5 -5
  23. package/lib/bot/engine.d.ts.map +1 -1
  24. package/lib/bot/engine.js.map +1 -1
  25. package/lib/bridge/crypto-assets/index.d.ts.map +1 -1
  26. package/lib/bridge/crypto-assets/index.js +2 -2
  27. package/lib/bridge/crypto-assets/index.js.map +1 -1
  28. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +2 -2
  29. package/lib/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  30. package/lib/bridge/generic-alpaca/createTransaction.js +6 -1
  31. package/lib/bridge/generic-alpaca/createTransaction.js.map +1 -1
  32. package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  33. package/lib/bridge/generic-alpaca/getTransactionStatus.js +1 -0
  34. package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  35. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts +2 -2
  36. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  37. package/lib/bridge/generic-alpaca/prepareTransaction.js +30 -26
  38. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  39. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  40. package/lib/bridge/generic-alpaca/signOperation.js +6 -4
  41. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  42. package/lib/bridge/generic-alpaca/signer/Eth.d.ts +2 -1
  43. package/lib/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -1
  44. package/lib/bridge/generic-alpaca/signer/Eth.js +2 -1
  45. package/lib/bridge/generic-alpaca/signer/Eth.js.map +1 -1
  46. package/lib/bridge/generic-alpaca/types.d.ts +61 -2
  47. package/lib/bridge/generic-alpaca/types.d.ts.map +1 -1
  48. package/lib/bridge/generic-alpaca/utils.d.ts +1 -1
  49. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  50. package/lib/bridge/generic-alpaca/utils.js +121 -7
  51. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  52. package/lib/bridge/index.d.ts +1 -1
  53. package/lib/bridge/index.d.ts.map +1 -1
  54. package/lib/bridge/index.js +2 -2
  55. package/lib/bridge/index.js.map +1 -1
  56. package/lib/currencies/index.d.ts +1 -1
  57. package/lib/currencies/index.d.ts.map +1 -1
  58. package/lib/currencies/index.js +1 -4
  59. package/lib/currencies/index.js.map +1 -1
  60. package/lib/dada-client/__mocks__/assets.mock.d.ts +383 -0
  61. package/lib/dada-client/__mocks__/assets.mock.d.ts.map +1 -0
  62. package/lib/dada-client/__mocks__/assets.mock.js +260 -0
  63. package/lib/dada-client/__mocks__/assets.mock.js.map +1 -0
  64. package/lib/dada-client/hooks/useAssetsData.d.ts +2 -1
  65. package/lib/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  66. package/lib/dada-client/hooks/useAssetsData.js +2 -2
  67. package/lib/dada-client/hooks/useAssetsData.js.map +1 -1
  68. package/lib/dada-client/hooks/useLazyLedgerCurrency.d.ts +13 -0
  69. package/lib/dada-client/hooks/useLazyLedgerCurrency.d.ts.map +1 -0
  70. package/lib/dada-client/hooks/useLazyLedgerCurrency.js +34 -0
  71. package/lib/dada-client/hooks/useLazyLedgerCurrency.js.map +1 -0
  72. package/lib/dada-client/index.d.ts +2 -0
  73. package/lib/dada-client/index.d.ts.map +1 -0
  74. package/lib/dada-client/index.js +18 -0
  75. package/lib/dada-client/index.js.map +1 -0
  76. package/lib/dada-client/state-manager/api.js +1 -1
  77. package/lib/dada-client/state-manager/api.js.map +1 -1
  78. package/lib/dada-client/utils/currencySelection.d.ts +10 -0
  79. package/lib/dada-client/utils/currencySelection.d.ts.map +1 -0
  80. package/lib/dada-client/utils/currencySelection.js +34 -0
  81. package/lib/dada-client/utils/currencySelection.js.map +1 -0
  82. package/lib/deposit/helper.d.ts +1 -1
  83. package/lib/deposit/helper.d.ts.map +1 -1
  84. package/lib/deposit/helper.js +3 -2
  85. package/lib/deposit/helper.js.map +1 -1
  86. package/lib/e2e/data/deviceLabelsData.d.ts.map +1 -1
  87. package/lib/e2e/data/deviceLabelsData.js +2 -1
  88. package/lib/e2e/data/deviceLabelsData.js.map +1 -1
  89. package/lib/e2e/enum/DeviceLabels.d.ts +5 -1
  90. package/lib/e2e/enum/DeviceLabels.d.ts.map +1 -1
  91. package/lib/e2e/enum/DeviceLabels.js +4 -0
  92. package/lib/e2e/enum/DeviceLabels.js.map +1 -1
  93. package/lib/e2e/index.d.ts +4 -8
  94. package/lib/e2e/index.d.ts.map +1 -1
  95. package/lib/e2e/speculos.d.ts +1 -1
  96. package/lib/e2e/speculos.d.ts.map +1 -1
  97. package/lib/e2e/speculos.js +24 -5
  98. package/lib/e2e/speculos.js.map +1 -1
  99. package/lib/e2e/speculosAppVersion.d.ts.map +1 -1
  100. package/lib/e2e/speculosAppVersion.js +1 -0
  101. package/lib/e2e/speculosAppVersion.js.map +1 -1
  102. package/lib/families/cosmos/datasets/coreum.d.ts.map +1 -1
  103. package/lib/families/cosmos/datasets/coreum.js +2 -1
  104. package/lib/families/cosmos/datasets/coreum.js.map +1 -1
  105. package/lib/families/near/config.d.ts.map +1 -1
  106. package/lib/families/near/config.js +1 -0
  107. package/lib/families/near/config.js.map +1 -1
  108. package/lib/families/solana/setup.d.ts +1 -1
  109. package/lib/families/tron/data.mock.d.ts +4 -4
  110. package/lib/families/tron/data.mock.d.ts.map +1 -1
  111. package/lib/families/tron/data.mock.js +27 -13
  112. package/lib/families/tron/data.mock.js.map +1 -1
  113. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  114. package/lib/featureFlags/defaultFeatures.js +3 -4
  115. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  116. package/lib/featureFlags/stakePrograms/index.d.ts +1 -0
  117. package/lib/featureFlags/stakePrograms/index.d.ts.map +1 -1
  118. package/lib/featureFlags/stakePrograms/index.js +13 -1
  119. package/lib/featureFlags/stakePrograms/index.js.map +1 -1
  120. package/lib/featureFlags/useFeature.d.ts +1 -1
  121. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  122. package/lib/generated/cli-transaction.d.ts +1 -1
  123. package/lib/generated/transaction.d.ts +1 -1
  124. package/lib/hw/actions/implementations.d.ts.map +1 -1
  125. package/lib/hw/actions/implementations.js +13 -7
  126. package/lib/hw/actions/implementations.js.map +1 -1
  127. package/lib/hw/connectAppEventMapper.d.ts.map +1 -1
  128. package/lib/hw/connectAppEventMapper.js +2 -2
  129. package/lib/hw/connectAppEventMapper.js.map +1 -1
  130. package/lib/market/hooks/useLargeMoverCurrencies.d.ts +1 -1
  131. package/lib/market/hooks/useMarketDataProvider.d.ts +2 -2
  132. package/lib/market/hooks/useMarketDataProvider.d.ts.map +1 -1
  133. package/lib/market/hooks/useMarketDataProvider.js +4 -7
  134. package/lib/market/hooks/useMarketDataProvider.js.map +1 -1
  135. package/lib/market/utils/currencyFormatter.d.ts +3 -4
  136. package/lib/market/utils/currencyFormatter.d.ts.map +1 -1
  137. package/lib/market/utils/currencyFormatter.js +3 -6
  138. package/lib/market/utils/currencyFormatter.js.map +1 -1
  139. package/lib/market/utils/queryKeys.d.ts +0 -1
  140. package/lib/market/utils/queryKeys.d.ts.map +1 -1
  141. package/lib/market/utils/queryKeys.js +0 -1
  142. package/lib/market/utils/queryKeys.js.map +1 -1
  143. package/lib/market/utils/types.d.ts +6 -8
  144. package/lib/market/utils/types.d.ts.map +1 -1
  145. package/lib/market/utils/types.js.map +1 -1
  146. package/lib/mock/fixtures/cryptoCurrencies.d.ts.map +1 -1
  147. package/lib/mock/fixtures/cryptoCurrencies.js +10 -1
  148. package/lib/mock/fixtures/cryptoCurrencies.js.map +1 -1
  149. package/lib/modularDrawer/__mocks__/currencies.mock.d.ts +1 -1
  150. package/lib/modularDrawer/__mocks__/currencies.mock.d.ts.map +1 -1
  151. package/lib/modularDrawer/__mocks__/currencies.mock.js +1 -1
  152. package/lib/modularDrawer/__mocks__/currencies.mock.js.map +1 -1
  153. package/lib/modularDrawer/utils/currencyUtils.d.ts +3 -3
  154. package/lib/modularDrawer/utils/currencyUtils.d.ts.map +1 -1
  155. package/lib/modularDrawer/utils/currencyUtils.js +8 -8
  156. package/lib/modularDrawer/utils/currencyUtils.js.map +1 -1
  157. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts.map +1 -1
  158. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js +13 -4
  159. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js.map +1 -1
  160. package/lib/postOnboarding/mock.d.ts +1 -0
  161. package/lib/postOnboarding/mock.d.ts.map +1 -1
  162. package/lib/postOnboarding/mock.js +3 -1
  163. package/lib/postOnboarding/mock.js.map +1 -1
  164. package/lib/postOnboarding/reducer.d.ts +16 -14
  165. package/lib/postOnboarding/reducer.d.ts.map +1 -1
  166. package/lib/transaction/index.d.ts +1 -1
  167. package/lib/transaction/index.d.ts.map +1 -1
  168. package/lib/transaction/index.js +2 -2
  169. package/lib/transaction/index.js.map +1 -1
  170. package/lib/utils/addressUtils.d.ts +15 -0
  171. package/lib/utils/addressUtils.d.ts.map +1 -0
  172. package/lib/utils/addressUtils.js +39 -0
  173. package/lib/utils/addressUtils.js.map +1 -0
  174. package/lib/wallet-api/ACRE/server.d.ts.map +1 -1
  175. package/lib/wallet-api/ACRE/server.js +19 -15
  176. package/lib/wallet-api/ACRE/server.js.map +1 -1
  177. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  178. package/lib/wallet-api/Exchange/server.js +8 -5
  179. package/lib/wallet-api/Exchange/server.js.map +1 -1
  180. package/lib/wallet-api/logic.d.ts.map +1 -1
  181. package/lib/wallet-api/logic.js +29 -29
  182. package/lib/wallet-api/logic.js.map +1 -1
  183. package/lib/wallet-api/react.d.ts.map +1 -1
  184. package/lib/wallet-api/react.js +37 -29
  185. package/lib/wallet-api/react.js.map +1 -1
  186. package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
  187. package/lib/wallet-api/useDappLogic.js +76 -60
  188. package/lib/wallet-api/useDappLogic.js.map +1 -1
  189. package/lib-es/DataModel.d.ts +2 -2
  190. package/lib-es/DataModel.d.ts.map +1 -1
  191. package/lib-es/DataModel.js +2 -2
  192. package/lib-es/DataModel.js.map +1 -1
  193. package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
  194. package/lib-es/__tests__/test-helpers/bridge.js +103 -47
  195. package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
  196. package/lib-es/__tests__/test-helpers/setup.d.ts.map +1 -1
  197. package/lib-es/__tests__/test-helpers/setup.js +6 -5
  198. package/lib-es/__tests__/test-helpers/setup.js.map +1 -1
  199. package/lib-es/account/serialization.d.ts +1 -1
  200. package/lib-es/account/serialization.d.ts.map +1 -1
  201. package/lib-es/account/serialization.js +2 -2
  202. package/lib-es/account/serialization.js.map +1 -1
  203. package/lib-es/api/ofacGeoBlockApi.d.ts +4 -0
  204. package/lib-es/api/ofacGeoBlockApi.d.ts.map +1 -0
  205. package/lib-es/api/ofacGeoBlockApi.js +18 -0
  206. package/lib-es/api/ofacGeoBlockApi.js.map +1 -0
  207. package/lib-es/apps/config.d.ts.map +1 -1
  208. package/lib-es/apps/config.js +1 -0
  209. package/lib-es/apps/config.js.map +1 -1
  210. package/lib-es/bot/engine.d.ts +5 -5
  211. package/lib-es/bot/engine.d.ts.map +1 -1
  212. package/lib-es/bot/engine.js.map +1 -1
  213. package/lib-es/bridge/crypto-assets/index.d.ts.map +1 -1
  214. package/lib-es/bridge/crypto-assets/index.js +1 -1
  215. package/lib-es/bridge/crypto-assets/index.js.map +1 -1
  216. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +2 -2
  217. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  218. package/lib-es/bridge/generic-alpaca/createTransaction.js +6 -1
  219. package/lib-es/bridge/generic-alpaca/createTransaction.js.map +1 -1
  220. package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  221. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +1 -0
  222. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  223. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts +2 -2
  224. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  225. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +30 -26
  226. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  227. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  228. package/lib-es/bridge/generic-alpaca/signOperation.js +6 -4
  229. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  230. package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts +2 -1
  231. package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -1
  232. package/lib-es/bridge/generic-alpaca/signer/Eth.js +2 -1
  233. package/lib-es/bridge/generic-alpaca/signer/Eth.js.map +1 -1
  234. package/lib-es/bridge/generic-alpaca/types.d.ts +61 -2
  235. package/lib-es/bridge/generic-alpaca/types.d.ts.map +1 -1
  236. package/lib-es/bridge/generic-alpaca/utils.d.ts +1 -1
  237. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  238. package/lib-es/bridge/generic-alpaca/utils.js +121 -7
  239. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  240. package/lib-es/bridge/index.d.ts +1 -1
  241. package/lib-es/bridge/index.d.ts.map +1 -1
  242. package/lib-es/bridge/index.js +2 -2
  243. package/lib-es/bridge/index.js.map +1 -1
  244. package/lib-es/currencies/index.d.ts +1 -1
  245. package/lib-es/currencies/index.d.ts.map +1 -1
  246. package/lib-es/currencies/index.js +1 -1
  247. package/lib-es/currencies/index.js.map +1 -1
  248. package/lib-es/dada-client/__mocks__/assets.mock.d.ts +383 -0
  249. package/lib-es/dada-client/__mocks__/assets.mock.d.ts.map +1 -0
  250. package/lib-es/dada-client/__mocks__/assets.mock.js +257 -0
  251. package/lib-es/dada-client/__mocks__/assets.mock.js.map +1 -0
  252. package/lib-es/dada-client/hooks/useAssetsData.d.ts +2 -1
  253. package/lib-es/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  254. package/lib-es/dada-client/hooks/useAssetsData.js +2 -2
  255. package/lib-es/dada-client/hooks/useAssetsData.js.map +1 -1
  256. package/lib-es/dada-client/hooks/useLazyLedgerCurrency.d.ts +13 -0
  257. package/lib-es/dada-client/hooks/useLazyLedgerCurrency.d.ts.map +1 -0
  258. package/lib-es/dada-client/hooks/useLazyLedgerCurrency.js +27 -0
  259. package/lib-es/dada-client/hooks/useLazyLedgerCurrency.js.map +1 -0
  260. package/lib-es/dada-client/index.d.ts +2 -0
  261. package/lib-es/dada-client/index.d.ts.map +1 -0
  262. package/lib-es/dada-client/index.js +2 -0
  263. package/lib-es/dada-client/index.js.map +1 -0
  264. package/lib-es/dada-client/state-manager/api.js +1 -1
  265. package/lib-es/dada-client/state-manager/api.js.map +1 -1
  266. package/lib-es/dada-client/utils/currencySelection.d.ts +10 -0
  267. package/lib-es/dada-client/utils/currencySelection.d.ts.map +1 -0
  268. package/lib-es/dada-client/utils/currencySelection.js +30 -0
  269. package/lib-es/dada-client/utils/currencySelection.js.map +1 -0
  270. package/lib-es/deposit/helper.d.ts +1 -1
  271. package/lib-es/deposit/helper.d.ts.map +1 -1
  272. package/lib-es/deposit/helper.js +4 -3
  273. package/lib-es/deposit/helper.js.map +1 -1
  274. package/lib-es/e2e/data/deviceLabelsData.d.ts.map +1 -1
  275. package/lib-es/e2e/data/deviceLabelsData.js +2 -1
  276. package/lib-es/e2e/data/deviceLabelsData.js.map +1 -1
  277. package/lib-es/e2e/enum/DeviceLabels.d.ts +5 -1
  278. package/lib-es/e2e/enum/DeviceLabels.d.ts.map +1 -1
  279. package/lib-es/e2e/enum/DeviceLabels.js +4 -0
  280. package/lib-es/e2e/enum/DeviceLabels.js.map +1 -1
  281. package/lib-es/e2e/index.d.ts +4 -8
  282. package/lib-es/e2e/index.d.ts.map +1 -1
  283. package/lib-es/e2e/speculos.d.ts +1 -1
  284. package/lib-es/e2e/speculos.d.ts.map +1 -1
  285. package/lib-es/e2e/speculos.js +24 -5
  286. package/lib-es/e2e/speculos.js.map +1 -1
  287. package/lib-es/e2e/speculosAppVersion.d.ts.map +1 -1
  288. package/lib-es/e2e/speculosAppVersion.js +1 -0
  289. package/lib-es/e2e/speculosAppVersion.js.map +1 -1
  290. package/lib-es/families/cosmos/datasets/coreum.d.ts.map +1 -1
  291. package/lib-es/families/cosmos/datasets/coreum.js +2 -1
  292. package/lib-es/families/cosmos/datasets/coreum.js.map +1 -1
  293. package/lib-es/families/near/config.d.ts.map +1 -1
  294. package/lib-es/families/near/config.js +1 -0
  295. package/lib-es/families/near/config.js.map +1 -1
  296. package/lib-es/families/solana/setup.d.ts +1 -1
  297. package/lib-es/families/tron/data.mock.d.ts +4 -4
  298. package/lib-es/families/tron/data.mock.d.ts.map +1 -1
  299. package/lib-es/families/tron/data.mock.js +22 -12
  300. package/lib-es/families/tron/data.mock.js.map +1 -1
  301. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  302. package/lib-es/featureFlags/defaultFeatures.js +3 -4
  303. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  304. package/lib-es/featureFlags/stakePrograms/index.d.ts +1 -0
  305. package/lib-es/featureFlags/stakePrograms/index.d.ts.map +1 -1
  306. package/lib-es/featureFlags/stakePrograms/index.js +11 -0
  307. package/lib-es/featureFlags/stakePrograms/index.js.map +1 -1
  308. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  309. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  310. package/lib-es/generated/cli-transaction.d.ts +1 -1
  311. package/lib-es/generated/transaction.d.ts +1 -1
  312. package/lib-es/hw/actions/implementations.d.ts.map +1 -1
  313. package/lib-es/hw/actions/implementations.js +15 -9
  314. package/lib-es/hw/actions/implementations.js.map +1 -1
  315. package/lib-es/hw/connectAppEventMapper.d.ts.map +1 -1
  316. package/lib-es/hw/connectAppEventMapper.js +3 -3
  317. package/lib-es/hw/connectAppEventMapper.js.map +1 -1
  318. package/lib-es/market/hooks/useLargeMoverCurrencies.d.ts +1 -1
  319. package/lib-es/market/hooks/useMarketDataProvider.d.ts +2 -2
  320. package/lib-es/market/hooks/useMarketDataProvider.d.ts.map +1 -1
  321. package/lib-es/market/hooks/useMarketDataProvider.js +2 -5
  322. package/lib-es/market/hooks/useMarketDataProvider.js.map +1 -1
  323. package/lib-es/market/utils/currencyFormatter.d.ts +3 -4
  324. package/lib-es/market/utils/currencyFormatter.d.ts.map +1 -1
  325. package/lib-es/market/utils/currencyFormatter.js +3 -6
  326. package/lib-es/market/utils/currencyFormatter.js.map +1 -1
  327. package/lib-es/market/utils/queryKeys.d.ts +0 -1
  328. package/lib-es/market/utils/queryKeys.d.ts.map +1 -1
  329. package/lib-es/market/utils/queryKeys.js +0 -1
  330. package/lib-es/market/utils/queryKeys.js.map +1 -1
  331. package/lib-es/market/utils/types.d.ts +6 -8
  332. package/lib-es/market/utils/types.d.ts.map +1 -1
  333. package/lib-es/market/utils/types.js.map +1 -1
  334. package/lib-es/mock/fixtures/cryptoCurrencies.d.ts.map +1 -1
  335. package/lib-es/mock/fixtures/cryptoCurrencies.js +11 -2
  336. package/lib-es/mock/fixtures/cryptoCurrencies.js.map +1 -1
  337. package/lib-es/modularDrawer/__mocks__/currencies.mock.d.ts +1 -1
  338. package/lib-es/modularDrawer/__mocks__/currencies.mock.d.ts.map +1 -1
  339. package/lib-es/modularDrawer/__mocks__/currencies.mock.js +1 -1
  340. package/lib-es/modularDrawer/__mocks__/currencies.mock.js.map +1 -1
  341. package/lib-es/modularDrawer/utils/currencyUtils.d.ts +3 -3
  342. package/lib-es/modularDrawer/utils/currencyUtils.d.ts.map +1 -1
  343. package/lib-es/modularDrawer/utils/currencyUtils.js +8 -8
  344. package/lib-es/modularDrawer/utils/currencyUtils.js.map +1 -1
  345. package/lib-es/postOnboarding/hooks/usePostOnboardingHubState.d.ts.map +1 -1
  346. package/lib-es/postOnboarding/hooks/usePostOnboardingHubState.js +13 -4
  347. package/lib-es/postOnboarding/hooks/usePostOnboardingHubState.js.map +1 -1
  348. package/lib-es/postOnboarding/mock.d.ts +1 -0
  349. package/lib-es/postOnboarding/mock.d.ts.map +1 -1
  350. package/lib-es/postOnboarding/mock.js +2 -0
  351. package/lib-es/postOnboarding/mock.js.map +1 -1
  352. package/lib-es/postOnboarding/reducer.d.ts +16 -14
  353. package/lib-es/postOnboarding/reducer.d.ts.map +1 -1
  354. package/lib-es/transaction/index.d.ts +1 -1
  355. package/lib-es/transaction/index.d.ts.map +1 -1
  356. package/lib-es/transaction/index.js +2 -2
  357. package/lib-es/transaction/index.js.map +1 -1
  358. package/lib-es/utils/addressUtils.d.ts +15 -0
  359. package/lib-es/utils/addressUtils.d.ts.map +1 -0
  360. package/lib-es/utils/addressUtils.js +35 -0
  361. package/lib-es/utils/addressUtils.js.map +1 -0
  362. package/lib-es/wallet-api/ACRE/server.d.ts.map +1 -1
  363. package/lib-es/wallet-api/ACRE/server.js +19 -15
  364. package/lib-es/wallet-api/ACRE/server.js.map +1 -1
  365. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  366. package/lib-es/wallet-api/Exchange/server.js +9 -6
  367. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  368. package/lib-es/wallet-api/logic.d.ts.map +1 -1
  369. package/lib-es/wallet-api/logic.js +26 -26
  370. package/lib-es/wallet-api/logic.js.map +1 -1
  371. package/lib-es/wallet-api/react.d.ts.map +1 -1
  372. package/lib-es/wallet-api/react.js +38 -30
  373. package/lib-es/wallet-api/react.js.map +1 -1
  374. package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
  375. package/lib-es/wallet-api/useDappLogic.js +74 -58
  376. package/lib-es/wallet-api/useDappLogic.js.map +1 -1
  377. package/package.json +51 -47
  378. package/src/DataModel.test.ts +74 -24
  379. package/src/DataModel.ts +4 -4
  380. package/src/__tests__/accounts/groupPerDay.ts +182 -177
  381. package/src/__tests__/csvExport.ts +3 -0
  382. package/src/__tests__/migration/account-migration.ts +2 -2
  383. package/src/__tests__/test-helpers/bridge.ts +426 -358
  384. package/src/__tests__/test-helpers/setup.ts +7 -6
  385. package/src/account/serialization.test.ts +6 -6
  386. package/src/account/serialization.ts +2 -2
  387. package/src/api/ofacGeoBlockApi.ts +19 -0
  388. package/src/apps/config.ts +1 -0
  389. package/src/bot/engine.ts +5 -5
  390. package/src/bridge/cache.test.ts +2 -0
  391. package/src/bridge/crypto-assets/index.test.ts +3 -9
  392. package/src/bridge/crypto-assets/index.ts +1 -1
  393. package/src/bridge/generic-alpaca/alpaca/network/network-alpaca.ts +3 -3
  394. package/src/bridge/generic-alpaca/createTransaction.ts +6 -1
  395. package/src/bridge/generic-alpaca/getTransactionStatus.ts +1 -0
  396. package/src/bridge/generic-alpaca/prepareTransaction.ts +36 -41
  397. package/src/bridge/generic-alpaca/signOperation.ts +10 -4
  398. package/src/bridge/generic-alpaca/signer/Eth.ts +4 -2
  399. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +29 -76
  400. package/src/bridge/generic-alpaca/tests/signOperation.test.ts +10 -2
  401. package/src/bridge/generic-alpaca/types.ts +80 -2
  402. package/src/bridge/generic-alpaca/utils.test.ts +58 -2
  403. package/src/bridge/generic-alpaca/utils.ts +151 -10
  404. package/src/bridge/index.ts +2 -2
  405. package/src/bridge/useBridgeTransaction.test.ts +9 -6
  406. package/src/currencies/cryptoIcons.test.ts +10 -5
  407. package/src/currencies/index.ts +0 -3
  408. package/src/currencies/sortByMarketcap.test.ts +4 -1
  409. package/src/dada-client/README.md +38 -0
  410. package/src/dada-client/__mocks__/assets.mock.ts +264 -0
  411. package/src/dada-client/hooks/__tests__/useLazyLedgerCurrency.test.ts +155 -0
  412. package/src/dada-client/hooks/useAssetsData.ts +14 -9
  413. package/src/dada-client/hooks/useLazyLedgerCurrency.ts +46 -0
  414. package/src/dada-client/index.ts +1 -0
  415. package/src/dada-client/state-manager/api.ts +1 -1
  416. package/src/dada-client/utils/__test__/currencySelection.test.ts +16 -0
  417. package/src/dada-client/utils/currencySelection.ts +33 -0
  418. package/src/deposit/deposit.integration.test.ts +15 -0
  419. package/src/deposit/deposit.test.ts +60 -40
  420. package/src/deposit/helper.ts +4 -8
  421. package/src/domain/getTokensWithFunds.test.ts +4 -0
  422. package/src/e2e/data/deviceLabelsData.ts +2 -1
  423. package/src/e2e/enum/DeviceLabels.ts +4 -0
  424. package/src/e2e/speculos.ts +26 -6
  425. package/src/e2e/speculosAppVersion.ts +1 -0
  426. package/src/families/aptos/__snapshots__/bridge.integration.test.ts.snap +12 -12
  427. package/src/families/bitcoin/__snapshots__/bridge.integration.test.ts.snap +1482 -843
  428. package/src/families/bitcoin/satstack.test.ts +33 -20
  429. package/src/families/cosmos/datasets/__snapshots__/babylon.integration.test.ts.snap +1 -1
  430. package/src/families/cosmos/datasets/__snapshots__/coreum.integration.test.ts.snap +4 -4
  431. package/src/families/cosmos/datasets/__snapshots__/cosmos.integration.test.ts.snap +251 -209
  432. package/src/families/cosmos/datasets/coreum.ts +2 -1
  433. package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +675 -37
  434. package/src/families/multiversx/__snapshots__/bridge.integration.test.ts.snap +3 -3
  435. package/src/families/near/config.ts +1 -0
  436. package/src/families/polkadot/__snapshots__/bridge.integration.test.ts.snap +34 -34
  437. package/src/families/solana/__snapshots__/bridge.integration.test.ts.snap +3 -3
  438. package/src/families/stacks/__snapshots__/bridge.integration.test.ts.snap +10 -10
  439. package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +1183 -625
  440. package/src/families/sui/__snapshots__/bridge.integration.test.ts.snap +428 -0
  441. package/src/families/tron/data.mock.ts +32 -16
  442. package/src/families/tron/react.test.ts +16 -4
  443. package/src/featureFlags/defaultFeatures.ts +3 -4
  444. package/src/featureFlags/stakePrograms/index.ts +14 -0
  445. package/src/hw/actions/implementations.ts +22 -11
  446. package/src/hw/connectAppEventMapper.ts +2 -4
  447. package/src/market/hooks/useMarketDataProvider.ts +4 -8
  448. package/src/market/utils/currencyFormatter.ts +4 -18
  449. package/src/market/utils/queryKeys.ts +0 -1
  450. package/src/market/utils/types.ts +6 -8
  451. package/src/mock/fixtures/cryptoCurrencies.ts +11 -2
  452. package/src/modularDrawer/__mocks__/currencies.mock.ts +1 -1
  453. package/src/modularDrawer/utils/__tests__/currencyUtils.test.ts +10 -10
  454. package/src/modularDrawer/utils/currencyUtils.ts +11 -10
  455. package/src/platform/serializers.test.ts +2 -2
  456. package/src/postOnboarding/hooks/usePostOnboardingHubState.test.ts +30 -3
  457. package/src/postOnboarding/hooks/usePostOnboardingHubState.ts +20 -6
  458. package/src/postOnboarding/mock.ts +2 -0
  459. package/src/transaction/index.ts +2 -2
  460. package/src/utils/__tests__/addressUtils.test.ts +229 -0
  461. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +15 -4
  462. package/src/utils/addressUtils.ts +40 -0
  463. package/src/wallet-api/ACRE/server.test.ts +11 -8
  464. package/src/wallet-api/ACRE/server.ts +25 -22
  465. package/src/wallet-api/Exchange/server.ts +11 -8
  466. package/src/wallet-api/logic.test.ts +4 -0
  467. package/src/wallet-api/logic.ts +28 -32
  468. package/src/wallet-api/react.ts +37 -34
  469. package/src/wallet-api/useDappLogic.ts +103 -82
  470. package/lib/hooks/useOFACGeoBlockCheck.d.ts +0 -8
  471. package/lib/hooks/useOFACGeoBlockCheck.d.ts.map +0 -1
  472. package/lib/hooks/useOFACGeoBlockCheck.js +0 -32
  473. package/lib/hooks/useOFACGeoBlockCheck.js.map +0 -1
  474. package/lib-es/hooks/useOFACGeoBlockCheck.d.ts +0 -8
  475. package/lib-es/hooks/useOFACGeoBlockCheck.d.ts.map +0 -1
  476. package/lib-es/hooks/useOFACGeoBlockCheck.js +0 -28
  477. package/lib-es/hooks/useOFACGeoBlockCheck.js.map +0 -1
  478. package/src/hooks/useOFACGeoBlockCheck.ts +0 -37
@@ -24,7 +24,7 @@ import { Transaction } from "../generated/types";
24
24
  import { prepareMessageToSign } from "../hw/signMessage/index";
25
25
  import { getAccountBridge } from "../bridge";
26
26
  import { Exchange } from "../exchange/types";
27
- import { findTokenById } from "@ledgerhq/cryptoassets";
27
+ import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
28
28
  import { WalletState } from "@ledgerhq/live-wallet/store";
29
29
  import { getWalletAccount } from "@ledgerhq/coin-bitcoin/wallet-btc/index";
30
30
  import { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
@@ -40,7 +40,7 @@ export type WalletAPIContext = {
40
40
  tracking: TrackingAPI;
41
41
  };
42
42
 
43
- export function receiveOnAccountLogic(
43
+ export async function receiveOnAccountLogic(
44
44
  walletState: WalletState,
45
45
  { manifest, accounts, tracking }: WalletAPIContext,
46
46
  walletAccountId: string,
@@ -56,25 +56,25 @@ export function receiveOnAccountLogic(
56
56
  const accountId = getAccountIdFromWalletAccountId(walletAccountId);
57
57
  if (!accountId) {
58
58
  tracking.receiveFail(manifest);
59
- return Promise.reject(new Error(`accountId ${walletAccountId} unknown`));
59
+ throw new Error(`accountId ${walletAccountId} unknown`);
60
60
  }
61
61
 
62
62
  const account = accounts.find(account => account.id === accountId);
63
63
 
64
64
  if (!account) {
65
65
  tracking.receiveFail(manifest);
66
- return Promise.reject(new Error("Account required"));
66
+ throw new Error("Account required");
67
67
  }
68
68
 
69
69
  const parentAccount = getParentAccount(account, accounts);
70
70
  const mainAccount = getMainAccount(account, parentAccount);
71
- const currency = tokenCurrency ? findTokenById(tokenCurrency) : null;
71
+ const currency = tokenCurrency ? await getCryptoAssetsStore().findTokenById(tokenCurrency) : null;
72
72
  const receivingAccount = currency ? makeEmptyTokenAccount(mainAccount, currency) : account;
73
73
  const accountAddress = accountToWalletAPIAccount(walletState, account, parentAccount).address;
74
74
  return uiNavigation(receivingAccount, parentAccount, accountAddress);
75
75
  }
76
76
 
77
- export function signTransactionLogic(
77
+ export async function signTransactionLogic(
78
78
  { manifest, accounts, tracking }: WalletAPIContext,
79
79
  walletAccountId: string,
80
80
  transaction: WalletAPITransaction,
@@ -93,20 +93,20 @@ export function signTransactionLogic(
93
93
 
94
94
  if (!transaction) {
95
95
  tracking.signTransactionFail(manifest);
96
- return Promise.reject(new Error("Transaction required"));
96
+ throw new Error("Transaction required");
97
97
  }
98
98
 
99
99
  const accountId = getAccountIdFromWalletAccountId(walletAccountId);
100
100
  if (!accountId) {
101
101
  tracking.signTransactionFail(manifest);
102
- return Promise.reject(new Error(`accountId ${walletAccountId} unknown`));
102
+ throw new Error(`accountId ${walletAccountId} unknown`);
103
103
  }
104
104
 
105
105
  const account = accounts.find(account => account.id === accountId);
106
106
 
107
107
  if (!account) {
108
108
  tracking.signTransactionFail(manifest);
109
- return Promise.reject(new Error("Account required"));
109
+ throw new Error("Account required");
110
110
  }
111
111
 
112
112
  const parentAccount = getParentAccount(account, accounts);
@@ -116,7 +116,7 @@ export function signTransactionLogic(
116
116
  : account.currency.family;
117
117
 
118
118
  const mainAccount = getMainAccount(account, parentAccount);
119
- const currency = tokenCurrency ? findTokenById(tokenCurrency) : null;
119
+ const currency = tokenCurrency ? await getCryptoAssetsStore().findTokenById(tokenCurrency) : null;
120
120
  const signerAccount = currency ? makeEmptyTokenAccount(mainAccount, currency) : account;
121
121
 
122
122
  const { canEditFees, liveTx, hasFeesProvided } = getWalletAPITransactionSignFlowInfos({
@@ -125,10 +125,8 @@ export function signTransactionLogic(
125
125
  });
126
126
 
127
127
  if (accountFamily !== liveTx.family) {
128
- return Promise.reject(
129
- new Error(
130
- `Account and transaction must be from the same family. Account family: ${accountFamily}, Transaction family: ${liveTx.family}`,
131
- ),
128
+ throw new Error(
129
+ `Account and transaction must be from the same family. Account family: ${accountFamily}, Transaction family: ${liveTx.family}`,
132
130
  );
133
131
  }
134
132
 
@@ -153,20 +151,20 @@ export function signRawTransactionLogic(
153
151
 
154
152
  if (!transaction) {
155
153
  tracking.signRawTransactionFail(manifest);
156
- return Promise.reject(new Error("Transaction required"));
154
+ throw new Error("Transaction required");
157
155
  }
158
156
 
159
157
  const accountId = getAccountIdFromWalletAccountId(walletAccountId);
160
158
  if (!accountId) {
161
159
  tracking.signRawTransactionFail(manifest);
162
- return Promise.reject(new Error(`accountId ${walletAccountId} unknown`));
160
+ throw new Error(`accountId ${walletAccountId} unknown`);
163
161
  }
164
162
 
165
163
  const account = accounts.find(account => account.id === accountId);
166
164
 
167
165
  if (!account) {
168
166
  tracking.signRawTransactionFail(manifest);
169
- return Promise.reject(new Error("Account required"));
167
+ throw new Error("Account required");
170
168
  }
171
169
 
172
170
  const parentAccount = getParentAccount(account, accounts);
@@ -174,7 +172,7 @@ export function signRawTransactionLogic(
174
172
  return uiNavigation(account, parentAccount, transaction);
175
173
  }
176
174
 
177
- export function broadcastTransactionLogic(
175
+ export async function broadcastTransactionLogic(
178
176
  { manifest, accounts, tracking }: WalletAPIContext,
179
177
  walletAccountId: string,
180
178
  signedOperation: SignedOperation,
@@ -187,22 +185,22 @@ export function broadcastTransactionLogic(
187
185
  ): Promise<string> {
188
186
  if (!signedOperation) {
189
187
  tracking.broadcastFail(manifest);
190
- return Promise.reject(new Error("Transaction required"));
188
+ throw new Error("Transaction required");
191
189
  }
192
190
 
193
191
  const accountId = getAccountIdFromWalletAccountId(walletAccountId);
194
192
  if (!accountId) {
195
193
  tracking.broadcastFail(manifest);
196
- return Promise.reject(new Error(`accountId ${walletAccountId} unknown`));
194
+ throw new Error(`accountId ${walletAccountId} unknown`);
197
195
  }
198
196
 
199
197
  const account = accounts.find(account => account.id === accountId);
200
198
  if (!account) {
201
199
  tracking.broadcastFail(manifest);
202
- return Promise.reject(new Error("Account required"));
200
+ throw new Error("Account required");
203
201
  }
204
202
 
205
- const currency = tokenCurrency ? findTokenById(tokenCurrency) : null;
203
+ const currency = tokenCurrency ? await getCryptoAssetsStore().findTokenById(tokenCurrency) : null;
206
204
  const parentAccount = getParentAccount(account, accounts);
207
205
  const mainAccount = getMainAccount(account, parentAccount);
208
206
  const signerAccount = currency ? makeEmptyTokenAccount(mainAccount, currency) : account;
@@ -414,7 +412,7 @@ export type CompleteExchangeUiRequest = {
414
412
  tokenCurrency?: string;
415
413
  };
416
414
 
417
- export function completeExchangeLogic(
415
+ export async function completeExchangeLogic(
418
416
  { manifest, accounts, tracking }: WalletAPIContext,
419
417
  {
420
418
  provider,
@@ -435,7 +433,7 @@ export function completeExchangeLogic(
435
433
 
436
434
  const realFromAccountId = getAccountIdFromWalletAccountId(fromAccountId);
437
435
  if (!realFromAccountId) {
438
- return Promise.reject(new Error(`accountId ${fromAccountId} unknown`));
436
+ throw new Error(`accountId ${fromAccountId} unknown`);
439
437
  }
440
438
 
441
439
  // Nb get a hold of the actual accounts, and parent accounts
@@ -446,23 +444,23 @@ export function completeExchangeLogic(
446
444
  if (toAccountId) {
447
445
  const realToAccountId = getAccountIdFromWalletAccountId(toAccountId);
448
446
  if (!realToAccountId) {
449
- return Promise.reject(new Error(`accountId ${toAccountId} unknown`));
447
+ throw new Error(`accountId ${toAccountId} unknown`);
450
448
  }
451
449
 
452
450
  toAccount = accounts.find(a => a.id === realToAccountId);
453
451
  }
454
452
 
455
453
  if (!fromAccount) {
456
- return Promise.reject();
454
+ throw new Error("From account not found");
457
455
  }
458
456
 
459
457
  if (exchangeType === 0x00 && !toAccount) {
460
458
  // if we do a swap, a destination account must be provided
461
- return Promise.reject();
459
+ throw new Error("To account required for swap");
462
460
  }
463
461
 
464
462
  const fromParentAccount = getParentAccount(fromAccount, accounts);
465
- const currency = tokenCurrency ? findTokenById(tokenCurrency) : null;
463
+ const currency = tokenCurrency ? await getCryptoAssetsStore().findTokenById(tokenCurrency) : null;
466
464
  const newTokenAccount = currency ? makeEmptyTokenAccount(toAccount, currency) : undefined;
467
465
  const toParentAccount = toAccount ? getParentAccount(toAccount, accounts) : undefined;
468
466
  const exchange = {
@@ -484,10 +482,8 @@ export function completeExchangeLogic(
484
482
  });
485
483
 
486
484
  if (liveTx.family !== mainFromAccountFamily) {
487
- return Promise.reject(
488
- new Error(
489
- `Account and transaction must be from the same family. Account family: ${mainFromAccountFamily}, Transaction family: ${liveTx.family}`,
490
- ),
485
+ throw new Error(
486
+ `Account and transaction must be from the same family. Account family: ${mainFromAccountFamily}, Transaction family: ${liveTx.family}`,
491
487
  );
492
488
  }
493
489
 
@@ -19,12 +19,8 @@ import { isWalletAPISupportedCurrency } from "./helpers";
19
19
  import { WalletAPICurrency, AppManifest, WalletAPIAccount, WalletAPICustomHandlers } from "./types";
20
20
 
21
21
  import { getMainAccount, getParentAccount } from "../account";
22
- import {
23
- listCurrencies,
24
- findCryptoCurrencyById,
25
- findTokenById,
26
- getCryptoCurrencyById,
27
- } from "../currencies";
22
+ import { listCurrencies, findCryptoCurrencyById, getCryptoCurrencyById } from "../currencies";
23
+ import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
28
24
  import { TrackingAPI } from "./tracking";
29
25
  import {
30
26
  bitcoinFamilyAccountGetXPubLogic,
@@ -376,35 +372,42 @@ export function useWalletAPIServer({
376
372
  const currencies = await firstValueFrom(currencies$);
377
373
 
378
374
  return new Promise((resolve, reject) => {
379
- // handle no curencies selected case
380
- const currencyList = currencies.reduce<CryptoOrTokenCurrency[]>((prev, { id }) => {
381
- const currency = findCryptoCurrencyById(id) || findTokenById(id);
382
- if (currency) {
383
- prev.push(currency);
384
- }
385
- return prev;
386
- }, []);
375
+ (async () => {
376
+ try {
377
+ // handle no curencies selected case
378
+ const currencyList: CryptoOrTokenCurrency[] = [];
379
+ for (const { id } of currencies) {
380
+ const currency =
381
+ findCryptoCurrencyById(id) || (await getCryptoAssetsStore().findTokenById(id));
382
+ if (currency) {
383
+ currencyList.push(currency);
384
+ }
385
+ }
387
386
 
388
- let done = false;
389
- uiAccountRequest({
390
- accounts$,
391
- currencies: currencyList,
392
- drawerConfiguration,
393
- areCurrenciesFiltered,
394
- useCase,
395
- onSuccess: (account: AccountLike, parentAccount: Account | undefined) => {
396
- if (done) return;
397
- done = true;
398
- tracking.requestAccountSuccess(manifest);
399
- resolve(accountToWalletAPIAccount(walletState, account, parentAccount));
400
- },
401
- onCancel: () => {
402
- if (done) return;
403
- done = true;
404
- tracking.requestAccountFail(manifest);
405
- reject(new Error("Canceled by user"));
406
- },
407
- });
387
+ let done = false;
388
+ uiAccountRequest({
389
+ accounts$,
390
+ currencies: currencyList,
391
+ drawerConfiguration,
392
+ areCurrenciesFiltered,
393
+ useCase,
394
+ onSuccess: (account: AccountLike, parentAccount: Account | undefined) => {
395
+ if (done) return;
396
+ done = true;
397
+ tracking.requestAccountSuccess(manifest);
398
+ resolve(accountToWalletAPIAccount(walletState, account, parentAccount));
399
+ },
400
+ onCancel: () => {
401
+ if (done) return;
402
+ done = true;
403
+ tracking.requestAccountFail(manifest);
404
+ reject(new Error("Canceled by user"));
405
+ },
406
+ });
407
+ } catch (error) {
408
+ reject(error);
409
+ }
410
+ })();
408
411
  });
409
412
  },
410
413
  );
@@ -8,7 +8,8 @@ import { getAccountBridge } from "../bridge";
8
8
  import { getEnv } from "@ledgerhq/live-env";
9
9
  import network from "@ledgerhq/live-network/network";
10
10
  import { getWalletAPITransactionSignFlowInfos } from "./converters";
11
- import { findTokenByAddressInCurrency, getCryptoCurrencyById } from "@ledgerhq/cryptoassets/index";
11
+ import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/index";
12
+ import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
12
13
  import { prepareMessageToSign } from "../hw/signMessage/index";
13
14
  import { CurrentAccountHistDB, UiHook, usePermission } from "./react";
14
15
  import BigNumber from "bignumber.js";
@@ -473,92 +474,108 @@ export function useDappLogic({
473
474
  : currentParentAccount.freshAddress;
474
475
 
475
476
  if (address.toLowerCase() === ethTX.from.toLowerCase()) {
476
- let trackingData: DAppTrackingData | undefined;
477
- try {
478
- const signFlowInfos = getWalletAPITransactionSignFlowInfos({
479
- walletApiTransaction: tx,
480
- account: currentAccount,
481
- });
482
-
483
- const transactionType = getTxType(signFlowInfos.liveTx as EvmTransaction);
484
-
485
- const accountCurrencyName =
486
- currentAccount.type === "TokenAccount"
487
- ? currentAccount.token.name
488
- : currentAccount.currency.name;
489
-
490
- const accountNetwork =
491
- currentAccount.type === "TokenAccount"
492
- ? currentAccount.token.parentCurrency.id
493
- : currentAccount.currency.id;
494
-
495
- const token = findTokenByAddressInCurrency(tx.recipient, accountNetwork);
496
-
497
- trackingData = {
498
- type: transactionType,
499
- currency: token ? token.name : accountCurrencyName,
500
- network: token ? token.parentCurrency.id : accountNetwork,
501
- };
502
-
503
- const options = nanoApp
504
- ? { hwAppId: nanoApp, dependencies: dependencies }
505
- : undefined;
506
- tracking.dappSendTransactionRequested(manifest, trackingData);
507
-
508
- const signedTransaction = await new Promise<SignedOperation>((resolve, reject) =>
509
- uiHook["transaction.sign"]({
477
+ (async () => {
478
+ let trackingData: DAppTrackingData | undefined;
479
+ try {
480
+ const signFlowInfos = getWalletAPITransactionSignFlowInfos({
481
+ walletApiTransaction: tx,
510
482
  account: currentAccount,
511
- parentAccount: undefined,
512
- signFlowInfos,
513
- options,
514
- onSuccess: signedOperation => {
515
- resolve(signedOperation);
516
- },
517
- onError: error => {
518
- reject(error);
519
- },
520
- }),
521
- );
522
-
523
- const bridge = getAccountBridge(currentAccount, undefined);
524
- const mainAccount = getMainAccount(currentAccount, undefined);
525
-
526
- let optimisticOperation: Operation = signedTransaction.operation;
527
-
528
- if (!getEnv("DISABLE_TRANSACTION_BROADCAST")) {
529
- optimisticOperation = await bridge.broadcast({
530
- account: mainAccount,
531
- signedOperation: signedTransaction,
532
- broadcastConfig: { mevProtected: !!mevProtected },
533
483
  });
534
- }
535
-
536
- uiHook["transaction.broadcast"](
537
- currentAccount,
538
- undefined,
539
- mainAccount,
540
- optimisticOperation,
541
- );
542
-
543
- tracking.dappSendTransactionSuccess(manifest, trackingData);
544
484
 
485
+ const transactionType = getTxType(signFlowInfos.liveTx as EvmTransaction);
486
+
487
+ const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(
488
+ tx.recipient,
489
+ currentAccount.type === "TokenAccount"
490
+ ? currentAccount.token.parentCurrency.id
491
+ : currentAccount.currency.id,
492
+ );
493
+
494
+ const accountCurrencyName =
495
+ currentAccount.type === "TokenAccount"
496
+ ? currentAccount.token.name
497
+ : currentAccount.currency.name;
498
+
499
+ const accountNetwork =
500
+ currentAccount.type === "TokenAccount"
501
+ ? currentAccount.token.parentCurrency.id
502
+ : currentAccount.currency.id;
503
+
504
+ trackingData = {
505
+ type: transactionType,
506
+ currency: token ? token.name : accountCurrencyName,
507
+ network: token ? token.parentCurrency.id : accountNetwork,
508
+ };
509
+
510
+ const options = nanoApp
511
+ ? { hwAppId: nanoApp, dependencies: dependencies }
512
+ : undefined;
513
+ tracking.dappSendTransactionRequested(manifest, trackingData);
514
+
515
+ const signedTransaction = await new Promise<SignedOperation>((resolve, reject) =>
516
+ uiHook["transaction.sign"]({
517
+ account: currentAccount,
518
+ parentAccount: undefined,
519
+ signFlowInfos,
520
+ options,
521
+ onSuccess: signedOperation => {
522
+ resolve(signedOperation);
523
+ },
524
+ onError: error => {
525
+ reject(error);
526
+ },
527
+ }),
528
+ );
529
+
530
+ const bridge = getAccountBridge(currentAccount, undefined);
531
+ const mainAccount = getMainAccount(currentAccount, undefined);
532
+
533
+ let optimisticOperation: Operation = signedTransaction.operation;
534
+
535
+ if (!getEnv("DISABLE_TRANSACTION_BROADCAST")) {
536
+ optimisticOperation = await bridge.broadcast({
537
+ account: mainAccount,
538
+ signedOperation: signedTransaction,
539
+ broadcastConfig: { mevProtected: !!mevProtected },
540
+ });
541
+ }
542
+
543
+ uiHook["transaction.broadcast"](
544
+ currentAccount,
545
+ undefined,
546
+ mainAccount,
547
+ optimisticOperation,
548
+ );
549
+
550
+ tracking.dappSendTransactionSuccess(manifest, trackingData);
551
+
552
+ postMessage(
553
+ JSON.stringify({
554
+ id: data.id,
555
+ jsonrpc: "2.0",
556
+ result: optimisticOperation.hash,
557
+ }),
558
+ );
559
+ } catch (error) {
560
+ tracking.dappSendTransactionFail(manifest, trackingData);
561
+ postMessage(
562
+ JSON.stringify({
563
+ id: data.id,
564
+ jsonrpc: "2.0",
565
+ error: rejectedError("Transaction declined"),
566
+ }),
567
+ );
568
+ }
569
+ })().catch(error => {
570
+ console.error("Error in eth_sendTransaction handler:", error);
545
571
  postMessage(
546
572
  JSON.stringify({
547
573
  id: data.id,
548
574
  jsonrpc: "2.0",
549
- result: optimisticOperation.hash,
550
- }),
551
- );
552
- } catch (error) {
553
- tracking.dappSendTransactionFail(manifest, trackingData);
554
- postMessage(
555
- JSON.stringify({
556
- id: data.id,
557
- jsonrpc: "2.0",
558
- error: rejectedError("Transaction declined"),
575
+ error: rejectedError("Transaction processing failed"),
559
576
  }),
560
577
  );
561
- }
578
+ });
562
579
  }
563
580
  break;
564
581
  }
@@ -667,13 +684,17 @@ export function useDappLogic({
667
684
  if (ws.current) {
668
685
  ws.current.send(data);
669
686
  } else if (currentNetwork.nodeURL?.startsWith("https:")) {
670
- void network({
687
+ network({
671
688
  method: "POST",
672
689
  url: currentNetwork.nodeURL,
673
690
  data,
674
- }).then(res => {
675
- postMessage(JSON.stringify(res.data));
676
- });
691
+ })
692
+ .then(res => {
693
+ postMessage(JSON.stringify(res.data));
694
+ })
695
+ .catch(() => {
696
+ // Silently ignore network errors
697
+ });
677
698
  }
678
699
  break;
679
700
  }
@@ -1,8 +0,0 @@
1
- export declare const useOFACGeoBlockCheck: ({ onFinish, geoBlockingFeatureFlagKey, }: {
2
- onFinish?: (() => void) | undefined;
3
- geoBlockingFeatureFlagKey: "llmOfacGeoBlocking" | "lldOfacGeoBlocking";
4
- }) => {
5
- blocked: boolean;
6
- isLoading: boolean;
7
- };
8
- //# sourceMappingURL=useOFACGeoBlockCheck.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOFACGeoBlockCheck.d.ts","sourceRoot":"","sources":["../../src/hooks/useOFACGeoBlockCheck.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB;sBAId,IAAI;+BACM,oBAAoB,GAAG,oBAAoB;;;;CAwBvE,CAAC"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useOFACGeoBlockCheck = void 0;
4
- const react_1 = require("react");
5
- const featureFlags_1 = require("../featureFlags");
6
- const react_query_1 = require("@tanstack/react-query");
7
- const live_env_1 = require("@ledgerhq/live-env");
8
- const baseURL = () => (0, live_env_1.getEnv)("LEDGER_COUNTERVALUES_API");
9
- const useOFACGeoBlockCheck = ({ onFinish, geoBlockingFeatureFlagKey, }) => {
10
- const [blocked, setBlocked] = (0, react_1.useState)(false);
11
- const platformOfacGeoBlocking = (0, featureFlags_1.useFeature)(geoBlockingFeatureFlagKey);
12
- const { data, isLoading } = (0, react_query_1.useQuery)({
13
- queryKey: ["ofac-geo-block", geoBlockingFeatureFlagKey],
14
- queryFn: async () => {
15
- if (!platformOfacGeoBlocking?.enabled)
16
- return false;
17
- const res = await fetch(`${baseURL()}/v3/markets`);
18
- return res.status === 451;
19
- },
20
- });
21
- (0, react_1.useEffect)(() => {
22
- if (!platformOfacGeoBlocking?.enabled)
23
- return;
24
- setBlocked(data ?? false);
25
- if (typeof onFinish === "function") {
26
- onFinish();
27
- }
28
- }, [data, onFinish, platformOfacGeoBlocking]);
29
- return { blocked, isLoading };
30
- };
31
- exports.useOFACGeoBlockCheck = useOFACGeoBlockCheck;
32
- //# sourceMappingURL=useOFACGeoBlockCheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOFACGeoBlockCheck.js","sourceRoot":"","sources":["../../src/hooks/useOFACGeoBlockCheck.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAC5C,kDAA6C;AAC7C,uDAAiD;AACjD,iDAA4C;AAE5C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,iBAAM,EAAC,0BAA0B,CAAC,CAAC;AAElD,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,yBAAyB,GAI1B,EAAE,EAAE;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAEvD,MAAM,uBAAuB,GAAG,IAAA,yBAAU,EAAC,yBAAyB,CAAC,CAAC;IAEtE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAQ,EAAC;QACnC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;QACvD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,uBAAuB,EAAE,OAAO;gBAAE,OAAO,KAAK,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC;YACnD,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;QAC5B,CAAC;KACF,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,uBAAuB,EAAE,OAAO;YAAE,OAAO;QAC9C,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAC1B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,QAAQ,EAAE,CAAC;SACZ;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC,CAAC;AA7BW,QAAA,oBAAoB,wBA6B/B"}
@@ -1,8 +0,0 @@
1
- export declare const useOFACGeoBlockCheck: ({ onFinish, geoBlockingFeatureFlagKey, }: {
2
- onFinish?: (() => void) | undefined;
3
- geoBlockingFeatureFlagKey: "llmOfacGeoBlocking" | "lldOfacGeoBlocking";
4
- }) => {
5
- blocked: boolean;
6
- isLoading: boolean;
7
- };
8
- //# sourceMappingURL=useOFACGeoBlockCheck.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOFACGeoBlockCheck.d.ts","sourceRoot":"","sources":["../../src/hooks/useOFACGeoBlockCheck.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB;sBAId,IAAI;+BACM,oBAAoB,GAAG,oBAAoB;;;;CAwBvE,CAAC"}
@@ -1,28 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { useFeature } from "../featureFlags";
3
- import { useQuery } from "@tanstack/react-query";
4
- import { getEnv } from "@ledgerhq/live-env";
5
- const baseURL = () => getEnv("LEDGER_COUNTERVALUES_API");
6
- export const useOFACGeoBlockCheck = ({ onFinish, geoBlockingFeatureFlagKey, }) => {
7
- const [blocked, setBlocked] = useState(false);
8
- const platformOfacGeoBlocking = useFeature(geoBlockingFeatureFlagKey);
9
- const { data, isLoading } = useQuery({
10
- queryKey: ["ofac-geo-block", geoBlockingFeatureFlagKey],
11
- queryFn: async () => {
12
- if (!platformOfacGeoBlocking?.enabled)
13
- return false;
14
- const res = await fetch(`${baseURL()}/v3/markets`);
15
- return res.status === 451;
16
- },
17
- });
18
- useEffect(() => {
19
- if (!platformOfacGeoBlocking?.enabled)
20
- return;
21
- setBlocked(data ?? false);
22
- if (typeof onFinish === "function") {
23
- onFinish();
24
- }
25
- }, [data, onFinish, platformOfacGeoBlocking]);
26
- return { blocked, isLoading };
27
- };
28
- //# sourceMappingURL=useOFACGeoBlockCheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOFACGeoBlockCheck.js","sourceRoot":"","sources":["../../src/hooks/useOFACGeoBlockCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,yBAAyB,GAI1B,EAAE,EAAE;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEvD,MAAM,uBAAuB,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC;IAEtE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;QACvD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,uBAAuB,EAAE,OAAO;gBAAE,OAAO,KAAK,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC;YACnD,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;QAC5B,CAAC;KACF,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,uBAAuB,EAAE,OAAO;YAAE,OAAO;QAC9C,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAC1B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,QAAQ,EAAE,CAAC;SACZ;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { useFeature } from "../featureFlags";
3
- import { useQuery } from "@tanstack/react-query";
4
- import { getEnv } from "@ledgerhq/live-env";
5
-
6
- const baseURL = () => getEnv("LEDGER_COUNTERVALUES_API");
7
-
8
- export const useOFACGeoBlockCheck = ({
9
- onFinish,
10
- geoBlockingFeatureFlagKey,
11
- }: {
12
- onFinish?: () => void;
13
- geoBlockingFeatureFlagKey: "llmOfacGeoBlocking" | "lldOfacGeoBlocking";
14
- }) => {
15
- const [blocked, setBlocked] = useState<boolean>(false);
16
-
17
- const platformOfacGeoBlocking = useFeature(geoBlockingFeatureFlagKey);
18
-
19
- const { data, isLoading } = useQuery({
20
- queryKey: ["ofac-geo-block", geoBlockingFeatureFlagKey],
21
- queryFn: async () => {
22
- if (!platformOfacGeoBlocking?.enabled) return false;
23
- const res = await fetch(`${baseURL()}/v3/markets`);
24
- return res.status === 451;
25
- },
26
- });
27
-
28
- useEffect(() => {
29
- if (!platformOfacGeoBlocking?.enabled) return;
30
- setBlocked(data ?? false);
31
- if (typeof onFinish === "function") {
32
- onFinish();
33
- }
34
- }, [data, onFinish, platformOfacGeoBlocking]);
35
-
36
- return { blocked, isLoading };
37
- };