@ledgerhq/live-common 33.1.1 → 33.2.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 (608) hide show
  1. package/lib/__tests__/test-helpers/environment.js +2 -0
  2. package/lib/__tests__/test-helpers/environment.js.map +1 -1
  3. package/lib/apps/polyfill.d.ts +4 -0
  4. package/lib/apps/polyfill.d.ts.map +1 -1
  5. package/lib/apps/polyfill.js +1 -1
  6. package/lib/apps/polyfill.js.map +1 -1
  7. package/lib/bridge/useBridgeTransaction.js +1 -2
  8. package/lib/bridge/useBridgeTransaction.js.map +1 -1
  9. package/lib/countervalues/api/api.d.ts.map +1 -1
  10. package/lib/countervalues/api/api.js +1 -1
  11. package/lib/countervalues/api/api.js.map +1 -1
  12. package/lib/countervalues/logic.d.ts.map +1 -1
  13. package/lib/countervalues/logic.js +15 -17
  14. package/lib/countervalues/logic.js.map +1 -1
  15. package/lib/countervalues/modules/index.d.ts +1 -1
  16. package/lib/countervalues/modules/index.d.ts.map +1 -1
  17. package/lib/countervalues/modules/index.js +7 -2
  18. package/lib/countervalues/modules/index.js.map +1 -1
  19. package/lib/countervalues/react.d.ts.map +1 -1
  20. package/lib/countervalues/react.js.map +1 -1
  21. package/lib/currencies/mock.d.ts +4 -0
  22. package/lib/currencies/mock.d.ts.map +1 -0
  23. package/lib/currencies/mock.js +521 -0
  24. package/lib/currencies/mock.js.map +1 -0
  25. package/lib/currencies/sortByMarketcap.d.ts.map +1 -1
  26. package/lib/currencies/sortByMarketcap.js +16 -10
  27. package/lib/currencies/sortByMarketcap.js.map +1 -1
  28. package/lib/currencies/sortByMarketcap.test.js +20 -0
  29. package/lib/currencies/sortByMarketcap.test.js.map +1 -1
  30. package/lib/data/icons/react/cspr.d.ts +8 -0
  31. package/lib/data/icons/react/cspr.d.ts.map +1 -0
  32. package/lib/data/icons/react/cspr.js +38 -0
  33. package/lib/data/icons/react/cspr.js.map +1 -0
  34. package/lib/data/icons/react/index.d.ts +2 -0
  35. package/lib/data/icons/react/index.d.ts.map +1 -1
  36. package/lib/data/icons/react/index.js +13 -9
  37. package/lib/data/icons/react/index.js.map +1 -1
  38. package/lib/data/icons/react/lyx.d.ts +8 -0
  39. package/lib/data/icons/react/lyx.d.ts.map +1 -0
  40. package/lib/data/icons/react/lyx.js +34 -0
  41. package/lib/data/icons/react/lyx.js.map +1 -0
  42. package/lib/data/icons/reactNative/cspr.d.ts +8 -0
  43. package/lib/data/icons/reactNative/cspr.d.ts.map +1 -0
  44. package/lib/data/icons/reactNative/cspr.js +39 -0
  45. package/lib/data/icons/reactNative/cspr.js.map +1 -0
  46. package/lib/data/icons/reactNative/index.d.ts +2 -0
  47. package/lib/data/icons/reactNative/index.d.ts.map +1 -1
  48. package/lib/data/icons/reactNative/index.js +13 -9
  49. package/lib/data/icons/reactNative/index.js.map +1 -1
  50. package/lib/data/icons/reactNative/lyx.d.ts +8 -0
  51. package/lib/data/icons/reactNative/lyx.d.ts.map +1 -0
  52. package/lib/data/icons/reactNative/lyx.js +35 -0
  53. package/lib/data/icons/reactNative/lyx.js.map +1 -0
  54. package/lib/deviceSDK/tasks/core.test.js +10 -1
  55. package/lib/deviceSDK/tasks/core.test.js.map +1 -1
  56. package/lib/env.react.d.ts +1 -1
  57. package/lib/env.react.d.ts.map +1 -1
  58. package/lib/exchange/platform/transfer/completeExchange.d.ts.map +1 -1
  59. package/lib/exchange/platform/transfer/completeExchange.js +19 -12
  60. package/lib/exchange/platform/transfer/completeExchange.js.map +1 -1
  61. package/lib/exchange/swap/completeExchange.d.ts.map +1 -1
  62. package/lib/exchange/swap/completeExchange.js +6 -1
  63. package/lib/exchange/swap/completeExchange.js.map +1 -1
  64. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  65. package/lib/exchange/swap/hooks/useSwapTransaction.js +5 -1
  66. package/lib/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  67. package/lib/exchange/swap/index.js +2 -2
  68. package/lib/exchange/swap/index.js.map +1 -1
  69. package/lib/families/algorand/bridge/mock.d.ts.map +1 -1
  70. package/lib/families/algorand/bridge/mock.js +3 -1
  71. package/lib/families/algorand/bridge/mock.js.map +1 -1
  72. package/lib/families/bitcoin/exchange.d.ts +1 -1
  73. package/lib/families/casper/api/index.d.ts +11 -0
  74. package/lib/families/casper/api/index.d.ts.map +1 -0
  75. package/lib/families/casper/api/index.js +138 -0
  76. package/lib/families/casper/api/index.js.map +1 -0
  77. package/lib/families/casper/api/types.d.ts +105 -0
  78. package/lib/families/casper/api/types.d.ts.map +1 -0
  79. package/lib/families/casper/api/types.js +3 -0
  80. package/lib/families/casper/api/types.js.map +1 -0
  81. package/lib/families/casper/bridge/account.d.ts +5 -0
  82. package/lib/families/casper/bridge/account.d.ts.map +1 -0
  83. package/lib/families/casper/bridge/account.js +206 -0
  84. package/lib/families/casper/bridge/account.js.map +1 -0
  85. package/lib/families/casper/bridge/bridgeHelpers/accountShape.d.ts +3 -0
  86. package/lib/families/casper/bridge/bridgeHelpers/accountShape.d.ts.map +1 -0
  87. package/lib/families/casper/bridge/bridgeHelpers/accountShape.js +47 -0
  88. package/lib/families/casper/bridge/bridgeHelpers/accountShape.js.map +1 -0
  89. package/lib/families/casper/bridge/bridgeHelpers/addresses.d.ts +15 -0
  90. package/lib/families/casper/bridge/bridgeHelpers/addresses.d.ts.map +1 -0
  91. package/lib/families/casper/bridge/bridgeHelpers/addresses.js +109 -0
  92. package/lib/families/casper/bridge/bridgeHelpers/addresses.js.map +1 -0
  93. package/lib/families/casper/bridge/bridgeHelpers/fee.d.ts +3 -0
  94. package/lib/families/casper/bridge/bridgeHelpers/fee.d.ts.map +1 -0
  95. package/lib/families/casper/bridge/bridgeHelpers/fee.js +13 -0
  96. package/lib/families/casper/bridge/bridgeHelpers/fee.js.map +1 -0
  97. package/lib/families/casper/bridge/bridgeHelpers/transferId.d.ts +2 -0
  98. package/lib/families/casper/bridge/bridgeHelpers/transferId.d.ts.map +1 -0
  99. package/lib/families/casper/bridge/bridgeHelpers/transferId.js +14 -0
  100. package/lib/families/casper/bridge/bridgeHelpers/transferId.js.map +1 -0
  101. package/lib/families/casper/bridge/bridgeHelpers/txn.d.ts +10 -0
  102. package/lib/families/casper/bridge/bridgeHelpers/txn.d.ts.map +1 -0
  103. package/lib/families/casper/bridge/bridgeHelpers/txn.js +95 -0
  104. package/lib/families/casper/bridge/bridgeHelpers/txn.js.map +1 -0
  105. package/lib/families/casper/bridge/currency.d.ts +3 -0
  106. package/lib/families/casper/bridge/currency.d.ts.map +1 -0
  107. package/lib/families/casper/bridge/currency.js +12 -0
  108. package/lib/families/casper/bridge/currency.js.map +1 -0
  109. package/lib/families/casper/bridge/js.d.ts +6 -0
  110. package/lib/families/casper/bridge/js.d.ts.map +1 -0
  111. package/lib/families/casper/bridge/js.js +9 -0
  112. package/lib/families/casper/bridge/js.js.map +1 -0
  113. package/lib/families/casper/bridge/mock.d.ts +8 -0
  114. package/lib/families/casper/bridge/mock.d.ts.map +1 -0
  115. package/lib/families/casper/bridge/mock.js +133 -0
  116. package/lib/families/casper/bridge/mock.js.map +1 -0
  117. package/lib/families/casper/bridge.integration.test.d.ts +2 -0
  118. package/lib/families/casper/bridge.integration.test.d.ts.map +1 -0
  119. package/lib/families/casper/bridge.integration.test.js +166 -0
  120. package/lib/families/casper/bridge.integration.test.js.map +1 -0
  121. package/lib/families/casper/consts.d.ts +11 -0
  122. package/lib/families/casper/consts.d.ts.map +1 -0
  123. package/lib/families/casper/consts.js +19 -0
  124. package/lib/families/casper/consts.js.map +1 -0
  125. package/lib/families/casper/deviceTransactionConfig.d.ts +17 -0
  126. package/lib/families/casper/deviceTransactionConfig.d.ts.map +1 -0
  127. package/lib/families/casper/deviceTransactionConfig.js +26 -0
  128. package/lib/families/casper/deviceTransactionConfig.js.map +1 -0
  129. package/lib/families/casper/errors.d.ts +10 -0
  130. package/lib/families/casper/errors.d.ts.map +1 -0
  131. package/lib/families/casper/errors.js +8 -0
  132. package/lib/families/casper/errors.js.map +1 -0
  133. package/lib/families/casper/hw-getAddress.d.ts +4 -0
  134. package/lib/families/casper/hw-getAddress.d.ts.map +1 -0
  135. package/lib/families/casper/hw-getAddress.js +33 -0
  136. package/lib/families/casper/hw-getAddress.js.map +1 -0
  137. package/lib/families/casper/hw-signMessage.d.ts +6 -0
  138. package/lib/families/casper/hw-signMessage.d.ts.map +1 -0
  139. package/lib/families/casper/hw-signMessage.js +37 -0
  140. package/lib/families/casper/hw-signMessage.js.map +1 -0
  141. package/lib/families/casper/msc-utils.d.ts +13 -0
  142. package/lib/families/casper/msc-utils.d.ts.map +1 -0
  143. package/lib/families/casper/msc-utils.js +53 -0
  144. package/lib/families/casper/msc-utils.js.map +1 -0
  145. package/lib/families/casper/specs.d.ts +7 -0
  146. package/lib/families/casper/specs.d.ts.map +1 -0
  147. package/lib/families/casper/specs.js +108 -0
  148. package/lib/families/casper/specs.js.map +1 -0
  149. package/lib/families/casper/speculos-deviceActions.d.ts +4 -0
  150. package/lib/families/casper/speculos-deviceActions.d.ts.map +1 -0
  151. package/lib/families/casper/speculos-deviceActions.js +53 -0
  152. package/lib/families/casper/speculos-deviceActions.js.map +1 -0
  153. package/lib/families/casper/transaction.d.ts +14 -0
  154. package/lib/families/casper/transaction.d.ts.map +1 -0
  155. package/lib/families/casper/transaction.js +40 -0
  156. package/lib/families/casper/transaction.js.map +1 -0
  157. package/lib/families/casper/types.d.ts +22 -0
  158. package/lib/families/casper/types.d.ts.map +1 -0
  159. package/lib/families/casper/types.js +3 -0
  160. package/lib/families/casper/types.js.map +1 -0
  161. package/lib/families/crypto_org/js-getTransactionStatus.d.ts.map +1 -1
  162. package/lib/families/crypto_org/js-getTransactionStatus.js +3 -1
  163. package/lib/families/crypto_org/js-getTransactionStatus.js.map +1 -1
  164. package/lib/families/internet_computer/bridge/account.d.ts.map +1 -1
  165. package/lib/families/internet_computer/bridge/account.js +6 -2
  166. package/lib/families/internet_computer/bridge/account.js.map +1 -1
  167. package/lib/families/near/js-getTransactionStatus.d.ts.map +1 -1
  168. package/lib/families/near/js-getTransactionStatus.js +3 -1
  169. package/lib/families/near/js-getTransactionStatus.js.map +1 -1
  170. package/lib/families/polkadot/exchange.d.ts +1 -1
  171. package/lib/families/solana/js-prepareTransaction.d.ts.map +1 -1
  172. package/lib/families/solana/js-prepareTransaction.js +12 -4
  173. package/lib/families/solana/js-prepareTransaction.js.map +1 -1
  174. package/lib/families/stacks/bridge/account.d.ts.map +1 -1
  175. package/lib/families/stacks/bridge/account.js +6 -2
  176. package/lib/families/stacks/bridge/account.js.map +1 -1
  177. package/lib/families/stellar/api/horizon.d.ts +22 -6
  178. package/lib/families/stellar/api/horizon.d.ts.map +1 -1
  179. package/lib/families/stellar/api/horizon.js +29 -54
  180. package/lib/families/stellar/api/horizon.js.map +1 -1
  181. package/lib/families/stellar/js-buildTransaction.d.ts +2 -1
  182. package/lib/families/stellar/js-buildTransaction.d.ts.map +1 -1
  183. package/lib/families/stellar/js-buildTransaction.js +5 -5
  184. package/lib/families/stellar/js-buildTransaction.js.map +1 -1
  185. package/lib/families/stellar/js-getTransactionStatus.d.ts.map +1 -1
  186. package/lib/families/stellar/js-getTransactionStatus.js +3 -1
  187. package/lib/families/stellar/js-getTransactionStatus.js.map +1 -1
  188. package/lib/families/stellar/logic.d.ts.map +1 -1
  189. package/lib/families/stellar/logic.js +6 -10
  190. package/lib/families/stellar/logic.js.map +1 -1
  191. package/lib/families/tron/bridge/js.d.ts.map +1 -1
  192. package/lib/families/tron/bridge/js.js +3 -1
  193. package/lib/families/tron/bridge/js.js.map +1 -1
  194. package/lib/featureFlags/defaultFeatures.d.ts +2 -0
  195. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  196. package/lib/featureFlags/defaultFeatures.js +8 -1
  197. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  198. package/lib/featureFlags/helper.d.ts +2 -0
  199. package/lib/featureFlags/helper.d.ts.map +1 -0
  200. package/lib/featureFlags/helper.js +10 -0
  201. package/lib/featureFlags/helper.js.map +1 -0
  202. package/lib/featureFlags/index.d.ts +1 -0
  203. package/lib/featureFlags/index.d.ts.map +1 -1
  204. package/lib/featureFlags/index.js +1 -0
  205. package/lib/featureFlags/index.js.map +1 -1
  206. package/lib/featureFlags/useFeature.d.ts +1 -1
  207. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  208. package/lib/generated/bridge/js.d.ts +4 -0
  209. package/lib/generated/bridge/js.d.ts.map +1 -1
  210. package/lib/generated/bridge/js.js +30 -28
  211. package/lib/generated/bridge/js.js.map +1 -1
  212. package/lib/generated/bridge/mock.d.ts +4 -0
  213. package/lib/generated/bridge/mock.d.ts.map +1 -1
  214. package/lib/generated/bridge/mock.js +18 -16
  215. package/lib/generated/bridge/mock.js.map +1 -1
  216. package/lib/generated/deviceTransactionConfig.d.ts +4 -1
  217. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  218. package/lib/generated/deviceTransactionConfig.js +36 -34
  219. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  220. package/lib/generated/exchange.d.ts +2 -2
  221. package/lib/generated/hw-getAddress.d.ts +1 -0
  222. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  223. package/lib/generated/hw-getAddress.js +30 -28
  224. package/lib/generated/hw-getAddress.js.map +1 -1
  225. package/lib/generated/hw-signMessage.d.ts +3 -0
  226. package/lib/generated/hw-signMessage.d.ts.map +1 -1
  227. package/lib/generated/hw-signMessage.js +8 -6
  228. package/lib/generated/hw-signMessage.js.map +1 -1
  229. package/lib/generated/operation.d.ts +13 -0
  230. package/lib/generated/operation.d.ts.map +1 -0
  231. package/lib/generated/operation.js +10 -0
  232. package/lib/generated/operation.js.map +1 -0
  233. package/lib/generated/specs.d.ts +3 -0
  234. package/lib/generated/specs.d.ts.map +1 -1
  235. package/lib/generated/specs.js +36 -34
  236. package/lib/generated/specs.js.map +1 -1
  237. package/lib/generated/transaction.d.ts +8 -0
  238. package/lib/generated/transaction.d.ts.map +1 -1
  239. package/lib/generated/transaction.js +36 -34
  240. package/lib/generated/transaction.js.map +1 -1
  241. package/lib/generated/types.d.ts +8 -4
  242. package/lib/generated/types.d.ts.map +1 -1
  243. package/lib/hooks/recoverFeatureFlag.d.ts +0 -1
  244. package/lib/hooks/recoverFeatureFlag.d.ts.map +1 -1
  245. package/lib/hooks/recoverFeatureFlag.js +1 -6
  246. package/lib/hooks/recoverFeatureFlag.js.map +1 -1
  247. package/lib/hooks/useBroadcast.d.ts +8 -0
  248. package/lib/hooks/useBroadcast.d.ts.map +1 -0
  249. package/lib/hooks/useBroadcast.js +40 -0
  250. package/lib/hooks/useBroadcast.js.map +1 -0
  251. package/lib/hooks/useEnv.d.ts.map +1 -1
  252. package/lib/hooks/useEnv.js.map +1 -1
  253. package/lib/manager/api.d.ts.map +1 -1
  254. package/lib/manager/api.js +9 -3
  255. package/lib/manager/api.js.map +1 -1
  256. package/lib/operation.d.ts +24 -0
  257. package/lib/operation.d.ts.map +1 -1
  258. package/lib/operation.js +41 -0
  259. package/lib/operation.js.map +1 -1
  260. package/lib/wallet-api/react.js +1 -1
  261. package/lib/wallet-api/react.js.map +1 -1
  262. package/lib/walletConnect/index.d.ts +8 -0
  263. package/lib/walletConnect/index.d.ts.map +1 -0
  264. package/lib/walletConnect/index.js +20 -0
  265. package/lib/walletConnect/index.js.map +1 -0
  266. package/lib-es/__tests__/test-helpers/environment.js +2 -0
  267. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  268. package/lib-es/apps/polyfill.d.ts +4 -0
  269. package/lib-es/apps/polyfill.d.ts.map +1 -1
  270. package/lib-es/apps/polyfill.js +1 -1
  271. package/lib-es/apps/polyfill.js.map +1 -1
  272. package/lib-es/bridge/useBridgeTransaction.js +1 -2
  273. package/lib-es/bridge/useBridgeTransaction.js.map +1 -1
  274. package/lib-es/countervalues/api/api.d.ts.map +1 -1
  275. package/lib-es/countervalues/api/api.js +1 -1
  276. package/lib-es/countervalues/api/api.js.map +1 -1
  277. package/lib-es/countervalues/logic.d.ts.map +1 -1
  278. package/lib-es/countervalues/logic.js +15 -17
  279. package/lib-es/countervalues/logic.js.map +1 -1
  280. package/lib-es/countervalues/modules/index.d.ts +1 -1
  281. package/lib-es/countervalues/modules/index.d.ts.map +1 -1
  282. package/lib-es/countervalues/modules/index.js +7 -2
  283. package/lib-es/countervalues/modules/index.js.map +1 -1
  284. package/lib-es/countervalues/react.d.ts.map +1 -1
  285. package/lib-es/countervalues/react.js.map +1 -1
  286. package/lib-es/currencies/mock.d.ts +4 -0
  287. package/lib-es/currencies/mock.d.ts.map +1 -0
  288. package/lib-es/currencies/mock.js +518 -0
  289. package/lib-es/currencies/mock.js.map +1 -0
  290. package/lib-es/currencies/sortByMarketcap.d.ts.map +1 -1
  291. package/lib-es/currencies/sortByMarketcap.js +16 -10
  292. package/lib-es/currencies/sortByMarketcap.js.map +1 -1
  293. package/lib-es/currencies/sortByMarketcap.test.js +20 -0
  294. package/lib-es/currencies/sortByMarketcap.test.js.map +1 -1
  295. package/lib-es/data/icons/react/cspr.d.ts +8 -0
  296. package/lib-es/data/icons/react/cspr.d.ts.map +1 -0
  297. package/lib-es/data/icons/react/cspr.js +13 -0
  298. package/lib-es/data/icons/react/cspr.js.map +1 -0
  299. package/lib-es/data/icons/react/index.d.ts +2 -0
  300. package/lib-es/data/icons/react/index.d.ts.map +1 -1
  301. package/lib-es/data/icons/react/index.js +2 -0
  302. package/lib-es/data/icons/react/index.js.map +1 -1
  303. package/lib-es/data/icons/react/lyx.d.ts +8 -0
  304. package/lib-es/data/icons/react/lyx.d.ts.map +1 -0
  305. package/lib-es/data/icons/react/lyx.js +9 -0
  306. package/lib-es/data/icons/react/lyx.js.map +1 -0
  307. package/lib-es/data/icons/reactNative/cspr.d.ts +8 -0
  308. package/lib-es/data/icons/reactNative/cspr.d.ts.map +1 -0
  309. package/lib-es/data/icons/reactNative/cspr.js +14 -0
  310. package/lib-es/data/icons/reactNative/cspr.js.map +1 -0
  311. package/lib-es/data/icons/reactNative/index.d.ts +2 -0
  312. package/lib-es/data/icons/reactNative/index.d.ts.map +1 -1
  313. package/lib-es/data/icons/reactNative/index.js +2 -0
  314. package/lib-es/data/icons/reactNative/index.js.map +1 -1
  315. package/lib-es/data/icons/reactNative/lyx.d.ts +8 -0
  316. package/lib-es/data/icons/reactNative/lyx.d.ts.map +1 -0
  317. package/lib-es/data/icons/reactNative/lyx.js +10 -0
  318. package/lib-es/data/icons/reactNative/lyx.js.map +1 -0
  319. package/lib-es/deviceSDK/tasks/core.test.js +10 -1
  320. package/lib-es/deviceSDK/tasks/core.test.js.map +1 -1
  321. package/lib-es/env.react.d.ts +1 -1
  322. package/lib-es/env.react.d.ts.map +1 -1
  323. package/lib-es/exchange/platform/transfer/completeExchange.d.ts.map +1 -1
  324. package/lib-es/exchange/platform/transfer/completeExchange.js +19 -12
  325. package/lib-es/exchange/platform/transfer/completeExchange.js.map +1 -1
  326. package/lib-es/exchange/swap/completeExchange.d.ts.map +1 -1
  327. package/lib-es/exchange/swap/completeExchange.js +6 -1
  328. package/lib-es/exchange/swap/completeExchange.js.map +1 -1
  329. package/lib-es/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  330. package/lib-es/exchange/swap/hooks/useSwapTransaction.js +6 -2
  331. package/lib-es/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  332. package/lib-es/exchange/swap/index.js +2 -2
  333. package/lib-es/exchange/swap/index.js.map +1 -1
  334. package/lib-es/families/algorand/bridge/mock.d.ts.map +1 -1
  335. package/lib-es/families/algorand/bridge/mock.js +3 -1
  336. package/lib-es/families/algorand/bridge/mock.js.map +1 -1
  337. package/lib-es/families/bitcoin/exchange.d.ts +1 -1
  338. package/lib-es/families/casper/api/index.d.ts +11 -0
  339. package/lib-es/families/casper/api/index.d.ts.map +1 -0
  340. package/lib-es/families/casper/api/index.js +127 -0
  341. package/lib-es/families/casper/api/index.js.map +1 -0
  342. package/lib-es/families/casper/api/types.d.ts +105 -0
  343. package/lib-es/families/casper/api/types.d.ts.map +1 -0
  344. package/lib-es/families/casper/api/types.js +2 -0
  345. package/lib-es/families/casper/api/types.js.map +1 -0
  346. package/lib-es/families/casper/bridge/account.d.ts +5 -0
  347. package/lib-es/families/casper/bridge/account.d.ts.map +1 -0
  348. package/lib-es/families/casper/bridge/account.js +200 -0
  349. package/lib-es/families/casper/bridge/account.js.map +1 -0
  350. package/lib-es/families/casper/bridge/bridgeHelpers/accountShape.d.ts +3 -0
  351. package/lib-es/families/casper/bridge/bridgeHelpers/accountShape.d.ts.map +1 -0
  352. package/lib-es/families/casper/bridge/bridgeHelpers/accountShape.js +40 -0
  353. package/lib-es/families/casper/bridge/bridgeHelpers/accountShape.js.map +1 -0
  354. package/lib-es/families/casper/bridge/bridgeHelpers/addresses.d.ts +15 -0
  355. package/lib-es/families/casper/bridge/bridgeHelpers/addresses.d.ts.map +1 -0
  356. package/lib-es/families/casper/bridge/bridgeHelpers/addresses.js +99 -0
  357. package/lib-es/families/casper/bridge/bridgeHelpers/addresses.js.map +1 -0
  358. package/lib-es/families/casper/bridge/bridgeHelpers/fee.d.ts +3 -0
  359. package/lib-es/families/casper/bridge/bridgeHelpers/fee.d.ts.map +1 -0
  360. package/lib-es/families/casper/bridge/bridgeHelpers/fee.js +6 -0
  361. package/lib-es/families/casper/bridge/bridgeHelpers/fee.js.map +1 -0
  362. package/lib-es/families/casper/bridge/bridgeHelpers/transferId.d.ts +2 -0
  363. package/lib-es/families/casper/bridge/bridgeHelpers/transferId.d.ts.map +1 -0
  364. package/lib-es/families/casper/bridge/bridgeHelpers/transferId.js +10 -0
  365. package/lib-es/families/casper/bridge/bridgeHelpers/transferId.js.map +1 -0
  366. package/lib-es/families/casper/bridge/bridgeHelpers/txn.d.ts +10 -0
  367. package/lib-es/families/casper/bridge/bridgeHelpers/txn.d.ts.map +1 -0
  368. package/lib-es/families/casper/bridge/bridgeHelpers/txn.js +85 -0
  369. package/lib-es/families/casper/bridge/bridgeHelpers/txn.js.map +1 -0
  370. package/lib-es/families/casper/bridge/currency.d.ts +3 -0
  371. package/lib-es/families/casper/bridge/currency.d.ts.map +1 -0
  372. package/lib-es/families/casper/bridge/currency.js +9 -0
  373. package/lib-es/families/casper/bridge/currency.js.map +1 -0
  374. package/lib-es/families/casper/bridge/js.d.ts +6 -0
  375. package/lib-es/families/casper/bridge/js.d.ts.map +1 -0
  376. package/lib-es/families/casper/bridge/js.js +7 -0
  377. package/lib-es/families/casper/bridge/js.js.map +1 -0
  378. package/lib-es/families/casper/bridge/mock.d.ts +8 -0
  379. package/lib-es/families/casper/bridge/mock.d.ts.map +1 -0
  380. package/lib-es/families/casper/bridge/mock.js +131 -0
  381. package/lib-es/families/casper/bridge/mock.js.map +1 -0
  382. package/lib-es/families/casper/bridge.integration.test.d.ts +2 -0
  383. package/lib-es/families/casper/bridge.integration.test.d.ts.map +1 -0
  384. package/lib-es/families/casper/bridge.integration.test.js +161 -0
  385. package/lib-es/families/casper/bridge.integration.test.js.map +1 -0
  386. package/lib-es/families/casper/consts.d.ts +11 -0
  387. package/lib-es/families/casper/consts.d.ts.map +1 -0
  388. package/lib-es/families/casper/consts.js +16 -0
  389. package/lib-es/families/casper/consts.js.map +1 -0
  390. package/lib-es/families/casper/deviceTransactionConfig.d.ts +17 -0
  391. package/lib-es/families/casper/deviceTransactionConfig.d.ts.map +1 -0
  392. package/lib-es/families/casper/deviceTransactionConfig.js +24 -0
  393. package/lib-es/families/casper/deviceTransactionConfig.js.map +1 -0
  394. package/lib-es/families/casper/errors.d.ts +10 -0
  395. package/lib-es/families/casper/errors.d.ts.map +1 -0
  396. package/lib-es/families/casper/errors.js +5 -0
  397. package/lib-es/families/casper/errors.js.map +1 -0
  398. package/lib-es/families/casper/hw-getAddress.d.ts +4 -0
  399. package/lib-es/families/casper/hw-getAddress.d.ts.map +1 -0
  400. package/lib-es/families/casper/hw-getAddress.js +28 -0
  401. package/lib-es/families/casper/hw-getAddress.js.map +1 -0
  402. package/lib-es/families/casper/hw-signMessage.d.ts +6 -0
  403. package/lib-es/families/casper/hw-signMessage.d.ts.map +1 -0
  404. package/lib-es/families/casper/hw-signMessage.js +32 -0
  405. package/lib-es/families/casper/hw-signMessage.js.map +1 -0
  406. package/lib-es/families/casper/msc-utils.d.ts +13 -0
  407. package/lib-es/families/casper/msc-utils.d.ts.map +1 -0
  408. package/lib-es/families/casper/msc-utils.js +39 -0
  409. package/lib-es/families/casper/msc-utils.js.map +1 -0
  410. package/lib-es/families/casper/specs.d.ts +7 -0
  411. package/lib-es/families/casper/specs.d.ts.map +1 -0
  412. package/lib-es/families/casper/specs.js +103 -0
  413. package/lib-es/families/casper/specs.js.map +1 -0
  414. package/lib-es/families/casper/speculos-deviceActions.d.ts +4 -0
  415. package/lib-es/families/casper/speculos-deviceActions.d.ts.map +1 -0
  416. package/lib-es/families/casper/speculos-deviceActions.js +50 -0
  417. package/lib-es/families/casper/speculos-deviceActions.js.map +1 -0
  418. package/lib-es/families/casper/transaction.d.ts +14 -0
  419. package/lib-es/families/casper/transaction.d.ts.map +1 -0
  420. package/lib-es/families/casper/transaction.js +32 -0
  421. package/lib-es/families/casper/transaction.js.map +1 -0
  422. package/lib-es/families/casper/types.d.ts +22 -0
  423. package/lib-es/families/casper/types.d.ts.map +1 -0
  424. package/lib-es/families/casper/types.js +2 -0
  425. package/lib-es/families/casper/types.js.map +1 -0
  426. package/lib-es/families/crypto_org/js-getTransactionStatus.d.ts.map +1 -1
  427. package/lib-es/families/crypto_org/js-getTransactionStatus.js +3 -1
  428. package/lib-es/families/crypto_org/js-getTransactionStatus.js.map +1 -1
  429. package/lib-es/families/internet_computer/bridge/account.d.ts.map +1 -1
  430. package/lib-es/families/internet_computer/bridge/account.js +6 -2
  431. package/lib-es/families/internet_computer/bridge/account.js.map +1 -1
  432. package/lib-es/families/near/js-getTransactionStatus.d.ts.map +1 -1
  433. package/lib-es/families/near/js-getTransactionStatus.js +3 -1
  434. package/lib-es/families/near/js-getTransactionStatus.js.map +1 -1
  435. package/lib-es/families/polkadot/exchange.d.ts +1 -1
  436. package/lib-es/families/solana/js-prepareTransaction.d.ts.map +1 -1
  437. package/lib-es/families/solana/js-prepareTransaction.js +12 -4
  438. package/lib-es/families/solana/js-prepareTransaction.js.map +1 -1
  439. package/lib-es/families/stacks/bridge/account.d.ts.map +1 -1
  440. package/lib-es/families/stacks/bridge/account.js +6 -2
  441. package/lib-es/families/stacks/bridge/account.js.map +1 -1
  442. package/lib-es/families/stellar/api/horizon.d.ts +22 -6
  443. package/lib-es/families/stellar/api/horizon.d.ts.map +1 -1
  444. package/lib-es/families/stellar/api/horizon.js +29 -31
  445. package/lib-es/families/stellar/api/horizon.js.map +1 -1
  446. package/lib-es/families/stellar/js-buildTransaction.d.ts +2 -1
  447. package/lib-es/families/stellar/js-buildTransaction.d.ts.map +1 -1
  448. package/lib-es/families/stellar/js-buildTransaction.js +5 -5
  449. package/lib-es/families/stellar/js-buildTransaction.js.map +1 -1
  450. package/lib-es/families/stellar/js-getTransactionStatus.d.ts.map +1 -1
  451. package/lib-es/families/stellar/js-getTransactionStatus.js +3 -1
  452. package/lib-es/families/stellar/js-getTransactionStatus.js.map +1 -1
  453. package/lib-es/families/stellar/logic.d.ts.map +1 -1
  454. package/lib-es/families/stellar/logic.js +6 -7
  455. package/lib-es/families/stellar/logic.js.map +1 -1
  456. package/lib-es/families/tron/bridge/js.d.ts.map +1 -1
  457. package/lib-es/families/tron/bridge/js.js +3 -1
  458. package/lib-es/families/tron/bridge/js.js.map +1 -1
  459. package/lib-es/featureFlags/defaultFeatures.d.ts +2 -0
  460. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  461. package/lib-es/featureFlags/defaultFeatures.js +8 -1
  462. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  463. package/lib-es/featureFlags/helper.d.ts +2 -0
  464. package/lib-es/featureFlags/helper.d.ts.map +1 -0
  465. package/lib-es/featureFlags/helper.js +6 -0
  466. package/lib-es/featureFlags/helper.js.map +1 -0
  467. package/lib-es/featureFlags/index.d.ts +1 -0
  468. package/lib-es/featureFlags/index.d.ts.map +1 -1
  469. package/lib-es/featureFlags/index.js +1 -0
  470. package/lib-es/featureFlags/index.js.map +1 -1
  471. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  472. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  473. package/lib-es/generated/bridge/js.d.ts +4 -0
  474. package/lib-es/generated/bridge/js.d.ts.map +1 -1
  475. package/lib-es/generated/bridge/js.js +2 -0
  476. package/lib-es/generated/bridge/js.js.map +1 -1
  477. package/lib-es/generated/bridge/mock.d.ts +4 -0
  478. package/lib-es/generated/bridge/mock.d.ts.map +1 -1
  479. package/lib-es/generated/bridge/mock.js +2 -0
  480. package/lib-es/generated/bridge/mock.js.map +1 -1
  481. package/lib-es/generated/deviceTransactionConfig.d.ts +4 -1
  482. package/lib-es/generated/deviceTransactionConfig.d.ts.map +1 -1
  483. package/lib-es/generated/deviceTransactionConfig.js +2 -0
  484. package/lib-es/generated/deviceTransactionConfig.js.map +1 -1
  485. package/lib-es/generated/exchange.d.ts +2 -2
  486. package/lib-es/generated/hw-getAddress.d.ts +1 -0
  487. package/lib-es/generated/hw-getAddress.d.ts.map +1 -1
  488. package/lib-es/generated/hw-getAddress.js +2 -0
  489. package/lib-es/generated/hw-getAddress.js.map +1 -1
  490. package/lib-es/generated/hw-signMessage.d.ts +3 -0
  491. package/lib-es/generated/hw-signMessage.d.ts.map +1 -1
  492. package/lib-es/generated/hw-signMessage.js +2 -0
  493. package/lib-es/generated/hw-signMessage.js.map +1 -1
  494. package/lib-es/generated/operation.d.ts +13 -0
  495. package/lib-es/generated/operation.d.ts.map +1 -0
  496. package/lib-es/generated/operation.js +5 -0
  497. package/lib-es/generated/operation.js.map +1 -0
  498. package/lib-es/generated/specs.d.ts +3 -0
  499. package/lib-es/generated/specs.d.ts.map +1 -1
  500. package/lib-es/generated/specs.js +2 -0
  501. package/lib-es/generated/specs.js.map +1 -1
  502. package/lib-es/generated/transaction.d.ts +8 -0
  503. package/lib-es/generated/transaction.d.ts.map +1 -1
  504. package/lib-es/generated/transaction.js +2 -0
  505. package/lib-es/generated/transaction.js.map +1 -1
  506. package/lib-es/generated/types.d.ts +8 -4
  507. package/lib-es/generated/types.d.ts.map +1 -1
  508. package/lib-es/hooks/recoverFeatureFlag.d.ts +0 -1
  509. package/lib-es/hooks/recoverFeatureFlag.d.ts.map +1 -1
  510. package/lib-es/hooks/recoverFeatureFlag.js +0 -4
  511. package/lib-es/hooks/recoverFeatureFlag.js.map +1 -1
  512. package/lib-es/hooks/useBroadcast.d.ts +8 -0
  513. package/lib-es/hooks/useBroadcast.d.ts.map +1 -0
  514. package/lib-es/hooks/useBroadcast.js +36 -0
  515. package/lib-es/hooks/useBroadcast.js.map +1 -0
  516. package/lib-es/hooks/useEnv.d.ts.map +1 -1
  517. package/lib-es/hooks/useEnv.js.map +1 -1
  518. package/lib-es/manager/api.d.ts.map +1 -1
  519. package/lib-es/manager/api.js +9 -3
  520. package/lib-es/manager/api.js.map +1 -1
  521. package/lib-es/operation.d.ts +24 -0
  522. package/lib-es/operation.d.ts.map +1 -1
  523. package/lib-es/operation.js +34 -0
  524. package/lib-es/operation.js.map +1 -1
  525. package/lib-es/wallet-api/react.js +1 -1
  526. package/lib-es/wallet-api/react.js.map +1 -1
  527. package/lib-es/walletConnect/index.d.ts +8 -0
  528. package/lib-es/walletConnect/index.d.ts.map +1 -0
  529. package/lib-es/walletConnect/index.js +16 -0
  530. package/lib-es/walletConnect/index.js.map +1 -0
  531. package/package.json +40 -36
  532. package/src/__tests__/test-helpers/environment.ts +2 -0
  533. package/src/apps/polyfill.ts +1 -1
  534. package/src/bridge/useBridgeTransaction.ts +1 -1
  535. package/src/countervalues/api/api.ts +7 -1
  536. package/src/countervalues/logic.ts +39 -18
  537. package/src/countervalues/modules/index.ts +12 -4
  538. package/src/countervalues/react.tsx +7 -1
  539. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +51 -8
  540. package/src/currencies/mock.ts +520 -0
  541. package/src/currencies/sortByMarketcap.test.ts +21 -0
  542. package/src/currencies/sortByMarketcap.ts +22 -12
  543. package/src/data/icons/react/cspr.tsx +12 -0
  544. package/src/data/icons/react/index.tsx +2 -0
  545. package/src/data/icons/react/lyx.tsx +12 -0
  546. package/src/data/icons/reactNative/cspr.tsx +13 -0
  547. package/src/data/icons/reactNative/index.tsx +2 -0
  548. package/src/data/icons/reactNative/lyx.tsx +13 -0
  549. package/src/data/icons/svg/CSPR.svg +8 -0
  550. package/src/data/icons/svg/LYX.svg +3 -0
  551. package/src/deviceSDK/tasks/core.test.ts +16 -1
  552. package/src/exchange/platform/transfer/completeExchange.ts +23 -14
  553. package/src/exchange/swap/completeExchange.ts +8 -2
  554. package/src/exchange/swap/hooks/useSwapTransaction.ts +13 -2
  555. package/src/exchange/swap/index.ts +2 -2
  556. package/src/families/algorand/bridge/mock.ts +3 -1
  557. package/src/families/casper/__snapshots__/bridge.integration.test.ts.snap +238 -0
  558. package/src/families/casper/api/index.ts +166 -0
  559. package/src/families/casper/api/types.ts +111 -0
  560. package/src/families/casper/bridge/account.ts +288 -0
  561. package/src/families/casper/bridge/bridgeHelpers/accountShape.ts +40 -0
  562. package/src/families/casper/bridge/bridgeHelpers/addresses.ts +120 -0
  563. package/src/families/casper/bridge/bridgeHelpers/fee.ts +6 -0
  564. package/src/families/casper/bridge/bridgeHelpers/transferId.ts +9 -0
  565. package/src/families/casper/bridge/bridgeHelpers/txn.ts +124 -0
  566. package/src/families/casper/bridge/currency.ts +11 -0
  567. package/src/families/casper/bridge/js.ts +7 -0
  568. package/src/families/casper/bridge/mock.ts +169 -0
  569. package/src/families/casper/bridge.integration.test.ts +168 -0
  570. package/src/families/casper/consts.ts +19 -0
  571. package/src/families/casper/deviceTransactionConfig.ts +44 -0
  572. package/src/families/casper/errors.ts +5 -0
  573. package/src/families/casper/hw-getAddress.ts +26 -0
  574. package/src/families/casper/hw-signMessage.ts +28 -0
  575. package/src/families/casper/msc-utils.ts +53 -0
  576. package/src/families/casper/specs.ts +126 -0
  577. package/src/families/casper/speculos-deviceActions.ts +54 -0
  578. package/src/families/casper/transaction.ts +61 -0
  579. package/src/families/casper/types.ts +35 -0
  580. package/src/families/crypto_org/js-getTransactionStatus.ts +3 -1
  581. package/src/families/internet_computer/bridge/account.ts +6 -2
  582. package/src/families/near/js-getTransactionStatus.ts +3 -1
  583. package/src/families/solana/js-prepareTransaction.ts +12 -4
  584. package/src/families/stacks/bridge/account.ts +6 -2
  585. package/src/families/stellar/api/horizon.ts +49 -39
  586. package/src/families/stellar/js-buildTransaction.ts +9 -11
  587. package/src/families/stellar/js-getTransactionStatus.ts +3 -1
  588. package/src/families/stellar/logic.ts +6 -8
  589. package/src/families/tron/bridge/js.ts +3 -1
  590. package/src/featureFlags/defaultFeatures.ts +9 -2
  591. package/src/featureFlags/helper.tsx +9 -0
  592. package/src/featureFlags/index.ts +1 -0
  593. package/src/generated/bridge/js.ts +2 -0
  594. package/src/generated/bridge/mock.ts +2 -0
  595. package/src/generated/deviceTransactionConfig.ts +4 -0
  596. package/src/generated/hw-getAddress.ts +2 -0
  597. package/src/generated/hw-signMessage.ts +2 -0
  598. package/src/generated/operation.ts +5 -0
  599. package/src/generated/specs.ts +2 -0
  600. package/src/generated/transaction.ts +2 -0
  601. package/src/generated/types.ts +8 -0
  602. package/src/hooks/recoverFeatureFlag.ts +0 -8
  603. package/src/hooks/useBroadcast.ts +41 -0
  604. package/src/hooks/useEnv.ts +1 -0
  605. package/src/manager/api.ts +8 -3
  606. package/src/operation.ts +67 -0
  607. package/src/wallet-api/react.ts +1 -1
  608. package/src/walletConnect/index.ts +20 -0
