@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,13 @@
1
+
2
+ // @ts-nocheck
3
+
4
+ import * as React from "react";
5
+ import Svg, { Path } from "react-native-svg";
6
+ interface Props {
7
+ size: number;
8
+ color: string;
9
+ };
10
+ function lyx({ size, color }: Props) {
11
+ return <Svg width={size} height={size} strokeMiterlimit={10} viewBox="0 0 24 24" xmlSpace="preserve" xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink"><Path d="M18.5291 6.5113L13.4538 3.57793C12.5544 3.05736 11.4457 3.05736 10.5462 3.57793L5.47088 6.5113C4.57143 7.03188 4.01709 7.99309 4.01709 9.03426L4.01709 14.9031C4.01709 15.9443 4.57143 16.9055 5.47088 17.4261L10.5462 20.3595C11.4457 20.88 12.5544 20.88 13.4538 20.3595L18.5291 17.4261C19.4286 16.9055 19.9829 15.9443 19.9829 14.9031L19.9829 9.03426C19.9829 7.99309 19.4286 7.03188 18.5291 6.5113ZM16.0271 12.5508L14.5172 15.1688C14.3101 15.5296 13.9262 15.7521 13.5099 15.7521L10.4901 15.7521C10.0738 15.7521 9.68991 15.5296 9.48282 15.1688L7.97297 12.5508C7.76589 12.1901 7.76589 11.7473 7.97297 11.3866L9.48282 8.76856C9.68991 8.40784 10.0738 8.18535 10.4901 8.18535L13.5099 8.18535C13.9262 8.18535 14.3101 8.40784 14.5172 8.76856L16.0271 11.3866C16.2341 11.7451 16.2341 12.1901 16.0271 12.5508Z" fill={color} fillRule="nonzero" opacity={1} stroke="none" /></Svg>;
12
+ }
13
+ export default lyx;
@@ -0,0 +1,8 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24" version="1.1">
2
+ <g>
3
+ <path fill="#000000" d="M 6.136719 4.421875 C 5.804688 4.472656 5.519531 4.609375 5.292969 4.828125 C 5.050781 5.0625 4.90625 5.359375 4.863281 5.707031 C 4.84375 5.867188 4.84375 10.25 4.863281 10.421875 C 4.898438 10.761719 5.054688 11.082031 5.292969 11.3125 C 5.535156 11.539062 5.859375 11.6875 6.214844 11.722656 C 6.304688 11.730469 7.148438 11.734375 9.003906 11.734375 L 11.664062 11.734375 L 11.664062 10.265625 L 9.152344 10.265625 C 7.40625 10.265625 6.625 10.261719 6.59375 10.253906 C 6.53125 10.238281 6.4375 10.152344 6.40625 10.089844 C 6.382812 10.042969 6.382812 9.953125 6.382812 8.070312 L 6.382812 6.09375 L 6.417969 6.03125 C 6.460938 5.949219 6.535156 5.890625 6.625 5.875 C 6.667969 5.867188 7.429688 5.863281 9.1875 5.863281 L 11.6875 5.863281 L 11.6875 4.40625 L 11.605469 4.40625 C 11.476562 4.40625 11.355469 4.433594 11.234375 4.492188 C 11.144531 4.53125 11.105469 4.5625 11.015625 4.648438 C 10.851562 4.808594 10.789062 4.949219 10.765625 5.214844 C 10.753906 5.375 10.726562 5.433594 10.640625 5.523438 C 10.546875 5.617188 10.476562 5.648438 10.347656 5.648438 C 10.257812 5.648438 10.226562 5.644531 10.167969 5.617188 C 10.078125 5.578125 9.996094 5.5 9.957031 5.417969 C 9.933594 5.363281 9.925781 5.320312 9.914062 5.195312 C 9.898438 4.945312 9.832031 4.800781 9.667969 4.640625 C 9.566406 4.542969 9.476562 4.492188 9.34375 4.445312 L 9.25 4.410156 L 7.742188 4.410156 C 6.578125 4.40625 6.214844 4.410156 6.136719 4.421875 Z M 6.136719 4.421875 "/>
4
+ <path fill="#000000" d="M 13.554688 4.421875 C 13.226562 4.472656 12.941406 4.609375 12.714844 4.828125 C 12.46875 5.0625 12.324219 5.359375 12.285156 5.707031 C 12.265625 5.863281 12.265625 7.339844 12.285156 7.496094 C 12.324219 7.832031 12.476562 8.144531 12.714844 8.375 C 12.953125 8.601562 13.285156 8.75 13.640625 8.785156 C 13.722656 8.792969 14.410156 8.796875 15.574219 8.796875 L 17.382812 8.796875 L 17.449219 8.832031 C 17.484375 8.847656 17.53125 8.882812 17.550781 8.90625 C 17.625 8.988281 17.628906 9.023438 17.628906 9.523438 C 17.628906 9.804688 17.621094 9.996094 17.613281 10.035156 C 17.597656 10.117188 17.535156 10.191406 17.453125 10.234375 L 17.382812 10.265625 L 12.269531 10.265625 L 12.269531 11.734375 L 14.960938 11.734375 C 16.730469 11.734375 17.695312 11.730469 17.777344 11.722656 C 18.484375 11.652344 19.015625 11.175781 19.128906 10.507812 C 19.15625 10.34375 19.15625 8.742188 19.128906 8.566406 C 19.03125 7.9375 18.527344 7.457031 17.867188 7.363281 C 17.75 7.34375 17.496094 7.34375 15.902344 7.34375 C 14.082031 7.34375 14.070312 7.34375 14 7.316406 C 13.917969 7.289062 13.839844 7.210938 13.820312 7.136719 C 13.808594 7.105469 13.804688 6.9375 13.804688 6.59375 L 13.804688 6.09375 L 13.839844 6.03125 C 13.882812 5.949219 13.957031 5.890625 14.042969 5.875 C 14.089844 5.867188 14.855469 5.863281 16.628906 5.863281 L 19.148438 5.863281 L 19.148438 4.40625 L 19.074219 4.40625 C 18.972656 4.40625 18.839844 4.433594 18.746094 4.476562 C 18.449219 4.609375 18.273438 4.867188 18.253906 5.179688 C 18.242188 5.355469 18.210938 5.4375 18.117188 5.527344 C 18.058594 5.585938 18.019531 5.609375 17.964844 5.632812 C 17.765625 5.703125 17.53125 5.605469 17.441406 5.414062 C 17.414062 5.363281 17.40625 5.320312 17.398438 5.199219 C 17.390625 5.082031 17.378906 5.027344 17.351562 4.949219 C 17.265625 4.710938 17.082031 4.53125 16.828125 4.445312 L 16.734375 4.410156 L 15.195312 4.410156 C 14.007812 4.40625 13.636719 4.410156 13.554688 4.421875 Z M 13.554688 4.421875 "/>
5
+ <path fill="#000000" d="M 5.734375 12.332031 C 5.398438 12.382812 5.113281 12.589844 4.960938 12.882812 C 4.84375 13.113281 4.859375 12.667969 4.855469 16.941406 L 4.851562 20.722656 L 5.050781 20.855469 C 5.269531 21.007812 5.585938 21.207031 5.789062 21.324219 C 5.960938 21.421875 6.359375 21.636719 6.371094 21.636719 C 6.378906 21.636719 6.382812 20.980469 6.386719 20.171875 L 6.390625 18.707031 L 6.421875 18.636719 C 6.578125 18.324219 7.023438 18.3125 7.179688 18.621094 C 7.21875 18.691406 7.222656 18.71875 7.230469 18.847656 C 7.242188 19.015625 7.265625 19.09375 7.324219 19.210938 C 7.429688 19.40625 7.621094 19.558594 7.851562 19.621094 C 7.929688 19.640625 8.011719 19.640625 9.167969 19.640625 L 10.402344 19.640625 L 10.535156 19.613281 C 11.140625 19.488281 11.570312 19.074219 11.703125 18.496094 L 11.734375 18.367188 L 11.734375 15.984375 C 11.734375 14.027344 11.730469 13.582031 11.714844 13.507812 C 11.613281 12.972656 11.226562 12.550781 10.679688 12.386719 C 10.445312 12.316406 10.515625 12.316406 8.054688 12.320312 C 6.808594 12.320312 5.765625 12.324219 5.734375 12.332031 Z M 9.953125 13.789062 C 10.046875 13.808594 10.128906 13.867188 10.171875 13.941406 L 10.207031 14.007812 L 10.207031 15.976562 C 10.207031 18.167969 10.214844 17.992188 10.121094 18.085938 C 10.09375 18.113281 10.050781 18.144531 10.023438 18.15625 C 9.976562 18.179688 9.902344 18.179688 8.292969 18.179688 C 6.6875 18.179688 6.613281 18.179688 6.566406 18.15625 C 6.535156 18.144531 6.492188 18.113281 6.46875 18.089844 C 6.375 17.996094 6.382812 18.164062 6.386719 15.964844 L 6.390625 13.984375 L 6.425781 13.925781 C 6.472656 13.851562 6.546875 13.800781 6.625 13.789062 C 6.710938 13.773438 9.875 13.769531 9.953125 13.789062 Z M 9.953125 13.789062 "/>
6
+ <path fill="#000000" d="M 12.308594 13.0625 L 12.308594 13.796875 L 12.886719 13.796875 C 13.433594 13.796875 13.464844 13.800781 13.53125 13.824219 C 13.613281 13.851562 13.6875 13.929688 13.710938 14.003906 C 13.722656 14.039062 13.726562 14.539062 13.726562 16 C 13.726562 17.929688 13.726562 17.949219 13.703125 18.015625 C 13.671875 18.089844 13.59375 18.167969 13.523438 18.1875 C 13.5 18.195312 13.375 18.207031 13.246094 18.207031 C 13.085938 18.210938 12.988281 18.222656 12.9375 18.234375 C 12.710938 18.292969 12.5 18.460938 12.398438 18.652344 C 12.316406 18.8125 12.308594 18.871094 12.308594 19.296875 L 12.308594 19.671875 L 16.488281 19.671875 L 16.488281 18.203125 L 15.992188 18.203125 C 15.433594 18.203125 15.4375 18.203125 15.347656 18.113281 C 15.253906 18.019531 15.257812 18.175781 15.257812 16.003906 C 15.257812 14.542969 15.261719 14.039062 15.273438 14.003906 C 15.296875 13.929688 15.375 13.851562 15.457031 13.824219 C 15.527344 13.796875 15.539062 13.796875 17.335938 13.796875 L 19.148438 13.796875 L 19.148438 12.332031 L 18.007812 12.332031 C 16.726562 12.332031 16.773438 12.328125 16.578125 12.417969 C 16.492188 12.457031 16.445312 12.492188 16.367188 12.566406 C 16.199219 12.726562 16.128906 12.878906 16.109375 13.132812 C 16.097656 13.296875 16.0625 13.378906 15.976562 13.464844 C 15.808594 13.621094 15.570312 13.625 15.390625 13.46875 C 15.300781 13.390625 15.269531 13.3125 15.257812 13.144531 C 15.246094 12.964844 15.230469 12.90625 15.167969 12.785156 C 15.085938 12.617188 14.953125 12.492188 14.773438 12.40625 C 14.601562 12.332031 14.621094 12.332031 13.40625 12.332031 L 12.308594 12.332031 Z M 12.308594 13.0625 "/>
7
+ </g>
8
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" stroke-miterlimit="10" version="1.1" viewBox="0 0 24 24" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <path d="M18.5291 6.5113L13.4538 3.57793C12.5544 3.05736 11.4457 3.05736 10.5462 3.57793L5.47088 6.5113C4.57143 7.03188 4.01709 7.99309 4.01709 9.03426L4.01709 14.9031C4.01709 15.9443 4.57143 16.9055 5.47088 17.4261L10.5462 20.3595C11.4457 20.88 12.5544 20.88 13.4538 20.3595L18.5291 17.4261C19.4286 16.9055 19.9829 15.9443 19.9829 14.9031L19.9829 9.03426C19.9829 7.99309 19.4286 7.03188 18.5291 6.5113ZM16.0271 12.5508L14.5172 15.1688C14.3101 15.5296 13.9262 15.7521 13.5099 15.7521L10.4901 15.7521C10.0738 15.7521 9.68991 15.5296 9.48282 15.1688L7.97297 12.5508C7.76589 12.1901 7.76589 11.7473 7.97297 11.3866L9.48282 8.76856C9.68991 8.40784 10.0738 8.18535 10.4901 8.18535L13.5099 8.18535C13.9262 8.18535 14.3101 8.40784 14.5172 8.76856L16.0271 11.3866C16.2341 11.7451 16.2341 12.1901 16.0271 12.5508Z" fill="#131313" fill-rule="nonzero" opacity="1" stroke="none"/>
3
+ </svg>
@@ -5,6 +5,18 @@ import { concatMap } from "rxjs/operators";
5
5
  import { TransportRef } from "../transports/core";
