@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
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/families/neo/types.ts"],"names":[],"mappings":""}
@@ -1,189 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import flatMap from "lodash/flatMap";
3
- import { log } from "@ledgerhq/logs";
4
- import { CurrencyNotSupported } from "@ledgerhq/errors";
5
- import type {
6
- Account,
7
- AccountBridge,
8
- CurrencyBridge,
9
- Operation,
10
- } from "@ledgerhq/types-live";
11
- import type { Transaction, TransactionStatus } from "../types";
12
- import { parseCurrencyUnit, getCryptoCurrencyById } from "../../../currencies";
13
- import network from "../../../network";
14
- import { makeSync, makeScanAccounts } from "../../../bridge/jsHelpers";
15
- import { makeAccountBridgeReceive } from "../../../bridge/jsHelpers";
16
-
17
- const receive = makeAccountBridgeReceive();
18
- const neoAsset =
19
- "c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b";
20
- const neoUnit = getCryptoCurrencyById("neo").units[0];
21
-
22
- const txToOps =
23
- ({ id, address }) =>
24
- (tx: Record<string, any>): Operation[] => {
25
- const ops: Operation[] = [];
26
- if (tx.asset !== neoAsset) return ops;
27
- const hash = tx.txid;
28
- const date = new Date(tx.time * 1000);
29
- const value = parseCurrencyUnit(neoUnit, tx.amount);
30
- const from = tx.address_from;
31
- const to = tx.address_to;
32
- const sending = address === from;
33
- const receiving = address === to;
34
- const fee = new BigNumber(0);
35
-
36
- if (sending) {
37
- ops.push({
38
- id: `${id}-${hash}-OUT`,
39
- hash,
40
- type: "OUT",
41
- value: value.plus(fee),
42
- fee,
43
- blockHeight: tx.block_height,
44
- blockHash: null,
45
- accountId: id,
46
- senders: [from],
47
- recipients: [to],
48
- date,
49
- extra: {},
50
- });
51
- }
52
-
53
- if (receiving) {
54
- ops.push({
55
- id: `${id}-${hash}-IN`,
56
- hash,
57
- type: "IN",
58
- value,
59
- fee,
60
- blockHeight: tx.block_height,
61
- blockHash: null,
62
- accountId: id,
63
- senders: [from],
64
- recipients: [to],
65
- date,
66
- extra: {},
67
- });
68
- }
69
-
70
- return ops;
71
- };
72
-
73
- const root = "https://api.neoscan.io";
74
-
75
- async function fetch(path) {
76
- const url = root + path;
77
- const { data } = await network({
78
- method: "GET",
79
- url,
80
- });
81
- log("http", url);
82
- return data;
83
- }
84
-
85
- async function fetchBalances(addr: string) {
86
- const data = await fetch(`/api/main_net/v1/get_balance/${addr}`);
87
- return data.balance;
88
- }
89
-
90
- async function fetchBlockHeight() {
91
- const data = await fetch("/api/main_net/v1/get_height");
92
- return data.height;
93
- }
94
-
95
- async function fetchTxs(
96
- addr: string,
97
- shouldFetchMoreTxs: (arg0: Operation[]) => boolean
98
- ) {
99
- let i = 0;
100
-
101
- const load = () =>
102
- fetch(`/api/main_net/v1/get_address_abstracts/${addr}/${i + 1}`);
103
-
104
- let payload = await load();
105
- let txs = [];
106
-
107
- while (payload && i < payload.total_pages && shouldFetchMoreTxs(txs)) {
108
- txs = txs.concat(payload.entries);
109
- i++;
110
- payload = await load();
111
- }
112
-
113
- return txs;
114
- }
115
-
116
- const getAccountShape = async (info) => {
117
- const blockHeight = await fetchBlockHeight();
118
- const balances = await fetchBalances(info.address);
119
-
120
- if (balances.length === 0) {
121
- return {
122
- balance: new BigNumber(0),
123
- };
124
- }
125
-
126
- const balanceMatch = balances.find((b) => b.asset_hash === neoAsset);
127
- const balance = balanceMatch
128
- ? parseCurrencyUnit(neoUnit, String(balanceMatch.amount))
129
- : new BigNumber(0);
130
- const txs = await fetchTxs(info.address, (txs) => txs.length < 1000);
131
- const operations = flatMap(txs, txToOps(info));
132
- return {
133
- balance,
134
- operations,
135
- blockHeight,
136
- };
137
- };
138
-
139
- const scanAccounts = makeScanAccounts({ getAccountShape });
140
- const sync = makeSync({ getAccountShape });
141
- const currencyBridge: CurrencyBridge = {
142
- preload: () => Promise.resolve({}),
143
- hydrate: () => {},
144
- scanAccounts,
145
- };
146
-
147
- const createTransaction = (a: Account): Transaction => {
148
- throw new CurrencyNotSupported("neo currency not supported", {
149
- currencyName: a.currency.name,
150
- });
151
- };
152
-
153
- const updateTransaction = (
154
- t: Transaction,
155
- patch: Transaction
156
- ): Transaction => ({ ...t, ...patch });
157
-
158
- const getTransactionStatus = (a: Account): Promise<TransactionStatus> =>
159
- Promise.reject(
160
- new CurrencyNotSupported("neo currency not supported", {
161
- currencyName: a.currency.name,
162
- })
163
- );
164
-
165
- const estimateMaxSpendable = (): Promise<BigNumber> =>
166
- Promise.reject(new Error("estimateMaxSpendable not implemented"));
167
-
168
- const prepareTransaction = async (a, t: Transaction): Promise<Transaction> =>
169
- Promise.resolve(t);
170
-
171
- const accountBridge: AccountBridge<Transaction> = {
172
- createTransaction,
173
- updateTransaction,
174
- prepareTransaction,
175
- getTransactionStatus,
176
- estimateMaxSpendable,
177
- sync,
178
- receive,
179
- signOperation: () => {
180
- throw new Error("signOperation not implemented");
181
- },
182
- broadcast: () => {
183
- throw new Error("broadcast not implemented");
184
- },
185
- };
186
- export default {
187
- currencyBridge,
188
- accountBridge,
189
- };
@@ -1,80 +0,0 @@
1
- // from https://github.com/CityOfZion/neon-js
2
- import hexEncoding from "crypto-js/enc-hex";
3
- import SHA256 from "crypto-js/sha256";
4
- import RIPEMD160 from "crypto-js/ripemd160";
5
- import base58 from "bs58";
6
- import { ab2hexstring, hexstring2ab, reverseHex } from "../../../convert";
7
- const ADDR_VERSION = "17";
8
-
9
- function hash(hex, hashingFunction) {
10
- const hexEncoded = hexEncoding.parse(hex);
11
- const result = hashingFunction(hexEncoded);
12
- return result.toString(hexEncoding);
13
- }
14
-
15
- function ripemd160(hex: string): string {
16
- return hash(hex, RIPEMD160);
17
- }
18
-
19
- function hash160(hex: string): string {
20
- const sha = sha256(hex);
21
- return ripemd160(sha);
22
- }
23
-
24
- function hash256(hex: string): string {
25
- const firstSha = sha256(hex);
26
- return sha256(firstSha);
27
- }
28
-
29
- function sha256(hex: string): string {
30
- return hash(hex, SHA256);
31
- }
32
-
33
- /**
34
- * Encodes a public key.
35
- * @param unencodedKey unencoded public key
36
- * @return encoded public key
37
- */
38
- function getPublicKeyEncoded(unencodedKey: string): string {
39
- const publicKeyArray = new Uint8Array(hexstring2ab(unencodedKey));
40
-
41
- if (publicKeyArray[64] % 2 === 1) {
42
- return "03" + ab2hexstring(publicKeyArray.slice(1, 33));
43
- } else {
44
- return "02" + ab2hexstring(publicKeyArray.slice(1, 33));
45
- }
46
- }
47
-
48
- /**
49
- * Converts a public key to verification script form.
50
- * VerificationScript serves a very niche purpose.
51
- * It is attached as part of the signature when signing a transaction.
52
- * Thus, the name 'scriptHash' instead of 'keyHash' is because we are hashing the verificationScript and not the PublicKey.
53
- */
54
- const getVerificationScriptFromPublicKey = (publicKey: string): string => {
55
- return "21" + publicKey + "ac";
56
- };
57
-
58
- /**
59
- * Converts a public key to scripthash.
60
- */
61
- export const getScriptHashFromPublicKey = (publicKey: string): string => {
62
- // if unencoded
63
- if (publicKey.substring(0, 2) === "04") {
64
- publicKey = getPublicKeyEncoded(publicKey);
65
- }
66
-
67
- const verificationScript = getVerificationScriptFromPublicKey(publicKey);
68
- return reverseHex(hash160(verificationScript));
69
- };
70
-
71
- /**
72
- * Converts a scripthash to address.
73
- */
74
- export const getAddressFromScriptHash = (scriptHash: string): string => {
75
- scriptHash = reverseHex(scriptHash);
76
- const shaChecksum = hash256(ADDR_VERSION + scriptHash).substr(0, 8);
77
- return base58.encode(
78
- Buffer.from(ADDR_VERSION + scriptHash + shaChecksum, "hex")
79
- );
80
- };
@@ -1,40 +0,0 @@
1
- import Transport from "@ledgerhq/hw-transport";
2
- import BIPPath from "bip32-path";
3
- import { getAddressFromScriptHash, getScriptHashFromPublicKey } from "./crypto";
4
- /**
5
- * Neo API
6
- *
7
- * @example
8
- */
9
-
10
- export default class Neo {
11
- transport: Transport;
12
-
13
- constructor(transport: Transport) {
14
- this.transport = transport;
15
- transport.decorateAppAPIMethods(this, ["getAddress"], "NEO");
16
- }
17
-
18
- /**
19
- * Get Neo address for the given BIP 32 path.
20
- * @param path a path in BIP 32 format
21
- * @return an object with a publicKey and address
22
- * @example
23
- * neo.getAddress("44'/888'/0'/0/0").then(o => o.address)
24
- */
25
- async getAddress(path: string) {
26
- const bipPath = BIPPath.fromString(path).toPathArray();
27
- const buf = Buffer.alloc(4 * bipPath.length);
28
- bipPath.forEach((segment, index) => {
29
- buf.writeUInt32BE(segment, 4 * index);
30
- });
31
- const res = await this.transport.send(0x80, 0x04, 0, 0, buf);
32
- const publicKey = res.toString("hex").substring(0, 130);
33
- const scriptHash = getScriptHashFromPublicKey(publicKey);
34
- const address = getAddressFromScriptHash(scriptHash);
35
- return {
36
- address,
37
- publicKey,
38
- };
39
- }
40
- }
@@ -1,14 +0,0 @@
1
- import Neo from "./hw-app-neo";
2
- import type { Resolver } from "../../hw/getAddress/types";
3
-
4
- const resolver: Resolver = async (transport, { path }) => {
5
- const neo = new Neo(transport);
6
- const r = await neo.getAddress(path);
7
- return {
8
- path,
9
- address: r.address,
10
- publicKey: r.publicKey,
11
- };
12
- };
13
-
14
- export default resolver;
@@ -1,36 +0,0 @@
1
- import type { Transaction, TransactionRaw } from "./types";
2
- import {
3
- formatTransactionStatusCommon as formatTransactionStatus,
4
- fromTransactionCommonRaw,
5
- fromTransactionStatusRawCommon as fromTransactionStatusRaw,
6
- toTransactionCommonRaw,
7
- toTransactionStatusRawCommon as toTransactionStatusRaw,
8
- } from "@ledgerhq/coin-framework/transaction/common";
9
- import type { Account } from "@ledgerhq/types-live";
10
- import { getAccountUnit } from "../../account";
11
- import { formatCurrencyUnit } from "../../currencies";
12
- export const formatTransaction = (t: Transaction, account: Account): string => `
13
- SEND ${formatCurrencyUnit(getAccountUnit(account), t.amount, {
14
- showCode: true,
15
- disableRounding: true,
16
- })}
17
- TO ${t.recipient}`;
18
-
19
- const fromTransactionRaw = (tr: TransactionRaw): Transaction => {
20
- const common = fromTransactionCommonRaw(tr);
21
- return { ...common, family: tr.family };
22
- };
23
-
24
- const toTransactionRaw = (t: Transaction): TransactionRaw => {
25
- const common = toTransactionCommonRaw(t);
26
- return { ...common, family: t.family };
27
- };
28
-
29
- export default {
30
- formatTransaction,
31
- fromTransactionRaw,
32
- toTransactionRaw,
33
- fromTransactionStatusRaw,
34
- toTransactionStatusRaw,
35
- formatTransactionStatus,
36
- };
@@ -1,21 +0,0 @@
1
- import type {
2
- TransactionCommon,
3
- TransactionCommonRaw,
4
- TransactionStatusCommon,
5
- TransactionStatusCommonRaw,
6
- } from "@ledgerhq/types-live";
7
-
8
- export type NetworkInfo = {
9
- family: "neo";
10
- };
11
- export type NetworkInfoRaw = {
12
- family: "neo";
13
- };
14
- export type Transaction = TransactionCommon & {
15
- family: "neo";
16
- };
17
- export type TransactionRaw = TransactionCommonRaw & {
18
- family: "neo";
19
- };
20
- export type TransactionStatus = TransactionStatusCommon;
21
- export type TransactionStatusRaw = TransactionStatusCommonRaw;