@ledgerhq/live-common 21.30.1 → 21.32.2

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 (362) hide show
  1. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.getAddress.d.ts +2 -0
  2. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.getAddress.d.ts.map +1 -0
  3. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.getAddress.js +100 -0
  4. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.getAddress.js.map +1 -0
  5. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js +0 -10
  6. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js.map +1 -1
  7. package/lib/__tests__/test-helpers/setup.js +1 -0
  8. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  9. package/lib/account/support.d.ts.map +1 -1
  10. package/lib/account/support.js.map +1 -1
  11. package/lib/api/Ethereum.d.ts.map +1 -1
  12. package/lib/api/Ethereum.js +1 -0
  13. package/lib/api/Ethereum.js.map +1 -1
  14. package/lib/apps/polyfill.d.ts.map +1 -1
  15. package/lib/apps/polyfill.js +1 -0
  16. package/lib/apps/polyfill.js.map +1 -1
  17. package/lib/bot/engine.d.ts.map +1 -1
  18. package/lib/bot/engine.js +4 -1
  19. package/lib/bot/engine.js.map +1 -1
  20. package/lib/bridge/jsHelpers.js +1 -1
  21. package/lib/data/icons/react/celo.d.ts +8 -0
  22. package/lib/data/icons/react/celo.d.ts.map +1 -0
  23. package/lib/data/icons/react/celo.js +32 -0
  24. package/lib/data/icons/react/celo.js.map +1 -0
  25. package/lib/data/icons/react/index.d.ts +1 -0
  26. package/lib/data/icons/react/index.d.ts.map +1 -1
  27. package/lib/data/icons/react/index.js +11 -8
  28. package/lib/data/icons/react/index.js.map +1 -1
  29. package/lib/data/icons/reactNative/celo.d.ts +8 -0
  30. package/lib/data/icons/reactNative/celo.d.ts.map +1 -0
  31. package/lib/data/icons/reactNative/celo.js +33 -0
  32. package/lib/data/icons/reactNative/celo.js.map +1 -0
  33. package/lib/data/icons/reactNative/index.d.ts +1 -0
  34. package/lib/data/icons/reactNative/index.d.ts.map +1 -1
  35. package/lib/data/icons/reactNative/index.js +11 -8
  36. package/lib/data/icons/reactNative/index.js.map +1 -1
  37. package/lib/env.d.ts +15 -5
  38. package/lib/env.d.ts.map +1 -1
  39. package/lib/env.js +10 -0
  40. package/lib/env.js.map +1 -1
  41. package/lib/env.react.d.ts +1 -1
  42. package/lib/env.react.d.ts.map +1 -1
  43. package/lib/exchange/platform/transfer/index.d.ts.map +1 -1
  44. package/lib/exchange/platform/transfer/index.js +15 -1
  45. package/lib/exchange/platform/transfer/index.js.map +1 -1
  46. package/lib/families/algorand/buildTransaction.d.ts +2 -2
  47. package/lib/families/algorand/buildTransaction.d.ts.map +1 -1
  48. package/lib/families/algorand/buildTransaction.js +13 -19
  49. package/lib/families/algorand/buildTransaction.js.map +1 -1
  50. package/lib/families/algorand/js-getFeesForTransaction.js +4 -6
  51. package/lib/families/algorand/js-getFeesForTransaction.js.map +1 -1
  52. package/lib/families/algorand/js-signOperation.js +3 -7
  53. package/lib/families/algorand/js-signOperation.js.map +1 -1
  54. package/lib/families/algorand/js-synchronization.d.ts.map +1 -1
  55. package/lib/families/algorand/js-synchronization.js +1 -0
  56. package/lib/families/algorand/js-synchronization.js.map +1 -1
  57. package/lib/families/bitcoin/js-signOperation.d.ts.map +1 -1
  58. package/lib/families/bitcoin/js-signOperation.js +3 -5
  59. package/lib/families/bitcoin/js-signOperation.js.map +1 -1
  60. package/lib/families/bitcoin/js-synchronisation.js +4 -4
  61. package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
  62. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts +4 -3
  63. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
  64. package/lib/families/bitcoin/wallet-btc/crypto/base.js +8 -7
  65. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
  66. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts +1 -1
  67. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts.map +1 -1
  68. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js +3 -7
  69. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js.map +1 -1
  70. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts +3 -4
  71. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +1 -1
  72. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +27 -53
  73. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +1 -1
  74. package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts +1 -1
  75. package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts.map +1 -1
  76. package/lib/families/bitcoin/wallet-btc/crypto/decred.js +2 -7
  77. package/lib/families/bitcoin/wallet-btc/crypto/decred.js.map +1 -1
  78. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts +1 -6
  79. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts.map +1 -1
  80. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js +0 -51
  81. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js.map +1 -1
  82. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts +1 -0
  83. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts.map +1 -1
  84. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts +3 -4
  85. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +1 -1
  86. package/lib/families/bitcoin/wallet-btc/crypto/zec.js +26 -17
  87. package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +1 -1
  88. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts +3 -4
  89. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +1 -1
  90. package/lib/families/bitcoin/wallet-btc/crypto/zen.js +33 -24
  91. package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +1 -1
  92. package/lib/families/bitcoin/wallet-btc/explorer/index.d.ts.map +1 -1
  93. package/lib/families/bitcoin/wallet-btc/explorer/index.js +20 -0
  94. package/lib/families/bitcoin/wallet-btc/explorer/index.js.map +1 -1
  95. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts +0 -1
  96. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts.map +1 -1
  97. package/lib/families/celo/api/hubble.d.ts +8 -0
  98. package/lib/families/celo/api/hubble.d.ts.map +1 -0
  99. package/lib/families/celo/api/hubble.js +144 -0
  100. package/lib/families/celo/api/hubble.js.map +1 -0
  101. package/lib/families/celo/api/index.d.ts +2 -0
  102. package/lib/families/celo/api/index.d.ts.map +1 -0
  103. package/lib/families/celo/api/index.js +13 -0
  104. package/lib/families/celo/api/index.js.map +1 -0
  105. package/lib/families/celo/api/sdk.d.ts +3 -0
  106. package/lib/families/celo/api/sdk.d.ts.map +1 -0
  107. package/lib/families/celo/api/sdk.js +13 -0
  108. package/lib/families/celo/api/sdk.js.map +1 -0
  109. package/lib/families/celo/bridge/js.d.ts +8 -0
  110. package/lib/families/celo/bridge/js.d.ts.map +1 -0
  111. package/lib/families/celo/bridge/js.js +87 -0
  112. package/lib/families/celo/bridge/js.js.map +1 -0
  113. package/lib/families/celo/cli-transaction.d.ts +14 -0
  114. package/lib/families/celo/cli-transaction.d.ts.map +1 -0
  115. package/lib/families/celo/cli-transaction.js +37 -0
  116. package/lib/families/celo/cli-transaction.js.map +1 -0
  117. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts +5 -0
  118. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts.map +1 -0
  119. package/lib/families/celo/datasets/celo.scanAccounts.1.js +12 -0
  120. package/lib/families/celo/datasets/celo.scanAccounts.1.js.map +1 -0
  121. package/lib/families/celo/deviceTransactionConfig.d.ts +4 -0
  122. package/lib/families/celo/deviceTransactionConfig.d.ts.map +1 -0
  123. package/lib/families/celo/deviceTransactionConfig.js +16 -0
  124. package/lib/families/celo/deviceTransactionConfig.js.map +1 -0
  125. package/lib/families/celo/hw-app-celo.d.ts +19 -0
  126. package/lib/families/celo/hw-app-celo.d.ts.map +1 -0
  127. package/lib/families/celo/hw-app-celo.js +147 -0
  128. package/lib/families/celo/hw-app-celo.js.map +1 -0
  129. package/lib/families/celo/hw-getAddress.d.ts +2 -0
  130. package/lib/families/celo/hw-getAddress.d.ts.map +1 -0
  131. package/lib/families/celo/hw-getAddress.js +13 -0
  132. package/lib/families/celo/hw-getAddress.js.map +1 -0
  133. package/lib/families/celo/js-broadcast.d.ts +8 -0
  134. package/lib/families/celo/js-broadcast.d.ts.map +1 -0
  135. package/lib/families/celo/js-broadcast.js +58 -0
  136. package/lib/families/celo/js-broadcast.js.map +1 -0
  137. package/lib/families/celo/js-buildTransaction.d.ts +6 -0
  138. package/lib/families/celo/js-buildTransaction.d.ts.map +1 -0
  139. package/lib/families/celo/js-buildTransaction.js +89 -0
  140. package/lib/families/celo/js-buildTransaction.js.map +1 -0
  141. package/lib/families/celo/js-createTransaction.d.ts +4 -0
  142. package/lib/families/celo/js-createTransaction.d.ts.map +1 -0
  143. package/lib/families/celo/js-createTransaction.js +12 -0
  144. package/lib/families/celo/js-createTransaction.js.map +1 -0
  145. package/lib/families/celo/js-estimateMaxSpendable.d.ts +10 -0
  146. package/lib/families/celo/js-estimateMaxSpendable.d.ts.map +1 -0
  147. package/lib/families/celo/js-estimateMaxSpendable.js +77 -0
  148. package/lib/families/celo/js-estimateMaxSpendable.js.map +1 -0
  149. package/lib/families/celo/js-getFeesForTransaction.d.ts +8 -0
  150. package/lib/families/celo/js-getFeesForTransaction.d.ts.map +1 -0
  151. package/lib/families/celo/js-getFeesForTransaction.js +76 -0
  152. package/lib/families/celo/js-getFeesForTransaction.js.map +1 -0
  153. package/lib/families/celo/js-getTransactionStatus.d.ts +5 -0
  154. package/lib/families/celo/js-getTransactionStatus.d.ts.map +1 -0
  155. package/lib/families/celo/js-getTransactionStatus.js +86 -0
  156. package/lib/families/celo/js-getTransactionStatus.js.map +1 -0
  157. package/lib/families/celo/js-prepareTransaction.d.ts +5 -0
  158. package/lib/families/celo/js-prepareTransaction.d.ts.map +1 -0
  159. package/lib/families/celo/js-prepareTransaction.js +76 -0
  160. package/lib/families/celo/js-prepareTransaction.js.map +1 -0
  161. package/lib/families/celo/js-signOperation.d.ts +13 -0
  162. package/lib/families/celo/js-signOperation.d.ts.map +1 -0
  163. package/lib/families/celo/js-signOperation.js +150 -0
  164. package/lib/families/celo/js-signOperation.js.map +1 -0
  165. package/lib/families/celo/js-synchronisation.d.ts +10 -0
  166. package/lib/families/celo/js-synchronisation.d.ts.map +1 -0
  167. package/lib/families/celo/js-synchronisation.js +88 -0
  168. package/lib/families/celo/js-synchronisation.js.map +1 -0
  169. package/lib/families/celo/specs.d.ts +7 -0
  170. package/lib/families/celo/specs.d.ts.map +1 -0
  171. package/lib/families/celo/specs.js +56 -0
  172. package/lib/families/celo/specs.js.map +1 -0
  173. package/lib/families/celo/speculos-deviceActions.d.ts +7 -0
  174. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -0
  175. package/lib/families/celo/speculos-deviceActions.js +52 -0
  176. package/lib/families/celo/speculos-deviceActions.js.map +1 -0
  177. package/lib/families/celo/transaction.d.ts +11 -0
  178. package/lib/families/celo/transaction.d.ts.map +1 -0
  179. package/lib/families/celo/transaction.js +39 -0
  180. package/lib/families/celo/transaction.js.map +1 -0
  181. package/lib/families/celo/types.d.ts +16 -0
  182. package/lib/families/celo/types.d.ts.map +1 -0
  183. package/lib/families/celo/types.js +6 -0
  184. package/lib/families/celo/types.js.map +1 -0
  185. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.d.ts +1 -0
  186. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.d.ts.map +1 -1
  187. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js +1 -0
  188. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js.map +1 -1
  189. package/lib/families/ethereum/modules/erc1155.d.ts.map +1 -1
  190. package/lib/families/ethereum/modules/erc1155.js +8 -2
  191. package/lib/families/ethereum/modules/erc1155.js.map +1 -1
  192. package/lib/families/ethereum/signOperation.d.ts.map +1 -1
  193. package/lib/families/ethereum/signOperation.js +26 -15
  194. package/lib/families/ethereum/signOperation.js.map +1 -1
  195. package/lib/families/ethereum/specs.d.ts.map +1 -1
  196. package/lib/families/ethereum/specs.js +2 -4
  197. package/lib/families/ethereum/specs.js.map +1 -1
  198. package/lib/families/ethereum/transaction.d.ts +4 -1
  199. package/lib/families/ethereum/transaction.d.ts.map +1 -1
  200. package/lib/families/ethereum/transaction.js +15 -27
  201. package/lib/families/ethereum/transaction.js.map +1 -1
  202. package/lib/families/polkadot/cache.d.ts +1 -1
  203. package/lib/families/polkadot/cache.js +1 -1
  204. package/lib/families/solana/api/chain/instruction/token/types.d.ts +1 -1
  205. package/lib/families/solana/specs.js +1 -1
  206. package/lib/families/solana/specs.js.map +1 -1
  207. package/lib/families/tezos/bakers.whitelist-default.d.ts.map +1 -1
  208. package/lib/families/tezos/bakers.whitelist-default.js +1 -1
  209. package/lib/families/tezos/bakers.whitelist-default.js.map +1 -1
  210. package/lib/families/tezos/bridge/js.d.ts.map +1 -1
  211. package/lib/families/tezos/bridge/js.js +2 -1
  212. package/lib/families/tezos/bridge/js.js.map +1 -1
  213. package/lib/families/tezos/test-specifics.d.ts.map +1 -1
  214. package/lib/families/tezos/test-specifics.js +1 -0
  215. package/lib/families/tezos/test-specifics.js.map +1 -1
  216. package/lib/featureFlags/FeatureToggle.d.ts +10 -0
  217. package/lib/featureFlags/FeatureToggle.d.ts.map +1 -0
  218. package/lib/featureFlags/FeatureToggle.js +17 -0
  219. package/lib/featureFlags/FeatureToggle.js.map +1 -0
  220. package/lib/featureFlags/defaultFeatures.d.ts +3 -0
  221. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -0
  222. package/lib/featureFlags/defaultFeatures.js +9 -0
  223. package/lib/featureFlags/defaultFeatures.js.map +1 -0
  224. package/lib/featureFlags/index.d.ts +5 -0
  225. package/lib/featureFlags/index.d.ts.map +1 -0
  226. package/lib/featureFlags/index.js +17 -0
  227. package/lib/featureFlags/index.js.map +1 -0
  228. package/lib/featureFlags/provider.d.ts +13 -0
  229. package/lib/featureFlags/provider.d.ts.map +1 -0
  230. package/lib/featureFlags/provider.js +68 -0
  231. package/lib/featureFlags/provider.js.map +1 -0
  232. package/lib/featureFlags/types.d.ts +8 -0
  233. package/lib/featureFlags/types.d.ts.map +1 -0
  234. package/lib/featureFlags/types.js +3 -0
  235. package/lib/featureFlags/types.js.map +1 -0
  236. package/lib/featureFlags/useFeature.d.ts +3 -0
  237. package/lib/featureFlags/useFeature.d.ts.map +1 -0
  238. package/lib/featureFlags/useFeature.js +9 -0
  239. package/lib/featureFlags/useFeature.js.map +1 -0
  240. package/lib/generated/bridge/js.d.ts +4 -0
  241. package/lib/generated/bridge/js.d.ts.map +1 -1
  242. package/lib/generated/bridge/js.js +24 -22
  243. package/lib/generated/bridge/js.js.map +1 -1
  244. package/lib/generated/cli-transaction.d.ts +9 -0
  245. package/lib/generated/cli-transaction.d.ts.map +1 -1
  246. package/lib/generated/cli-transaction.js +24 -22
  247. package/lib/generated/cli-transaction.js.map +1 -1
  248. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  249. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  250. package/lib/generated/deviceTransactionConfig.js +22 -20
  251. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  252. package/lib/generated/hw-getAddress.d.ts +1 -0
  253. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  254. package/lib/generated/hw-getAddress.js +26 -24
  255. package/lib/generated/hw-getAddress.js.map +1 -1
  256. package/lib/generated/specs.d.ts +3 -0
  257. package/lib/generated/specs.d.ts.map +1 -1
  258. package/lib/generated/specs.js +24 -22
  259. package/lib/generated/specs.js.map +1 -1
  260. package/lib/generated/speculos-deviceActions.d.ts +3 -0
  261. package/lib/generated/speculos-deviceActions.d.ts.map +1 -1
  262. package/lib/generated/speculos-deviceActions.js +24 -22
  263. package/lib/generated/speculos-deviceActions.js.map +1 -1
  264. package/lib/generated/transaction.d.ts +5 -0
  265. package/lib/generated/transaction.d.ts.map +1 -1
  266. package/lib/generated/transaction.js +26 -24
  267. package/lib/generated/transaction.js.map +1 -1
  268. package/lib/generated/types.d.ts +12 -6
  269. package/lib/generated/types.d.ts.map +1 -1
  270. package/lib/generated/types.js +14 -12
  271. package/lib/generated/types.js.map +1 -1
  272. package/lib/load/speculos.d.ts +7 -0
  273. package/lib/load/speculos.d.ts.map +1 -1
  274. package/lib/load/speculos.js +27 -11
  275. package/lib/load/speculos.js.map +1 -1
  276. package/lib/types/index.d.ts +1 -0
  277. package/lib/types/index.d.ts.map +1 -1
  278. package/lib/types/index.js +1 -0
  279. package/lib/types/index.js.map +1 -1
  280. package/package.json +23 -21
  281. package/src/.DS_Store +0 -0
  282. package/src/{data/flags → __tests__}/.DS_Store +0 -0
  283. package/src/__tests__/__snapshots__/all.libcore.ts.snap +457 -33509
  284. package/src/__tests__/families/bitcoin/wallet-btc/xpub.getAddress.ts +47 -0
  285. package/src/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.ts +0 -11
  286. package/src/__tests__/test-helpers/setup.ts +1 -0
  287. package/src/account/support.ts +1 -0
  288. package/src/api/Ethereum.ts +1 -0
  289. package/src/apps/polyfill.ts +1 -0
  290. package/src/bot/engine.ts +4 -1
  291. package/src/bridge/jsHelpers.ts +1 -1
  292. package/src/data/icons/react/celo.tsx +12 -0
  293. package/src/data/icons/react/index.tsx +1 -0
  294. package/src/data/icons/reactNative/celo.tsx +13 -0
  295. package/src/data/icons/reactNative/index.tsx +1 -0
  296. package/src/data/icons/svg/CELO.svg +5 -0
  297. package/src/env.ts +10 -0
  298. package/src/exchange/platform/transfer/index.ts +21 -1
  299. package/src/families/algorand/buildTransaction.ts +4 -8
  300. package/src/families/algorand/js-getFeesForTransaction.ts +1 -1
  301. package/src/families/algorand/js-signOperation.ts +2 -2
  302. package/src/families/algorand/js-synchronization.ts +1 -0
  303. package/src/families/bitcoin/js-signOperation.ts +3 -5
  304. package/src/families/bitcoin/js-synchronisation.ts +4 -4
  305. package/src/families/bitcoin/wallet-btc/crypto/base.ts +31 -18
  306. package/src/families/bitcoin/wallet-btc/crypto/bitcoin.ts +3 -17
  307. package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +5 -39
  308. package/src/families/bitcoin/wallet-btc/crypto/decred.ts +2 -15
  309. package/src/families/bitcoin/wallet-btc/crypto/litecoin.ts +1 -71
  310. package/src/families/bitcoin/wallet-btc/crypto/types.ts +7 -0
  311. package/src/families/bitcoin/wallet-btc/crypto/zec.ts +4 -22
  312. package/src/families/bitcoin/wallet-btc/crypto/zen.ts +4 -22
  313. package/src/families/bitcoin/wallet-btc/explorer/index.ts +20 -0
  314. package/src/families/bitcoin/wallet-btc/storage/types.ts +0 -1
  315. package/src/families/celo/api/hubble.ts +93 -0
  316. package/src/families/celo/api/index.ts +1 -0
  317. package/src/families/celo/api/sdk.ts +8 -0
  318. package/src/families/celo/bridge/js.ts +38 -0
  319. package/src/families/celo/cli-transaction.ts +41 -0
  320. package/src/families/celo/datasets/celo.scanAccounts.1.ts +20 -0
  321. package/src/families/celo/deviceTransactionConfig.ts +19 -0
  322. package/src/families/celo/hw-app-celo.ts +108 -0
  323. package/src/families/celo/hw-getAddress.ts +1 -0
  324. package/src/families/celo/js-broadcast.ts +12 -0
  325. package/src/families/celo/js-buildTransaction.ts +32 -0
  326. package/src/families/celo/js-createTransaction.ts +12 -0
  327. package/src/families/celo/js-estimateMaxSpendable.ts +28 -0
  328. package/src/families/celo/js-getFeesForTransaction.ts +38 -0
  329. package/src/families/celo/js-getTransactionStatus.ts +67 -0
  330. package/src/families/celo/js-prepareTransaction.ts +28 -0
  331. package/src/families/celo/js-signOperation.ts +149 -0
  332. package/src/families/celo/js-synchronisation.ts +40 -0
  333. package/src/families/celo/specs.ts +53 -0
  334. package/src/families/celo/speculos-deviceActions.ts +50 -0
  335. package/src/families/celo/transaction.ts +39 -0
  336. package/src/families/celo/types.ts +20 -0
  337. package/src/families/ethereum/datasets/ethereum.scanAccounts.1.ts +1 -0
  338. package/src/families/ethereum/modules/erc1155.ts +9 -0
  339. package/src/families/ethereum/signOperation.ts +21 -20
  340. package/src/families/ethereum/specs.ts +0 -2
  341. package/src/families/ethereum/transaction.ts +10 -24
  342. package/src/families/polkadot/cache.ts +1 -1
  343. package/src/families/solana/specs.ts +1 -1
  344. package/src/families/tezos/bakers.whitelist-default.ts +0 -2
  345. package/src/families/tezos/bridge/js.ts +6 -1
  346. package/src/families/tezos/test-specifics.ts +1 -0
  347. package/src/featureFlags/FeatureToggle.tsx +24 -0
  348. package/src/featureFlags/defaultFeatures.ts +7 -0
  349. package/src/featureFlags/index.ts +4 -0
  350. package/src/featureFlags/provider.tsx +48 -0
  351. package/src/featureFlags/types.ts +9 -0
  352. package/src/featureFlags/useFeature.ts +8 -0
  353. package/src/generated/bridge/js.ts +3 -0
  354. package/src/generated/cli-transaction.ts +3 -0
  355. package/src/generated/deviceTransactionConfig.ts +3 -0
  356. package/src/generated/hw-getAddress.ts +3 -0
  357. package/src/generated/specs.ts +3 -0
  358. package/src/generated/speculos-deviceActions.ts +3 -0
  359. package/src/generated/transaction.ts +3 -0
  360. package/src/generated/types.ts +14 -0
  361. package/src/load/speculos.ts +23 -10
  362. package/src/types/index.ts +1 -0