@@ -0,0 +1,54 @@
1
+ import type { DeviceAction } from "../../bot/types";
2
+ import type { Transaction } from "./types";
3
+ import { deviceActionFlow, SpeculosButton } from "../../bot/specs";
4
+ import { casperPubKeyToAccountHash } from "./bridge/bridgeHelpers/addresses";
5
+
6
+ export const acceptTransaction: DeviceAction<Transaction, any> = deviceActionFlow({
7
+ steps: [
8
+ {
9
+ title: "Please",
10
+ button: SpeculosButton.RIGHT,
11
+ expectedValue: () => "review",
12
+ },
13
+ {
14
+ title: "Txn hash",
15
+ button: SpeculosButton.RIGHT,
16
+ },
17
+ {
18
+ title: "Type",
19
+ button: SpeculosButton.RIGHT,
20
+ expectedValue: () => "Token transfer",
21
+ },
22
+ {
23
+ title: "Chain ID",
24
+ button: SpeculosButton.RIGHT,
25
+ expectedValue: () => "casper",
26
+ },
27
+ {
28
+ title: "Account",
29
+ button: SpeculosButton.RIGHT,
30
+ expectedValue: ({ account }) => account.freshAddress,
31
+ },
32
+ {
33
+ title: "Fee",
34
+ button: SpeculosButton.RIGHT,
35
+ expectedValue: ({ transaction }) =>
36
+ `${transaction.fees.toNumber().toLocaleString("en-US").replaceAll(",", " ")} motes`,
37
+ },
38
+ {
39
+ title: "Target",
40
+ button: SpeculosButton.RIGHT,
41
+ expectedValue: ({ transaction }) => casperPubKeyToAccountHash(transaction.recipient),
42
+ },
43
+ {
44
+ title: "Amount",
45
+ button: SpeculosButton.RIGHT,
46
+ expectedValue: ({ status }) =>
47
+ `${status.amount.toNumber().toLocaleString("en-US").replaceAll(",", " ")} motes`,
48
+ },
49
+ {
50
+ title: "APPROVE",
51
+ button: SpeculosButton.BOTH,
52
+ },
53
+ ],
54
+ });
@@ -0,0 +1,61 @@
1
+ import type { Transaction, TransactionRaw } from "./types";
2
+ import {
3
+ formatTransactionStatusCommon as formatTransactionStatus,
4
+ fromTransactionCommonRaw,
5
+ fromTransactionStatusRawCommon as fromTransactionStatusRaw,
6
+ toTransactionCommonRaw,
7
+ toTransactionStatusRawCommon as toTransactionStatusRaw,
8
+ } from "@ledgerhq/coin-framework/transaction/common";
9
+ import type { Account } from "@ledgerhq/types-live";
10
+ import { getAccountUnit } from "../../account";
11
+ import { formatCurrencyUnit } from "../../currencies";
12
+ import BigNumber from "bignumber.js";
13
+
14
+ export const formatTransaction = (
15
+ { recipient, useAllAmount, amount }: Transaction,
16
+ account: Account,
17
+ ): string => `
18
+ SEND ${
19
+ useAllAmount
20
+ ? "MAX"
21
+ : amount.isZero()
22
+ ? ""
23
+ : " " +
24
+ formatCurrencyUnit(getAccountUnit(account), amount, {
25
+ showCode: true,
26
+ disableRounding: true,
27
+ })
28
+ }
29
+ TO ${recipient}`;
30
+
31
+ export const fromTransactionRaw = (tr: TransactionRaw): Transaction => {
32
+ const common = fromTransactionCommonRaw(tr);
33
+ return {
34
+ ...common,
35
+ family: tr.family,
36
+ fees: new BigNumber(tr.fees),
37
+ amount: new BigNumber(tr.amount),
38
+ transferId: tr.transferId,
39
+ };
40
+ };
41
+
42
+ const toTransactionRaw = (t: Transaction): TransactionRaw => {
43
+ const common = toTransactionCommonRaw(t);
44
+
45
+ return {
46
+ ...common,
47
+ family: t.family,
48
+ amount: t.amount.toFixed(),
49
+ fees: t.fees.toString(),
50
+ transferId: t.transferId,
51
+ };
52
+ };
53
+
54
+ export default {
55
+ formatTransaction,
56
+ fromTransactionRaw,
57
+ toTransactionRaw,
58
+ fromTransactionStatusRaw,
59
+ toTransactionStatusRaw,
60
+ formatTransactionStatus,
61
+ };
@@ -0,0 +1,35 @@
1
+ import {
2
+ Account,
3
+ Operation,
4
+ TransactionCommon,
5
+ TransactionCommonRaw,
6
+ TransactionStatusCommon,
7
+ TransactionStatusCommonRaw,
8
+ } from "@ledgerhq/types-live";
9
+ import BigNumber from "bignumber.js";
10
+
11
+ type FamilyType = "casper";
12
+
13
+ export type CasperAccount = Account;
14
+
15
+ export type Transaction = TransactionCommon & {
16
+ family: FamilyType;
17
+ fees: BigNumber;
18
+ transferId?: string;
19
+ };
20
+
21
+ export type CasperOperation = Operation<CasperOperationExtra>;
22
+
23
+ interface CasperOperationExtra {
24
+ transferId?: string;
25
+ }
26
+
27
+ export type TransactionRaw = TransactionCommonRaw & {
28
+ family: FamilyType;
29
+ transferId?: string;
30
+ fees: string;
31
+ };
32
+
33
+ export type TransactionStatus = TransactionStatusCommon;
34
+
35
+ export type TransactionStatusRaw = TransactionStatusCommonRaw;
@@ -39,7 +39,9 @@ const getTransactionStatus = async (a: Account, t: Transaction): Promise<Transac
39
39
  if (!t.recipient) {
40
40
  errors.recipient = new RecipientRequired();
41
41
  } else if (!isValidAddress(t.recipient, a.currency.id)) {
42
- errors.recipient = new InvalidAddress();
42
+ errors.recipient = new InvalidAddress("", {
43
+ currencyName: a.currency.name,
44
+ });
43
45
  } else if (t.mode === "send" && a.freshAddress === t.recipient) {
44
46
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
45
47
  }
