@ledgerhq/live-common 29.3.0 → 29.4.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 (312) hide show
  1. package/lib/account/helpers.d.ts +2 -2
  2. package/lib/account/helpers.d.ts.map +1 -1
  3. package/lib/account/helpers.js +4 -2
  4. package/lib/account/helpers.js.map +1 -1
  5. package/lib/account/serialization.d.ts.map +1 -1
  6. package/lib/account/serialization.js +8 -2
  7. package/lib/account/serialization.js.map +1 -1
  8. package/lib/data/icons/react/index.d.ts +1 -0
  9. package/lib/data/icons/react/index.d.ts.map +1 -1
  10. package/lib/data/icons/react/index.js +4 -2
  11. package/lib/data/icons/react/index.js.map +1 -1
  12. package/lib/data/icons/react/verse.d.ts +8 -0
  13. package/lib/data/icons/react/verse.d.ts.map +1 -0
  14. package/lib/data/icons/react/verse.js +35 -0
  15. package/lib/data/icons/react/verse.js.map +1 -0
  16. package/lib/data/icons/reactNative/index.d.ts +1 -0
  17. package/lib/data/icons/reactNative/index.d.ts.map +1 -1
  18. package/lib/data/icons/reactNative/index.js +4 -2
  19. package/lib/data/icons/reactNative/index.js.map +1 -1
  20. package/lib/data/icons/reactNative/verse.d.ts +8 -0
  21. package/lib/data/icons/reactNative/verse.d.ts.map +1 -0
  22. package/lib/data/icons/reactNative/verse.js +36 -0
  23. package/lib/data/icons/reactNative/verse.js.map +1 -0
  24. package/lib/exchange/swap/getExchangeRates.d.ts.map +1 -1
  25. package/lib/exchange/swap/getExchangeRates.js +4 -2
  26. package/lib/exchange/swap/getExchangeRates.js.map +1 -1
  27. package/lib/exchange/swap/getExchangeRates.test.js +36 -1
  28. package/lib/exchange/swap/getExchangeRates.test.js.map +1 -1
  29. package/lib/families/bitcoin/datasets/bitcoin_cash.d.ts.map +1 -1
  30. package/lib/families/bitcoin/datasets/bitcoin_cash.js +1 -1
  31. package/lib/families/bitcoin/datasets/bitcoin_cash.js.map +1 -1
  32. package/lib/families/bitcoin/datasets/bitcoin_gold.d.ts.map +1 -1
  33. package/lib/families/bitcoin/datasets/bitcoin_gold.js +1 -1
  34. package/lib/families/bitcoin/datasets/bitcoin_gold.js.map +1 -1
  35. package/lib/families/bitcoin/datasets/dash.d.ts.map +1 -1
  36. package/lib/families/bitcoin/datasets/dash.js +1 -1
  37. package/lib/families/bitcoin/datasets/dash.js.map +1 -1
  38. package/lib/families/bitcoin/datasets/decred.d.ts.map +1 -1
  39. package/lib/families/bitcoin/datasets/decred.js +1 -1
  40. package/lib/families/bitcoin/datasets/decred.js.map +1 -1
  41. package/lib/families/bitcoin/datasets/digibyte.scanAccounts.1.d.ts.map +1 -1
  42. package/lib/families/bitcoin/datasets/digibyte.scanAccounts.1.js +1 -1
  43. package/lib/families/bitcoin/datasets/digibyte.scanAccounts.1.js.map +1 -1
  44. package/lib/families/bitcoin/datasets/dogecoin.d.ts.map +1 -1
  45. package/lib/families/bitcoin/datasets/dogecoin.js +1 -1
  46. package/lib/families/bitcoin/datasets/dogecoin.js.map +1 -1
  47. package/lib/families/bitcoin/datasets/komodo.d.ts.map +1 -1
  48. package/lib/families/bitcoin/datasets/komodo.js +1 -1
  49. package/lib/families/bitcoin/datasets/komodo.js.map +1 -1
  50. package/lib/families/bitcoin/datasets/litecoin.scanAccounts.1.d.ts.map +1 -1
  51. package/lib/families/bitcoin/datasets/litecoin.scanAccounts.1.js +1 -1
  52. package/lib/families/bitcoin/datasets/litecoin.scanAccounts.1.js.map +1 -1
  53. package/lib/families/bitcoin/datasets/peercoin.d.ts.map +1 -1
  54. package/lib/families/bitcoin/datasets/peercoin.js +1 -1
  55. package/lib/families/bitcoin/datasets/peercoin.js.map +1 -1
  56. package/lib/families/bitcoin/datasets/pivx.d.ts.map +1 -1
  57. package/lib/families/bitcoin/datasets/pivx.js +1 -1
  58. package/lib/families/bitcoin/datasets/pivx.js.map +1 -1
  59. package/lib/families/bitcoin/datasets/qtum.d.ts.map +1 -1
  60. package/lib/families/bitcoin/datasets/qtum.js +1 -1
  61. package/lib/families/bitcoin/datasets/qtum.js.map +1 -1
  62. package/lib/families/bitcoin/datasets/vertcoin.d.ts.map +1 -1
  63. package/lib/families/bitcoin/datasets/vertcoin.js +1 -1
  64. package/lib/families/bitcoin/datasets/vertcoin.js.map +1 -1
  65. package/lib/families/bitcoin/datasets/viacoin.d.ts.map +1 -1
  66. package/lib/families/bitcoin/datasets/viacoin.js +1 -1
  67. package/lib/families/bitcoin/datasets/viacoin.js.map +1 -1
  68. package/lib/families/bitcoin/datasets/zcash.d.ts.map +1 -1
  69. package/lib/families/bitcoin/datasets/zcash.js +1 -1
  70. package/lib/families/bitcoin/datasets/zcash.js.map +1 -1
  71. package/lib/families/bitcoin/datasets/zencash.d.ts.map +1 -1
  72. package/lib/families/bitcoin/datasets/zencash.js +1 -1
  73. package/lib/families/bitcoin/datasets/zencash.js.map +1 -1
  74. package/lib/generated/bridge/js.d.ts +0 -4
  75. package/lib/generated/bridge/js.d.ts.map +1 -1
  76. package/lib/generated/bridge/js.js +12 -14
  77. package/lib/generated/bridge/js.js.map +1 -1
  78. package/lib/generated/hw-getAddress.d.ts +0 -1
  79. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  80. package/lib/generated/hw-getAddress.js +12 -14
  81. package/lib/generated/hw-getAddress.js.map +1 -1
  82. package/lib/generated/transaction.d.ts +0 -8
  83. package/lib/generated/transaction.d.ts.map +1 -1
  84. package/lib/generated/transaction.js +12 -14
  85. package/lib/generated/transaction.js.map +1 -1
  86. package/lib/generated/types.d.ts +4 -8
  87. package/lib/generated/types.d.ts.map +1 -1
  88. package/lib/hw/actions/staxLoadImage.d.ts.map +1 -1
  89. package/lib/hw/actions/staxLoadImage.js +11 -9
  90. package/lib/hw/actions/staxLoadImage.js.map +1 -1
  91. package/lib/hw/editDeviceName.d.ts +6 -0
  92. package/lib/hw/editDeviceName.d.ts.map +1 -1
  93. package/lib/hw/editDeviceName.js +9 -4
  94. package/lib/hw/editDeviceName.js.map +1 -1
  95. package/lib/hw/getDeviceNameMaxLength.d.ts +16 -0
  96. package/lib/hw/getDeviceNameMaxLength.d.ts.map +1 -0
  97. package/lib/hw/getDeviceNameMaxLength.js +35 -0
  98. package/lib/hw/getDeviceNameMaxLength.js.map +1 -0
  99. package/lib/hw/getDeviceNameMaxLength.test.d.ts +2 -0
  100. package/lib/hw/getDeviceNameMaxLength.test.d.ts.map +1 -0
  101. package/lib/hw/getDeviceNameMaxLength.test.js +114 -0
  102. package/lib/hw/getDeviceNameMaxLength.test.js.map +1 -0
  103. package/lib/hw/staxLoadImage.d.ts +3 -2
  104. package/lib/hw/staxLoadImage.d.ts.map +1 -1
  105. package/lib/hw/staxLoadImage.js +6 -4
  106. package/lib/hw/staxLoadImage.js.map +1 -1
  107. package/lib/platform/providers/RampCatalogProvider/api/index.d.ts.map +1 -1
  108. package/lib/platform/providers/RampCatalogProvider/api/index.js +1 -0
  109. package/lib/platform/providers/RampCatalogProvider/api/index.js.map +1 -1
  110. package/lib/platform/providers/RampCatalogProvider/api/mock.json +1 -0
  111. package/lib-es/account/helpers.d.ts +2 -2
  112. package/lib-es/account/helpers.d.ts.map +1 -1
  113. package/lib-es/account/helpers.js +3 -2
  114. package/lib-es/account/helpers.js.map +1 -1
  115. package/lib-es/account/serialization.d.ts.map +1 -1
  116. package/lib-es/account/serialization.js +9 -3
  117. package/lib-es/account/serialization.js.map +1 -1
  118. package/lib-es/data/icons/react/index.d.ts +1 -0
  119. package/lib-es/data/icons/react/index.d.ts.map +1 -1
  120. package/lib-es/data/icons/react/index.js +1 -0
  121. package/lib-es/data/icons/react/index.js.map +1 -1
  122. package/lib-es/data/icons/react/verse.d.ts +8 -0
  123. package/lib-es/data/icons/react/verse.d.ts.map +1 -0
  124. package/lib-es/data/icons/react/verse.js +10 -0
  125. package/lib-es/data/icons/react/verse.js.map +1 -0
  126. package/lib-es/data/icons/reactNative/index.d.ts +1 -0
  127. package/lib-es/data/icons/reactNative/index.d.ts.map +1 -1
  128. package/lib-es/data/icons/reactNative/index.js +1 -0
  129. package/lib-es/data/icons/reactNative/index.js.map +1 -1
  130. package/lib-es/data/icons/reactNative/verse.d.ts +8 -0
  131. package/lib-es/data/icons/reactNative/verse.d.ts.map +1 -0
  132. package/lib-es/data/icons/reactNative/verse.js +11 -0
  133. package/lib-es/data/icons/reactNative/verse.js.map +1 -0
  134. package/lib-es/exchange/swap/getExchangeRates.d.ts.map +1 -1
  135. package/lib-es/exchange/swap/getExchangeRates.js +4 -2
  136. package/lib-es/exchange/swap/getExchangeRates.js.map +1 -1
  137. package/lib-es/exchange/swap/getExchangeRates.test.js +36 -1
  138. package/lib-es/exchange/swap/getExchangeRates.test.js.map +1 -1
  139. package/lib-es/families/bitcoin/datasets/bitcoin_cash.d.ts.map +1 -1
  140. package/lib-es/families/bitcoin/datasets/bitcoin_cash.js +1 -1
  141. package/lib-es/families/bitcoin/datasets/bitcoin_cash.js.map +1 -1
  142. package/lib-es/families/bitcoin/datasets/bitcoin_gold.d.ts.map +1 -1
  143. package/lib-es/families/bitcoin/datasets/bitcoin_gold.js +1 -1
  144. package/lib-es/families/bitcoin/datasets/bitcoin_gold.js.map +1 -1
  145. package/lib-es/families/bitcoin/datasets/dash.d.ts.map +1 -1
  146. package/lib-es/families/bitcoin/datasets/dash.js +1 -1
  147. package/lib-es/families/bitcoin/datasets/dash.js.map +1 -1
  148. package/lib-es/families/bitcoin/datasets/decred.d.ts.map +1 -1
  149. package/lib-es/families/bitcoin/datasets/decred.js +1 -1
  150. package/lib-es/families/bitcoin/datasets/decred.js.map +1 -1
  151. package/lib-es/families/bitcoin/datasets/digibyte.scanAccounts.1.d.ts.map +1 -1
  152. package/lib-es/families/bitcoin/datasets/digibyte.scanAccounts.1.js +1 -1
  153. package/lib-es/families/bitcoin/datasets/digibyte.scanAccounts.1.js.map +1 -1
  154. package/lib-es/families/bitcoin/datasets/dogecoin.d.ts.map +1 -1
  155. package/lib-es/families/bitcoin/datasets/dogecoin.js +1 -1
  156. package/lib-es/families/bitcoin/datasets/dogecoin.js.map +1 -1
  157. package/lib-es/families/bitcoin/datasets/komodo.d.ts.map +1 -1
  158. package/lib-es/families/bitcoin/datasets/komodo.js +1 -1
  159. package/lib-es/families/bitcoin/datasets/komodo.js.map +1 -1
  160. package/lib-es/families/bitcoin/datasets/litecoin.scanAccounts.1.d.ts.map +1 -1
  161. package/lib-es/families/bitcoin/datasets/litecoin.scanAccounts.1.js +1 -1
  162. package/lib-es/families/bitcoin/datasets/litecoin.scanAccounts.1.js.map +1 -1
  163. package/lib-es/families/bitcoin/datasets/peercoin.d.ts.map +1 -1
  164. package/lib-es/families/bitcoin/datasets/peercoin.js +1 -1
  165. package/lib-es/families/bitcoin/datasets/peercoin.js.map +1 -1
  166. package/lib-es/families/bitcoin/datasets/pivx.d.ts.map +1 -1
  167. package/lib-es/families/bitcoin/datasets/pivx.js +1 -1
  168. package/lib-es/families/bitcoin/datasets/pivx.js.map +1 -1
  169. package/lib-es/families/bitcoin/datasets/qtum.d.ts.map +1 -1
  170. package/lib-es/families/bitcoin/datasets/qtum.js +1 -1
  171. package/lib-es/families/bitcoin/datasets/qtum.js.map +1 -1
  172. package/lib-es/families/bitcoin/datasets/vertcoin.d.ts.map +1 -1
  173. package/lib-es/families/bitcoin/datasets/vertcoin.js +1 -1
  174. package/lib-es/families/bitcoin/datasets/vertcoin.js.map +1 -1
  175. package/lib-es/families/bitcoin/datasets/viacoin.d.ts.map +1 -1
  176. package/lib-es/families/bitcoin/datasets/viacoin.js +1 -1
  177. package/lib-es/families/bitcoin/datasets/viacoin.js.map +1 -1
  178. package/lib-es/families/bitcoin/datasets/zcash.d.ts.map +1 -1
  179. package/lib-es/families/bitcoin/datasets/zcash.js +1 -1
  180. package/lib-es/families/bitcoin/datasets/zcash.js.map +1 -1
  181. package/lib-es/families/bitcoin/datasets/zencash.d.ts.map +1 -1
  182. package/lib-es/families/bitcoin/datasets/zencash.js +1 -1
  183. package/lib-es/families/bitcoin/datasets/zencash.js.map +1 -1
  184. package/lib-es/generated/bridge/js.d.ts +0 -4
  185. package/lib-es/generated/bridge/js.d.ts.map +1 -1
  186. package/lib-es/generated/bridge/js.js +0 -2
  187. package/lib-es/generated/bridge/js.js.map +1 -1
  188. package/lib-es/generated/hw-getAddress.d.ts +0 -1
  189. package/lib-es/generated/hw-getAddress.d.ts.map +1 -1
  190. package/lib-es/generated/hw-getAddress.js +0 -2
  191. package/lib-es/generated/hw-getAddress.js.map +1 -1
  192. package/lib-es/generated/transaction.d.ts +0 -8
  193. package/lib-es/generated/transaction.d.ts.map +1 -1
  194. package/lib-es/generated/transaction.js +0 -2
  195. package/lib-es/generated/transaction.js.map +1 -1
  196. package/lib-es/generated/types.d.ts +4 -8
  197. package/lib-es/generated/types.d.ts.map +1 -1
  198. package/lib-es/hw/actions/staxLoadImage.d.ts.map +1 -1
  199. package/lib-es/hw/actions/staxLoadImage.js +11 -9
  200. package/lib-es/hw/actions/staxLoadImage.js.map +1 -1
  201. package/lib-es/hw/editDeviceName.d.ts +6 -0
  202. package/lib-es/hw/editDeviceName.d.ts.map +1 -1
  203. package/lib-es/hw/editDeviceName.js +10 -5
  204. package/lib-es/hw/editDeviceName.js.map +1 -1
  205. package/lib-es/hw/getDeviceNameMaxLength.d.ts +16 -0
  206. package/lib-es/hw/getDeviceNameMaxLength.d.ts.map +1 -0
  207. package/lib-es/hw/getDeviceNameMaxLength.js +30 -0
  208. package/lib-es/hw/getDeviceNameMaxLength.js.map +1 -0
  209. package/lib-es/hw/getDeviceNameMaxLength.test.d.ts +2 -0
  210. package/lib-es/hw/getDeviceNameMaxLength.test.d.ts.map +1 -0
  211. package/lib-es/hw/getDeviceNameMaxLength.test.js +109 -0
  212. package/lib-es/hw/getDeviceNameMaxLength.test.js.map +1 -0
  213. package/lib-es/hw/staxLoadImage.d.ts +3 -2
  214. package/lib-es/hw/staxLoadImage.d.ts.map +1 -1
  215. package/lib-es/hw/staxLoadImage.js +6 -4
  216. package/lib-es/hw/staxLoadImage.js.map +1 -1
  217. package/lib-es/platform/providers/RampCatalogProvider/api/index.d.ts.map +1 -1
  218. package/lib-es/platform/providers/RampCatalogProvider/api/index.js +1 -0
  219. package/lib-es/platform/providers/RampCatalogProvider/api/index.js.map +1 -1
  220. package/lib-es/platform/providers/RampCatalogProvider/api/mock.json +1 -0
  221. package/package.json +14 -14
  222. package/src/account/helpers.ts +7 -2
  223. package/src/account/serialization.ts +10 -0
  224. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +147 -4
  225. package/src/data/icons/react/index.tsx +1 -0
  226. package/src/data/icons/react/verse.tsx +12 -0
  227. package/src/data/icons/reactNative/index.tsx +1 -0
  228. package/src/data/icons/reactNative/verse.tsx +13 -0
  229. package/src/data/icons/svg/VERSE.svg +3 -0
  230. package/src/exchange/swap/getExchangeRates.test.ts +34 -1
  231. package/src/exchange/swap/getExchangeRates.ts +5 -1
  232. package/src/families/bitcoin/__snapshots__/bridge.integration.test.ts.snap +75 -0
  233. package/src/families/bitcoin/datasets/bitcoin_cash.ts +0 -20
  234. package/src/families/bitcoin/datasets/bitcoin_gold.ts +0 -40
  235. package/src/families/bitcoin/datasets/dash.ts +0 -14
  236. package/src/families/bitcoin/datasets/decred.ts +0 -18
  237. package/src/families/bitcoin/datasets/digibyte.scanAccounts.1.ts +0 -34
  238. package/src/families/bitcoin/datasets/dogecoin.ts +0 -14
  239. package/src/families/bitcoin/datasets/komodo.ts +0 -18
  240. package/src/families/bitcoin/datasets/litecoin.scanAccounts.1.ts +0 -34
  241. package/src/families/bitcoin/datasets/peercoin.ts +0 -14
  242. package/src/families/bitcoin/datasets/pivx.ts +0 -14
  243. package/src/families/bitcoin/datasets/qtum.ts +0 -28
  244. package/src/families/bitcoin/datasets/vertcoin.ts +0 -36
  245. package/src/families/bitcoin/datasets/viacoin.ts +0 -20
  246. package/src/families/bitcoin/datasets/zcash.ts +0 -18
  247. package/src/families/bitcoin/datasets/zencash.ts +0 -14
  248. package/src/generated/bridge/js.ts +0 -2
  249. package/src/generated/hw-getAddress.ts +0 -2
  250. package/src/generated/transaction.ts +0 -2
  251. package/src/generated/types.ts +0 -8
  252. package/src/hw/actions/staxLoadImage.ts +11 -8
  253. package/src/hw/editDeviceName.ts +13 -5
  254. package/src/hw/getDeviceNameMaxLength.test.ts +85 -0
  255. package/src/hw/getDeviceNameMaxLength.ts +41 -0
  256. package/src/hw/staxLoadImage.ts +13 -4
  257. package/src/platform/providers/RampCatalogProvider/api/index.ts +1 -0
  258. package/src/platform/providers/RampCatalogProvider/api/mock.json +1 -0
  259. package/lib/families/neo/bridge/js.d.ts +0 -8
  260. package/lib/families/neo/bridge/js.d.ts.map +0 -1
  261. package/lib/families/neo/bridge/js.js +0 -261
  262. package/lib/families/neo/bridge/js.js.map +0 -1
  263. package/lib/families/neo/hw-app-neo/crypto.d.ts +0 -9
  264. package/lib/families/neo/hw-app-neo/crypto.d.ts.map +0 -1
  265. package/lib/families/neo/hw-app-neo/crypto.js +0 -77
  266. package/lib/families/neo/hw-app-neo/crypto.js.map +0 -1
  267. package/lib/families/neo/hw-app-neo/index.d.ts +0 -22
  268. package/lib/families/neo/hw-app-neo/index.d.ts.map +0 -1
  269. package/lib/families/neo/hw-app-neo/index.js +0 -89
  270. package/lib/families/neo/hw-app-neo/index.js.map +0 -1
  271. package/lib/families/neo/hw-getAddress.d.ts +0 -4
  272. package/lib/families/neo/hw-getAddress.d.ts.map +0 -1
  273. package/lib/families/neo/hw-getAddress.js +0 -64
  274. package/lib/families/neo/hw-getAddress.js.map +0 -1
  275. package/lib/families/neo/transaction.d.ts +0 -13
  276. package/lib/families/neo/transaction.d.ts.map +0 -1
  277. package/lib/families/neo/transaction.js +0 -39
  278. package/lib/families/neo/transaction.js.map +0 -1
  279. package/lib/families/neo/types.d.ts +0 -16
  280. package/lib/families/neo/types.d.ts.map +0 -1
  281. package/lib/families/neo/types.js +0 -3
  282. package/lib/families/neo/types.js.map +0 -1
  283. package/lib-es/families/neo/bridge/js.d.ts +0 -8
  284. package/lib-es/families/neo/bridge/js.d.ts.map +0 -1
  285. package/lib-es/families/neo/bridge/js.js +0 -256
  286. package/lib-es/families/neo/bridge/js.js.map +0 -1
  287. package/lib-es/families/neo/hw-app-neo/crypto.d.ts +0 -9
  288. package/lib-es/families/neo/hw-app-neo/crypto.d.ts.map +0 -1
  289. package/lib-es/families/neo/hw-app-neo/crypto.js +0 -69
  290. package/lib-es/families/neo/hw-app-neo/crypto.js.map +0 -1
  291. package/lib-es/families/neo/hw-app-neo/index.d.ts +0 -22
  292. package/lib-es/families/neo/hw-app-neo/index.d.ts.map +0 -1
  293. package/lib-es/families/neo/hw-app-neo/index.js +0 -84
  294. package/lib-es/families/neo/hw-app-neo/index.js.map +0 -1
  295. package/lib-es/families/neo/hw-getAddress.d.ts +0 -4
  296. package/lib-es/families/neo/hw-getAddress.d.ts.map +0 -1
  297. package/lib-es/families/neo/hw-getAddress.js +0 -59
  298. package/lib-es/families/neo/hw-getAddress.js.map +0 -1
  299. package/lib-es/families/neo/transaction.d.ts +0 -13
  300. package/lib-es/families/neo/transaction.d.ts.map +0 -1
  301. package/lib-es/families/neo/transaction.js +0 -35
  302. package/lib-es/families/neo/transaction.js.map +0 -1
  303. package/lib-es/families/neo/types.d.ts +0 -16
  304. package/lib-es/families/neo/types.d.ts.map +0 -1
  305. package/lib-es/families/neo/types.js +0 -2
  306. package/lib-es/families/neo/types.js.map +0 -1
  307. package/src/families/neo/bridge/js.ts +0 -189
  308. package/src/families/neo/hw-app-neo/crypto.ts +0 -80
  309. package/src/families/neo/hw-app-neo/index.ts +0 -40
  310. package/src/families/neo/hw-getAddress.ts +0 -14
  311. package/src/families/neo/transaction.ts +0 -36
  312. package/src/families/neo/types.ts +0 -21