@@ -6,8 +6,8 @@ import type {
6
6
  TransactionRaw,
7
7
  EthereumGasLimitRequest,
8
8
  } from "./types";
9
- import Common from "ethereumjs-common";
10
- import { Transaction as EthereumTx } from "ethereumjs-tx";
9
+ import Common from "@ethereumjs/common";
10
+ import { Transaction as EthereumTx } from "@ethereumjs/tx";
11
11
  import eip55 from "eip55";
12
12
  import {
13
13
  InvalidAddress,
@@ -196,23 +196,18 @@ function getEthereumjsTxCommon(currency) {
196
196
  `currency ${currency.id} did not set ethereumLikeInfo`
197
197
  );
198
198
  if (ethereumLikeInfo.chainId === 1) {
199
- return new Common(
200
- // $FlowFixMe
201
- ethereumLikeInfo.baseChain || "mainnet",
202
- // $FlowFixMe
203
- ethereumLikeInfo.hardfork || "petersburg"
204
- );
199
+ return new Common({
200
+ chain: ethereumLikeInfo.baseChain || "mainnet",
201
+ hardfork: ethereumLikeInfo.hardfork || "petersburg",
202
+ });
205
203
  }
206
204
  return Common.forCustomChain(
207
- // $FlowFixMe
208
205
  ethereumLikeInfo.baseChain || "mainnet",
209
206
  {
210
207
  name: currency.ticker,
211
208
  chainId: ethereumLikeInfo.chainId,
212
- // $FlowFixMe
213
209
  networkId: ethereumLikeInfo.networkId || ethereumLikeInfo.chainId,
214
210
  },
215
- // $FlowFixMe
216
211
  ethereumLikeInfo.hardfork || "petersburg"
217
212
  );
218
213
  }