@@ -79,13 +79,17 @@ const getTransactionStatus = async (a: Account, t: Transaction): Promise<Transac
79
79
  if (!recipient) {
80
80
  errors.recipient = new RecipientRequired();
81
81
  } else if (!(await validateAddress(recipient)).isValid) {
82
- errors.recipient = new InvalidAddress();
82
+ errors.recipient = new InvalidAddress("", {
83
+ currencyName: a.currency.name,
84
+ });
83
85
  } else if (recipient.toLowerCase() === address.toLowerCase()) {
84
86
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
85
87
  }
86
88
 
87
89
  if (!(await validateAddress(address)).isValid) {
88
- errors.sender = new InvalidAddress();
90
+ errors.sender = new InvalidAddress("", {
91
+ currencyName: a.currency.name,
92
+ });
89
93
  }
90
94
 
91
95
  if (!validateMemo(t.memo).isValid) {
@@ -118,7 +118,9 @@ const getSendTransactionStatus = async (
118
118
  if (!t.recipient) {
119
119
  errors.recipient = new RecipientRequired();
120
120
  } else if (!isValidAddress(t.recipient)) {
121
- errors.recipient = new InvalidAddress();
121
+ errors.recipient = new InvalidAddress("", {
122
+ currencyName: a.currency.name,
123
+ });
122
124
  } else {
123
125
  const accountDetails = await fetchAccountDetails(t.recipient);
124
126
 
@@ -554,7 +554,9 @@ async function deriveStakeSplitCommandDescriptor(
554
554
  // TODO: else if amount > stake balance
555
555
 
556
556
  if (!isValidBase58Address(uiState.stakeAccAddr)) {
557
- errors.stakeAccAddr = new InvalidAddress();
557
+ errors.stakeAccAddr = new InvalidAddress("", {
558
+ currencyName: mainAccount.currency.name,
559
+ });
558
560
  }
559
561
 
560
562
  mainAccount.solanaResources?.stakes ?? [];
@@ -617,7 +619,9 @@ async function validateRecipientCommon(
617
619
  } else if (mainAccount.freshAddress === tx.recipient) {
618
620
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
619
621
  } else if (!isValidBase58Address(tx.recipient)) {
620
- errors.recipient = new InvalidAddress();
622
+ errors.recipient = new InvalidAddress("", {
623
+ currencyName: mainAccount.currency.name,
624
+ });
621
625
  } else {
622
626
  const recipientWalletIsUnfunded = !(await isAccountFunded(tx.recipient, api));
623
627
 
@@ -645,7 +649,9 @@ async function validateValidatorCommon(addr: string, errors: Record<string, Erro
645
649
  if (addr.length === 0) {
646
650
  errors.voteAccAddr = new SolanaValidatorRequired();
647
651
  } else if (!isValidBase58Address(addr)) {
648
- errors.voteAccAddr = new InvalidAddress();
652
+ errors.voteAccAddr = new InvalidAddress("", {
653
+ currencyName: "Solana",
654
+ });
649
655
  } else {
650
656
  const voteAcc = await getMaybeVoteAccount(addr, api);
651
657
 
@@ -663,7 +669,9 @@ function validateAndTryGetStakeAccount(
663
669
  if (stakeAccAddr.length === 0) {
664
670
  errors.stakeAccAddr = new SolanaStakeAccountRequired();
665
671
  } else if (!isValidBase58Address(stakeAccAddr)) {
666
- errors.stakeAccAddr = new InvalidAddress();
672
+ errors.stakeAccAddr = new InvalidAddress("", {
673
+ currencyName: account.currency.name,
674
+ });
667
675
  }
668
676
 
669
677
  if (!errors.stakeAccAddr) {
@@ -87,7 +87,9 @@ const getTransactionStatus = async (a: Account, t: Transaction): Promise<Transac
87
87
  if (!recipient) {
88
88
  errors.recipient = new RecipientRequired();
89
89
  } else if (!validateAddress(recipient).isValid) {
90
- errors.recipient = new InvalidAddress();
90
+ errors.recipient = new InvalidAddress("", {
91
+ currencyName: a.currency.name,
92
+ });
91
93
  } else if (address === recipient) {
92
94
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
93
95
  } else if (!fee || fee.eq(0)) {
@@ -208,7 +210,9 @@ const signOperation: SignOperationFnSignature<Transaction> = ({
208
210
  const { recipient, fee, anchorMode, network, memo, amount, nonce } = transaction;
209
211
 
210
212
  if (!xpub) {
211
- throw new InvalidAddress();
213
+ throw new InvalidAddress("", {
214
+ currencyName: account.currency.name,
215
+ });
212
216
  }
213
217
 
214
218
  if (!fee) {
@@ -2,12 +2,23 @@ import { LedgerAPI4xx, LedgerAPI5xx, NetworkDown } from "@ledgerhq/errors";
2
2
  import { requestInterceptor, responseInterceptor } from "@ledgerhq/live-network/network";
3
3
  import type { Account, Operation } from "@ledgerhq/types-live";
4
4
  import { BigNumber } from "bignumber.js";
5
- import StellarSdk, {
5
+ import {
6
6
  // @ts-expect-error stellar-sdk ts definition missing?
7
7
  AccountRecord,
8
8
  NetworkError,
9
9
  NotFoundError,
10
+ Server,
11
+ HorizonAxiosClient,
12
+ BASE_FEE,
13
+ Asset,
14
+ Operation as StellarSdkOperation,
15
+ Account as StellarSdkAccount,
16
+ Transaction as StellarSdkTransaction,
17
+ TransactionBuilder,
18
+ Networks,
19
+ ServerApi,
10
20
  } from "stellar-sdk";
21
+
11
22
  import { getCryptoCurrencyById, parseCurrencyUnit } from "../../../currencies";
12
23
  import { getEnv } from "@ledgerhq/live-env";
13
24
  import {
@@ -15,7 +26,7 @@ import {
15
26
  getReservedBalance,
16
27
  rawOperationsToOperations,
17
28
  } from "../logic";
18
- import type { BalanceAsset, NetworkInfo } from "../types";
29
+ import type { BalanceAsset, NetworkInfo, RawOperation } from "../types";
19
30
  import { NetworkCongestionLevel, Signer } from "../types";
20
31
 
21
32
  const LIMIT = getEnv("API_STELLAR_HORIZON_FETCH_LIMIT");
@@ -23,16 +34,16 @@ const FALLBACK_BASE_FEE = 100;
23
34
  const TRESHOLD_LOW = 0.5;
24
35
  const TRESHOLD_MEDIUM = 0.75;
25
36
  const currency = getCryptoCurrencyById("stellar");
26
- const server = new StellarSdk.Server(getEnv("API_STELLAR_HORIZON"));
37
+ const server = new Server(getEnv("API_STELLAR_HORIZON"));
27
38
 
28
39
  // Constants
29
40
  export const BASE_RESERVE = 0.5;
30
41
  export const BASE_RESERVE_MIN_COUNT = 2;
31
42
  export const MIN_BALANCE = 1;
32
43
 
33
- StellarSdk.HorizonAxiosClient.interceptors.request.use(requestInterceptor);
44
+ HorizonAxiosClient.interceptors.request.use(requestInterceptor);
34
45
 
35
- StellarSdk.HorizonAxiosClient.interceptors.response.use(response => {
46
+ HorizonAxiosClient.interceptors.response.use(response => {
36
47
  responseInterceptor(response);
37
48
  // FIXME: workaround for the Stellar SDK not using the correct URL: the "next" URL
38
49
  // included in server responses points to the node itself instead of our reverse proxy...
@@ -66,18 +77,21 @@ export const fetchBaseFee = async (): Promise<{
66
77
  };
67
78
  }
68
79
 
69
- const baseFee = StellarSdk.BASE_FEE || FALLBACK_BASE_FEE;
80
+ const baseFee = new BigNumber(BASE_FEE).toNumber() || FALLBACK_BASE_FEE;
70
81
  let recommendedFee = baseFee;
71
82
  let networkCongestionLevel = NetworkCongestionLevel.MEDIUM;
72
83
 
73
84
  try {
74
85
  const feeStats = await server.feeStats();
75
86
  const ledgerCapacityUsage = feeStats.ledger_capacity_usage;
76
- recommendedFee = Number(feeStats.fee_charged.mode);
87
+ recommendedFee = new BigNumber(feeStats.fee_charged.mode).toNumber();
77
88
 
78
- if (ledgerCapacityUsage > TRESHOLD_LOW && ledgerCapacityUsage <= TRESHOLD_MEDIUM) {
89
+ if (
90
+ new BigNumber(ledgerCapacityUsage).toNumber() > TRESHOLD_LOW &&
91
+ new BigNumber(ledgerCapacityUsage).toNumber() <= TRESHOLD_MEDIUM
92
+ ) {
79
93
  networkCongestionLevel = NetworkCongestionLevel.MEDIUM;
80
- } else if (ledgerCapacityUsage > TRESHOLD_MEDIUM) {
94
+ } else if (new BigNumber(ledgerCapacityUsage).toNumber() > TRESHOLD_MEDIUM) {
81
95
  networkCongestionLevel = NetworkCongestionLevel.HIGH;
82
96
  } else {
83
97
  networkCongestionLevel = NetworkCongestionLevel.LOW;
@@ -97,7 +111,7 @@ export const fetchBaseFee = async (): Promise<{
97
111
  * Get all account-related data
98
112
  *
99
113
  * @async
100
- * @param {*} addr
114
+ * @param {string} addr
101
115
  */
102
116
  export const fetchAccount = async (
103
117
  addr: string,
@@ -107,29 +121,30 @@ export const fetchAccount = async (
107
121
  spendableBalance: BigNumber;
108
122
  assets: BalanceAsset[];
109
123
  }> => {
110
- let account: typeof AccountRecord = {};
111
- let balance: Record<string, any> = {};
124
+ let account: ServerApi.AccountRecord = {} as ServerApi.AccountRecord;
112
125
  let assets: BalanceAsset[] = [];
126
+ let balance = "0";
113
127
 
114
128
  try {
115
129
  account = await server.accounts().accountId(addr).call();
116
- balance = account.balances?.find(balance => {
117
- return balance.asset_type === "native";
118
- });
130
+ balance =
131
+ account.balances?.find(balance => {
132
+ return balance.asset_type === "native";
133
+ })?.balance || "0";
119
134
  // Getting all non-native (XLM) assets on the account
120
135
  assets = account.balances?.filter(balance => {
121
136
  return balance.asset_type !== "native";
122
- });
137
+ }) as BalanceAsset[];
123
138
  } catch (e) {
124
- balance.balance = "0";
139
+ balance = "0";
125
140
  }
126
141
 
127
- const formattedBalance = parseCurrencyUnit(currency.units[0], balance.balance);
142
+ const formattedBalance = parseCurrencyUnit(currency.units[0], balance);
128
143
 
129
144
  const spendableBalance = await getAccountSpendableBalance(formattedBalance, account);
130
145
 
131
146
  return {
132
- blockHeight: account.sequence ? Number(account.sequence) : 0,
147
+ blockHeight: account.sequence ? new BigNumber(account.sequence).toNumber() : 0,
133
148
  balance: formattedBalance,
134
149
  spendableBalance,
135
150
  assets,
@@ -162,10 +177,9 @@ export const fetchOperations = async ({
162
177
  }
163
178
 
164
179
  let operations: Operation[] = [];
165
- let rawOperations: Record<string, any> = {};
166
180
 
167
181
  try {
168
- rawOperations = await server
182
+ let rawOperations = await server
169
183
  .operations()
170
184
  .forAccount(addr)
171
185
  .limit(LIMIT)
@@ -180,13 +194,13 @@ export const fetchOperations = async ({
180
194
  }
181
195
 
182
196
  operations = operations.concat(
183
- await rawOperationsToOperations(rawOperations.records, addr, accountId),
197
+ await rawOperationsToOperations(rawOperations.records as RawOperation[], addr, accountId),
184
198
  );
185
199
 
186
200
  while (rawOperations.records.length > 0) {
187
201
  rawOperations = await rawOperations.next();
188
202
  operations = operations.concat(
189
- await rawOperationsToOperations(rawOperations.records, addr, accountId),
203
+ await rawOperationsToOperations(rawOperations.records as RawOperation[], addr, accountId),
190
204
  );
191
205
  }
192
206
 
@@ -259,7 +273,7 @@ export const fetchSigners = async (a: Account): Promise<Signer[]> => {
259
273
  };
260
274
 
261
275
  export const broadcastTransaction = async (signedTransaction: string): Promise<string> => {
262
- const transaction = new StellarSdk.Transaction(signedTransaction, StellarSdk.Networks.PUBLIC);
276
+ const transaction = new StellarSdkTransaction(signedTransaction, Networks.PUBLIC);
263
277
  const res = await server.submitTransaction(transaction, {
264
278
  skipMemoRequiredCheck: true,
265
279
  });
@@ -276,41 +290,37 @@ export const buildPaymentOperation = ({
276
290
  amount: BigNumber;
277
291
  assetCode: string | undefined;
278
292
  assetIssuer: string | undefined;
279
- }): any => {
293
+ }) => {
280
294
  const formattedAmount = getFormattedAmount(amount);
281
295
  // Non-native assets should always have asset code and asset issuer. If an
282
296
  // asset doesn't have both, we assume it is native asset.
283
- const asset =
284
- assetCode && assetIssuer
285
- ? new StellarSdk.Asset(assetCode, assetIssuer)
286
- : StellarSdk.Asset.native();
287
- return StellarSdk.Operation.payment({
297
+ const asset = assetCode && assetIssuer ? new Asset(assetCode, assetIssuer) : Asset.native();
298
+ return StellarSdkOperation.payment({
288
299
  destination: destination,
289
300
  amount: formattedAmount,
290
301
  asset,
291
- withMuxing: true,
292
302
  });
293
303
  };
294
304
 
295
- export const buildCreateAccountOperation = (destination: string, amount: BigNumber): any => {
305
+ export const buildCreateAccountOperation = (destination: string, amount: BigNumber) => {
296
306
  const formattedAmount = getFormattedAmount(amount);
297
- return StellarSdk.Operation.createAccount({
307
+ return StellarSdkOperation.createAccount({
298
308
  destination: destination,
299
309
  startingBalance: formattedAmount,
300
310
  });
301
311
  };
302
312
 
303
- export const buildChangeTrustOperation = (assetCode: string, assetIssuer: string): any => {
304
- return StellarSdk.Operation.changeTrust({
305
- asset: new StellarSdk.Asset(assetCode, assetIssuer),
313
+ export const buildChangeTrustOperation = (assetCode: string, assetIssuer: string) => {
314
+ return StellarSdkOperation.changeTrust({
315
+ asset: new Asset(assetCode, assetIssuer),
306
316
  });
307
317
  };
308
318
 
309
- export const buildTransactionBuilder = (source: typeof StellarSdk.Account, fee: BigNumber): any => {
319
+ export const buildTransactionBuilder = (source: StellarSdkAccount, fee: BigNumber) => {
310
320
  const formattedFee = fee.toString();
311
- return new StellarSdk.TransactionBuilder(source, {
321
+ return new TransactionBuilder(source, {
312
322
  fee: formattedFee,
313
- networkPassphrase: StellarSdk.Networks.PUBLIC,
323
+ networkPassphrase: Networks.PUBLIC,
314
324
  });
315
325
  };
316
326
 
@@ -1,5 +1,5 @@
1
1
  import invariant from "invariant";
2
- import StellarSdk from "stellar-sdk";
2
+ import { Memo, Operation as StellarSdkOperation, xdr } from "stellar-sdk";
3
3
  import { AmountRequired, FeeNotLoaded, NetworkDown } from "@ledgerhq/errors";
4
4
  import type { Account } from "@ledgerhq/types-live";
5
5
  import type { Transaction } from "./types";
@@ -17,10 +17,7 @@ import { StellarAssetRequired, StellarMuxedAccountNotExist } from "../../errors"
17
17
  * @param {Account} a
18
18
  * @param {Transaction} t
19
19
  */
20
- export const buildTransaction = async (
21
- account: Account,
22
- transaction: Transaction,
23
- ): Promise<any> => {
20
+ export const buildTransaction = async (account: Account, transaction: Transaction) => {
24
21
  const { recipient, networkInfo, fees, memoType, memoValue, mode, assetCode, assetIssuer } =
25
22
  transaction;
26
23
 
@@ -37,7 +34,7 @@ export const buildTransaction = async (
37
34
  invariant(networkInfo && networkInfo.family === "stellar", "stellar family");
38
35
 
39
36
  const transactionBuilder = buildTransactionBuilder(source, fees);
40
- let operation = null;
37
+ let operation: xdr.Operation<StellarSdkOperation.ChangeTrust> | null = null;
41
38
 
42
39
  if (mode === "changeTrust") {
43
40
  if (!assetCode || !assetIssuer) {
@@ -76,24 +73,24 @@ export const buildTransaction = async (
76
73
 
77
74
  transactionBuilder.addOperation(operation);
78
75
 
79
- let memo = null;
76
+ let memo: Memo | null = null;
80
77
 
81
78
  if (memoType && memoValue) {
82
79
  switch (memoType) {
83
80
  case "MEMO_TEXT":
84
- memo = StellarSdk.Memo.text(memoValue);
81
+ memo = Memo.text(memoValue);
85
82
  break;
86
83
 
87
84
  case "MEMO_ID":
88
- memo = StellarSdk.Memo.id(memoValue);
85
+ memo = Memo.id(memoValue);
89
86
  break;
90
87
 
91
88
  case "MEMO_HASH":
92
- memo = StellarSdk.Memo.hash(memoValue);
89
+ memo = Memo.hash(memoValue);
93
90
  break;
94
91
 
95
92
  case "MEMO_RETURN":
96
- memo = StellarSdk.Memo.return(memoValue);
93
+ memo = Memo.return(memoValue);
97
94
  break;
98
95
  }
99
96
  }
@@ -105,4 +102,5 @@ export const buildTransaction = async (
105
102
  const built = transactionBuilder.setTimeout(0).build();
106
103
  return built;
107
104
  };
105
+
108
106
  export default buildTransaction;
@@ -96,7 +96,9 @@ const getTransactionStatus = async (
96
96
  if (!t.recipient) {
97
97
  errors.recipient = new RecipientRequired("");
98
98
  } else if (!isAddressValid(t.recipient)) {
99
- errors.recipient = new InvalidAddress("");
99
+ errors.recipient = new InvalidAddress("", {
100
+ currencyName: a.currency.name,
101
+ });
100
102
  } else if (a.freshAddress === t.recipient) {
101
103
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
102
104
  }
@@ -2,7 +2,7 @@ import type { CacheRes } from "@ledgerhq/live-network/cache";
2
2
  import { makeLRUCache } from "@ledgerhq/live-network/cache";
3
3
  import type { Account, OperationType, TokenAccount } from "@ledgerhq/types-live";
4
4
  import { BigNumber } from "bignumber.js";
5
- import StellarSdk, { ServerApi } from "stellar-sdk";
5
+ import { ServerApi, StrKey, MuxedAccount } from "stellar-sdk";
6
6
  import { findSubAccountById } from "../../account";
7
7
  import { getCryptoCurrencyById, parseCurrencyUnit } from "../../currencies";
8
8
  import { encodeOperationId } from "../../operation";
@@ -160,6 +160,7 @@ export const formatOperation = async (
160
160
  ? Buffer.from(transaction.memo, "base64").toString("hex")
161
161
  : transaction.memo
162
162
  : null;
163
+
163
164
  const operation: StellarOperation = {
164
165
  id: encodeOperationId(accountId, rawOperation.transaction_hash, type),
165
166
  accountId,
@@ -274,10 +275,7 @@ export const isAddressValid = (address: string): boolean => {
274
275
  if (address === STELLAR_BURN_ADDRESS) return false;
275
276
 
276
277
  try {
277
- return (
278
- StellarSdk.StrKey.isValidEd25519PublicKey(address) ||
279
- StellarSdk.StrKey.isValidMed25519PublicKey(address)
280
- );
278
+ return StrKey.isValidEd25519PublicKey(address) || StrKey.isValidMed25519PublicKey(address);
281
279
  } catch (err) {
282
280
  return false;
283
281
  }
@@ -315,10 +313,10 @@ export const recipientAccount = async (
315
313
 
316
314
  let accountAddress = address;
317
315
 
318
- const isMuxedAccount = Boolean(StellarSdk.StrKey.isValidMed25519PublicKey(address));
316
+ const isMuxedAccount = StrKey.isValidMed25519PublicKey(address);
319
317
 
320
318
  if (isMuxedAccount) {
321
- const muxedAccount = new StellarSdk.MuxedAccount.fromAddress(address, "0");
319
+ const muxedAccount = MuxedAccount.fromAddress(address, "0");
322
320
  accountAddress = muxedAccount.baseAccount().accountId();
323
321
  }
324
322
 
@@ -337,7 +335,7 @@ export const recipientAccount = async (
337
335
  };
338
336
  };
339
337
 
340
- export const rawOperationsToOperations = async (
338
+ export const rawOperationsToOperations = (
341
339
  operations: RawOperation[],
342
340
  addr: string,
343
341
  accountId: string,
@@ -619,7 +619,9 @@ const getTransactionStatus = async (a: TronAccount, t: Transaction): Promise<Tra
619
619
  );
620
620
 
621
621
  if (!isValidAddresses) {
622
- errors.vote = new InvalidAddress();
622
+ errors.vote = new InvalidAddress("", {
623
+ currencyName: a.currency.name,
624
+ });
623
625
  } else if (!isValidVoteCounts) {
624
626
  errors.vote = new TronInvalidVoteCount();
625
627
  } else {
@@ -42,6 +42,7 @@ export const CURRENCY_DEFAULT_FEATURES = {
42
42
  currencyInternetComputer: DEFAULT_FEATURE,
43
43
  currencyKavaEvm: DEFAULT_FEATURE,
44
44
  currencyKlaytn: DEFAULT_FEATURE,
45
+ currencyLukso: DEFAULT_FEATURE,
45
46
  currencyMetis: DEFAULT_FEATURE,
46
47
  currencyMoonriver: DEFAULT_FEATURE,
47
48
  currencyOnomy: DEFAULT_FEATURE,
@@ -60,6 +61,7 @@ export const CURRENCY_DEFAULT_FEATURES = {
60
61
  currencyTelosEvm: DEFAULT_FEATURE,
61
62
  currencyUmee: DEFAULT_FEATURE,
62
63
  currencyVelasEvm: DEFAULT_FEATURE,
64
+ currencyCasper: DEFAULT_FEATURE,
63
65
  currencyNeonEvm: DEFAULT_FEATURE,
64
66
  };
65
67
 
@@ -85,7 +87,6 @@ export const DEFAULT_FEATURES: Features = {
85
87
  ptxServiceCtaScreens: DEFAULT_FEATURE,
86
88
  customImage: DEFAULT_FEATURE,
87
89
  referralProgramDesktopBanner: DEFAULT_FEATURE,
88
- editEthTx: DEFAULT_FEATURE,
89
90
  disableNftLedgerMarket: DEFAULT_FEATURE,
90
91
  disableNftRaribleOpensea: DEFAULT_FEATURE,
91
92
  disableNftSend: DEFAULT_FEATURE,
@@ -102,7 +103,6 @@ export const DEFAULT_FEATURES: Features = {
102
103
  learn: initFeature(),
103
104
  receiveStakingFlowConfigDesktop: initFeature(),
104
105
  brazePushNotifications: initFeature(),
105
- walletConnectLiveApp: initFeature(),
106
106
  walletNftGallery: initFeature(),
107
107
  stakeAccountBanner: initFeature(),
108
108
 
@@ -136,6 +136,11 @@ export const DEFAULT_FEATURES: Features = {
136
136
  params: { supportedCurrencyIds: ["ethereum"] },
137
137
  },
138
138
 
139
+ editEvmTx: {
140
+ enabled: false,
141
+ params: { supportedCurrencyIds: ["ethereum"] },
142
+ },
143
+
139
144
  referralProgramDesktopSidebar: {
140
145
  enabled: false,
141
146
  params: { amount: "$20", isNew: true, path: "/discover/refer-a-friend" },
@@ -156,6 +161,7 @@ export const DEFAULT_FEATURES: Features = {
156
161
  loginURI:
157
162
  "ledgerlive://recover/protect-simu?redirectTo=login&source=lld-welcome-login&ajs_recover_source=lld-welcome-login&ajs_recover_campaign=recover-launch",
158
163
  },
164
+ compatibleDevices: [],
159
165
  discoverTheBenefitsLink: "https://www.ledger.com/recover",
160
166
  onboardingCompleted: {
161
167
  alreadySubscribedURI: "ledgerlive://recover/protect-simu?redirectTo=login",
@@ -289,6 +295,7 @@ export const DEFAULT_FEATURES: Features = {
289
295
  enabled: false,
290
296
  params: {
291
297
  deeplink: "",
298
+ compatibleDevices: [],
292
299
  account: {
293
300
  homeURI:
294
301
  "ledgerlive://recover/protect-simu?redirectTo=account&source=llm-myledger-access-card&ajs_prop_source=llm-myledger-access-card&ajs_prop_campaign=recover-launch",