@@ -9,90 +9,54 @@ const dataset: CurrenciesData<Transaction> = {
9
9
  {
10
10
  name: "vertcoin seed 1",
11
11
  apdus: `
12
- => b001000000
13
- <= 010856657274636f696e05322e312e3001029000
14
12
  => e04000000d038000002c8000001c80000000
15
13
  <= 41044ed2023877af4e78c1feb9b9ff41288d7e1e5f3750e6361375c1c63618403066170a15bde45e3944cca9d627ce952dc2b8fb3f8f29c67da2d21d85a40fd40fe52256714d357a756a79645a66485738426165766a7a564e5a6d4845775a67596b506b782d7d36086ea203fbd1717a37797cd3e051a5249f3c5be8ae74e8282189a8bf1a9000
16
- => b001000000
17
- <= 010856657274636f696e05322e312e3001029000
18
14
  => e040000015058000002c80000080800000000000000000000000
19
15
  <= 4104a2b38ee47c6bbf7da0522ba01f550a3562021eac8767dfd595e7d5814d31bea7e5c3fcd7d04a8c00de684cf6cc14c150b434ee66f55055065bb100e4863e925522566446323355734c756e3932474b4757344d7148386e78626d42464431554e4262731760eed38b476674f49b1cce7f95492a165251b6d865c5ffd4001a66fc494b8c9000
20
- => b001000000
21
- <= 010856657274636f696e05322e312e3001029000
22
16
  => e040000009028000002c80000080
23
17
  <= 410492a5c37491a1d5fbabd56eb64769967a9a6d4c6727d9a466e79dbef9f71097b6dea673427b630420eda216ee43627e9d2ec24e05549a4ae24582973ccb286b7922566e3169455748635173456d356e50615a74486d464a64386232766542426d756b67c6c4c9dd61ca871134f711974868e232dda2a23e106bc7774352f77e5b2a55c59000
24
18
  => e04000000d038000002c8000008080000000
25
19
  <= 410478375633792257646edc1e412a135ae1fee78f915d4cba0e6b285d90bc201305711e6cba7e2e9fa718010ff9c393e1b91e2a5cb276aa20d5599f46bafe22998922567451486735413975384b54784248787964335a517a666170416670543247553647277927b5d7d6d9eed319006c65e972bf0ef10d9dd031e1ad17f4f3ab7ed91a869000
26
- => b001000000
27
- <= 010856657274636f696e05322e312e3001029000
28
20
  => e040000015058000002c80000080800000010000000000000000
29
21
  <= 4104184dc7abe0551f27047291456676b8578029c746fcd43c3635c236e70ac2568ab5325ff26761189ee2fb7b35ea161067e40adf1e15b0f7a7c8ac48b5d1e60dd0225675554754686a526f5146535768556b6934675970324a45703853556f7a32584670489f5ec043ecff5d0a632ec89b2f452546b41b314a65b8d61c7ca56e9b31b8239000
30
- => b001000000
31
- <= 010856657274636f696e05322e312e3001029000
32
22
  => e040000009028000002c80000080
33
23
  <= 410492a5c37491a1d5fbabd56eb64769967a9a6d4c6727d9a466e79dbef9f71097b6dea673427b630420eda216ee43627e9d2ec24e05549a4ae24582973ccb286b7922566e3169455748635173456d356e50615a74486d464a64386232766542426d756b67c6c4c9dd61ca871134f711974868e232dda2a23e106bc7774352f77e5b2a55c59000
34
24
  => e04000000d038000002c8000008080000001
35
25
  <= 410447e7769b7276bc609fc51d07d63b7258b30fc0f8db075d9a4be373eb48dc23769a5884cc243cf00e7ad754c286d129bdd027c0484b540aed2032064acddd015f2256684535796d32357968797a61786d314a4661434a7336536f54475a764853755352b0728057e1d1f8f63c1df1a3a00088a72144b44de30b1f03608915691709e3fb9000
36
- => b001000000
37
- <= 010856657274636f696e05322e312e3001029000
38
26
  => e04000010d03800000318000001c80000000
39
27
  <= 410483b492356288cef587aea8b998e4fe5555d61589702d3d54a6f38d63c41cd3751ff7a14539160baed80a8b11350511d9f74b342d62bc443b3bca4d5bd8398c452233316d65526555696a59465874357143563745655337316d3873616f413477467878c9c6a9dd4b1b5c5102caef3b20767eb5c156b3400e991b3b5b4ed517932865af9000
40
- => b001000000
41
- <= 010856657274636f696e05322e312e3001029000
42
28
  => e040000115058000003180000080800000000000000000000000
43
29
  <= 4104f5e48d429ad21abef485c8e088d2d410168c69be4b5167c9df21b6a5981f832b96b8b9372a36c90e3422a5b9469e4b761abfdf958e1cdaf02d6f11ed502ae1fb2233427a36657054546158557766675a7937593733536a32456553667165544e5477688cff62d713d20c6e9da0d148b08e2462e8f15bb095785e873b1c2699d276cad29000
44
- => b001000000
45
- <= 010856657274636f696e05322e312e3001029000
46
30
  => e040000009028000003180000080
47
31
  <= 410466fc7704a40919b9863f598f70b0cc5d39184764d13c2030cff53afa3fa2d0d0649360cb61b9b5eff9ca3daf3fa5ea0be0a800cf968c623eff3207cee4710f0b225665557a34554379713167644b68484d647332745a6568526172543368773641486fd6f7d8f35b9238806ecccce5921c0d2f5bc9ca06643dda8f2ed56c0aefbfc2aa9000
48
32
  => e04000000d03800000318000008080000000
49
33
  <= 41041cb3ce998961acc1369e39139c044f2563a89c6a270912b75db3162f4802bf8de96d81c617b71e5fcee2ac5896c4c243dc88214c90e8678b2ae431b1001f46ba2256617951754a47357a717a377a6e64555661504d715a65454d4159647a596f4e315032e178975fe8f8af9918ff2a812f22fd098bd93aa8307812748ad63cc53e5f859000
50
- => b001000000
51
- <= 010856657274636f696e05322e312e3001029000
52
34
  => e040000115058000003180000080800000010000000000000000
53
35
  <= 41046f7ec4496a8ce062fcb106eb61e2368b11abef644acfa8fc02427a86d19b43accbc5a88e03eb28ac2b334b2dab6624cce46b00901755d615bca208ebefdcb0072233346a4c52527064314b696a474354713431567451364b6446716f517a6d636d4638b411494dce328811f130a941afcca52802f6dae60fe66e34eb4571cfff83fc7c9000
54
- => b001000000
55
- <= 010856657274636f696e05322e312e3001029000
56
36
  => e040000009028000003180000080
57
37
  <= 410466fc7704a40919b9863f598f70b0cc5d39184764d13c2030cff53afa3fa2d0d0649360cb61b9b5eff9ca3daf3fa5ea0be0a800cf968c623eff3207cee4710f0b225665557a34554379713167644b68484d647332745a6568526172543368773641486fd6f7d8f35b9238806ecccce5921c0d2f5bc9ca06643dda8f2ed56c0aefbfc2aa9000
58
38
  => e04000000d03800000318000008080000001
59
39
  <= 4104e524887cd713799d3a8aac05557f6da43f6ac5bcc26c2ce262719de7e5eba0afe5e0ebda07fd83040e3439f3d8c3ad2b09d0398071f50375dd790993f0697eff22566f326b78344c62376a4a5a7235515375337153586b4665716a664e673337666267d53343c3deb35b5fa4cdb2f9fdcd2ecd0afbc24b9e3675e3bb75819aba8c57cf9000
60
- => b001000000
61
- <= 010856657274636f696e05322e312e3001029000
62
40
  => e04000011505800000318000001c800000000000000000000000
63
41
  <= 41044b2a41c24faa276f2c9e5b7701be4f1c7b623ed6f30ba25bdaa00983d5c0767bef0b82b2aa8af64932090cd632a0dfd274dc5d667ddd840246f8335220c6db0b223333613472535061723753706a66574171326d4737414d4a6d786b7857344b396b61133e876be3ac429c298819b787ea774e0abed79d42c52705b6021bb1d41353409000
64
- => b001000000
65
- <= 010856657274636f696e05322e312e3001029000
66
42
  => e04000000902800000318000001c
67
43
  <= 4104c98f218bcfab72b2bce20ece97c4ae30b3dae519bb8b80060d9a8d73acbbafa985557d522844a7bba73e4a2fb7045651e8ce779c90eb01d87831f4b391d7e6c222567172526134717132744c645337485434554265795478384d4e356577506e743474c15c119b4a27a4c2bf5a96d89fb81675e9eba68f54ac39de99b0ba3a52ba36d89000
68
44
  => e04000000d03800000318000001c80000000
69
45
  <= 410483b492356288cef587aea8b998e4fe5555d61589702d3d54a6f38d63c41cd3751ff7a14539160baed80a8b11350511d9f74b342d62bc443b3bca4d5bd8398c45225666524e514d71616b64424b78343579784e314352546547374d6a52646775666250c9c6a9dd4b1b5c5102caef3b20767eb5c156b3400e991b3b5b4ed517932865af9000
70
- => b001000000
71
- <= 010856657274636f696e05322e312e3001029000
72
46
  => e04000011505800000318000001c800000010000000000000000
73
47
  <= 410485328790a5994d189bf3f4a56901f823da95f92388e169b83942cd133f5489b619256b1fe240a14182612180e611b19c028a7ff2741e4671fa5a99484e6a461522333454785a5275464367794d4b7446596d774b6f526f57564374317075414839587ac4199aca663e8701fd78c9d94823d1788e3325744806b92e3440914375321ed99000
74
- => b001000000
75
- <= 010856657274636f696e05322e312e3001029000
76
48
  => e04000000902800000318000001c
77
49
  <= 4104c98f218bcfab72b2bce20ece97c4ae30b3dae519bb8b80060d9a8d73acbbafa985557d522844a7bba73e4a2fb7045651e8ce779c90eb01d87831f4b391d7e6c222567172526134717132744c645337485434554265795478384d4e356577506e743474c15c119b4a27a4c2bf5a96d89fb81675e9eba68f54ac39de99b0ba3a52ba36d89000
78
50
  => e04000000d03800000318000001c80000001
79
51
  <= 4104a318b9bb9e6c279404c75da3e9d645453073ebd717c5efdad3023d6937479b166154afc4accc3785b29032c1a940985f9584db8fe39b73afae7d612fca3d864e22567541444b485a6a5434486161654b466b554a77567843317176756332726b6b536137dfd2879f17b5cd9b3414d8e0d3e1e426fc3a7e584f018642d9f40dccd3c5179000
80
- => b001000000
81
- <= 010856657274636f696e05322e312e3001029000
82
52
  => e040000015058000002c8000001c800000000000000000000000
83
53
  <= 4104dbc0c62f021c82ba505d3f32579e15b2652baa27aacf1032324d9e6a46d21f90d1ef4dc997673d9492e8ffaa1ed15c6f121f2e387922426ec8a7f619e3ee26812256686263395a7a7a4838395338666b4562715257756174457a775043526633557970d472f89ed886e28a841aaffcc0864410276d049590986a9c8aa6dfa209b266d39000
84
- => b001000000
85
- <= 010856657274636f696e05322e312e3001029000
86
54
  => e040000009028000002c8000001c
87
55
  <= 4104451954d50c6a94b84c62878dd97eee9ddec8173726577b4f30ca0d82abb7c7a554cd6e69ad5c7ae2e49440589eb7f22c2c8cfd0e640a6a8c83e403d53f6b5ca62256614e397a6e366e446152345434576e4234727332615462686f4536433266425375840e85c92015adb1f5cf6653e942876c2e2e27589e80959b869726e608bcdfd69000
88
56
  => e04000000d038000002c8000001c80000000
89
57
  <= 41044ed2023877af4e78c1feb9b9ff41288d7e1e5f3750e6361375c1c63618403066170a15bde45e3944cca9d627ce952dc2b8fb3f8f29c67da2d21d85a40fd40fe52256714d357a756a79645a66485738426165766a7a564e5a6d4845775a67596b506b782d7d36086ea203fbd1717a37797cd3e051a5249f3c5be8ae74e8282189a8bf1a9000
90
- => b001000000
91
- <= 010856657274636f696e05322e312e3001029000
92
58
  => e040000015058000002c8000001c800000010000000000000000
93
59
  <= 410448fffb8ba68b357c8e8911edb979311d7b95cd8f2640156b0efd588e37cdaea161128d53a4ed4488b81a7c89b2fa66d7d291eddbb040b6ce0f6c0bd820f2508e22566731384354437a645458705251523636766f4661684448384c6b533665786f785a5da906ecb416af6ae9d7ed2237a8376a416e715d61195bb842133620661c7f9f9000
94
- => b001000000
95
- <= 010856657274636f696e05322e312e3001029000
96
60
  => e040000009028000002c8000001c
97
61
  <= 4104451954d50c6a94b84c62878dd97eee9ddec8173726577b4f30ca0d82abb7c7a554cd6e69ad5c7ae2e49440589eb7f22c2c8cfd0e640a6a8c83e403d53f6b5ca62256614e397a6e366e446152345434576e4234727332615462686f4536433266425375840e85c92015adb1f5cf6653e942876c2e2e27589e80959b869726e608bcdfd69000
98
62
  => e04000000d038000002c8000001c80000001
@@ -9,50 +9,30 @@ const dataset: CurrenciesData<Transaction> = {
9
9
  {
10
10
  name: "viacoin seed 1",
11
11
  apdus: `
12
- => b001000000
13
- <= 0107566961636f696e05322e312e3001029000
14
12
  => e04000010d03800000318000000e80000000
15
13
  <= 410480b2ebd31e9aecc021c6c2e9d924723dc807cd6b7c14fbedf9a1c866d16535df797f6140170f8e09b03b285d1cf1dd5e859063c348913453beaefce77c73cdd622454d6a617a6f35353359526b63323259693537694258335677776b4753334635484645883971a65067615c547f9837a13ef8d0641f8887393124c9c9c7ab0432fd649000
16
- => b001000000
17
- <= 0107566961636f696e05322e312e3001029000
18
14
  => e04000011505800000318000000e800000000000000000000000
19
15
  <= 410455fcd70f1980b7e0362d6433bba62bf5cd82a2c48a87952ce128ea2baad910a9028cbda22a22e3b3125db3b0c3a80da1132aba4c58a0db671bf690de109dd1da22454c384339564c6177487a6a61434d6770634c656d7150654558756e48356a4e756faaca51c951a4cdbb57fd8670d4bebf9239a9a17ddc975c4766aa8edfefd7681e9000
20
- => b001000000
21
- <= 0107566961636f696e05322e312e3001029000
22
16
  => e04000000902800000318000000e
23
17
  <= 4104a60587b5e2b0efd506c88fca8422b81c4e9a7bedbe9b772e1fff978c62571e882bcec45a945e8381755d2e7089023d085ead8546d02348654cefb73448d9dec7225679434e436e4b6b6b4831374d3734574a77355770526f4535635a6a3967507a5239da03935b26f245dafeb7f7c9669e1ead22689a4d0a137c3e97b787b09fc4e1b29000
24
18
  => e04000000d03800000318000000e80000000
25
19
  <= 410480b2ebd31e9aecc021c6c2e9d924723dc807cd6b7c14fbedf9a1c866d16535df797f6140170f8e09b03b285d1cf1dd5e859063c348913453beaefce77c73cdd622566853564e4c504d767351366b5159766e6b656177664b36756637345452524b487145883971a65067615c547f9837a13ef8d0641f8887393124c9c9c7ab0432fd649000
26
- => b001000000
27
- <= 0107566961636f696e05322e312e3001029000
28
20
  => e04000011505800000318000000e800000010000000000000000
29
21
  <= 410493cbe239ca9d9589338624ccc582f23dd7b23163a59649c389ef093e13e3b3ca5b58ddcf8cd475a3ff46b92dda7dae7f692848a25372fda76345b69cb1a1b2872245484141674653444d665934554873526e3667454a7856686e564c504e4e75707734b33f4057e32e63c5089e1be19b4c6063399d45eb32f04a8615b5f4a1aaa01fb99000
30
- => b001000000
31
- <= 0107566961636f696e05322e312e3001029000
32
22
  => e04000000902800000318000000e
33
23
  <= 4104a60587b5e2b0efd506c88fca8422b81c4e9a7bedbe9b772e1fff978c62571e882bcec45a945e8381755d2e7089023d085ead8546d02348654cefb73448d9dec7225679434e436e4b6b6b4831374d3734574a77355770526f4535635a6a3967507a5239da03935b26f245dafeb7f7c9669e1ead22689a4d0a137c3e97b787b09fc4e1b29000
34
24
  => e04000000d03800000318000000e80000001
35
25
  <= 410474b2aece6cb7528f855c2ee8b1ae2d17accb7f07b57a4d948aeb4c948d9dcd138c4fd9ab7ef92e7246eae4eb9043e984ca3d30beb46b009033ad755976f730cb2256696565363738796d4a4a593657426a64314c4d4642564a69664665596867325555df89fbc5da1c02f6e7c7f6e7a11137e96790986f7935d8174c26ebb6592d36b99000
36
- => b001000000
37
- <= 0107566961636f696e05322e312e3001029000
38
26
  => e04000000d038000002c8000000e80000000
39
27
  <= 41042ee7221d7491590252b2dab2f9d47b58f6a7ff0ee53ddc17c07e51934fd4055afd3ead3a97047d97992963a7d238da72ac0d0de1ac222c07efd8a3be8ee9e4fe225669456a5466556d70393442385974423268773535344165515735596a42465a505a42fdeaea0b5a5a1c77852c3c4f9bea8a2550198721c7c0bfae236f54668323f69000
40
- => b001000000
41
- <= 0107566961636f696e05322e312e3001029000
42
28
  => e040000015058000002c8000000e800000000000000000000000
43
29
  <= 410435bd8e102060fa62832ab66c56c2f59d2030a38086693feb950a2c23f95d96621b0143ebb64cfaa5ff8f7c385235a92b7e2075d1f324c7a928657dfe2c7b3e192256704a4e77724b434e526162446d677a36674d5361486b6d564e44567647536b744e72c95ef6d3af09b01b7d729f519d87e7a77a990ba0eaa3120c1e123d0233d0779000
44
- => b001000000
45
- <= 0107566961636f696e05322e312e3001029000
46
30
  => e040000009028000002c8000000e
47
31
  <= 41049f7c9c715fd13a47870896346c043bbded5cd7f69b932725fc583bdca42f289648063bf9be14fc466c2957ce8f70a00bd2dbc351e12ef0be74e8194ad48c9c5a2256644c615674677a41655359346431616379326b514a776971374c6d4d6a7446475781807254c0bba79f6cdd4224ded557af32b2e5f16ff4e007dd30b964cd35b6c99000
48
32
  => e04000000d038000002c8000000e80000000
49
33
  <= 41042ee7221d7491590252b2dab2f9d47b58f6a7ff0ee53ddc17c07e51934fd4055afd3ead3a97047d97992963a7d238da72ac0d0de1ac222c07efd8a3be8ee9e4fe225669456a5466556d70393442385974423268773535344165515735596a42465a505a42fdeaea0b5a5a1c77852c3c4f9bea8a2550198721c7c0bfae236f54668323f69000
50
- => b001000000
51
- <= 0107566961636f696e05322e312e3001029000
52
34
  => e040000015058000002c8000000e800000010000000000000000
53
35
  <= 4104724fd782cfdfb121dbc807aef81a9f320ef350bd215bc24a1fbb3f515dfba6fcee752384fd48efd2369c5aea5bf9e64b4d1ed54a67d6d9944cd461e83585358822566b43344b73525446617a55744d324735354e4d53545959717248707a326442676492271f2ca7aef829bc8773291957b31029487e76f2020567c5b7e7b6b489f8f49000
54
- => b001000000
55
- <= 0107566961636f696e05322e312e3001029000
56
36
  => e040000009028000002c8000000e
57
37
  <= 41049f7c9c715fd13a47870896346c043bbded5cd7f69b932725fc583bdca42f289648063bf9be14fc466c2957ce8f70a00bd2dbc351e12ef0be74e8194ad48c9c5a2256644c615674677a41655359346431616379326b514a776971374c6d4d6a7446475781807254c0bba79f6cdd4224ded557af32b2e5f16ff4e007dd30b964cd35b6c99000
58
38
  => e04000000d038000002c8000000e80000001
@@ -9,46 +9,28 @@ const dataset: CurrenciesData<Transaction> = {
9
9
  {
10
10
  name: "zcash seed 1",
11
11
  apdus: `
12
- => b001000000
13
- <= 01055a6361736805322e312e3301029000
14
12
  => e04000000d038000002c8000008580000000
15
13
  <= 4104c29da5bfbd318cb28878340d4961a999d323d865bfa72d203356544972d63d9c208d0d55e9f1538d34e89be3d08433d2632dcb8b4351e2fcd29ea0158619301f237431515a5736745946577746367853774d53556f6e44684e6a595362687a4d6e386e539a7c029da7a8682df1f473d3b981a7d0fed4a36c9468dba06c72c608a13f0f4b9000
16
- => b001000000
17
- <= 01055a6361736805322e312e3301029000
18
14
  => e040000015058000002c80000085800000000000000000000000
19
15
  <= 41044d0fbde902cb2b01250b8b2f7186df10371b3a7116a66718efec53ac8626c7f527c107c65a577afc0b2220950e1f5279f204ab765aa4d57f1127b8eb029f8656237431617076414c78516e77596f6f6971444d593236346332543763625a48746e6f4e5395adffe6bcfbe0264ffcb00ca6be5c84e32b3227b5e30280c8e365121933262e9000
20
- => b001000000
21
- <= 01055a6361736805322e312e3301029000
22
16
  => e040000009028000002c80000085
23
17
  <= 4104ccf669020e2e315fb2ffdb98e6f60fed7b4abed8a013f5fd1bd604f7742207feef8cffcf1aca7f08628dea1abbcf1170b80ccf3809aa560996e5a5baaef4da3323743168444336697270576e50364443396758693577714e61777172596f31514c776274116cdc78b0662d7b875ed9aa73cc1a73c3dbcafb41fe48e5d009ec3d9d9048519000
24
18
  => e04000000d038000002c8000008580000000
25
19
  <= 4104c29da5bfbd318cb28878340d4961a999d323d865bfa72d203356544972d63d9c208d0d55e9f1538d34e89be3d08433d2632dcb8b4351e2fcd29ea0158619301f237431515a5736745946577746367853774d53556f6e44684e6a595362687a4d6e386e539a7c029da7a8682df1f473d3b981a7d0fed4a36c9468dba06c72c608a13f0f4b9000
26
- => b001000000
27
- <= 01055a6361736805322e312e3301029000
28
20
  => e040000015058000002c80000085800000010000000000000000
29
21
  <= 4104c41cccd31bd79c3bcd4527b5d2e96d6f69353b21b8330063f9a98e4dd8534c1f8448566c900e3724903965b5d66f970a1d298a834535c94d5d0f9b64500eaa20237431636f554d686f395070717a70726273325372426f367165706543563450737643745d99eec7f0370f2f134e34531080d2f67d6604a2daaab9c172f86ad1dc580e8c9000
30
- => b001000000
31
- <= 01055a6361736805322e312e3301029000
32
22
  => e040000009028000002c80000085
33
23
  <= 4104ccf669020e2e315fb2ffdb98e6f60fed7b4abed8a013f5fd1bd604f7742207feef8cffcf1aca7f08628dea1abbcf1170b80ccf3809aa560996e5a5baaef4da3323743168444336697270576e50364443396758693577714e61777172596f31514c776274116cdc78b0662d7b875ed9aa73cc1a73c3dbcafb41fe48e5d009ec3d9d9048519000
34
24
  => e04000000d038000002c8000008580000001
35
25
  <= 4104a7e170b44a5d4fc9c4a864d1e7104faeb345d1a2b7c6803c80840459757077fcc5de00b7762e929c5e8d81769946dedf4c3afc277d40e46cf9b69f62d24359cd23743154437146764b704771444332677374706931326459455969564b6b4163466e5772ead8e18cd068d1a41e09151bc67205d71127a18477cf3f71aa67169f449ca8ea9000
36
- => b001000000
37
- <= 01055a6361736805322e312e3301029000
38
26
  => e040000015058000002c80000085800000020000000000000000
39
27
  <= 41049d0cd918527c80a42acbad5038eee04a8eace4e843063f57012b10f76c290b6d870e2ebd36eaa63d956013a57835320474ecc14b0cf5c92742281edc3c9d711d237431653357504b5379576e654c676473594c6f5444616347387a54587762766d4b6575250c4079ce22670539472553a9b6f2a0408970d89fc81e24c55a1f69c80b74959000
40
- => b001000000
41
- <= 01055a6361736805322e312e3301029000
42
28
  => e040000009028000002c80000085
43
29
  <= 4104ccf669020e2e315fb2ffdb98e6f60fed7b4abed8a013f5fd1bd604f7742207feef8cffcf1aca7f08628dea1abbcf1170b80ccf3809aa560996e5a5baaef4da3323743168444336697270576e50364443396758693577714e61777172596f31514c776274116cdc78b0662d7b875ed9aa73cc1a73c3dbcafb41fe48e5d009ec3d9d9048519000
44
30
  => e04000000d038000002c8000008580000002
45
31
  <= 410405cf3cc10f2de66cf24cf7a8bb4b71a7e73f4dde1931d110fb7d86871904bdd29990c9d406d2877bbfe02e28b83852432629092aae73741d7fbeb9d49b0679712374314c48474532313975616a64325445423841506a7178364848627133364d6a6744620734254f452d2c62fdaab70cd8374b94f62a9fe6b99579924f2bfb9db0450a0d9000
46
- => b001000000
47
- <= 01055a6361736805322e312e3301029000
48
32
  => e040000015058000002c80000085800000030000000000000000
49
33
  <= 4104e9f6dfdb8cdc2d17ac09251d2e061a1fc989a89f9a700b95e55ef6bf54b9e16db544521c5e02bc2feb82219e34b0aeb45054987c5d34567858552d0f48aab0cb2374314b5335674c36345a62574e536a38423463315037684c387a51444470453151525267c4579b1afcf3d00f38759e73a05ffc3e936917c5cf87dbc9c9f5ebedc3290a9000
50
- => b001000000
51
- <= 01055a6361736805322e312e3301029000
52
34
  => e040000009028000002c80000085
53
35
  <= 4104ccf669020e2e315fb2ffdb98e6f60fed7b4abed8a013f5fd1bd604f7742207feef8cffcf1aca7f08628dea1abbcf1170b80ccf3809aa560996e5a5baaef4da3323743168444336697270576e50364443396758693577714e61777172596f31514c776274116cdc78b0662d7b875ed9aa73cc1a73c3dbcafb41fe48e5d009ec3d9d9048519000
54
36
  => e04000000d038000002c8000008580000003
@@ -9,36 +9,22 @@ const dataset: CurrenciesData<Transaction> = {
9
9
  {
10
10
  name: "zencash seed 1",
11
11
  apdus: `
12
- => b001000000
13
- <= 0107486f72697a656e05322e312e3001029000
14
12
  => e04000000d038000002c8000007980000000
15
13
  <= 4104ecf3eb0c3454436fd414da75eafad95896209052eef81b06860cc6c14731963e63ae744577e35b51d4e40ebb4366e59e2a20f571384384bfcb804444db6a83d7237a6e687a6f6835647175706b4c71386837697635794c5339627776434e784432554279f29f778d62ee797a06daa97cdda87bc1e18e6cd586ba1207e68574b5efa543539000
16
- => b001000000
17
- <= 0107486f72697a656e05322e312e3001029000
18
14
  => e040000015058000002c80000079800000000000000000000000
19
15
  <= 410486390295a9553025e00eccbf51967519bf773462a01521ee74565fa58375a42a11f0b3419bc37b830e734e501d05a93fa384c9f9040572272e230b6bacf8d56c237a6e677173694a793361334275665176554775766a53757065576d6f39667661414e64e0eba045054e7506e936b4e2dc0de59f94e1cd78f314e9a67e04e7b6d6a135359000
20
- => b001000000
21
- <= 0107486f72697a656e05322e312e3001029000
22
16
  => e040000009028000002c80000079
23
17
  <= 4104eee69b0e927018a4a46f30fe967c1a5ba40da2828f5ae8c57b2343b8596af2198363d99a0d77135d93f2d441278297551d6f8e0a96565e810efc03e1c6ec6c4b237a6e69726b5452664c4b674a5a525a4251734d6932554b3239547a39313969586159429facf5df0c974458073fd05717e75137a2002bc7a7b42b86532395b68d88b2469000
24
18
  => e04000000d038000002c8000007980000000
25
19
  <= 4104ecf3eb0c3454436fd414da75eafad95896209052eef81b06860cc6c14731963e63ae744577e35b51d4e40ebb4366e59e2a20f571384384bfcb804444db6a83d7237a6e687a6f6835647175706b4c71386837697635794c5339627776434e784432554279f29f778d62ee797a06daa97cdda87bc1e18e6cd586ba1207e68574b5efa543539000
26
- => b001000000
27
- <= 0107486f72697a656e05322e312e3001029000
28
20
  => e040000015058000002c80000079800000010000000000000000
29
21
  <= 41044b897060883cc30b0282965766ca6066793493c9bfa5f8cfc70e70c8b1d5a22cad8cb2aa10b51c85f74b8edabd42c8dd707389725db89105640f8b59086d7803237a6e6242755377747832513267584a55374a79374d3170437879654b6365444a6554329d4cfaf53a20579aef2b9cb214af3ccc8a1d562903dac43e2fe9e202b7e2216d9000
30
- => b001000000
31
- <= 0107486f72697a656e05322e312e3001029000
32
22
  => e040000009028000002c80000079
33
23
  <= 4104eee69b0e927018a4a46f30fe967c1a5ba40da2828f5ae8c57b2343b8596af2198363d99a0d77135d93f2d441278297551d6f8e0a96565e810efc03e1c6ec6c4b237a6e69726b5452664c4b674a5a525a4251734d6932554b3239547a39313969586159429facf5df0c974458073fd05717e75137a2002bc7a7b42b86532395b68d88b2469000
34
24
  => e04000000d038000002c8000007980000001
35
25
  <= 4104e35cb5c7e66e75e75ccce990d9b755063b8ccef58aabc106a7b1215c5e54a7bad53d131ce6608a72b966f4e9abcfef56a6c2036c3cbd4d5d63830e67244914c8237a6e5261314a6b7578455755764661695433314566624e4e6a5a6f31797169347777534206552ceb3ebb5cf76aa1e7638ff8dde695def238b8ba9ffda07aa405a1c7de9000
36
- => b001000000
37
- <= 0107486f72697a656e05322e312e3001029000
38
26
  => e040000015058000002c80000079800000020000000000000000
39
27
  <= 4104425460848ca553921c33d6ce448477f6e45ab759ec61f924e3a8c5e855a58a418aa96f0139ebbaec918ca8925e4621ee6b7cac7e8238f727f9758dd7f9c54462237a6e704d55456d626f507250453847796e45445a31556353534e4b39756134533661671fd0d15d2c1770a73b667b6081781eb4e1f34eefa2af6cbfe09703de4bc062679000
40
- => b001000000
41
- <= 0107486f72697a656e05322e312e3001029000
42
28
  => e040000009028000002c80000079
43
29
  <= 4104eee69b0e927018a4a46f30fe967c1a5ba40da2828f5ae8c57b2343b8596af2198363d99a0d77135d93f2d441278297551d6f8e0a96565e810efc03e1c6ec6c4b237a6e69726b5452664c4b674a5a525a4251734d6932554b3239547a39313969586159429facf5df0c974458073fd05717e75137a2002bc7a7b42b86532395b68d88b2469000
44
30
  => e04000000d038000002c8000007980000002
@@ -10,7 +10,6 @@ import evm from "../../families/evm/bridge/js";
10
10
  import filecoin from "../../families/filecoin/bridge/js";
11
11
  import hedera from "../../families/hedera/bridge/js";
12
12
  import near from "../../families/near/bridge/js";
13
- import neo from "../../families/neo/bridge/js";
14
13
  import ripple from "../../families/ripple/bridge/js";
15
14
  import solana from "../../families/solana/bridge/js";
16
15
  import stellar from "../../families/stellar/bridge/js";
@@ -34,7 +33,6 @@ export default {
34
33
  filecoin,
35
34
  hedera,
36
35
  near,
37
- neo,
38
36
  ripple,
39
37
  solana,
40
38
  stellar,
@@ -10,7 +10,6 @@ import evm from "../families/evm/hw-getAddress";
10
10
  import filecoin from "../families/filecoin/hw-getAddress";
11
11
  import hedera from "../families/hedera/hw-getAddress";
12
12
  import near from "../families/near/hw-getAddress";
13
- import neo from "../families/neo/hw-getAddress";
14
13
  import ripple from "../families/ripple/hw-getAddress";
15
14
  import solana from "../families/solana/hw-getAddress";
16
15
  import stellar from "../families/stellar/hw-getAddress";
@@ -31,7 +30,6 @@ export default {
31
30
  filecoin,
32
31
  hedera,
33
32
  near,
34
- neo,
35
33
  ripple,
36
34
  solana,
37
35
  stellar,
@@ -10,7 +10,6 @@ import evm from "../families/evm/transaction";
10
10
  import filecoin from "../families/filecoin/transaction";
11
11
  import hedera from "../families/hedera/transaction";
12
12
  import near from "../families/near/transaction";
13
- import neo from "../families/neo/transaction";
14
13
  import ripple from "../families/ripple/transaction";
15
14
  import solana from "../families/solana/transaction";
16
15
  import stellar from "../families/stellar/transaction";
@@ -31,7 +30,6 @@ export default {
31
30
  filecoin,
32
31
  hedera,
33
32
  near,
34
- neo,
35
33
  ripple,
36
34
  solana,
37
35
  stellar,
@@ -46,10 +46,6 @@ import { Transaction as nearTransaction } from "../families/near/types";
46
46
  import { TransactionRaw as nearTransactionRaw } from "../families/near/types";
47
47
  import { TransactionStatus as nearTransactionStatus } from "../families/near/types";
48
48
  import { TransactionStatusRaw as nearTransactionStatusRaw } from "../families/near/types";
49
- import { Transaction as neoTransaction } from "../families/neo/types";
50
- import { TransactionRaw as neoTransactionRaw } from "../families/neo/types";
51
- import { TransactionStatus as neoTransactionStatus } from "../families/neo/types";
52
- import { TransactionStatusRaw as neoTransactionStatusRaw } from "../families/neo/types";
53
49
  import { Transaction as polkadotTransaction } from "@ledgerhq/coin-polkadot/types";
54
50
  import { TransactionRaw as polkadotTransactionRaw } from "@ledgerhq/coin-polkadot/types";
55
51
  import { TransactionStatus as polkadotTransactionStatus } from "@ledgerhq/coin-polkadot/types";
@@ -88,7 +84,6 @@ export type Transaction =
88
84
  | filecoinTransaction
89
85
  | hederaTransaction
90
86
  | nearTransaction
91
- | neoTransaction
92
87
  | polkadotTransaction
93
88
  | rippleTransaction
94
89
  | solanaTransaction
@@ -109,7 +104,6 @@ export type TransactionRaw =
109
104
  | filecoinTransactionRaw
110
105
  | hederaTransactionRaw
111
106
  | nearTransactionRaw
112
- | neoTransactionRaw
113
107
  | polkadotTransactionRaw
114
108
  | rippleTransactionRaw
115
109
  | solanaTransactionRaw
@@ -130,7 +124,6 @@ export type TransactionStatus =
130
124
  | filecoinTransactionStatus
131
125
  | hederaTransactionStatus
132
126
  | nearTransactionStatus
133
- | neoTransactionStatus
134
127
  | polkadotTransactionStatus
135
128
  | rippleTransactionStatus
136
129
  | solanaTransactionStatus
@@ -151,7 +144,6 @@ export type TransactionStatusRaw =
151
144
  | filecoinTransactionStatusRaw
152
145
  | hederaTransactionStatusRaw
153
146
  | nearTransactionStatusRaw
154
- | neoTransactionStatusRaw
155
147
  | polkadotTransactionStatusRaw
156
148
  | rippleTransactionStatusRaw
157
149
  | solanaTransactionStatusRaw
@@ -145,13 +145,13 @@ const reducer = (state: State, e: Event): State => {
145
145
  const implementations = {
146
146
  // in this paradigm, we know that deviceSubject is reflecting the device events
147
147
  // so we just trust deviceSubject to reflect the device context (switch between apps, dashboard,...)
148
- event: ({ deviceSubject, loadImage, language }) =>
148
+ event: ({ deviceSubject, loadImage, hexImage, padImage }) =>
149
149
  deviceSubject.pipe(
150
150
  debounceTime(1000),
151
- switchMap((d) => loadImage(d, language))
151
+ switchMap((d) => loadImage(d, hexImage, padImage))
152
152
  ),
153
153
  // in this paradigm, we can't observe directly the device, so we have to poll it
154
- polling: ({ deviceSubject, loadImage, language }) =>
154
+ polling: ({ deviceSubject, loadImage, hexImage, padImage }) =>
155
155
  new Observable((o) => {
156
156
  const POLLING = 2000;
157
157
  const INIT_DEBOUNCE = 5000;
@@ -189,7 +189,7 @@ const implementations = {
189
189
  }
190
190
 
191
191
  log("actions-load-stax-image-event/polling", "polling loop");
192
- connectSub = loadImage(pollingOnDevice, language)
192
+ connectSub = loadImage(pollingOnDevice, hexImage, padImage)
193
193
  .pipe(
194
194
  timeout(DEVICE_POLLING_TIMEOUT),
195
195
  catchError((err) => {
@@ -288,7 +288,7 @@ const implementations = {
288
288
  export const createAction = (
289
289
  loadImageExec: (arg0: LoadImageRequest) => Observable<LoadImageEvent>
290
290
  ): LoadImageAction => {
291
- const loadImage = (device, hexImage: string) => {
291
+ const loadImage = (device, hexImage: string, padImage?: boolean) => {
292
292
  return concat(
293
293
  of({
294
294
  type: "deviceChange",
@@ -299,6 +299,7 @@ export const createAction = (
299
299
  : loadImageExec({
300
300
  deviceId: device.deviceId,
301
301
  hexImage,
302
+ padImage,
302
303
  }).pipe(
303
304
  catchError((error: Error) =>
304
305
  of({
@@ -312,7 +313,8 @@ export const createAction = (
312
313
 
313
314
  const useHook = (
314
315
  device: Device | null | undefined,
315
- hexImage: string
316
+ hexImage: string,
317
+ padImage?: boolean
316
318
  ): State => {
317
319
  const [state, setState] = useState(() => getInitialState(device));
318
320
  const deviceSubject = useReplaySubject(device);
@@ -323,7 +325,8 @@ export const createAction = (
323
325
  const impl = implementations[currentMode]({
324
326
  deviceSubject,
325
327
  loadImage,
326
- language: hexImage,
328
+ hexImage,
329
+ padImage,
327
330
  });
328
331
 
329
332
  const sub = impl
@@ -350,7 +353,7 @@ export const createAction = (
350
353
  return () => {
351
354
  sub.unsubscribe();
352
355
  };
353
- }, [deviceSubject, hexImage, state.imageLoaded]);
356
+ }, [deviceSubject, hexImage, padImage, state.imageLoaded]);
354
357
 
355
358
  return {
356
359
  ...state,
@@ -1,11 +1,19 @@
1
1
  import Transport from "@ledgerhq/hw-transport";
2
- import { UserRefusedDeviceNameChange } from "@ledgerhq/errors";
2
+ import { StatusCodes, UserRefusedDeviceNameChange } from "@ledgerhq/errors";
3
+
4
+ /**
5
+ * Specify a new name for a device. This is technically supported on all models
6
+ * but only allowed on LNX and Stax currently. There are some FW version based
7
+ * limitations on the max length to account for but these are enforced at the
8
+ * command user level.
9
+ */
3
10
  export default async (transport: Transport, name: string): Promise<void> => {
4
11
  await transport.send(0xe0, 0xd4, 0x00, 0x00, Buffer.from(name)).catch((e) => {
5
- if (e.statusCode === 0x6985 || e.statusCode === 0x5501) {
6
- throw new UserRefusedDeviceNameChange(undefined, {
7
- productName: "Device", //Nb When possible, this is caught and will be overriden by the correct name.
8
- });
12
+ if (
13
+ e.statusCode === StatusCodes.CONDITIONS_OF_USE_NOT_SATISFIED ||
14
+ e.statusCode === StatusCodes.USER_REFUSED_ON_DEVICE
15
+ ) {
16
+ throw new UserRefusedDeviceNameChange();
9
17
  }
10
18
 
11
19
  throw e;
@@ -0,0 +1,85 @@
1
+ import { DeviceModelId } from "@ledgerhq/devices";
2
+ import getDeviceNameMaxLength from "./getDeviceNameMaxLength";
3
+
4
+ describe("getDeviceNameMaxLength", () => {
5
+ test("LNX 2.1.0 and lower should max at 17", async () => {
6
+ expect(
7
+ getDeviceNameMaxLength({
8
+ deviceModelId: DeviceModelId.nanoX,
9
+ version: "2.1.0",
10
+ })
11
+ ).toBe(17);
12
+ expect(
13
+ getDeviceNameMaxLength({
14
+ deviceModelId: DeviceModelId.nanoX,
15
+ version: "2.0.0",
16
+ })
17
+ ).toBe(17);
18
+ expect(
19
+ getDeviceNameMaxLength({
20
+ deviceModelId: DeviceModelId.nanoX,
21
+ version: "1.5.5",
22
+ })
23
+ ).toBe(17);
24
+ });
25
+ test("LNX 2.2.0 and higher should max at 20", async () => {
26
+ expect(
27
+ getDeviceNameMaxLength({
28
+ deviceModelId: DeviceModelId.nanoX,
29
+ version: "2.2.0",
30
+ })
31
+ ).toBe(20);
32
+ expect(
33
+ getDeviceNameMaxLength({
34
+ deviceModelId: DeviceModelId.nanoX,
35
+ version: "2.3.0",
36
+ })
37
+ ).toBe(20);
38
+ expect(
39
+ getDeviceNameMaxLength({
40
+ deviceModelId: DeviceModelId.nanoX,
41
+ version: "4.2.0",
42
+ })
43
+ ).toBe(20);
44
+ });
45
+ test("Stax of any version should max at 20", async () => {
46
+ expect(
47
+ getDeviceNameMaxLength({
48
+ deviceModelId: DeviceModelId.stax,
49
+ version: "0.0.1",
50
+ })
51
+ ).toBe(20);
52
+ expect(
53
+ getDeviceNameMaxLength({
54
+ deviceModelId: DeviceModelId.stax,
55
+ version: "1.2.3",
56
+ })
57
+ ).toBe(20);
58
+ expect(
59
+ getDeviceNameMaxLength({
60
+ deviceModelId: DeviceModelId.stax,
61
+ version: "3.4.5",
62
+ })
63
+ ).toBe(20);
64
+ });
65
+ test("Other models should just return 17 as a fallback", async () => {
66
+ expect(
67
+ getDeviceNameMaxLength({
68
+ deviceModelId: DeviceModelId.blue,
69
+ version: "3.4.5",
70
+ })
71
+ ).toBe(17);
72
+ expect(
73
+ getDeviceNameMaxLength({
74
+ deviceModelId: DeviceModelId.nanoSP,
75
+ version: "3.4.5",
76
+ })
77
+ ).toBe(17);
78
+ expect(
79
+ getDeviceNameMaxLength({
80
+ deviceModelId: DeviceModelId.nanoS,
81
+ version: "3.4.5",
82
+ })
83
+ ).toBe(17);
84
+ });
85
+ });
@@ -0,0 +1,41 @@
1
+ import { DeviceModelId } from "@ledgerhq/devices";
2
+ import semver from "semver";
3
+
4
+ type Props = {
5
+ deviceModelId: DeviceModelId;
6
+ version: string;
7
+ };
8
+
9
+ /**
10
+ * This code enforces a maximum device name length on the Live side due to a bug
11
+ * in LNX <2.2.0 that breaks the BLE stack if the name is longer than 17 characters.
12
+ * To ensure consistency with the maximum length that can be set on Stax (23), the
13
+ * visible characters (20), and the maximum APDU-driven rename length (30), this
14
+ * patch introduces a maximum length of 20 characters until all inconsistencies
15
+ * are aligned.
16
+ */
17
+ const getDeviceNameMaxLength = (props: Props): number => {
18
+ const { deviceModelId, version } = props;
19
+
20
+ let maxLength = 17; // Default for other models and versions.
21
+
22
+ switch (deviceModelId) {
23
+ case DeviceModelId.nanoX: {
24
+ const coercedVersion = semver.coerce(version);
25
+ const validVersion = semver.valid(coercedVersion) || "";
26
+
27
+ if (semver.gte(validVersion, "2.2.0")) {
28
+ maxLength = 20;
29
+ }
30
+ break;
31
+ }
32
+
33
+ case DeviceModelId.stax:
34
+ maxLength = 20;
35
+ break;
36
+ }
37
+
38
+ return maxLength;
39
+ };
40
+
41
+ export default getDeviceNameMaxLength;
@@ -45,11 +45,13 @@ export type LoadImageEvent =
45
45
  export type LoadImageRequest = {
46
46
  deviceId: string;
47
47
  hexImage: string;
48
+ padImage?: boolean;
48
49
  };
49
50
 
50
51
  export default function loadImage({
51
52
  deviceId,
52
53
  hexImage,
54
+ padImage = true,
53
55
  }: LoadImageRequest): Observable<LoadImageEvent> {
54
56
  const sub = withDevice(deviceId)(
55
57
  (transport) =>
@@ -65,7 +67,11 @@ export default function loadImage({
65
67
  mergeMap(async () => {
66
68
  timeoutSub.unsubscribe();
67
69
 
68
- const imageData = await generateStaxImageFormat(hexImage, true);
70
+ const imageData = await generateStaxImageFormat(
71
+ hexImage,
72
+ true,
73
+ padImage
74
+ );
69
75
  const imageLength = imageData.length;
70
76
 
71
77
  const imageSize = Buffer.alloc(4);
@@ -218,8 +224,9 @@ export default function loadImage({
218
224
 
219
225
  export const generateStaxImageFormat: (
220
226
  hexImage: string,
221
- compressImage: boolean
222
- ) => Promise<Buffer> = async (hexImage, compressImage) => {
227
+ compressImage: boolean,
228
+ padImage: boolean
229
+ ) => Promise<Buffer> = async (hexImage, compressImage, padImage) => {
223
230
  const width = 400;
224
231
  const height = 672;
225
232
  const bpp = 2; // value for 4 bits per pixel
@@ -233,7 +240,9 @@ export const generateStaxImageFormat: (
233
240
 
234
241
  // Nb Display image data is missing 2 pixels from each column.
235
242
  // padding every 670 characters with two fillers, should do the trick.
236
- const paddedHexImage = hexImage.replace(/(.{670})/g, "$100");
243
+ const paddedHexImage = padImage
244
+ ? hexImage.replace(/(.{670})/g, "$100")
245
+ : hexImage;
237
246
  const imgData = Buffer.from(paddedHexImage, "hex");
238
247
 
239
248
  if (!compressImage) {
@@ -34,6 +34,7 @@ export function getProviderURL(value: string): string {
34
34
  const api = {
35
35
  fetchRampCatalog: async (provider: string): Promise<RampCatalog> => {
36
36
  if (getEnv("MOCK")) {
37
+ // TODO: replace this mock on playwright runs with controlled data
37
38
  return mockData as RampCatalog;
38
39
  }
39
40
 
@@ -23,6 +23,7 @@
23
23
  "providerId": "eth",
24
24
  "ticker": "ETH"
25
25
  },
26
+ { "id": "cosmos", "providerId": "atom", "ticker": "ATOM" },
26
27
  {
27
28
  "id": "ethereum/erc20/usd__coin",
28
29
  "providerId": "usdc",
@@ -1,8 +0,0 @@
1
- import type { AccountBridge, CurrencyBridge } from "@ledgerhq/types-live";
2
- import type { Transaction } from "../types";
3
- declare const _default: {
4
- currencyBridge: CurrencyBridge;
5
- accountBridge: AccountBridge<Transaction>;
6
- };
7
- export default _default;
8
- //# sourceMappingURL=js.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../../../src/families/neo/bridge/js.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAC;;;;;AA+K/D,wBAGE"}