@@ -239,8 +234,6 @@ export function buildEthereumTx(
239
234
  "only token accounts expected"
240
235
  );
241
236
  const common = getEthereumjsTxCommon(currency);
242
- invariant(common, `common not found for currency ${currency.name}`);
243
- // FIXME: make sure it doesn't break
244
237
  if (!common) {
245
238
  throw new Error(`common not found for currency ${currency.name}`);
246
239
  }
@@ -258,18 +251,11 @@ export function buildEthereumTx(
258
251
  ethTxObject
259
252
  );
260
253
  log("ethereum", "buildEthereumTx", ethTxObject);
261
- const tx = new EthereumTx(ethTxObject, {
262
- common,
263
- });
264
- // these will be filled by device signature
265
- tx.raw[6] = Buffer.from([common.chainId()]); // v
266
-
267
- tx.raw[7] = Buffer.from([]); // r
268
-
269
- tx.raw[8] = Buffer.from([]); // s
270
-
254
+ const tx = new EthereumTx(ethTxObject, { common });
271
255
  return {
272
256
  tx,
257
+ common,
258
+ ethTxObject,
273
259
  fillTransactionDataResult,
274
260
  };
275
261
  }
@@ -294,7 +280,7 @@ export function inferEthereumGasLimitRequest(
294
280
  }
