@ledgerhq/live-common 21.28.0 → 21.31.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 (324) hide show
  1. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.js +1 -1
  2. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.js.map +1 -1
  3. package/lib/__tests__/test-helpers/bridge.js +1 -1
  4. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  5. package/lib/__tests__/test-helpers/setup.js +1 -0
  6. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  7. package/lib/account/support.d.ts.map +1 -1
  8. package/lib/account/support.js.map +1 -1
  9. package/lib/apps/hw.d.ts.map +1 -1
  10. package/lib/apps/hw.js +8 -3
  11. package/lib/apps/hw.js.map +1 -1
  12. package/lib/bot/engine.js +1 -1
  13. package/lib/bot/engine.js.map +1 -1
  14. package/lib/bridge/jsHelpers.js +1 -1
  15. package/lib/data/icons/react/celo.d.ts +8 -0
  16. package/lib/data/icons/react/celo.d.ts.map +1 -0
  17. package/lib/data/icons/react/celo.js +32 -0
  18. package/lib/data/icons/react/celo.js.map +1 -0
  19. package/lib/data/icons/react/index.d.ts +1 -0
  20. package/lib/data/icons/react/index.d.ts.map +1 -1
  21. package/lib/data/icons/react/index.js +11 -8
  22. package/lib/data/icons/react/index.js.map +1 -1
  23. package/lib/data/icons/reactNative/celo.d.ts +8 -0
  24. package/lib/data/icons/reactNative/celo.d.ts.map +1 -0
  25. package/lib/data/icons/reactNative/celo.js +33 -0
  26. package/lib/data/icons/reactNative/celo.js.map +1 -0
  27. package/lib/data/icons/reactNative/index.d.ts +1 -0
  28. package/lib/data/icons/reactNative/index.d.ts.map +1 -1
  29. package/lib/data/icons/reactNative/index.js +11 -8
  30. package/lib/data/icons/reactNative/index.js.map +1 -1
  31. package/lib/env.d.ts +20 -5
  32. package/lib/env.d.ts.map +1 -1
  33. package/lib/env.js +15 -0
  34. package/lib/env.js.map +1 -1
  35. package/lib/env.react.d.ts +1 -1
  36. package/lib/env.react.d.ts.map +1 -1
  37. package/lib/exchange/swap/hooks/usePickDefaultAccount.d.ts.map +1 -1
  38. package/lib/exchange/swap/hooks/usePickDefaultAccount.js +4 -9
  39. package/lib/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  40. package/lib/exchange/swap/utils/index.d.ts +6 -1
  41. package/lib/exchange/swap/utils/index.d.ts.map +1 -1
  42. package/lib/exchange/swap/utils/index.js +8 -1
  43. package/lib/exchange/swap/utils/index.js.map +1 -1
  44. package/lib/exchange/swap/utils/index.test.js +27 -0
  45. package/lib/exchange/swap/utils/index.test.js.map +1 -1
  46. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
  47. package/lib/families/bitcoin/wallet-btc/crypto/base.js +19 -20
  48. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
  49. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts.map +1 -1
  50. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js +4 -5
  51. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js.map +1 -1
  52. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +1 -1
  53. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +3 -4
  54. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +1 -1
  55. package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts.map +1 -1
  56. package/lib/families/bitcoin/wallet-btc/crypto/decred.js +3 -4
  57. package/lib/families/bitcoin/wallet-btc/crypto/decred.js.map +1 -1
  58. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts.map +1 -1
  59. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js +3 -4
  60. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js.map +1 -1
  61. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +1 -1
  62. package/lib/families/bitcoin/wallet-btc/crypto/zec.js +3 -4
  63. package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +1 -1
  64. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +1 -1
  65. package/lib/families/bitcoin/wallet-btc/crypto/zen.js +3 -4
  66. package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +1 -1
  67. package/lib/families/bitcoin/wallet-btc/xpub.js +1 -1
  68. package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
  69. package/lib/families/celo/api/hubble.d.ts +8 -0
  70. package/lib/families/celo/api/hubble.d.ts.map +1 -0
  71. package/lib/families/celo/api/hubble.js +144 -0
  72. package/lib/families/celo/api/hubble.js.map +1 -0
  73. package/lib/families/celo/api/index.d.ts +2 -0
  74. package/lib/families/celo/api/index.d.ts.map +1 -0
  75. package/lib/families/celo/api/index.js +13 -0
  76. package/lib/families/celo/api/index.js.map +1 -0
  77. package/lib/families/celo/api/sdk.d.ts +3 -0
  78. package/lib/families/celo/api/sdk.d.ts.map +1 -0
  79. package/lib/families/celo/api/sdk.js +13 -0
  80. package/lib/families/celo/api/sdk.js.map +1 -0
  81. package/lib/families/celo/bridge/js.d.ts +8 -0
  82. package/lib/families/celo/bridge/js.d.ts.map +1 -0
  83. package/lib/families/celo/bridge/js.js +87 -0
  84. package/lib/families/celo/bridge/js.js.map +1 -0
  85. package/lib/families/celo/cli-transaction.d.ts +14 -0
  86. package/lib/families/celo/cli-transaction.d.ts.map +1 -0
  87. package/lib/families/celo/cli-transaction.js +37 -0
  88. package/lib/families/celo/cli-transaction.js.map +1 -0
  89. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts +5 -0
  90. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts.map +1 -0
  91. package/lib/families/celo/datasets/celo.scanAccounts.1.js +12 -0
  92. package/lib/families/celo/datasets/celo.scanAccounts.1.js.map +1 -0
  93. package/lib/families/celo/deviceTransactionConfig.d.ts +4 -0
  94. package/lib/families/celo/deviceTransactionConfig.d.ts.map +1 -0
  95. package/lib/families/celo/deviceTransactionConfig.js +16 -0
  96. package/lib/families/celo/deviceTransactionConfig.js.map +1 -0
  97. package/lib/families/celo/hw-app-celo.d.ts +19 -0
  98. package/lib/families/celo/hw-app-celo.d.ts.map +1 -0
  99. package/lib/families/celo/hw-app-celo.js +147 -0
  100. package/lib/families/celo/hw-app-celo.js.map +1 -0
  101. package/lib/families/celo/hw-getAddress.d.ts +2 -0
  102. package/lib/families/celo/hw-getAddress.d.ts.map +1 -0
  103. package/lib/families/celo/hw-getAddress.js +13 -0
  104. package/lib/families/celo/hw-getAddress.js.map +1 -0
  105. package/lib/families/celo/js-broadcast.d.ts +8 -0
  106. package/lib/families/celo/js-broadcast.d.ts.map +1 -0
  107. package/lib/families/celo/js-broadcast.js +58 -0
  108. package/lib/families/celo/js-broadcast.js.map +1 -0
  109. package/lib/families/celo/js-buildTransaction.d.ts +6 -0
  110. package/lib/families/celo/js-buildTransaction.d.ts.map +1 -0
  111. package/lib/families/celo/js-buildTransaction.js +89 -0
  112. package/lib/families/celo/js-buildTransaction.js.map +1 -0
  113. package/lib/families/celo/js-createTransaction.d.ts +4 -0
  114. package/lib/families/celo/js-createTransaction.d.ts.map +1 -0
  115. package/lib/families/celo/js-createTransaction.js +12 -0
  116. package/lib/families/celo/js-createTransaction.js.map +1 -0
  117. package/lib/families/celo/js-estimateMaxSpendable.d.ts +10 -0
  118. package/lib/families/celo/js-estimateMaxSpendable.d.ts.map +1 -0
  119. package/lib/families/celo/js-estimateMaxSpendable.js +77 -0
  120. package/lib/families/celo/js-estimateMaxSpendable.js.map +1 -0
  121. package/lib/families/celo/js-getFeesForTransaction.d.ts +8 -0
  122. package/lib/families/celo/js-getFeesForTransaction.d.ts.map +1 -0
  123. package/lib/families/celo/js-getFeesForTransaction.js +76 -0
  124. package/lib/families/celo/js-getFeesForTransaction.js.map +1 -0
  125. package/lib/families/celo/js-getTransactionStatus.d.ts +5 -0
  126. package/lib/families/celo/js-getTransactionStatus.d.ts.map +1 -0
  127. package/lib/families/celo/js-getTransactionStatus.js +86 -0
  128. package/lib/families/celo/js-getTransactionStatus.js.map +1 -0
  129. package/lib/families/celo/js-prepareTransaction.d.ts +5 -0
  130. package/lib/families/celo/js-prepareTransaction.d.ts.map +1 -0
  131. package/lib/families/celo/js-prepareTransaction.js +76 -0
  132. package/lib/families/celo/js-prepareTransaction.js.map +1 -0
  133. package/lib/families/celo/js-signOperation.d.ts +13 -0
  134. package/lib/families/celo/js-signOperation.d.ts.map +1 -0
  135. package/lib/families/celo/js-signOperation.js +150 -0
  136. package/lib/families/celo/js-signOperation.js.map +1 -0
  137. package/lib/families/celo/js-synchronisation.d.ts +10 -0
  138. package/lib/families/celo/js-synchronisation.d.ts.map +1 -0
  139. package/lib/families/celo/js-synchronisation.js +88 -0
  140. package/lib/families/celo/js-synchronisation.js.map +1 -0
  141. package/lib/families/celo/specs.d.ts +7 -0
  142. package/lib/families/celo/specs.d.ts.map +1 -0
  143. package/lib/families/celo/specs.js +56 -0
  144. package/lib/families/celo/specs.js.map +1 -0
  145. package/lib/families/celo/speculos-deviceActions.d.ts +7 -0
  146. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -0
  147. package/lib/families/celo/speculos-deviceActions.js +53 -0
  148. package/lib/families/celo/speculos-deviceActions.js.map +1 -0
  149. package/lib/families/celo/transaction.d.ts +11 -0
  150. package/lib/families/celo/transaction.d.ts.map +1 -0
  151. package/lib/families/celo/transaction.js +39 -0
  152. package/lib/families/celo/transaction.js.map +1 -0
  153. package/lib/families/celo/types.d.ts +16 -0
  154. package/lib/families/celo/types.d.ts.map +1 -0
  155. package/lib/families/celo/types.js +6 -0
  156. package/lib/families/celo/types.js.map +1 -0
  157. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.d.ts +1 -0
  158. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.d.ts.map +1 -1
  159. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js +1 -0
  160. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js.map +1 -1
  161. package/lib/families/ethereum/modules/erc1155.d.ts.map +1 -1
  162. package/lib/families/ethereum/modules/erc1155.js +8 -2
  163. package/lib/families/ethereum/modules/erc1155.js.map +1 -1
  164. package/lib/families/polkadot/cache.d.ts +1 -1
  165. package/lib/families/polkadot/cache.js +1 -1
  166. package/lib/families/solana/api/chain/index.d.ts +2 -2
  167. package/lib/families/solana/api/chain/index.d.ts.map +1 -1
  168. package/lib/families/solana/api/chain/index.js +4 -4
  169. package/lib/families/solana/api/chain/index.js.map +1 -1
  170. package/lib/families/solana/bridge/bridge.js +5 -5
  171. package/lib/families/solana/bridge/bridge.js.map +1 -1
  172. package/lib/families/solana/bridge/js.js +3 -3
  173. package/lib/families/solana/bridge/js.js.map +1 -1
  174. package/lib/families/solana/bridge/mock.js +1 -1
  175. package/lib/families/solana/bridge/mock.js.map +1 -1
  176. package/lib/families/solana/test-dataset.d.ts.map +1 -1
  177. package/lib/families/solana/test-dataset.js +211 -209
  178. package/lib/families/solana/test-dataset.js.map +1 -1
  179. package/lib/families/solana/utils.d.ts +1 -2
  180. package/lib/families/solana/utils.d.ts.map +1 -1
  181. package/lib/families/solana/utils.js +11 -9
  182. package/lib/families/solana/utils.js.map +1 -1
  183. package/lib/families/tezos/datasets/tezos.scanAccounts.1.js +1 -1
  184. package/lib/families/tezos/datasets/tezos.scanAccounts.1.js.map +1 -1
  185. package/lib/featureFlags/FeatureToggle.d.ts +10 -0
  186. package/lib/featureFlags/FeatureToggle.d.ts.map +1 -0
  187. package/lib/featureFlags/FeatureToggle.js +17 -0
  188. package/lib/featureFlags/FeatureToggle.js.map +1 -0
  189. package/lib/featureFlags/defaultFeatures.d.ts +3 -0
  190. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -0
  191. package/lib/featureFlags/defaultFeatures.js +9 -0
  192. package/lib/featureFlags/defaultFeatures.js.map +1 -0
  193. package/lib/featureFlags/index.d.ts +5 -0
  194. package/lib/featureFlags/index.d.ts.map +1 -0
  195. package/lib/featureFlags/index.js +17 -0
  196. package/lib/featureFlags/index.js.map +1 -0
  197. package/lib/featureFlags/provider.d.ts +13 -0
  198. package/lib/featureFlags/provider.d.ts.map +1 -0
  199. package/lib/featureFlags/provider.js +68 -0
  200. package/lib/featureFlags/provider.js.map +1 -0
  201. package/lib/featureFlags/types.d.ts +8 -0
  202. package/lib/featureFlags/types.d.ts.map +1 -0
  203. package/lib/featureFlags/types.js +3 -0
  204. package/lib/featureFlags/types.js.map +1 -0
  205. package/lib/featureFlags/useFeature.d.ts +3 -0
  206. package/lib/featureFlags/useFeature.d.ts.map +1 -0
  207. package/lib/featureFlags/useFeature.js +9 -0
  208. package/lib/featureFlags/useFeature.js.map +1 -0
  209. package/lib/generated/bridge/js.d.ts +4 -0
  210. package/lib/generated/bridge/js.d.ts.map +1 -1
  211. package/lib/generated/bridge/js.js +24 -22
  212. package/lib/generated/bridge/js.js.map +1 -1
  213. package/lib/generated/cli-transaction.d.ts +9 -0
  214. package/lib/generated/cli-transaction.d.ts.map +1 -1
  215. package/lib/generated/cli-transaction.js +24 -22
  216. package/lib/generated/cli-transaction.js.map +1 -1
  217. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  218. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  219. package/lib/generated/deviceTransactionConfig.js +22 -20
  220. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  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 +26 -24
  224. package/lib/generated/hw-getAddress.js.map +1 -1
  225. package/lib/generated/specs.d.ts +3 -0
  226. package/lib/generated/specs.d.ts.map +1 -1
  227. package/lib/generated/specs.js +24 -22
  228. package/lib/generated/specs.js.map +1 -1
  229. package/lib/generated/speculos-deviceActions.d.ts +3 -0
  230. package/lib/generated/speculos-deviceActions.d.ts.map +1 -1
  231. package/lib/generated/speculos-deviceActions.js +24 -22
  232. package/lib/generated/speculos-deviceActions.js.map +1 -1
  233. package/lib/generated/transaction.d.ts +5 -0
  234. package/lib/generated/transaction.d.ts.map +1 -1
  235. package/lib/generated/transaction.js +26 -24
  236. package/lib/generated/transaction.js.map +1 -1
  237. package/lib/generated/types.d.ts +12 -6
  238. package/lib/generated/types.d.ts.map +1 -1
  239. package/lib/generated/types.js +14 -12
  240. package/lib/generated/types.js.map +1 -1
  241. package/lib/types/index.d.ts +1 -0
  242. package/lib/types/index.d.ts.map +1 -1
  243. package/lib/types/index.js +1 -0
  244. package/lib/types/index.js.map +1 -1
  245. package/lib/types/manager.d.ts +7 -0
  246. package/lib/types/manager.d.ts.map +1 -1
  247. package/lib/types/manager.js +7 -0
  248. package/lib/types/manager.js.map +1 -1
  249. package/package.json +12 -9
  250. package/src/.DS_Store +0 -0
  251. package/src/__tests__/.DS_Store +0 -0
  252. package/src/__tests__/__snapshots__/all.libcore.ts.snap +0 -33226
  253. package/src/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.ts +1 -1
  254. package/src/__tests__/test-helpers/bridge.ts +1 -1
  255. package/src/__tests__/test-helpers/setup.ts +1 -0
  256. package/src/account/support.ts +1 -0
  257. package/src/apps/hw.ts +7 -0
  258. package/src/bot/engine.ts +1 -1
  259. package/src/bridge/jsHelpers.ts +1 -1
  260. package/src/data/icons/react/celo.tsx +12 -0
  261. package/src/data/icons/react/index.tsx +1 -0
  262. package/src/data/icons/reactNative/celo.tsx +13 -0
  263. package/src/data/icons/reactNative/index.tsx +1 -0
  264. package/src/data/icons/svg/CELO.svg +5 -0
  265. package/src/env.ts +15 -0
  266. package/src/exchange/swap/hooks/usePickDefaultAccount.ts +4 -9
  267. package/src/exchange/swap/utils/index.test.ts +44 -1
  268. package/src/exchange/swap/utils/index.ts +12 -1
  269. package/src/families/bitcoin/wallet-btc/crypto/base.ts +41 -20
  270. package/src/families/bitcoin/wallet-btc/crypto/bitcoin.ts +12 -5
  271. package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +11 -4
  272. package/src/families/bitcoin/wallet-btc/crypto/decred.ts +11 -4
  273. package/src/families/bitcoin/wallet-btc/crypto/litecoin.ts +11 -4
  274. package/src/families/bitcoin/wallet-btc/crypto/zec.ts +11 -4
  275. package/src/families/bitcoin/wallet-btc/crypto/zen.ts +11 -4
  276. package/src/families/bitcoin/wallet-btc/xpub.ts +1 -1
  277. package/src/families/celo/api/hubble.ts +93 -0
  278. package/src/families/celo/api/index.ts +1 -0
  279. package/src/families/celo/api/sdk.ts +8 -0
  280. package/src/families/celo/bridge/js.ts +38 -0
  281. package/src/families/celo/cli-transaction.ts +41 -0
  282. package/src/families/celo/datasets/celo.scanAccounts.1.ts +20 -0
  283. package/src/families/celo/deviceTransactionConfig.ts +19 -0
  284. package/src/families/celo/hw-app-celo.ts +108 -0
  285. package/src/families/celo/hw-getAddress.ts +1 -0
  286. package/src/families/celo/js-broadcast.ts +12 -0
  287. package/src/families/celo/js-buildTransaction.ts +32 -0
  288. package/src/families/celo/js-createTransaction.ts +12 -0
  289. package/src/families/celo/js-estimateMaxSpendable.ts +28 -0
  290. package/src/families/celo/js-getFeesForTransaction.ts +38 -0
  291. package/src/families/celo/js-getTransactionStatus.ts +67 -0
  292. package/src/families/celo/js-prepareTransaction.ts +28 -0
  293. package/src/families/celo/js-signOperation.ts +149 -0
  294. package/src/families/celo/js-synchronisation.ts +40 -0
  295. package/src/families/celo/specs.ts +53 -0
  296. package/src/families/celo/speculos-deviceActions.ts +51 -0
  297. package/src/families/celo/transaction.ts +39 -0
  298. package/src/families/celo/types.ts +20 -0
  299. package/src/families/ethereum/datasets/ethereum.scanAccounts.1.ts +1 -0
  300. package/src/families/ethereum/modules/erc1155.ts +9 -0
  301. package/src/families/polkadot/cache.ts +1 -1
  302. package/src/families/solana/api/chain/index.ts +8 -7
  303. package/src/families/solana/bridge/bridge.ts +11 -11
  304. package/src/families/solana/bridge/js.ts +3 -3
  305. package/src/families/solana/bridge/mock.ts +1 -1
  306. package/src/families/solana/test-dataset.ts +340 -337
  307. package/src/families/solana/utils.ts +9 -8
  308. package/src/families/tezos/datasets/tezos.scanAccounts.1.ts +39 -39
  309. package/src/featureFlags/FeatureToggle.tsx +24 -0
  310. package/src/featureFlags/defaultFeatures.ts +7 -0
  311. package/src/featureFlags/index.ts +4 -0
  312. package/src/featureFlags/provider.tsx +48 -0
  313. package/src/featureFlags/types.ts +9 -0
  314. package/src/featureFlags/useFeature.ts +8 -0
  315. package/src/generated/bridge/js.ts +3 -0
  316. package/src/generated/cli-transaction.ts +3 -0
  317. package/src/generated/deviceTransactionConfig.ts +3 -0
  318. package/src/generated/hw-getAddress.ts +3 -0
  319. package/src/generated/specs.ts +3 -0
  320. package/src/generated/speculos-deviceActions.ts +3 -0
  321. package/src/generated/transaction.ts +3 -0
  322. package/src/generated/types.ts +14 -0
  323. package/src/types/index.ts +1 -0
  324. package/src/types/manager.ts +7 -0