6
6
  import { aTransportRefBuilder } from "../mocks/aTransportRef";
7
7
 
8
+ // Needs to mock the timer from rxjs used in the retry mechanism
9
+ jest.mock("rxjs", () => {
10
+ const originalModule = jest.requireActual("rxjs");
11
+
12
+ return {
13
+ ...originalModule,
14
+ timer: jest.fn(() => {
15
+ return of(1);
16
+ }),
17
+ };
18
+ });
19
+
8
20
  describe("sharedLogicTaskWrapper", () => {
9
21
  const task = jest.fn();
10
22
  const wrappedTask = sharedLogicTaskWrapper<void, { type: "data" }>(task);
@@ -278,7 +290,10 @@ describe("retryOnErrorsCommandWrapper", () => {
278
290
  describe("When the command throws an error that is set to be handled by the wrapper, and this error can be retried an infinite number of times", () => {
279
291
  it("should retry infinitely, without throwing an error, until a correct event is emitted", done => {
280
292
  let counter = 0;
281
- const randomNumberOfRetries = Math.floor(Math.random() * 10 + 5);
293
+
294
+ // The default retry time is 500ms: testing a total time higher than the 5000ms that triggers a Jest timeout
295
+ // as the time should be mocked/faked
296
+ const randomNumberOfRetries = Math.floor(Math.random() * 5) + 11;
282
297
 
283
298
  command.mockReturnValue(
284
299
  of({ type: "data" }).pipe(
@@ -80,20 +80,7 @@ const completeExchange = (
80
80
  if (unsubscribed) return;
81
81
 
82
82
  const bufferSignature = Buffer.from(signature, "hex");
83
- /**
84
- * For the Fund and Swap flow, the signature sent to the nano needs to
85
- * be in DER format, which is not the case for Sell flow. Hence the
86
- * ternary.
87
- * cf. https://github.com/LedgerHQ/app-exchange/blob/e67848f136dc7227521791b91f608f7cd32e7da7/src/check_tx_signature.c#L14-L32
88
- */
89
- const goodSign =
90
- exchangeType === ExchangeTypes.Sell
91
- ? bufferSignature
92
- : Buffer.from(secp256k1.signatureExport(bufferSignature));
93
-
94
- if (!goodSign) {
95
- throw new Error("Could not check provider signature");
96
- }
83
+ const goodSign = convertSignature(bufferSignature, exchangeType);
97
84
 
98
85
  await exchange.checkTransactionSignature(goodSign);
99
86
  if (unsubscribed) return;
@@ -169,4 +156,26 @@ const completeExchange = (
169
156
  });
170
157
  };
171
158
 
159
+ /**
160
+ * For the Fund and Swap flow, the signature sent to the nano needs to
161
+ * be in DER format, which is not the case for Sell flow. Hence the
162
+ * ternary.
163
+ * cf. https://github.com/LedgerHQ/app-exchange/blob/e67848f136dc7227521791b91f608f7cd32e7da7/src/check_tx_signature.c#L14-L32
164
+ * @param {Buffer} bufferSignature
165
+ * @param {ExchangeTypes} exchangeType
166
+ * @return {Buffer} The correct format Buffer for AppExchange call.
167
+ */
168
+ function convertSignature(bufferSignature: Buffer, exchangeType: ExchangeTypes): Buffer {
169
+ const goodSign =
170
+ exchangeType === ExchangeTypes.Sell
171
+ ? bufferSignature
172
+ : Buffer.from(secp256k1.signatureExport(bufferSignature));
173
+
174
+ if (!goodSign) {
175
+ throw new Error("Could not check provider signature");
176
+ }
177
+
178
+ return goodSign;
179
+ }
180
+
172
181
  export default completeExchange;
@@ -9,7 +9,7 @@ import { TransactionRefusedOnDevice } from "../../errors";
9
9
  import perFamily from "../../generated/exchange";
10
10
  import { withDevice } from "../../hw/deviceAccess";
11
11
  import { delay } from "../../promise";
12
- import { createExchange, getExchangeErrorMessage } from "@ledgerhq/hw-app-exchange";
12
+ import { ExchangeTypes, createExchange, getExchangeErrorMessage } from "@ledgerhq/hw-app-exchange";
13
13
  import type { CompleteExchangeInputSwap, CompleteExchangeRequestEvent } from "../platform/types";
14
14
  import { getProviderConfig } from "./";
15
15
 
@@ -111,7 +111,7 @@ const completeExchange = (
111
111
  await exchange.processTransaction(Buffer.from(binaryPayload, "hex"), estimatedFees);
112
112
  if (unsubscribed) return;
113
113
 
114
- const goodSign = <Buffer>secp256k1.signatureExport(Buffer.from(signature, "hex"));
114
+ const goodSign = convertSignature(signature, exchangeType);
115
115
  currentStep = "CHECK_TRANSACTION_SIGNATURE";
116
116
 
117
117
  await exchange.checkTransactionSignature(goodSign);
@@ -229,4 +229,10 @@ const completeExchange = (
229
229
  });
230
230
  };
231
231
 
232
+ function convertSignature(signature: string, exchangeType: ExchangeTypes): Buffer {
233
+ return exchangeType === ExchangeTypes.SwapNg
234
+ ? Buffer.from(signature, "base64url")
235
+ : <Buffer>secp256k1.signatureExport(Buffer.from(signature, "hex"));
236
+ }
237
+
232
238
  export default completeExchange;
@@ -1,4 +1,10 @@
1
- import { AmountRequired, NotEnoughGas, NotEnoughGasSwap } from "@ledgerhq/errors";
1
+ import {
2
+ AmountRequired,
3
+ FeeNotLoaded,
4
+ FeeNotLoadedSwap,
5
+ NotEnoughGas,
6
+ NotEnoughGasSwap,
7
+ } from "@ledgerhq/errors";
2
8
  import { useMemo } from "react";
3
9
  import {
4
10
  SwapSelectorStateType,
@@ -73,6 +79,11 @@ export const useFromAmountStatusMessage = (
73
79
  });
74
80
  }
75
81
 
82
+ // convert to swap variation of error to display correct message to frontend.
83
+ if (relevantStatus instanceof FeeNotLoaded) {
84
+ return new FeeNotLoadedSwap();
85
+ }
86
+
76
87
  return relevantStatus;
77
88
  }, [statusEntries, currency, estimatedFees, transaction?.amount, account?.id, parentAccount?.id]);
78
89
  };
@@ -122,7 +133,7 @@ export const useSwapTransaction = ({
122
133
 
123
134
  const { account: toAccount } = toState;
124
135
 
125
- const fromAmountError = useFromAmountStatusMessage(bridgeTransaction, ["amount"]);
136
+ const fromAmountError = useFromAmountStatusMessage(bridgeTransaction, ["amount", "gasLimit"]);
126
137
  // treat the gasPrice error as a warning for swap.
127
138
  const fromAmountWarning = useFromAmountStatusMessage(bridgeTransaction, ["gasPrice"]);
128
139
 
@@ -94,12 +94,12 @@ const swapProviders: Record<string, ProviderConfig> = {
94
94
  publicKey: {
95
95
  curve: "secp256k1",
96
96
  data: Buffer.from(
97
- "04b2779a60948b55963f86e62cd018d131a02f40d843baeadf356dbc7fe8294bc6a0127c6684693e83c8221cdee13d05fd078d9b68f3f4816e6274f1d5a9ead70e",
97
+ "044989cad389020fadfb9d7a85d29338a450beec571347d2989fb57b99ecddbc8907cf8c229deee30fb8ac139e978cab8f6efad76bde2a9c6d6710ceda1fe0a4d8",
98
98
  "hex",
99
99
  ),
100
100
  },
101
101
  signature: Buffer.from(
102
- "304402206fc56b6dd1428418d1c93807e8bf36ca4179cfd2f427adf69b065aabbe8335920220067080466d9fc3a6b86d6c0ddb84ef96b6e02efb4aea64158a5f05277bea4bdf",
102
+ "3045022100e35f78bbdf543614fa7db7ccc45622186b727d1d5b0accbdaf220ac54d4cd2fb02200f7decbb5a6e822668af73bf0ddcde822121e29642436aa6de11feabf12cf2f0",
103
103
  "hex",
104
104
  ),
105
105
  needsKYC: false,
@@ -61,7 +61,9 @@ const getTransactionStatus = (account: Account, t: Transaction) => {
61
61
  if (!t.recipient) {
62
62
  errors.recipient = new RecipientRequired("");
63
63
  } else if (isInvalidRecipient(t.recipient)) {
64
- errors.recipient = new InvalidAddress("");
64
+ errors.recipient = new InvalidAddress("", {
65
+ currencyName: account.currency.name,
66
+ });
65
67
  }
66
68
 
67
69
  return Promise.resolve({
@@ -0,0 +1,238 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`casper currency bridge scanAccounts casper seed 1 1`] = `
4
+ Array [
5
+ Object {
6
+ "balance": "9750000000",
7
+ "currencyId": "casper",
8
+ "derivationMode": "casper_wallet",
9
+ "freshAddress": "02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16",
10
+ "freshAddressPath": "44'/506'/0'/0/0",
11
+ "freshAddresses": Array [
12
+ Object {
13
+ "address": "02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16",
14
+ "derivationPath": "44'/506'/0'/0/0",
15
+ },
16
+ ],
17
+ "id": "js:2:casper:02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16:casper_wallet",
18
+ "index": 0,
19
+ "name": "Casper 1",
20
+ "nfts": undefined,
21
+ "operationsCount": 2,
22
+ "pendingOperations": Array [],
23
+ "seedIdentifier": "038c8cb0f62b4efcd0c7868c2e749dda649affe30ff0f95fc91ce48ea67f077d16",
24
+ "spendableBalance": "9750000000",
25
+ "starred": false,
26
+ "swapHistory": Array [],
27
+ "syncHash": undefined,
28
+ "unitMagnitude": 9,
29
+ "used": true,
30
+ },
31
+ Object {
32
+ "balance": "4550000000",
33
+ "currencyId": "casper",
34
+ "derivationMode": "casper_wallet",
35
+ "freshAddress": "0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581",
36
+ "freshAddressPath": "44'/506'/0'/0/1",
37
+ "freshAddresses": Array [
38
+ Object {
39
+ "address": "0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581",
40
+ "derivationPath": "44'/506'/0'/0/1",
41
+ },
42
+ ],
43
+ "id": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet",
44
+ "index": 1,
45
+ "name": "Casper 2",
46
+ "nfts": undefined,
47
+ "operationsCount": 4,
48
+ "pendingOperations": Array [],
49
+ "seedIdentifier": "038c8cb0f62b4efcd0c7868c2e749dda649affe30ff0f95fc91ce48ea67f077d16",
50
+ "spendableBalance": "4550000000",
51
+ "starred": false,
52
+ "swapHistory": Array [],
53
+ "syncHash": undefined,
54
+ "unitMagnitude": 9,
55
+ "used": true,
56
+ },
57
+ Object {
58
+ "balance": "0",
59
+ "currencyId": "casper",
60
+ "derivationMode": "casper_wallet",
61
+ "freshAddress": "02022AAB9B6ED404f8CFFE76ce493E1995d195B5F141Ee7D5B7fb20FCE60f2A49691",
62
+ "freshAddressPath": "44'/506'/0'/0/2",
63
+ "freshAddresses": Array [
64
+ Object {
65
+ "address": "02022AAB9B6ED404f8CFFE76ce493E1995d195B5F141Ee7D5B7fb20FCE60f2A49691",
66
+ "derivationPath": "44'/506'/0'/0/2",
67
+ },
68
+ ],
69
+ "id": "js:2:casper:02022AAB9B6ED404f8CFFE76ce493E1995d195B5F141Ee7D5B7fb20FCE60f2A49691:casper_wallet",
70
+ "index": 2,
71
+ "name": "Casper 3",
72
+ "nfts": undefined,
73
+ "operationsCount": 0,
74
+ "pendingOperations": Array [],
75
+ "seedIdentifier": "038c8cb0f62b4efcd0c7868c2e749dda649affe30ff0f95fc91ce48ea67f077d16",
76
+ "spendableBalance": "0",
77
+ "starred": false,
78
+ "swapHistory": Array [],
79
+ "syncHash": undefined,
80
+ "unitMagnitude": 9,
81
+ "used": false,
82
+ },
83
+ ]
84
+ `;
85
+
86
+ exports[`casper currency bridge scanAccounts casper seed 1 2`] = `
87
+ Array [
88
+ Array [
89
+ Object {
90
+ "accountId": "js:2:casper:02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16:casper_wallet",
91
+ "blockHash": null,
92
+ "blockHeight": 1,
93
+ "contract": undefined,
94
+ "extra": Object {
95
+ "transferId": undefined,
96
+ },
97
+ "fee": "100000000",
98
+ "hasFailed": false,
99
+ "hash": "17cc9162da13394478f4f00dc7be53cb4406b6762cc2341c60bfdbf9e137a03f",
100
+ "id": "js:2:casper:02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16:casper_wallet-17cc9162da13394478f4f00dc7be53cb4406b6762cc2341c60bfdbf9e137a03f-IN",
101
+ "operator": undefined,
102
+ "recipients": Array [
103
+ "f74845d90933546a90faec6a605961d078b0fbf1a3b954cee8cd982e43b7c09d",
104
+ ],
105
+ "senders": Array [
106
+ "79e548dd1AEd87E79e797704c1175266eB705757Ba52d786784A72655eB53e7f",
107
+ ],
108
+ "standard": undefined,
109
+ "tokenId": undefined,
110
+ "type": "IN",
111
+ "value": "7250000000",
112
+ },
113
+ Object {
114
+ "accountId": "js:2:casper:02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16:casper_wallet",
115
+ "blockHash": null,
116
+ "blockHeight": 1,
117
+ "contract": undefined,
118
+ "extra": Object {
119
+ "transferId": undefined,
120
+ },
121
+ "fee": "100000000",
122
+ "hasFailed": false,
123
+ "hash": "74c9cedc96bdde3e4dba8ceb0dc702e27bf259ad94f5e5e67adef25c388075b8",
124
+ "id": "js:2:casper:02038C8cb0f62b4EFcD0C7868c2e749Dda649aFFE30fF0f95fc91CE48EA67F077D16:casper_wallet-74c9cedc96bdde3e4dba8ceb0dc702e27bf259ad94f5e5e67adef25c388075b8-IN",
125
+ "operator": undefined,
126
+ "recipients": Array [
127
+ "f74845d90933546a90faec6a605961d078b0fbf1a3b954cee8cd982e43b7c09d",
128
+ ],
129
+ "senders": Array [
130
+ "79e548dd1AEd87E79e797704c1175266eB705757Ba52d786784A72655eB53e7f",
131
+ ],
132
+ "standard": undefined,
133
+ "tokenId": undefined,
134
+ "type": "IN",
135
+ "value": "2500000000",
136
+ },
137
+ ],
138
+ Array [
139
+ Object {
140
+ "accountId": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet",
141
+ "blockHash": null,
142
+ "blockHeight": 1,
143
+ "contract": undefined,
144
+ "extra": Object {
145
+ "transferId": undefined,
146
+ },
147
+ "fee": "100000000",
148
+ "hasFailed": false,
149
+ "hash": "17cc9162da13394478f4f00dc7be53cb4406b6762cc2341c60bfdbf9e137a03f",
150
+ "id": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet-17cc9162da13394478f4f00dc7be53cb4406b6762cc2341c60bfdbf9e137a03f-OUT",
151
+ "operator": undefined,
152
+ "recipients": Array [
153
+ "f74845d90933546a90faec6a605961d078b0fbf1a3b954cee8cd982e43b7c09d",
154
+ ],
155
+ "senders": Array [
156
+ "79e548dd1AEd87E79e797704c1175266eB705757Ba52d786784A72655eB53e7f",
157
+ ],
158
+ "standard": undefined,
159
+ "tokenId": undefined,
160
+ "type": "OUT",
161
+ "value": "7350000000",
162
+ },
163
+ Object {
164
+ "accountId": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet",
165
+ "blockHash": null,
166
+ "blockHeight": 1,
167
+ "contract": undefined,
168
+ "extra": Object {
169
+ "transferId": "7772882",
170
+ },
171
+ "fee": "100000000",
172
+ "hasFailed": false,
173
+ "hash": "6dd86840ad7bcd25f5344128cfc34ae9dcea53f5081eb8c6cbd21e2cf3cbabb8",
174
+ "id": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet-6dd86840ad7bcd25f5344128cfc34ae9dcea53f5081eb8c6cbd21e2cf3cbabb8-IN",
175
+ "operator": undefined,
176
+ "recipients": Array [
177
+ "79e548dd1aed87e79e797704c1175266eb705757ba52d786784a72655eb53e7f",
178
+ ],
179
+ "senders": Array [
180
+ "947cC343545C8215f1612F199B417e6fC1000139Bb451c1554e63123ac9FB66E",
181
+ ],
182
+ "standard": undefined,
183
+ "tokenId": undefined,
184
+ "type": "IN",
185
+ "value": "12000000000",
186
+ },
187
+ Object {
188
+ "accountId": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet",
189
+ "blockHash": null,
190
+ "blockHeight": 1,
191
+ "contract": undefined,
192
+ "extra": Object {
193
+ "transferId": undefined,
194
+ },
195
+ "fee": "100000000",
196
+ "hasFailed": false,
197
+ "hash": "74c9cedc96bdde3e4dba8ceb0dc702e27bf259ad94f5e5e67adef25c388075b8",
198
+ "id": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet-74c9cedc96bdde3e4dba8ceb0dc702e27bf259ad94f5e5e67adef25c388075b8-OUT",
199
+ "operator": undefined,
200
+ "recipients": Array [
201
+ "f74845d90933546a90faec6a605961d078b0fbf1a3b954cee8cd982e43b7c09d",
202
+ ],
203
+ "senders": Array [
204
+ "79e548dd1AEd87E79e797704c1175266eB705757Ba52d786784A72655eB53e7f",
205
+ ],
206
+ "standard": undefined,
207
+ "tokenId": undefined,
208
+ "type": "OUT",
209
+ "value": "2600000000",
210
+ },
211
+ Object {
212
+ "accountId": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet",
213
+ "blockHash": null,
214
+ "blockHeight": 1,
215
+ "contract": undefined,
216
+ "extra": Object {
217
+ "transferId": undefined,
218
+ },
219
+ "fee": "100000000",
220
+ "hasFailed": false,
221
+ "hash": "d179d7aeb1e9046a1a50550f0e188a2a3c3cb257b9ebb1e225c9d8de6729625a",
222
+ "id": "js:2:casper:0202bA6DC98cbE677711a45bf028A03646F9e588996eB223fad2485e8bc391b01581:casper_wallet-d179d7aeb1e9046a1a50550f0e188a2a3c3cb257b9ebb1e225c9d8de6729625a-IN",
223
+ "operator": undefined,
224
+ "recipients": Array [
225
+ "79e548dd1aed87e79e797704c1175266eb705757ba52d786784a72655eb53e7f",
226
+ ],
227
+ "senders": Array [
228
+ "947cC343545C8215f1612F199B417e6fC1000139Bb451c1554e63123ac9FB66E",
229
+ ],
230
+ "standard": undefined,
231
+ "tokenId": undefined,
232
+ "type": "IN",
233
+ "value": "2500000000",
234
+ },
235
+ ],
236
+ Array [],
237
+ ]
238
+ `;
@@ -0,0 +1,166 @@
1
+ import { log } from "@ledgerhq/logs";
2
+ import { AxiosRequestConfig, AxiosResponse } from "axios";
3
+
4
+ import {
5
+ NDeployMessagePutResponse,
6
+ IndexerResponseRoot,
7
+ ITxnHistoryData,
8
+ NAccountBalance,
9
+ NAccountInfo,
10
+ NNetworkStatusResponse,
11
+ NodeResponseRoot,
12
+ NodeRPCPayload,
13
+ NStateRootHashResponse,
14
+ } from "./types";
15
+
16
+ import network from "@ledgerhq/live-network/network";
17
+ import { AccessRights, CLURef, DeployUtil } from "casper-js-sdk";
18
+ import { getEnv } from "@ledgerhq/live-env";
19
+
20
+ const getCasperIndexerURL = (path: string): string => {
21
+ const baseUrl = getEnv("API_CASPER_INDEXER_ENDPOINT");
22
+ if (!baseUrl) throw new Error("API base URL not available");
23
+
24
+ return `${baseUrl}${path}`;
25
+ };
26
+
27
+ const getCasperNodeURL = (): string => {
28
+ const baseUrl = getEnv("API_CASPER_NODE_ENDPOINT");
29
+ if (!baseUrl) throw new Error("API base URL not available");
30
+
31
+ return baseUrl;
32
+ };
33
+
34
+ const casperIndexerWrapper = async <T>(path: string) => {
35
+ const url = getCasperIndexerURL(path);
36
+ const getResponse = async (page: number) => {
37
+ // We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
38
+ const opts: AxiosRequestConfig = {
39
+ method: "GET",
40
+ url: `${url}?limit=100&page=${page}`,
41
+ };
42
+
43
+ const rawResponse = await network(opts);
44
+ // We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
45
+ const { data } = rawResponse as AxiosResponse<IndexerResponseRoot<T>>;
46
+
47
+ return data;
48
+ };
49
+
50
+ let page = 1;
51
+ const res: T[] = [];
52
+
53
+ const data = await getResponse(page);
54
+ const { pageCount } = data;
55
+ res.push(...data.data);
56
+
57
+ while (page <= pageCount) {
58
+ page++;
59
+ const data = await getResponse(page);
60
+ res.push(...data.data);
61
+ }
62
+
63
+ log("http", url);
64
+ return res;
65
+ };
66
+
67
+ const casperNodeWrapper = async <T>(payload: NodeRPCPayload) => {
68
+ const url = getCasperNodeURL();
69
+
70
+ // We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
71
+ const opts: AxiosRequestConfig = {
72
+ method: "POST",
73
+ url,
74
+ data: payload,
75
+ };
76
+ const rawResponse = await network(opts);
77
+
78
+ // We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
79
+ const { data } = rawResponse as AxiosResponse<NodeResponseRoot<T>>;
80
+
81
+ log("http", url);
82
+ return data.result;
83
+ };
84
+
85
+ export const fetchAccountStateInfo = async (
86
+ publicKey: string,
87
+ ): Promise<{
88
+ purseUref: CLURef | undefined;
89
+ accountHash: string | undefined;
90
+ }> => {
91
+ const accountStateInfo = await casperNodeWrapper<NAccountInfo>({
92
+ jsonrpc: "2.0",
93
+ method: "state_get_account_info",
94
+ params: {
95
+ public_key: publicKey,
96
+ },
97
+ id: 1,
98
+ });
99
+
100
+ if (!accountStateInfo) {
101
+ return {
102
+ purseUref: undefined,
103
+ accountHash: undefined,
104
+ };
105
+ }
106
+
107
+ const accountHash = accountStateInfo.account.account_hash.split("-")[2];
108
+ const purseURefString = accountStateInfo.account.main_purse.split("-")[1];
109
+
110
+ const uRef = new CLURef(Buffer.from(purseURefString, "hex"), AccessRights.READ_ADD_WRITE);
111
+
112
+ return { purseUref: uRef, accountHash };
113
+ };
114
+
115
+ export const fetchBalance = async (purseUref: CLURef): Promise<NAccountBalance> => {
116
+ const stateRootInfo = await casperNodeWrapper<NStateRootHashResponse>({
117
+ jsonrpc: "2.0",
118
+ method: "chain_get_state_root_hash",
119
+ params: null,
120
+ id: 1,
121
+ });
122
+
123
+ const accountBalance = await casperNodeWrapper<NAccountBalance>({
124
+ jsonrpc: "2.0",
125
+ method: "state_get_balance",
126
+ params: {
127
+ purse_uref: purseUref.toFormattedStr(),
128
+ state_root_hash: stateRootInfo.state_root_hash,
129
+ },
130
+ id: 1,
131
+ });
132
+
133
+ return accountBalance;
134
+ };
135
+
136
+ export const fetchNetworkStatus = async (): Promise<NNetworkStatusResponse> => {
137
+ const payload: NodeRPCPayload = {
138
+ id: 1,
139
+ jsonrpc: "2.0",
140
+ method: "info_get_status",
141
+ params: null,
142
+ };
143
+ const data = await casperNodeWrapper<NNetworkStatusResponse>(payload);
144
+
145
+ return data;
146
+ };
147
+
148
+ export const fetchTxs = async (addr: string): Promise<ITxnHistoryData[]> => {
149
+ const response = await casperIndexerWrapper<ITxnHistoryData>(
150
+ `/accounts/${addr}/ledgerlive-deploys`,
151
+ );
152
+ return response;
153
+ };
154
+
155
+ export const broadcastTx = async (
156
+ deploy: DeployUtil.Deploy,
157
+ ): Promise<NDeployMessagePutResponse> => {
158
+ const response = await casperNodeWrapper<NDeployMessagePutResponse>({
159
+ id: 1,
160
+ jsonrpc: "2.0",
161
+ method: "account_put_deploy",
162
+ params: DeployUtil.deployToJson(deploy),
163
+ });
164
+
165
+ return response;
166
+ };