295
281
 
296
282
  if (to) {
297
- r.to = "0x" + to.toString("hex");
283
+ r.to = to.toString();
298
284
  }
299
285
 
300
286
  if (data) {
@@ -87,7 +87,7 @@ export const getTransactionParams: CacheRes<
87
87
  );
88
88
 
89
89
  /**
90
- * Cache the payment info (fee estimate), with a hash deending on fees-changing transaction params and tx size.
90
+ * Cache the payment info (fee estimate), with a hash depending on fees-changing transaction params and tx size.
91
91
  *
92
92
  * @param {Account} arg1.a
93
93
  * @param {Transaction} arg1.t
@@ -12,7 +12,7 @@ const solana: AppSpec<Transaction> = {
12
12
  name: "Solana",
13
13
  appQuery: {
14
14
  model: DeviceModelId.nanoS,
15
- firmware: "<2",
15
+ firmware: "2",
16
16
  appName: "solana",
17
17
  },
18
18
  currency: getCryptoCurrencyById("solana"),
@@ -17,8 +17,6 @@ tz1RCFbB9GpALpsZtu6J58sb74dm8qe6XBzv
17
17
  tz1dbfppLAAxXZNtf2SDps7rch3qfUznKSoK
18
18
  tz1Q8QkSBS63ZQnH3fBTiAMPes9R666Rn6Sc
19
19
  tz2FCNBrERXtaTtNX6iimR1UJ5JSDxvdHM93
20
- tz1Vyuu4EJ5Nym4JcrfRLnp3hpaq1DSEp1Ke
21
- tz1S1Aew75hMrPUymqenKfHo8FspppXKpW7h
22
20
  tz1SohptP53wDPZhzTWzDUFAUcWF6DMBpaJV
23
21
  tz1P2Po7YM526ughEsRbY4oR9zaUPDZjxFrb
24
22
  tz1KzSC1J9aBxKp7u8TUnpN8L7S65PBRkgdF
@@ -1,6 +1,10 @@
1
1
  // @flow
2
2
  import { BigNumber } from "bignumber.js";
3
- import { TezosToolkit, DEFAULT_FEE } from "@taquito/taquito";
3
+ import {
4
+ TezosToolkit,
5
+ DEFAULT_FEE,
6
+ DEFAULT_STORAGE_LIMIT,
7
+ } from "@taquito/taquito";
4
8
  import {
5
9
  AmountRequired,
6
10
  NotEnoughBalance,
@@ -201,6 +205,7 @@ const prepareTransaction = async (
201
205
  mutez: true,
202
206
  to: transaction.recipient,
203
207
  amount: amount.toNumber(),
208
+ storageLimit: DEFAULT_STORAGE_LIMIT.ORIGINATION, // https://github.com/TezTech/eztz/blob/master/PROTO_003_FEES.md for originating an account
204
209
  });
205
210
  break;
206
211
  case "delegate":
@@ -4,6 +4,7 @@ import { loadAccountDelegation, listBakers } from "./bakers";
4
4
  import whitelist from "./bakers.whitelist-default";
5
5
  export default () => {
6
6
  describe("tezos bakers", () => {
7
+ // FIXME Flaky test that will fail every time a Tezos baker is discontinued
7
8
  test("getting the bakers", async () => {
8
9
  const list = await listBakers(whitelist);
9
10
  expect(list.map((o) => o.address)).toEqual(whitelist);
@@ -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),
@@ -412,7 +412,13 @@ function parseAppSearch(query: string):
412
412
  };
413
413
  }
414
414
 
415
- async function openImplicitSpeculos(query: string) {
415
+ export async function createImplicitSpeculos(query: string): Promise<{
416
+ device: {
417
+ transport: SpeculosTransport;
418
+ id: string;
419
+ };
420
+ appCandidate: AppCandidate;
421
+ } | null> {
416
422
  const coinapps = getEnv("COINAPPS");
417
423
  invariant(coinapps, "COINAPPS folder is missing!");
418
424
  const seed = getEnv("SEED");
@@ -438,16 +444,23 @@ async function openImplicitSpeculos(query: string) {
438
444
  "speculos",
439
445
  "using app " + formatAppCandidate(appCandidate as AppCandidate)
440
446
  );
441
- const device = appCandidate
442
- ? await createSpeculosDevice({
443
- ...appCandidate,
444
- coinapps,
445
- appName,
446
- dependency,
447
- seed,
448
- })
447
+ return appCandidate
448
+ ? {
449
+ device: await createSpeculosDevice({
450
+ ...appCandidate,
451
+ coinapps,
452
+ appName,
453
+ dependency,
454
+ seed,
455
+ }),
456
+ appCandidate,
457
+ }
449
458
  : null;
450
- return device?.transport;
459
+ }
460
+
461
+ async function openImplicitSpeculos(query: string) {
462
+ const r = await createImplicitSpeculos(query);
463
+ return r?.device.transport;
451
464
  }
452
465
 
453
466
  registerTransportModule({
@@ -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";