@@ -1,4 +1,5 @@
1
- import { Cluster } from "@solana/web3.js";
1
+ import { clusterApiUrl } from "@solana/web3.js";
2
+ import { getEnv } from "../../env";
2
3
 
3
4
  export const assertUnreachable = (_: never): never => {
4
5
  throw new Error("unreachable assertion failed");
@@ -16,15 +17,15 @@ export async function drainSeqAsyncGen<T>(
16
17
  return items;
17
18
  }
18
19
 
19
- export function clusterByCurrencyId(currencyId: string): Cluster {
20
- const clusters: Record<string, Cluster> = {
21
- solana: "mainnet-beta",
22
- solana_devnet: "devnet",
23
- solana_testnet: "testnet",
20
+ export function endpointByCurrencyId(currencyId: string): string {
21
+ const endpoints: Record<string, string> = {
22
+ solana: getEnv("API_SOLANA_PROXY"),
23
+ solana_devnet: clusterApiUrl("devnet"),
24
+ solana_testnet: clusterApiUrl("testnet"),
24
25
  };
25
26
 
26
- if (currencyId in clusters) {
27
- return clusters[currencyId];
27
+ if (currencyId in endpoints) {
28
+ return endpoints[currencyId];
28
29
  }
29
30
 
30
31
  throw Error(
@@ -3,43 +3,43 @@ export default {
3
3
  unstableAccounts: true,
4
4
  // accounts are staking so receive over time. we disable for now snapshot comparison
5
5
  apdus: `
6
- => 8002000009028000002c800006c1
7
- <= 210280ca1bdf81e50b0c09df34557084edafcc9f7e1f749fe47596405bb6d802f0029000
8
- => 8002000015058000002c800006c1800000008000000080000000
9
- <= 2102f7ed85c519f7d39a664935a410d1a41ca302dfa3eee228e92cbe0dc12aba7a189000
10
- => 8002000015058000002c800006c1800000008000000080000001
11
- <= 2102b058662fd530e6463d774e3951a40ddd5e430dbeb62673f90caca0cec58735fd9000
12
- => 8002000009028000002c800006c1
13
- <= 210280ca1bdf81e50b0c09df34557084edafcc9f7e1f749fe47596405bb6d802f0029000
14
- => 8002000011048000002c800006c18000000080000000
15
- <= 210294e8344ae6df2d3123fa100b5abd40cee339c67838b1c34c4f243cc582f4d2d89000
16
- => 8002000011048000002c800006c18000000080000001
17
- <= 2102670e5e92d06e725b68edda589678fdf0f85a582df06ee634d841cf8042db63839000
18
- => 8002000009028000002c800006c1
19
- <= 210280ca1bdf81e50b0c09df34557084edafcc9f7e1f749fe47596405bb6d802f0029000
20
- => 8002000015058000002c800006c1800000008000000080000000
21
- <= 2102f7ed85c519f7d39a664935a410d1a41ca302dfa3eee228e92cbe0dc12aba7a189000
22
- => 8002000015058000002c800006c1800000018000000080000000
23
- <= 2102c26d0da1978b7a7596c9853d80d0beac20519c73e76e7f677540db47165d94f39000
24
- => 8002000015058000002c800006c1800000028000000080000000
25
- <= 21020058c0efd324fa13d778c4b0995f6fa8d9c85e561c1465d770d4011993f557509000
26
- => 8002000015058000002c800006c1800000038000000080000000
27
- <= 21029bfe70b3e94ff23623f6c42f6e081a9ca8cc78f74b0d8da58f0d4cdc41c33c1a9000
28
- => 8002000015058000002c800006c1800000048000000080000000
29
- <= 21021d3b9b84feb81d5215cca4f0a016e99fc6cf86d06e864cb4a5098709f16aa2219000
30
- => 8002000015058000002c800006c1800000058000000080000000
31
- <= 21020162dc75ad3c2b6e097d15a1513033c60d8a033f2312ff5a6ead812228d9d6539000
32
- => 8002000015058000002c800006c1800000068000000080000000
33
- <= 21021831897c4224296519d496d32fdf9e17fb4af680635c5dbbc46cde84fe11dcc99000
34
- => 8002000009028000002c800006c1
35
- <= 210280ca1bdf81e50b0c09df34557084edafcc9f7e1f749fe47596405bb6d802f0029000
36
- => 8002000011048000002c800006c18000000080000000
37
- <= 210294e8344ae6df2d3123fa100b5abd40cee339c67838b1c34c4f243cc582f4d2d89000
38
- => 8002000011048000002c800006c18000000180000000
39
- <= 2102389ffd73423626894cb151416e51c72ec285376673daf83545eb5edb45b261ce9000
40
- => 8002000011048000002c800006c18000000280000000
41
- <= 2102e4c49994c90ffe2e5480826d2f49fb9d0f45280e20bd0a61c488f652d7af0f9c9000
42
- => 8002000011048000002c800006c18000000380000000
43
- <= 2102a9ae8b0ff5f9a43565793ad78e10db6f12177d904d208ada591b8a5b9999e3fd9000
44
- `,
6
+ => 800200000d038000002c800006c180000000
7
+ <= 2102ac76ba226118e2d593d09cd7e395546b7540c0e7fb3eb430da59f7982af632969000
8
+ => 8002000015058000002c800006c1800000008000000080000000
9
+ <= 2102f7ed85c519f7d39a664935a410d1a41ca302dfa3eee228e92cbe0dc12aba7a189000
10
+ => 8002000015058000002c800006c1800000008000000080000001
11
+ <= 2102b058662fd530e6463d774e3951a40ddd5e430dbeb62673f90caca0cec58735fd9000
12
+ => 800200000d038000002c800006c180000000
13
+ <= 2102ac76ba226118e2d593d09cd7e395546b7540c0e7fb3eb430da59f7982af632969000
14
+ => 8002000011048000002c800006c18000000080000000
15
+ <= 210294e8344ae6df2d3123fa100b5abd40cee339c67838b1c34c4f243cc582f4d2d89000
16
+ => 8002000011048000002c800006c18000000080000001
17
+ <= 2102670e5e92d06e725b68edda589678fdf0f85a582df06ee634d841cf8042db63839000
18
+ => 800200000d038000002c800006c180000000
19
+ <= 2102ac76ba226118e2d593d09cd7e395546b7540c0e7fb3eb430da59f7982af632969000
20
+ => 8002000015058000002c800006c1800000008000000080000000
21
+ <= 2102f7ed85c519f7d39a664935a410d1a41ca302dfa3eee228e92cbe0dc12aba7a189000
22
+ => 8002000015058000002c800006c1800000018000000080000000
23
+ <= 2102c26d0da1978b7a7596c9853d80d0beac20519c73e76e7f677540db47165d94f39000
24
+ => 8002000015058000002c800006c1800000028000000080000000
25
+ <= 21020058c0efd324fa13d778c4b0995f6fa8d9c85e561c1465d770d4011993f557509000
26
+ => 8002000015058000002c800006c1800000038000000080000000
27
+ <= 21029bfe70b3e94ff23623f6c42f6e081a9ca8cc78f74b0d8da58f0d4cdc41c33c1a9000
28
+ => 8002000015058000002c800006c1800000048000000080000000
29
+ <= 21021d3b9b84feb81d5215cca4f0a016e99fc6cf86d06e864cb4a5098709f16aa2219000
30
+ => 8002000015058000002c800006c1800000058000000080000000
31
+ <= 21020162dc75ad3c2b6e097d15a1513033c60d8a033f2312ff5a6ead812228d9d6539000
32
+ => 8002000015058000002c800006c1800000068000000080000000
33
+ <= 21021831897c4224296519d496d32fdf9e17fb4af680635c5dbbc46cde84fe11dcc99000
34
+ => 800200000d038000002c800006c180000000
35
+ <= 2102ac76ba226118e2d593d09cd7e395546b7540c0e7fb3eb430da59f7982af632969000
36
+ => 8002000011048000002c800006c18000000080000000
37
+ <= 210294e8344ae6df2d3123fa100b5abd40cee339c67838b1c34c4f243cc582f4d2d89000
38
+ => 8002000011048000002c800006c18000000180000000
39
+ <= 2102389ffd73423626894cb151416e51c72ec285376673daf83545eb5edb45b261ce9000
40
+ => 8002000011048000002c800006c18000000280000000
41
+ <= 2102e4c49994c90ffe2e5480826d2f49fb9d0f45280e20bd0a61c488f652d7af0f9c9000
42
+ => 8002000011048000002c800006c18000000380000000
43
+ <= 2102a9ae8b0ff5f9a43565793ad78e10db6f12177d904d208ada591b8a5b9999e3fd9000
44
+ `,
45
45
  };
@@ -0,0 +1,24 @@
1
+ import { ReactNode } from "react";
2
+
3
+ import useFeature from "./useFeature";
4
+ import { FeatureId } from "./types";
5
+
6
+ type Props = {
7
+ feature: FeatureId;
8
+ fallback?: ReactNode;
9
+ children?: ReactNode;
10
+ };
11
+
12
+ export const FeatureToggle = ({
13
+ feature: featureId,
14
+ fallback,
15
+ children,
16
+ }: Props): ReactNode => {
17
+ const feature = useFeature(featureId);
18
+
19
+ if (!feature || !feature.enabled) {
20
+ return fallback;
21
+ }
22
+
23
+ return children;
24
+ };
@@ -0,0 +1,7 @@
1
+ import { DefaultFeatures } from "./types";
2
+
3
+ export const defaultFeatures: DefaultFeatures = {
4
+ market: {
5
+ enabled: false,
6
+ },
7
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./defaultFeatures";
2
+ export * from "./FeatureToggle";
3
+ export * from "./provider";
4
+ export * from "./useFeature";
@@ -0,0 +1,48 @@
1
+ import React, {
2
+ createContext,
3
+ ReactNode,
4
+ useContext,
5
+ useEffect,
6
+ useState,
7
+ } from "react";
8
+
9
+ import { FeatureId, Feature } from "./types";
10
+
11
+ type State = {
12
+ getFeature: (_: FeatureId) => Feature | null;
13
+ };
14
+
15
+ const initialState: State = {
16
+ getFeature: (_) => ({ enabled: false }),
17
+ };
18
+
19
+ const FeatureFlagsContext = createContext<State>(initialState);
20
+
21
+ export function useFeatureFlags(): State {
22
+ return useContext<State>(FeatureFlagsContext);
23
+ }
24
+
25
+ type Props = {
26
+ getFeature: (_: FeatureId) => Feature | null;
27
+ children?: ReactNode;
28
+ };
29
+
30
+ export function FeatureFlagsProvider({
31
+ getFeature,
32
+ children,
33
+ }: Props): JSX.Element {
34
+ const [state, setState] = useState<State>(initialState);
35
+
36
+ useEffect(() => {
37
+ setState((prev) => ({
38
+ ...prev,
39
+ getFeature,
40
+ }));
41
+ }, [getFeature]);
42
+
43
+ return (
44
+ <FeatureFlagsContext.Provider value={state}>
45
+ {children}
46
+ </FeatureFlagsContext.Provider>
47
+ );
48
+ }
@@ -0,0 +1,9 @@
1
+ export type FeatureId = "market"; // Add others with union
2
+
3
+ // We use objects instead of direct booleans for potential future improvements
4
+ // like feature versioning etc
5
+ export type Feature = {
6
+ enabled: boolean;
7
+ };
8
+
9
+ export type DefaultFeatures = { [key in FeatureId]: Feature };
@@ -0,0 +1,8 @@
1
+ import { useFeatureFlags } from "./provider";
2
+ import { Feature, FeatureId } from "./types";
3
+
4
+ export default function useFeature(key: FeatureId): Feature | null {
5
+ const featureFlags = useFeatureFlags();
6
+
7
+ return featureFlags.getFeature(key);
8
+ }
@@ -2,6 +2,8 @@ import algorand from "../../families/algorand/bridge/js";
2
2
 
3
3
  import bitcoin from "../../families/bitcoin/bridge/js";
4
4
 
5
+ import celo from "../../families/celo/bridge/js";
6
+
5
7
  import crypto_org from "../../families/crypto_org/bridge/js";
6
8
 
7
9
  import elrond from "../../families/elrond/bridge/js";
@@ -28,6 +30,7 @@ import tron from "../../families/tron/bridge/js";
28
30
  export default {
29
31
  algorand,
30
32
  bitcoin,
33
+ celo,
31
34
  crypto_org,
32
35
  elrond,
33
36
  ethereum,
@@ -2,6 +2,8 @@ import algorand from "../families/algorand/cli-transaction";
2
2
 
3
3
  import bitcoin from "../families/bitcoin/cli-transaction";
4
4
 
5
+ import celo from "../families/celo/cli-transaction";
6
+
5
7
  import cosmos from "../families/cosmos/cli-transaction";
6
8
 
7
9
  import crypto_org from "../families/crypto_org/cli-transaction";
@@ -28,6 +30,7 @@ import tron from "../families/tron/cli-transaction";
28
30
  export default {
29
31
  algorand,
30
32
  bitcoin,
33
+ celo,
31
34
  cosmos,
32
35
  crypto_org,
33
36
  elrond,
@@ -2,6 +2,8 @@ import algorand from "../families/algorand/deviceTransactionConfig";
2
2
 
3
3
  import bitcoin from "../families/bitcoin/deviceTransactionConfig";
4
4
 
5
+ import celo from "../families/celo/deviceTransactionConfig";
6
+
5
7
  import cosmos from "../families/cosmos/deviceTransactionConfig";
6
8
 
7
9
  import crypto_org from "../families/crypto_org/deviceTransactionConfig";
@@ -26,6 +28,7 @@ import tron from "../families/tron/deviceTransactionConfig";
26
28
  export default {
27
29
  algorand,
28
30
  bitcoin,
31
+ celo,
29
32
  cosmos,
30
33
  crypto_org,
31
34
  elrond,
@@ -2,6 +2,8 @@ import algorand from "../families/algorand/hw-getAddress";
2
2
 
3
3
  import bitcoin from "../families/bitcoin/hw-getAddress";
4
4
 
5
+ import celo from "../families/celo/hw-getAddress";
6
+
5
7
  import cosmos from "../families/cosmos/hw-getAddress";
6
8
 
7
9
  import crypto_org from "../families/crypto_org/hw-getAddress";
@@ -30,6 +32,7 @@ import tron from "../families/tron/hw-getAddress";
30
32
  export default {
31
33
  algorand,
32
34
  bitcoin,
35
+ celo,
33
36
  cosmos,
34
37
  crypto_org,
35
38
  elrond,
@@ -2,6 +2,8 @@ import algorand from "../families/algorand/specs";
2
2
 
3
3
  import bitcoin from "../families/bitcoin/specs";
4
4
 
5
+ import celo from "../families/celo/specs";
6
+
5
7
  import cosmos from "../families/cosmos/specs";
6
8
 
7
9
  import crypto_org from "../families/crypto_org/specs";
@@ -28,6 +30,7 @@ import tron from "../families/tron/specs";
28
30
  export default {
29
31
  algorand,
30
32
  bitcoin,
33
+ celo,
31
34
  cosmos,
32
35
  crypto_org,
33
36
  elrond,
@@ -2,6 +2,8 @@ import algorand from "../families/algorand/speculos-deviceActions";
2
2
 
3
3
  import bitcoin from "../families/bitcoin/speculos-deviceActions";
4
4
 
5
+ import celo from "../families/celo/speculos-deviceActions";
6
+
5
7
  import cosmos from "../families/cosmos/speculos-deviceActions";
6
8
 
7
9
  import crypto_org from "../families/crypto_org/speculos-deviceActions";
@@ -28,6 +30,7 @@ import tron from "../families/tron/speculos-deviceActions";
28
30
  export default {
29
31
  algorand,
30
32
  bitcoin,
33
+ celo,
31
34
  cosmos,
32
35
  crypto_org,
33
36
  elrond,
@@ -2,6 +2,8 @@ import algorand from "../families/algorand/transaction";
2
2
 
3
3
  import bitcoin from "../families/bitcoin/transaction";
4
4
 
5
+ import celo from "../families/celo/transaction";
6
+
5
7
  import cosmos from "../families/cosmos/transaction";
6
8
 
7
9
  import crypto_org from "../families/crypto_org/transaction";
@@ -30,6 +32,7 @@ import tron from "../families/tron/transaction";
30
32
  export default {
31
33
  algorand,
32
34
  bitcoin,
35
+ celo,
33
36
  cosmos,
34
37
  crypto_org,
35
38
  elrond,
@@ -14,6 +14,13 @@ import { Transaction as bitcoinTransaction } from "../families/bitcoin/types";
14
14
  import { TransactionRaw as bitcoinTransactionRaw } from "../families/bitcoin/types";
15
15
  import { NetworkInfo as bitcoinNetworkInfo } from "../families/bitcoin/types";
16
16
  import { NetworkInfoRaw as bitcoinNetworkInfoRaw } from "../families/bitcoin/types";
17
+ import { reflect as celoReflect } from "../families/celo/types";
18
+ import { CoreStatics as CoreStatics_celo } from "../families/celo/types";
19
+ import { CoreAccountSpecifics as CoreAccountSpecifics_celo } from "../families/celo/types";
20
+ import { CoreOperationSpecifics as CoreOperationSpecifics_celo } from "../families/celo/types";
21
+ import { CoreCurrencySpecifics as CoreCurrencySpecifics_celo } from "../families/celo/types";
22
+ import { Transaction as celoTransaction } from "../families/celo/types";
23
+ import { TransactionRaw as celoTransactionRaw } from "../families/celo/types";
17
24
  import { reflect as cosmosReflect } from "../families/cosmos/types";
18
25
  import { CoreStatics as CoreStatics_cosmos } from "../families/cosmos/types";
19
26
  import { CoreAccountSpecifics as CoreAccountSpecifics_cosmos } from "../families/cosmos/types";
@@ -122,6 +129,7 @@ import { NetworkInfoRaw as tronNetworkInfoRaw } from "../families/tron/types";
122
129
  export type SpecificStatics = {}
123
130
  & CoreStatics_algorand
124
131
  & CoreStatics_bitcoin
132
+ & CoreStatics_celo
125
133
  & CoreStatics_cosmos
126
134
  & CoreStatics_crypto_org
127
135
  & CoreStatics_elrond
@@ -137,6 +145,7 @@ export type SpecificStatics = {}
137
145
  export type CoreAccountSpecifics = {}
138
146
  & CoreAccountSpecifics_algorand
139
147
  & CoreAccountSpecifics_bitcoin
148
+ & CoreAccountSpecifics_celo
140
149
  & CoreAccountSpecifics_cosmos
141
150
  & CoreAccountSpecifics_crypto_org
142
151
  & CoreAccountSpecifics_elrond
@@ -152,6 +161,7 @@ export type CoreAccountSpecifics = {}
152
161
  export type CoreOperationSpecifics = {}
153
162
  & CoreOperationSpecifics_algorand
154
163
  & CoreOperationSpecifics_bitcoin
164
+ & CoreOperationSpecifics_celo
155
165
  & CoreOperationSpecifics_cosmos
156
166
  & CoreOperationSpecifics_crypto_org
157
167
  & CoreOperationSpecifics_elrond
@@ -167,6 +177,7 @@ export type CoreOperationSpecifics = {}
167
177
  export type CoreCurrencySpecifics = {}
168
178
  & CoreCurrencySpecifics_algorand
169
179
  & CoreCurrencySpecifics_bitcoin
180
+ & CoreCurrencySpecifics_celo
170
181
  & CoreCurrencySpecifics_cosmos
171
182
  & CoreCurrencySpecifics_crypto_org
172
183
  & CoreCurrencySpecifics_elrond
@@ -182,6 +193,7 @@ export type CoreCurrencySpecifics = {}
182
193
  export type Transaction =
183
194
  | algorandTransaction
184
195
  | bitcoinTransaction
196
+ | celoTransaction
185
197
  | cosmosTransaction
186
198
  | crypto_orgTransaction
187
199
  | elrondTransaction
@@ -197,6 +209,7 @@ export type Transaction =
197
209
  export type TransactionRaw =
198
210
  | algorandTransactionRaw
199
211
  | bitcoinTransactionRaw
212
+ | celoTransactionRaw
200
213
  | cosmosTransactionRaw
201
214
  | crypto_orgTransactionRaw
202
215
  | elrondTransactionRaw
@@ -236,6 +249,7 @@ export type NetworkInfoRaw =
236
249
  export const reflectSpecifics = (declare: any): Array<{ OperationMethods: Record<string, unknown>, AccountMethods: Record<string, unknown> }> => [
237
250
  algorandReflect(declare),
238
251
  bitcoinReflect(declare),
252
+ celoReflect(declare),
239
253
  cosmosReflect(declare),
240
254
  crypto_orgReflect(declare),
241
255
  elrondReflect(declare),
@@ -10,3 +10,4 @@ export * from "../generated/types";
10
10
  export * from "./bridge";
11
11
  export * from "./pagination";
12
12
  export * from "./nft";
13
+ export * from "../featureFlags/types";
@@ -130,6 +130,7 @@ export type ApplicationVersion = {
130
130
  providers: Array<Id>;
131
131
  date_creation: string;
132
132
  date_last_modified: string;
133
+ type?: AppType;
133
134
  // dependencies: Id[],
134
135
  bytes: number | null | undefined;
135
136
  warning: string | null | undefined;
@@ -153,6 +154,11 @@ export type Application = {
153
154
  sourceURL: string | null | undefined;
154
155
  compatibleWalletsJSON: string | null | undefined;
155
156
  };
157
+ export enum AppType {
158
+ APP = "app",
159
+ PLUGIN = "plugin",
160
+ TOOL = "tool", // Nb not used for now
161
+ }
156
162
  // App is higher level on top of Application and ApplicationVersion
157
163
  // with all fields Live needs and in normalized form (but still serializable)
158
164
  export type App = {
@@ -185,6 +191,7 @@ export type App = {
185
191
  // -1 if coin not in marketcap, otherwise index in the tickers list of https://countervalues.api.live.ledger.com/tickers
186
192
  indexOfMarketCap: number;
187
193
  isDevTools: boolean;
194
+ type: AppType;
188
195
  };
189
196
  export type Category = {
190
197
  id: Id;