@ledgerhq/coin-evm 0.3.0 → 0.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 (582) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/jest.config.js +4 -0
  3. package/lib/__tests__/fixtures/common.fixtures.d.ts +9 -0
  4. package/lib/__tests__/fixtures/common.fixtures.d.ts.map +1 -0
  5. package/lib/{testUtils.js → __tests__/fixtures/common.fixtures.js} +40 -9
  6. package/lib/__tests__/fixtures/common.fixtures.js.map +1 -0
  7. package/lib/__tests__/fixtures/etherscan.fixtures.d.ts +86 -0
  8. package/lib/__tests__/fixtures/etherscan.fixtures.d.ts.map +1 -0
  9. package/lib/__tests__/fixtures/etherscan.fixtures.js +267 -0
  10. package/lib/__tests__/fixtures/etherscan.fixtures.js.map +1 -0
  11. package/lib/__tests__/fixtures/prepareTransaction.fixtures.d.ts +10 -0
  12. package/lib/__tests__/fixtures/prepareTransaction.fixtures.d.ts.map +1 -0
  13. package/lib/__tests__/fixtures/prepareTransaction.fixtures.js +69 -0
  14. package/lib/__tests__/fixtures/prepareTransaction.fixtures.js.map +1 -0
  15. package/lib/__tests__/fixtures/synchronization.fixtures.d.ts +44 -0
  16. package/lib/__tests__/fixtures/synchronization.fixtures.d.ts.map +1 -0
  17. package/lib/__tests__/fixtures/synchronization.fixtures.js +219 -0
  18. package/lib/__tests__/fixtures/synchronization.fixtures.js.map +1 -0
  19. package/lib/__tests__/fixtures/transaction.fixtures.d.ts +47 -0
  20. package/lib/__tests__/fixtures/transaction.fixtures.d.ts.map +1 -0
  21. package/lib/__tests__/fixtures/transaction.fixtures.js +182 -0
  22. package/lib/__tests__/fixtures/transaction.fixtures.js.map +1 -0
  23. package/lib/__tests__/integration/bridge.integration.test.d.ts +7 -0
  24. package/lib/__tests__/integration/bridge.integration.test.d.ts.map +1 -0
  25. package/lib/__tests__/integration/bridge.integration.test.js +74 -0
  26. package/lib/__tests__/integration/bridge.integration.test.js.map +1 -0
  27. package/lib/__tests__/unit/adapters.unit.test.d.ts.map +1 -0
  28. package/lib/__tests__/unit/adapters.unit.test.js +989 -0
  29. package/lib/__tests__/unit/adapters.unit.test.js.map +1 -0
  30. package/lib/__tests__/unit/api/explorer/etherscan.unit.test.d.ts +2 -0
  31. package/lib/__tests__/unit/api/explorer/etherscan.unit.test.d.ts.map +1 -0
  32. package/lib/__tests__/unit/api/explorer/etherscan.unit.test.js +430 -0
  33. package/lib/__tests__/unit/api/explorer/etherscan.unit.test.js.map +1 -0
  34. package/lib/__tests__/unit/api/explorer/index.unit.test.d.ts +2 -0
  35. package/lib/__tests__/unit/api/explorer/index.unit.test.d.ts.map +1 -0
  36. package/lib/__tests__/unit/api/explorer/index.unit.test.js +49 -0
  37. package/lib/__tests__/unit/api/explorer/index.unit.test.js.map +1 -0
  38. package/lib/__tests__/unit/api/gasTracker/index.unit.test.d.ts +2 -0
  39. package/lib/__tests__/unit/api/gasTracker/index.unit.test.d.ts.map +1 -0
  40. package/lib/__tests__/{gasTracker → unit/api/gasTracker}/index.unit.test.js +3 -3
  41. package/lib/__tests__/unit/api/gasTracker/index.unit.test.js.map +1 -0
  42. package/lib/__tests__/unit/api/gasTracker/ledger.unit.test.d.ts.map +1 -0
  43. package/lib/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.js +2 -2
  44. package/lib/__tests__/unit/api/gasTracker/ledger.unit.test.js.map +1 -0
  45. package/lib/__tests__/unit/api/rpc/rpc.unit.test.d.ts.map +1 -0
  46. package/lib/__tests__/{rpc.unit.test.js → unit/api/rpc/rpc.unit.test.js} +14 -14
  47. package/lib/__tests__/unit/api/rpc/rpc.unit.test.js.map +1 -0
  48. package/lib/__tests__/unit/broadcast.unit.test.d.ts.map +1 -0
  49. package/lib/__tests__/unit/broadcast.unit.test.js +335 -0
  50. package/lib/__tests__/unit/broadcast.unit.test.js.map +1 -0
  51. package/lib/__tests__/unit/buildOptimisticOperation.unit.test.d.ts.map +1 -0
  52. package/lib/__tests__/{buildOptimisticOperation.unit.test.js → unit/buildOptimisticOperation.unit.test.js} +132 -6
  53. package/lib/__tests__/unit/buildOptimisticOperation.unit.test.js.map +1 -0
  54. package/lib/__tests__/unit/createTransaction.unit.test.d.ts.map +1 -0
  55. package/lib/__tests__/{createTransaction.unit.test.js → unit/createTransaction.unit.test.js} +5 -5
  56. package/lib/__tests__/unit/createTransaction.unit.test.js.map +1 -0
  57. package/lib/__tests__/unit/deviceTransactionConfig.unit.test.d.ts.map +1 -0
  58. package/lib/__tests__/{deviceTransactionConfig.unit.test.js → unit/deviceTransactionConfig.unit.test.js} +123 -6
  59. package/lib/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -0
  60. package/lib/__tests__/unit/estimateMaxSpendable.unit.test.d.ts.map +1 -0
  61. package/lib/__tests__/{estimateMaxSpendable.unit.test.js → unit/estimateMaxSpendable.unit.test.js} +6 -6
  62. package/lib/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -0
  63. package/lib/__tests__/unit/getTransactionStatus.unit.test.d.ts.map +1 -0
  64. package/lib/__tests__/{getTransactionStatus.unit.test.js → unit/getTransactionStatus.unit.test.js} +76 -6
  65. package/lib/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -0
  66. package/lib/__tests__/unit/hw-getAddress.unit.test.d.ts.map +1 -0
  67. package/lib/__tests__/{hw-getAddress.unit.test.js → unit/hw-getAddress.unit.test.js} +5 -1
  68. package/lib/__tests__/unit/hw-getAddress.unit.test.js.map +1 -0
  69. package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts +2 -0
  70. package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts.map +1 -0
  71. package/lib/__tests__/unit/hw-signMessage.unit.test.js +188 -0
  72. package/lib/__tests__/unit/hw-signMessage.unit.test.js.map +1 -0
  73. package/lib/__tests__/unit/logic.unit.test.d.ts.map +1 -0
  74. package/lib/__tests__/{logic.unit.test.js → unit/logic.unit.test.js} +111 -20
  75. package/lib/__tests__/unit/logic.unit.test.js.map +1 -0
  76. package/lib/__tests__/unit/nftResolvers.unit.test.d.ts +2 -0
  77. package/lib/__tests__/unit/nftResolvers.unit.test.d.ts.map +1 -0
  78. package/lib/__tests__/unit/nftResolvers.unit.test.js +163 -0
  79. package/lib/__tests__/unit/nftResolvers.unit.test.js.map +1 -0
  80. package/lib/__tests__/unit/preload.unit.test.d.ts.map +1 -0
  81. package/lib/__tests__/{preload.unit.test.js → unit/preload.unit.test.js} +3 -3
  82. package/lib/__tests__/unit/preload.unit.test.js.map +1 -0
  83. package/lib/__tests__/unit/prepareTransaction.unit.test.d.ts.map +1 -0
  84. package/lib/__tests__/unit/prepareTransaction.unit.test.js +300 -0
  85. package/lib/__tests__/unit/prepareTransaction.unit.test.js.map +1 -0
  86. package/lib/__tests__/unit/signOperation.unit.test.d.ts.map +1 -0
  87. package/lib/__tests__/{signOperation.unit.test.js → unit/signOperation.unit.test.js} +14 -17
  88. package/lib/__tests__/unit/signOperation.unit.test.js.map +1 -0
  89. package/lib/__tests__/unit/synchronization.unit.test.d.ts.map +1 -0
  90. package/lib/__tests__/{synchronization.unit.test.js → unit/synchronization.unit.test.js} +139 -231
  91. package/lib/__tests__/unit/synchronization.unit.test.js.map +1 -0
  92. package/lib/__tests__/unit/transaction.unit.test.d.ts.map +1 -0
  93. package/lib/__tests__/{transaction.unit.test.js → unit/transaction.unit.test.js} +48 -80
  94. package/lib/__tests__/unit/transaction.unit.test.js.map +1 -0
  95. package/lib/abis/erc1155.abi.json +314 -0
  96. package/lib/abis/erc721.abi.json +346 -0
  97. package/lib/adapters.d.ts +18 -7
  98. package/lib/adapters.d.ts.map +1 -1
  99. package/lib/adapters.js +131 -46
  100. package/lib/adapters.js.map +1 -1
  101. package/lib/api/explorer/etherscan.d.ts +39 -11
  102. package/lib/api/explorer/etherscan.d.ts.map +1 -1
  103. package/lib/api/explorer/etherscan.js +151 -9
  104. package/lib/api/explorer/etherscan.js.map +1 -1
  105. package/lib/api/explorer/index.d.ts +7 -16
  106. package/lib/api/explorer/index.d.ts.map +1 -1
  107. package/lib/api/explorer/index.js.map +1 -1
  108. package/lib/api/nft/index.d.ts +24 -0
  109. package/lib/api/nft/index.d.ts.map +1 -0
  110. package/lib/api/nft/index.js +54 -0
  111. package/lib/api/nft/index.js.map +1 -0
  112. package/lib/api/rpc/index.native.d.ts.map +1 -1
  113. package/lib/api/rpc/index.native.js +1 -0
  114. package/lib/api/rpc/index.native.js.map +1 -1
  115. package/lib/api/rpc/rpc.common.d.ts +2 -2
  116. package/lib/api/rpc/rpc.common.d.ts.map +1 -1
  117. package/lib/api/rpc/rpc.common.js +3 -3
  118. package/lib/api/rpc/rpc.common.js.map +1 -1
  119. package/lib/bridge/js.d.ts +1 -1
  120. package/lib/bridge/js.d.ts.map +1 -1
  121. package/lib/bridge/js.js +10 -10
  122. package/lib/bridge/js.js.map +1 -1
  123. package/lib/broadcast.d.ts.map +1 -1
  124. package/lib/broadcast.js +9 -2
  125. package/lib/broadcast.js.map +1 -1
  126. package/lib/buildOptimisticOperation.d.ts +5 -1
  127. package/lib/buildOptimisticOperation.d.ts.map +1 -1
  128. package/lib/buildOptimisticOperation.js +46 -4
  129. package/lib/buildOptimisticOperation.js.map +1 -1
  130. package/lib/cli-transaction.d.ts.map +1 -1
  131. package/lib/cli-transaction.js +1 -0
  132. package/lib/cli-transaction.js.map +1 -1
  133. package/lib/datasets/ethereum1.d.ts.map +1 -1
  134. package/lib/datasets/ethereum1.js +3 -2
  135. package/lib/datasets/ethereum1.js.map +1 -1
  136. package/lib/deviceTransactionConfig.d.ts.map +1 -1
  137. package/lib/deviceTransactionConfig.js +50 -0
  138. package/lib/deviceTransactionConfig.js.map +1 -1
  139. package/lib/errors.d.ts +9 -0
  140. package/lib/errors.d.ts.map +1 -1
  141. package/lib/errors.js +7 -1
  142. package/lib/errors.js.map +1 -1
  143. package/lib/getTransactionStatus.d.ts +1 -0
  144. package/lib/getTransactionStatus.d.ts.map +1 -1
  145. package/lib/getTransactionStatus.js +25 -3
  146. package/lib/getTransactionStatus.js.map +1 -1
  147. package/lib/hw-signMessage.d.ts +15 -0
  148. package/lib/hw-signMessage.d.ts.map +1 -0
  149. package/lib/hw-signMessage.js +86 -0
  150. package/lib/hw-signMessage.js.map +1 -0
  151. package/lib/logic.d.ts +63 -1
  152. package/lib/logic.d.ts.map +1 -1
  153. package/lib/logic.js +98 -2
  154. package/lib/logic.js.map +1 -1
  155. package/lib/nftResolvers.d.ts +19 -0
  156. package/lib/nftResolvers.d.ts.map +1 -0
  157. package/lib/nftResolvers.js +58 -0
  158. package/lib/nftResolvers.js.map +1 -0
  159. package/lib/preload.d.ts.map +1 -1
  160. package/lib/preload.js +7 -3
  161. package/lib/preload.js.map +1 -1
  162. package/lib/prepareTransaction.d.ts +6 -1
  163. package/lib/prepareTransaction.d.ts.map +1 -1
  164. package/lib/prepareTransaction.js +69 -18
  165. package/lib/prepareTransaction.js.map +1 -1
  166. package/lib/signOperation.d.ts +1 -1
  167. package/lib/signOperation.d.ts.map +1 -1
  168. package/lib/signOperation.js +17 -6
  169. package/lib/signOperation.js.map +1 -1
  170. package/lib/signer.d.ts +24 -1
  171. package/lib/signer.d.ts.map +1 -1
  172. package/lib/specs.d.ts +3 -1
  173. package/lib/specs.d.ts.map +1 -1
  174. package/lib/specs.js +3 -3
  175. package/lib/specs.js.map +1 -1
  176. package/lib/speculos-deviceActions.d.ts.map +1 -1
  177. package/lib/speculos-deviceActions.js +2 -1
  178. package/lib/speculos-deviceActions.js.map +1 -1
  179. package/lib/synchronization.d.ts +7 -2
  180. package/lib/synchronization.d.ts.map +1 -1
  181. package/lib/synchronization.js +45 -45
  182. package/lib/synchronization.js.map +1 -1
  183. package/lib/transaction.d.ts +3 -4
  184. package/lib/transaction.d.ts.map +1 -1
  185. package/lib/transaction.js +58 -12
  186. package/lib/transaction.js.map +1 -1
  187. package/lib/types.d.ts +85 -10
  188. package/lib/types.d.ts.map +1 -1
  189. package/lib-es/__tests__/fixtures/common.fixtures.d.ts +9 -0
  190. package/lib-es/__tests__/fixtures/common.fixtures.d.ts.map +1 -0
  191. package/lib-es/{testUtils.js → __tests__/fixtures/common.fixtures.js} +36 -8
  192. package/lib-es/__tests__/fixtures/common.fixtures.js.map +1 -0
  193. package/lib-es/__tests__/fixtures/etherscan.fixtures.d.ts +86 -0
  194. package/lib-es/__tests__/fixtures/etherscan.fixtures.d.ts.map +1 -0
  195. package/lib-es/__tests__/fixtures/etherscan.fixtures.js +264 -0
  196. package/lib-es/__tests__/fixtures/etherscan.fixtures.js.map +1 -0
  197. package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.d.ts +10 -0
  198. package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.d.ts.map +1 -0
  199. package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.js +62 -0
  200. package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.js.map +1 -0
  201. package/lib-es/__tests__/fixtures/synchronization.fixtures.d.ts +44 -0
  202. package/lib-es/__tests__/fixtures/synchronization.fixtures.d.ts.map +1 -0
  203. package/lib-es/__tests__/fixtures/synchronization.fixtures.js +190 -0
  204. package/lib-es/__tests__/fixtures/synchronization.fixtures.js.map +1 -0
  205. package/lib-es/__tests__/fixtures/transaction.fixtures.d.ts +47 -0
  206. package/lib-es/__tests__/fixtures/transaction.fixtures.d.ts.map +1 -0
  207. package/lib-es/__tests__/fixtures/transaction.fixtures.js +176 -0
  208. package/lib-es/__tests__/fixtures/transaction.fixtures.js.map +1 -0
  209. package/lib-es/__tests__/integration/bridge.integration.test.d.ts +7 -0
  210. package/lib-es/__tests__/integration/bridge.integration.test.d.ts.map +1 -0
  211. package/lib-es/__tests__/integration/bridge.integration.test.js +71 -0
  212. package/lib-es/__tests__/integration/bridge.integration.test.js.map +1 -0
  213. package/lib-es/__tests__/unit/adapters.unit.test.d.ts.map +1 -0
  214. package/lib-es/__tests__/unit/adapters.unit.test.js +984 -0
  215. package/lib-es/__tests__/unit/adapters.unit.test.js.map +1 -0
  216. package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.d.ts +2 -0
  217. package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.d.ts.map +1 -0
  218. package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.js +402 -0
  219. package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.js.map +1 -0
  220. package/lib-es/__tests__/unit/api/explorer/index.unit.test.d.ts.map +1 -0
  221. package/lib-es/__tests__/unit/api/explorer/index.unit.test.js +44 -0
  222. package/lib-es/__tests__/unit/api/explorer/index.unit.test.js.map +1 -0
  223. package/lib-es/__tests__/unit/api/gasTracker/index.unit.test.d.ts.map +1 -0
  224. package/lib-es/__tests__/{gasTracker → unit/api/gasTracker}/index.unit.test.js +3 -3
  225. package/lib-es/__tests__/unit/api/gasTracker/index.unit.test.js.map +1 -0
  226. package/lib-es/__tests__/unit/api/gasTracker/ledger.unit.test.d.ts.map +1 -0
  227. package/lib-es/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.js +2 -2
  228. package/lib-es/__tests__/unit/api/gasTracker/ledger.unit.test.js.map +1 -0
  229. package/lib-es/__tests__/unit/api/rpc/rpc.unit.test.d.ts.map +1 -0
  230. package/lib-es/__tests__/{rpc.unit.test.js → unit/api/rpc/rpc.unit.test.js} +13 -13
  231. package/lib-es/__tests__/unit/api/rpc/rpc.unit.test.js.map +1 -0
  232. package/lib-es/__tests__/unit/broadcast.unit.test.d.ts.map +1 -0
  233. package/lib-es/__tests__/unit/broadcast.unit.test.js +307 -0
  234. package/lib-es/__tests__/unit/broadcast.unit.test.js.map +1 -0
  235. package/lib-es/__tests__/unit/buildOptimisticOperation.unit.test.d.ts.map +1 -0
  236. package/lib-es/__tests__/{buildOptimisticOperation.unit.test.js → unit/buildOptimisticOperation.unit.test.js} +130 -4
  237. package/lib-es/__tests__/unit/buildOptimisticOperation.unit.test.js.map +1 -0
  238. package/lib-es/__tests__/unit/createTransaction.unit.test.d.ts.map +1 -0
  239. package/lib-es/__tests__/{createTransaction.unit.test.js → unit/createTransaction.unit.test.js} +3 -3
  240. package/lib-es/__tests__/unit/createTransaction.unit.test.js.map +1 -0
  241. package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.d.ts.map +1 -0
  242. package/lib-es/__tests__/{deviceTransactionConfig.unit.test.js → unit/deviceTransactionConfig.unit.test.js} +121 -4
  243. package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -0
  244. package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.d.ts.map +1 -0
  245. package/lib-es/__tests__/{estimateMaxSpendable.unit.test.js → unit/estimateMaxSpendable.unit.test.js} +4 -4
  246. package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -0
  247. package/lib-es/__tests__/unit/getTransactionStatus.unit.test.d.ts.map +1 -0
  248. package/lib-es/__tests__/{getTransactionStatus.unit.test.js → unit/getTransactionStatus.unit.test.js} +74 -4
  249. package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -0
  250. package/lib-es/__tests__/unit/hw-getAddress.unit.test.d.ts.map +1 -0
  251. package/lib-es/__tests__/{hw-getAddress.unit.test.js → unit/hw-getAddress.unit.test.js} +5 -1
  252. package/lib-es/__tests__/unit/hw-getAddress.unit.test.js.map +1 -0
  253. package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts +2 -0
  254. package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts.map +1 -0
  255. package/lib-es/__tests__/unit/hw-signMessage.unit.test.js +186 -0
  256. package/lib-es/__tests__/unit/hw-signMessage.unit.test.js.map +1 -0
  257. package/lib-es/__tests__/unit/logic.unit.test.d.ts.map +1 -0
  258. package/lib-es/__tests__/{logic.unit.test.js → unit/logic.unit.test.js} +97 -6
  259. package/lib-es/__tests__/unit/logic.unit.test.js.map +1 -0
  260. package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts +2 -0
  261. package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts.map +1 -0
  262. package/lib-es/__tests__/unit/nftResolvers.unit.test.js +158 -0
  263. package/lib-es/__tests__/unit/nftResolvers.unit.test.js.map +1 -0
  264. package/lib-es/__tests__/unit/preload.unit.test.d.ts.map +1 -0
  265. package/lib-es/__tests__/{preload.unit.test.js → unit/preload.unit.test.js} +3 -3
  266. package/lib-es/__tests__/unit/preload.unit.test.js.map +1 -0
  267. package/lib-es/__tests__/unit/prepareTransaction.unit.test.d.ts.map +1 -0
  268. package/lib-es/__tests__/{prepareTransaction.unit.test.js → unit/prepareTransaction.unit.test.js} +134 -82
  269. package/lib-es/__tests__/unit/prepareTransaction.unit.test.js.map +1 -0
  270. package/lib-es/__tests__/unit/signOperation.unit.test.d.ts.map +1 -0
  271. package/lib-es/__tests__/{signOperation.unit.test.js → unit/signOperation.unit.test.js} +13 -16
  272. package/lib-es/__tests__/unit/signOperation.unit.test.js.map +1 -0
  273. package/lib-es/__tests__/unit/synchronization.unit.test.d.ts.map +1 -0
  274. package/lib-es/__tests__/{synchronization.unit.test.js → unit/synchronization.unit.test.js} +115 -207
  275. package/lib-es/__tests__/unit/synchronization.unit.test.js.map +1 -0
  276. package/lib-es/__tests__/unit/transaction.unit.test.d.ts.map +1 -0
  277. package/lib-es/__tests__/{transaction.unit.test.js → unit/transaction.unit.test.js} +40 -72
  278. package/lib-es/__tests__/unit/transaction.unit.test.js.map +1 -0
  279. package/lib-es/abis/erc1155.abi.json +314 -0
  280. package/lib-es/abis/erc721.abi.json +346 -0
  281. package/lib-es/adapters.d.ts +18 -7
  282. package/lib-es/adapters.d.ts.map +1 -1
  283. package/lib-es/adapters.js +127 -44
  284. package/lib-es/adapters.js.map +1 -1
  285. package/lib-es/api/explorer/etherscan.d.ts +39 -11
  286. package/lib-es/api/explorer/etherscan.d.ts.map +1 -1
  287. package/lib-es/api/explorer/etherscan.js +146 -10
  288. package/lib-es/api/explorer/etherscan.js.map +1 -1
  289. package/lib-es/api/explorer/index.d.ts +7 -16
  290. package/lib-es/api/explorer/index.d.ts.map +1 -1
  291. package/lib-es/api/explorer/index.js.map +1 -1
  292. package/lib-es/api/nft/index.d.ts +24 -0
  293. package/lib-es/api/nft/index.d.ts.map +1 -0
  294. package/lib-es/api/nft/index.js +46 -0
  295. package/lib-es/api/nft/index.js.map +1 -0
  296. package/lib-es/api/rpc/index.native.d.ts.map +1 -1
  297. package/lib-es/api/rpc/index.native.js +1 -0
  298. package/lib-es/api/rpc/index.native.js.map +1 -1
  299. package/lib-es/api/rpc/rpc.common.d.ts +2 -2
  300. package/lib-es/api/rpc/rpc.common.d.ts.map +1 -1
  301. package/lib-es/api/rpc/rpc.common.js +3 -3
  302. package/lib-es/api/rpc/rpc.common.js.map +1 -1
  303. package/lib-es/bridge/js.d.ts +1 -1
  304. package/lib-es/bridge/js.d.ts.map +1 -1
  305. package/lib-es/bridge/js.js +10 -10
  306. package/lib-es/bridge/js.js.map +1 -1
  307. package/lib-es/broadcast.d.ts.map +1 -1
  308. package/lib-es/broadcast.js +9 -2
  309. package/lib-es/broadcast.js.map +1 -1
  310. package/lib-es/buildOptimisticOperation.d.ts +5 -1
  311. package/lib-es/buildOptimisticOperation.d.ts.map +1 -1
  312. package/lib-es/buildOptimisticOperation.js +45 -4
  313. package/lib-es/buildOptimisticOperation.js.map +1 -1
  314. package/lib-es/cli-transaction.d.ts.map +1 -1
  315. package/lib-es/cli-transaction.js +1 -0
  316. package/lib-es/cli-transaction.js.map +1 -1
  317. package/lib-es/datasets/ethereum1.d.ts.map +1 -1
  318. package/lib-es/datasets/ethereum1.js +3 -2
  319. package/lib-es/datasets/ethereum1.js.map +1 -1
  320. package/lib-es/deviceTransactionConfig.d.ts.map +1 -1
  321. package/lib-es/deviceTransactionConfig.js +50 -0
  322. package/lib-es/deviceTransactionConfig.js.map +1 -1
  323. package/lib-es/errors.d.ts +9 -0
  324. package/lib-es/errors.d.ts.map +1 -1
  325. package/lib-es/errors.js +6 -0
  326. package/lib-es/errors.js.map +1 -1
  327. package/lib-es/getTransactionStatus.d.ts +1 -0
  328. package/lib-es/getTransactionStatus.d.ts.map +1 -1
  329. package/lib-es/getTransactionStatus.js +23 -2
  330. package/lib-es/getTransactionStatus.js.map +1 -1
  331. package/lib-es/hw-signMessage.d.ts +15 -0
  332. package/lib-es/hw-signMessage.d.ts.map +1 -0
  333. package/lib-es/hw-signMessage.js +81 -0
  334. package/lib-es/hw-signMessage.js.map +1 -0
  335. package/lib-es/logic.d.ts +63 -1
  336. package/lib-es/logic.d.ts.map +1 -1
  337. package/lib-es/logic.js +95 -1
  338. package/lib-es/logic.js.map +1 -1
  339. package/lib-es/nftResolvers.d.ts +19 -0
  340. package/lib-es/nftResolvers.d.ts.map +1 -0
  341. package/lib-es/nftResolvers.js +50 -0
  342. package/lib-es/nftResolvers.js.map +1 -0
  343. package/lib-es/preload.d.ts.map +1 -1
  344. package/lib-es/preload.js +7 -3
  345. package/lib-es/preload.js.map +1 -1
  346. package/lib-es/prepareTransaction.d.ts +6 -1
  347. package/lib-es/prepareTransaction.d.ts.map +1 -1
  348. package/lib-es/prepareTransaction.js +68 -18
  349. package/lib-es/prepareTransaction.js.map +1 -1
  350. package/lib-es/signOperation.d.ts +1 -1
  351. package/lib-es/signOperation.d.ts.map +1 -1
  352. package/lib-es/signOperation.js +17 -6
  353. package/lib-es/signOperation.js.map +1 -1
  354. package/lib-es/signer.d.ts +24 -1
  355. package/lib-es/signer.d.ts.map +1 -1
  356. package/lib-es/specs.d.ts +3 -1
  357. package/lib-es/specs.d.ts.map +1 -1
  358. package/lib-es/specs.js +3 -3
  359. package/lib-es/specs.js.map +1 -1
  360. package/lib-es/speculos-deviceActions.d.ts.map +1 -1
  361. package/lib-es/speculos-deviceActions.js +2 -1
  362. package/lib-es/speculos-deviceActions.js.map +1 -1
  363. package/lib-es/synchronization.d.ts +7 -2
  364. package/lib-es/synchronization.d.ts.map +1 -1
  365. package/lib-es/synchronization.js +46 -46
  366. package/lib-es/synchronization.js.map +1 -1
  367. package/lib-es/transaction.d.ts +3 -4
  368. package/lib-es/transaction.d.ts.map +1 -1
  369. package/lib-es/transaction.js +58 -12
  370. package/lib-es/transaction.js.map +1 -1
  371. package/lib-es/types.d.ts +85 -10
  372. package/lib-es/types.d.ts.map +1 -1
  373. package/package.json +13 -12
  374. package/src/{testUtils.ts → __tests__/fixtures/common.fixtures.ts} +78 -11
  375. package/src/__tests__/fixtures/etherscan.fixtures.ts +266 -0
  376. package/src/__tests__/fixtures/prepareTransaction.fixtures.ts +86 -0
  377. package/src/__tests__/fixtures/synchronization.fixtures.ts +229 -0
  378. package/src/__tests__/fixtures/transaction.fixtures.ts +229 -0
  379. package/src/__tests__/integration/bridge.integration.test.ts +74 -0
  380. package/src/__tests__/unit/adapters.unit.test.ts +1076 -0
  381. package/src/__tests__/unit/api/explorer/etherscan.unit.test.ts +563 -0
  382. package/src/__tests__/unit/api/explorer/index.unit.test.ts +36 -0
  383. package/src/__tests__/{gasTracker → unit/api/gasTracker}/index.unit.test.ts +3 -3
  384. package/src/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.ts +3 -3
  385. package/src/__tests__/{rpc.unit.test.ts → unit/api/rpc/rpc.unit.test.ts} +17 -14
  386. package/src/__tests__/unit/broadcast.unit.test.ts +332 -0
  387. package/src/__tests__/{buildOptimisticOperation.unit.test.ts → unit/buildOptimisticOperation.unit.test.ts} +144 -5
  388. package/src/__tests__/{createTransaction.unit.test.ts → unit/createTransaction.unit.test.ts} +4 -4
  389. package/src/__tests__/{deviceTransactionConfig.unit.test.ts → unit/deviceTransactionConfig.unit.test.ts} +130 -5
  390. package/src/__tests__/{estimateMaxSpendable.unit.test.ts → unit/estimateMaxSpendable.unit.test.ts} +5 -5
  391. package/src/__tests__/{getTransactionStatus.unit.test.ts → unit/getTransactionStatus.unit.test.ts} +121 -5
  392. package/src/__tests__/{hw-getAddress.unit.test.ts → unit/hw-getAddress.unit.test.ts} +6 -2
  393. package/src/__tests__/unit/hw-signMessage.unit.test.ts +192 -0
  394. package/src/__tests__/{logic.unit.test.ts → unit/logic.unit.test.ts} +143 -8
  395. package/src/__tests__/unit/nftResolvers.unit.test.ts +179 -0
  396. package/src/__tests__/{preload.unit.test.ts → unit/preload.unit.test.ts} +4 -4
  397. package/src/__tests__/{prepareTransaction.unit.test.ts → unit/prepareTransaction.unit.test.ts} +284 -109
  398. package/src/__tests__/{signOperation.unit.test.ts → unit/signOperation.unit.test.ts} +18 -20
  399. package/src/__tests__/{synchronization.unit.test.ts → unit/synchronization.unit.test.ts} +202 -280
  400. package/src/__tests__/unit/transaction.unit.test.ts +198 -0
  401. package/src/abis/erc1155.abi.json +314 -0
  402. package/src/abis/erc20.abi.json +4 -12
  403. package/src/abis/erc721.abi.json +346 -0
  404. package/src/adapters.ts +177 -64
  405. package/src/api/explorer/etherscan.ts +265 -49
  406. package/src/api/explorer/index.ts +24 -10
  407. package/src/api/nft/index.ts +49 -0
  408. package/src/api/rpc/index.native.ts +2 -0
  409. package/src/api/rpc/rpc.common.ts +3 -3
  410. package/src/bridge/js.ts +13 -16
  411. package/src/broadcast.ts +29 -2
  412. package/src/buildOptimisticOperation.ts +71 -6
  413. package/src/cli-transaction.ts +2 -0
  414. package/src/datasets/ethereum1.ts +4 -2
  415. package/src/deviceTransactionConfig.ts +65 -0
  416. package/src/errors.ts +8 -0
  417. package/src/getTransactionStatus.ts +26 -0
  418. package/src/hw-signMessage.ts +92 -0
  419. package/src/logic.ts +118 -2
  420. package/src/nftResolvers.ts +71 -0
  421. package/src/preload.ts +9 -3
  422. package/src/prepareTransaction.ts +102 -24
  423. package/src/signOperation.ts +21 -8
  424. package/src/signer.ts +44 -1
  425. package/src/specs.ts +11 -6
  426. package/src/speculos-deviceActions.ts +3 -1
  427. package/src/synchronization.ts +73 -59
  428. package/src/transaction.ts +68 -15
  429. package/src/types.ts +108 -10
  430. package/.eslintrc.js +0 -22
  431. package/lib/__tests__/adapters.unit.test.d.ts.map +0 -1
  432. package/lib/__tests__/adapters.unit.test.js +0 -455
  433. package/lib/__tests__/adapters.unit.test.js.map +0 -1
  434. package/lib/__tests__/broadcast.unit.test.d.ts.map +0 -1
  435. package/lib/__tests__/broadcast.unit.test.js +0 -181
  436. package/lib/__tests__/broadcast.unit.test.js.map +0 -1
  437. package/lib/__tests__/buildOptimisticOperation.unit.test.d.ts.map +0 -1
  438. package/lib/__tests__/buildOptimisticOperation.unit.test.js.map +0 -1
  439. package/lib/__tests__/createTransaction.unit.test.d.ts.map +0 -1
  440. package/lib/__tests__/createTransaction.unit.test.js.map +0 -1
  441. package/lib/__tests__/deviceTransactionConfig.unit.test.d.ts.map +0 -1
  442. package/lib/__tests__/deviceTransactionConfig.unit.test.js.map +0 -1
  443. package/lib/__tests__/estimateMaxSpendable.unit.test.d.ts.map +0 -1
  444. package/lib/__tests__/estimateMaxSpendable.unit.test.js.map +0 -1
  445. package/lib/__tests__/gasTracker/index.unit.test.d.ts.map +0 -1
  446. package/lib/__tests__/gasTracker/index.unit.test.js.map +0 -1
  447. package/lib/__tests__/gasTracker/ledger.unit.test.d.ts.map +0 -1
  448. package/lib/__tests__/gasTracker/ledger.unit.test.js.map +0 -1
  449. package/lib/__tests__/getTransactionStatus.unit.test.d.ts.map +0 -1
  450. package/lib/__tests__/getTransactionStatus.unit.test.js.map +0 -1
  451. package/lib/__tests__/hw-getAddress.unit.test.d.ts.map +0 -1
  452. package/lib/__tests__/hw-getAddress.unit.test.js.map +0 -1
  453. package/lib/__tests__/logic.unit.test.d.ts.map +0 -1
  454. package/lib/__tests__/logic.unit.test.js.map +0 -1
  455. package/lib/__tests__/preload.unit.test.d.ts.map +0 -1
  456. package/lib/__tests__/preload.unit.test.js.map +0 -1
  457. package/lib/__tests__/prepareTransaction.unit.test.d.ts.map +0 -1
  458. package/lib/__tests__/prepareTransaction.unit.test.js +0 -248
  459. package/lib/__tests__/prepareTransaction.unit.test.js.map +0 -1
  460. package/lib/__tests__/rpc.unit.test.d.ts.map +0 -1
  461. package/lib/__tests__/rpc.unit.test.js.map +0 -1
  462. package/lib/__tests__/signOperation.unit.test.d.ts.map +0 -1
  463. package/lib/__tests__/signOperation.unit.test.js.map +0 -1
  464. package/lib/__tests__/synchronization.unit.test.d.ts.map +0 -1
  465. package/lib/__tests__/synchronization.unit.test.js.map +0 -1
  466. package/lib/__tests__/transaction.unit.test.d.ts.map +0 -1
  467. package/lib/__tests__/transaction.unit.test.js.map +0 -1
  468. package/lib/bridge.integration.test.d.ts +0 -14
  469. package/lib/bridge.integration.test.d.ts.map +0 -1
  470. package/lib/bridge.integration.test.js +0 -85
  471. package/lib/bridge.integration.test.js.map +0 -1
  472. package/lib/datasets/ethereum.scanAccounts.1.d.ts +0 -7
  473. package/lib/datasets/ethereum.scanAccounts.1.d.ts.map +0 -1
  474. package/lib/datasets/ethereum.scanAccounts.1.js +0 -51
  475. package/lib/datasets/ethereum.scanAccounts.1.js.map +0 -1
  476. package/lib/datasets/ethereum2.d.ts +0 -3
  477. package/lib/datasets/ethereum2.d.ts.map +0 -1
  478. package/lib/datasets/ethereum2.js +0 -22
  479. package/lib/datasets/ethereum2.js.map +0 -1
  480. package/lib/datasets/ethereum_classic.d.ts +0 -5
  481. package/lib/datasets/ethereum_classic.d.ts.map +0 -1
  482. package/lib/datasets/ethereum_classic.js +0 -69
  483. package/lib/datasets/ethereum_classic.js.map +0 -1
  484. package/lib/testUtils.d.ts +0 -6
  485. package/lib/testUtils.d.ts.map +0 -1
  486. package/lib/testUtils.js.map +0 -1
  487. package/lib-es/__tests__/adapters.unit.test.d.ts.map +0 -1
  488. package/lib-es/__tests__/adapters.unit.test.js +0 -450
  489. package/lib-es/__tests__/adapters.unit.test.js.map +0 -1
  490. package/lib-es/__tests__/broadcast.unit.test.d.ts.map +0 -1
  491. package/lib-es/__tests__/broadcast.unit.test.js +0 -153
  492. package/lib-es/__tests__/broadcast.unit.test.js.map +0 -1
  493. package/lib-es/__tests__/buildOptimisticOperation.unit.test.d.ts.map +0 -1
  494. package/lib-es/__tests__/buildOptimisticOperation.unit.test.js.map +0 -1
  495. package/lib-es/__tests__/createTransaction.unit.test.d.ts.map +0 -1
  496. package/lib-es/__tests__/createTransaction.unit.test.js.map +0 -1
  497. package/lib-es/__tests__/deviceTransactionConfig.unit.test.d.ts.map +0 -1
  498. package/lib-es/__tests__/deviceTransactionConfig.unit.test.js.map +0 -1
  499. package/lib-es/__tests__/estimateMaxSpendable.unit.test.d.ts.map +0 -1
  500. package/lib-es/__tests__/estimateMaxSpendable.unit.test.js.map +0 -1
  501. package/lib-es/__tests__/gasTracker/index.unit.test.d.ts.map +0 -1
  502. package/lib-es/__tests__/gasTracker/index.unit.test.js.map +0 -1
  503. package/lib-es/__tests__/gasTracker/ledger.unit.test.d.ts.map +0 -1
  504. package/lib-es/__tests__/gasTracker/ledger.unit.test.js.map +0 -1
  505. package/lib-es/__tests__/getTransactionStatus.unit.test.d.ts.map +0 -1
  506. package/lib-es/__tests__/getTransactionStatus.unit.test.js.map +0 -1
  507. package/lib-es/__tests__/hw-getAddress.unit.test.d.ts.map +0 -1
  508. package/lib-es/__tests__/hw-getAddress.unit.test.js.map +0 -1
  509. package/lib-es/__tests__/logic.unit.test.d.ts.map +0 -1
  510. package/lib-es/__tests__/logic.unit.test.js.map +0 -1
  511. package/lib-es/__tests__/preload.unit.test.d.ts.map +0 -1
  512. package/lib-es/__tests__/preload.unit.test.js.map +0 -1
  513. package/lib-es/__tests__/prepareTransaction.unit.test.d.ts.map +0 -1
  514. package/lib-es/__tests__/prepareTransaction.unit.test.js.map +0 -1
  515. package/lib-es/__tests__/rpc.unit.test.d.ts.map +0 -1
  516. package/lib-es/__tests__/rpc.unit.test.js.map +0 -1
  517. package/lib-es/__tests__/signOperation.unit.test.d.ts.map +0 -1
  518. package/lib-es/__tests__/signOperation.unit.test.js.map +0 -1
  519. package/lib-es/__tests__/synchronization.unit.test.d.ts.map +0 -1
  520. package/lib-es/__tests__/synchronization.unit.test.js.map +0 -1
  521. package/lib-es/__tests__/transaction.unit.test.d.ts.map +0 -1
  522. package/lib-es/__tests__/transaction.unit.test.js.map +0 -1
  523. package/lib-es/bridge.integration.test.d.ts +0 -14
  524. package/lib-es/bridge.integration.test.d.ts.map +0 -1
  525. package/lib-es/bridge.integration.test.js +0 -79
  526. package/lib-es/bridge.integration.test.js.map +0 -1
  527. package/lib-es/datasets/ethereum.scanAccounts.1.d.ts +0 -7
  528. package/lib-es/datasets/ethereum.scanAccounts.1.d.ts.map +0 -1
  529. package/lib-es/datasets/ethereum.scanAccounts.1.js +0 -49
  530. package/lib-es/datasets/ethereum.scanAccounts.1.js.map +0 -1
  531. package/lib-es/datasets/ethereum2.d.ts +0 -3
  532. package/lib-es/datasets/ethereum2.d.ts.map +0 -1
  533. package/lib-es/datasets/ethereum2.js +0 -19
  534. package/lib-es/datasets/ethereum2.js.map +0 -1
  535. package/lib-es/datasets/ethereum_classic.d.ts +0 -5
  536. package/lib-es/datasets/ethereum_classic.d.ts.map +0 -1
  537. package/lib-es/datasets/ethereum_classic.js +0 -67
  538. package/lib-es/datasets/ethereum_classic.js.map +0 -1
  539. package/lib-es/testUtils.d.ts +0 -6
  540. package/lib-es/testUtils.d.ts.map +0 -1
  541. package/lib-es/testUtils.js.map +0 -1
  542. package/src/__tests__/adapters.unit.test.ts +0 -497
  543. package/src/__tests__/broadcast.unit.test.ts +0 -163
  544. package/src/__tests__/transaction.unit.test.ts +0 -188
  545. package/src/bridge.integration.test.ts +0 -86
  546. package/src/datasets/ethereum.scanAccounts.1.ts +0 -48
  547. package/src/datasets/ethereum2.ts +0 -20
  548. package/src/datasets/ethereum_classic.ts +0 -68
  549. /package/lib/__tests__/{adapters.unit.test.d.ts → unit/adapters.unit.test.d.ts} +0 -0
  550. /package/lib/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.d.ts +0 -0
  551. /package/lib/__tests__/{rpc.unit.test.d.ts → unit/api/rpc/rpc.unit.test.d.ts} +0 -0
  552. /package/lib/__tests__/{broadcast.unit.test.d.ts → unit/broadcast.unit.test.d.ts} +0 -0
  553. /package/lib/__tests__/{buildOptimisticOperation.unit.test.d.ts → unit/buildOptimisticOperation.unit.test.d.ts} +0 -0
  554. /package/lib/__tests__/{createTransaction.unit.test.d.ts → unit/createTransaction.unit.test.d.ts} +0 -0
  555. /package/lib/__tests__/{deviceTransactionConfig.unit.test.d.ts → unit/deviceTransactionConfig.unit.test.d.ts} +0 -0
  556. /package/lib/__tests__/{estimateMaxSpendable.unit.test.d.ts → unit/estimateMaxSpendable.unit.test.d.ts} +0 -0
  557. /package/lib/__tests__/{getTransactionStatus.unit.test.d.ts → unit/getTransactionStatus.unit.test.d.ts} +0 -0
  558. /package/lib/__tests__/{hw-getAddress.unit.test.d.ts → unit/hw-getAddress.unit.test.d.ts} +0 -0
  559. /package/lib/__tests__/{logic.unit.test.d.ts → unit/logic.unit.test.d.ts} +0 -0
  560. /package/lib/__tests__/{preload.unit.test.d.ts → unit/preload.unit.test.d.ts} +0 -0
  561. /package/lib/__tests__/{prepareTransaction.unit.test.d.ts → unit/prepareTransaction.unit.test.d.ts} +0 -0
  562. /package/lib/__tests__/{signOperation.unit.test.d.ts → unit/signOperation.unit.test.d.ts} +0 -0
  563. /package/lib/__tests__/{synchronization.unit.test.d.ts → unit/synchronization.unit.test.d.ts} +0 -0
  564. /package/lib/__tests__/{transaction.unit.test.d.ts → unit/transaction.unit.test.d.ts} +0 -0
  565. /package/lib-es/__tests__/{adapters.unit.test.d.ts → unit/adapters.unit.test.d.ts} +0 -0
  566. /package/lib-es/__tests__/{gasTracker → unit/api/explorer}/index.unit.test.d.ts +0 -0
  567. /package/{lib/__tests__ → lib-es/__tests__/unit/api}/gasTracker/index.unit.test.d.ts +0 -0
  568. /package/lib-es/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.d.ts +0 -0
  569. /package/lib-es/__tests__/{rpc.unit.test.d.ts → unit/api/rpc/rpc.unit.test.d.ts} +0 -0
  570. /package/lib-es/__tests__/{broadcast.unit.test.d.ts → unit/broadcast.unit.test.d.ts} +0 -0
  571. /package/lib-es/__tests__/{buildOptimisticOperation.unit.test.d.ts → unit/buildOptimisticOperation.unit.test.d.ts} +0 -0
  572. /package/lib-es/__tests__/{createTransaction.unit.test.d.ts → unit/createTransaction.unit.test.d.ts} +0 -0
  573. /package/lib-es/__tests__/{deviceTransactionConfig.unit.test.d.ts → unit/deviceTransactionConfig.unit.test.d.ts} +0 -0
  574. /package/lib-es/__tests__/{estimateMaxSpendable.unit.test.d.ts → unit/estimateMaxSpendable.unit.test.d.ts} +0 -0
  575. /package/lib-es/__tests__/{getTransactionStatus.unit.test.d.ts → unit/getTransactionStatus.unit.test.d.ts} +0 -0
  576. /package/lib-es/__tests__/{hw-getAddress.unit.test.d.ts → unit/hw-getAddress.unit.test.d.ts} +0 -0
  577. /package/lib-es/__tests__/{logic.unit.test.d.ts → unit/logic.unit.test.d.ts} +0 -0
  578. /package/lib-es/__tests__/{preload.unit.test.d.ts → unit/preload.unit.test.d.ts} +0 -0
  579. /package/lib-es/__tests__/{prepareTransaction.unit.test.d.ts → unit/prepareTransaction.unit.test.d.ts} +0 -0
  580. /package/lib-es/__tests__/{signOperation.unit.test.d.ts → unit/signOperation.unit.test.d.ts} +0 -0
  581. /package/lib-es/__tests__/{synchronization.unit.test.d.ts → unit/synchronization.unit.test.d.ts} +0 -0
  582. /package/lib-es/__tests__/{transaction.unit.test.d.ts → unit/transaction.unit.test.d.ts} +0 -0
@@ -7,25 +7,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { decodeAccountId } from "@ledgerhq/coin-framework/account/index";
11
- import { getCryptoCurrencyById, getTokenById } from "@ledgerhq/cryptoassets";
12
- import { AssertionError, fail } from "assert";
13
10
  import BigNumber from "bignumber.js";
14
- import { getEnv } from "../../../env";
15
- import * as etherscanAPI from "../api/explorer/etherscan";
16
- import * as rpcAPI from "../api/rpc/rpc.common";
17
- import * as logic from "../logic";
18
- import * as synchronization from "../synchronization";
19
- import { makeAccount, makeOperation, makeTokenAccount } from "../testUtils";
11
+ import { AssertionError, fail } from "assert";
12
+ import { decodeAccountId } from "@ledgerhq/coin-framework/account/accountId";
13
+ import { makeTokenAccount } from "../fixtures/common.fixtures";
14
+ import * as etherscanAPI from "../../api/explorer/etherscan";
15
+ import * as synchronization from "../../synchronization";
16
+ import * as rpcAPI from "../../api/rpc/rpc.common";
17
+ import { getEnv } from "../../../../env";
18
+ import * as logic from "../../logic";
19
+ import { account, coinOperations, currency, erc1155Operations, erc721Operations, nfts, pendingOperation, tokenAccount, tokenCurrencies, tokenOperations, } from "../fixtures/synchronization.fixtures";
20
+ jest.mock("../../api/rpc/rpc.common");
20
21
  jest.useFakeTimers().setSystemTime(new Date("2014-04-21"));
21
- const currency = Object.assign(Object.assign({}, getCryptoCurrencyById("ethereum")), { ethereumLikeInfo: {
22
- chainId: 1,
23
- rpc: "https://my-rpc.com",
24
- explorer: {
25
- uri: "https://api.com",
26
- type: "etherscan",
27
- },
28
- } });
29
22
  const getAccountShapeParameters = {
30
23
  address: "0xkvn",
31
24
  currency,
@@ -33,84 +26,13 @@ const getAccountShapeParameters = {
33
26
  derivationPath: "44'/60'/0'/0/0",
34
27
  index: 0,
35
28
  };
36
- const tokenCurrency1 = getTokenById("ethereum/erc20/usd__coin");
37
- const tokenCurrency2 = getTokenById("ethereum/erc20/usd_tether__erc20_");
38
- const tokenAccount = makeTokenAccount("0xkvn", tokenCurrency1);
39
- const account = Object.assign(Object.assign({}, makeAccount("0xkvn", currency, [tokenAccount])), { syncHash: logic.getSyncHash(currency) });
40
- const coinOperation1 = makeOperation({
41
- hash: "0xH4sH",
42
- accountId: "js:2:ethereum:0xkvn:",
43
- blockHash: "0x8df71a12a8c06b36c06c26bf6248857dd2a2b75b6edbb4e33e9477078897b282",
44
- senders: ["0xd48f2332Eeed88243Cb6b1D0d65a10368A5370f0"],
45
- transactionSequenceNumber: 1,
46
- date: new Date(),
47
- blockHeight: 1,
48
- });
49
- const coinOperation2 = makeOperation({
50
- hash: "0xOtherHash",
51
- accountId: "js:2:ethereum:0xkvn:",
52
- transactionSequenceNumber: 2,
53
- date: new Date(Date.now() + 1),
54
- blockHeight: 100,
55
- });
56
- const coinOperation3 = makeOperation({
57
- hash: "0xYeTAnOtherHash",
58
- accountId: "js:2:ethereum:0xkvn:",
59
- transactionSequenceNumber: 5,
60
- date: new Date(Date.now() + 2),
61
- blockHeight: 1000,
62
- });
63
- const tokenOperation1 = makeOperation({
64
- hash: "0xH4sHT0k3n",
65
- accountId: "js:2:ethereum:0xkvn:+ethereum%2Ferc20%2Fusd__coin",
66
- blockHash: "0x95dc138a02c1b0e3fd49305f785e8e27e88a885004af13a9b4c62ad94eed07dd",
67
- recipients: ["0xB0B"],
68
- senders: ["0x9b744C0451D73C0958d8aA566dAd33022E4Ee797"],
69
- contract: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
70
- value: new BigNumber(152021496),
71
- fee: new BigNumber(1935663357068271),
72
- type: "OUT",
73
- date: new Date(),
74
- blockHeight: 10,
75
- });
76
- const tokenOperation2 = makeOperation({
77
- hash: "0xTokenHashAga1n",
78
- accountId: "js:2:ethereum:0xkvn:+ethereum%2Ferc20%2Fusd__coin",
79
- contract: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
80
- date: new Date(Date.now() + 1),
81
- blockHeight: 1000,
82
- });
83
- const tokenOperation3 = makeOperation({
84
- hash: "0xTokenHashAga1n",
85
- accountId: "js:2:ethereum:0xkvn:+ethereum%2Ferc20%2Fusd__coin",
86
- contract: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
87
- date: new Date(Date.now() + 2),
88
- blockHeight: 10000,
89
- });
90
- const tokenOperation4 = makeOperation({
91
- hash: "0xTokenHashOtherToken",
92
- accountId: "js:2:ethereum:0xkvn:+ethereum%2Ferc20%2Fusd_tether__erc20_",
93
- contract: "0xdac17f958d2ee523a2206206994597c13d831ec7",
94
- date: new Date(Date.now() + 3),
95
- blockHeight: 11000,
96
- });
97
- const ignoredTokenOperation = makeOperation({
98
- hash: "0xigN0r3Me",
99
- accountId: "js:2:ethereum:0xkvn:+ethereum%2Ferc20%2Fusd_tether__erc20_",
100
- contract: "0xUnknownContract",
101
- date: new Date(Date.now() + 4),
102
- blockHeight: 12000,
103
- });
104
- const pendingOperation = makeOperation({
105
- hash: "123",
106
- });
107
29
  describe("EVM Family", () => {
108
30
  describe("synchronization.ts", () => {
109
31
  describe("getAccountShape", () => {
110
32
  beforeEach(() => {
111
33
  // Mocking getAccount to prevent network calls
112
34
  jest.spyOn(rpcAPI, "getBalanceAndBlock").mockImplementation(() => Promise.resolve({
113
- blockHeight: 10,
35
+ blockHeight: 6969,
114
36
  balance: new BigNumber(100),
115
37
  }));
116
38
  jest.spyOn(rpcAPI, "getSubAccount").mockImplementation(() => Promise.resolve({
@@ -154,18 +76,16 @@ describe("EVM Family", () => {
154
76
  }));
155
77
  describe("With no transactions fetched", () => {
156
78
  beforeAll(() => {
157
- jest
158
- .spyOn(etherscanAPI, "getLastCoinOperations")
159
- .mockImplementation(() => Promise.resolve([]));
160
- jest
161
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastCoinOperations")
162
- .mockImplementation(() => Promise.resolve([]));
163
- jest
164
- .spyOn(etherscanAPI, "getLastTokenOperations")
165
- .mockImplementation(() => Promise.resolve([]));
166
- jest
167
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastTokenOperations")
168
- .mockImplementation(() => Promise.resolve([]));
79
+ jest.spyOn(etherscanAPI, "getLastOperations").mockImplementation(() => Promise.resolve({
80
+ lastCoinOperations: [],
81
+ lastTokenOperations: [],
82
+ lastNftOperations: [],
83
+ }));
84
+ jest.spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastOperations").mockImplementation(() => Promise.resolve({
85
+ lastCoinOperations: [],
86
+ lastTokenOperations: [],
87
+ lastNftOperations: [],
88
+ }));
169
89
  });
170
90
  afterAll(() => {
171
91
  jest.restoreAllMocks();
@@ -191,47 +111,47 @@ describe("EVM Family", () => {
191
111
  }));
192
112
  it("should return an account with the correct block height", () => __awaiter(void 0, void 0, void 0, function* () {
193
113
  const account = yield synchronization.getAccountShape(getAccountShapeParameters, {});
194
- expect(account.blockHeight).toBe(10);
114
+ expect(account.blockHeight).toBe(6969);
195
115
  }));
196
116
  it("should keep the operations from a sync to another", () => __awaiter(void 0, void 0, void 0, function* () {
197
117
  var _b;
198
- const operations = [coinOperation1];
199
- const tokenOperations = [tokenOperation1];
200
- const accountWithSubAccount = yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations, subAccounts: [Object.assign(Object.assign({}, tokenAccount), { operations: tokenOperations })] }) }), {});
118
+ const operations = [coinOperations[0]];
119
+ const tokenOps = [tokenOperations[0]];
120
+ const accountWithSubAccount = yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations, subAccounts: [Object.assign(Object.assign({}, tokenAccount), { operations: tokenOps })] }) }), {});
201
121
  expect(accountWithSubAccount.operations).toBe(operations);
202
- expect((_b = accountWithSubAccount === null || accountWithSubAccount === void 0 ? void 0 : accountWithSubAccount.subAccounts) === null || _b === void 0 ? void 0 : _b[0].operations).toBe(tokenOperations);
122
+ expect((_b = accountWithSubAccount === null || accountWithSubAccount === void 0 ? void 0 : accountWithSubAccount.subAccounts) === null || _b === void 0 ? void 0 : _b[0].operations).toBe(tokenOps);
203
123
  }));
204
124
  it("should do a full sync when syncHash changes", () => __awaiter(void 0, void 0, void 0, function* () {
205
125
  jest.spyOn(logic, "getSyncHash").mockImplementationOnce(() => "0xNope");
206
- yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations: [coinOperation1], subAccounts: [Object.assign(Object.assign({}, tokenAccount), { operations: [tokenOperation1] })] }) }), {});
207
- expect(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default.getLastCoinOperations).toHaveBeenCalledWith(getAccountShapeParameters.currency, getAccountShapeParameters.address, account.id, 0);
208
- expect(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default.getLastTokenOperations).toHaveBeenCalledWith(getAccountShapeParameters.currency, getAccountShapeParameters.address, account.id, 0);
126
+ yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations: [coinOperations[0]], subAccounts: [Object.assign(Object.assign({}, tokenAccount), { operations: [tokenOperations[0]] })] }) }), {});
127
+ expect(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default.getLastOperations).toHaveBeenCalledWith(getAccountShapeParameters.currency, getAccountShapeParameters.address, account.id, 0, 6969);
209
128
  }));
210
- it("should do a full sync when syncHash changes", () => __awaiter(void 0, void 0, void 0, function* () {
211
- yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations: [coinOperation1], subAccounts: [Object.assign(Object.assign({}, tokenAccount), { operations: [tokenOperation1] })] }) }), {});
212
- expect(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default.getLastCoinOperations).toHaveBeenCalledWith(getAccountShapeParameters.currency, getAccountShapeParameters.address, account.id, coinOperation1.blockHeight);
213
- expect(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default.getLastTokenOperations).toHaveBeenCalledWith(getAccountShapeParameters.currency, getAccountShapeParameters.address, account.id, tokenOperation1.blockHeight);
129
+ it("should do an incremental sync when syncHash is identical", () => __awaiter(void 0, void 0, void 0, function* () {
130
+ yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations: [coinOperations[2]], subAccounts: [Object.assign(Object.assign({}, tokenAccount), { operations: [tokenOperations[0]] })] }) }), {});
131
+ expect(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default.getLastOperations).toHaveBeenCalledWith(getAccountShapeParameters.currency, getAccountShapeParameters.address, account.id, coinOperations[2].blockHeight - synchronization.SAFE_REORG_THRESHOLD, 6969);
214
132
  }));
215
133
  });
216
134
  describe("With transactions fetched", () => {
217
135
  beforeAll(() => {
218
136
  jest
219
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastCoinOperations")
220
- .mockImplementation(() => Promise.resolve([coinOperation1, coinOperation2]));
221
- jest.spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastTokenOperations").mockImplementation(() => Promise.resolve([
222
- {
223
- tokenCurrency: tokenCurrency1,
224
- operation: tokenOperation1,
225
- },
226
- {
227
- tokenCurrency: tokenCurrency1,
228
- operation: tokenOperation2,
229
- },
137
+ .spyOn(etherscanAPI, "getLastCoinOperations")
138
+ .mockImplementation(() => Promise.resolve([Object.assign({}, coinOperations[0]), Object.assign({}, coinOperations[1])]));
139
+ jest
140
+ .spyOn(etherscanAPI, "getLastTokenOperations")
141
+ .mockImplementation(() => Promise.resolve([Object.assign({}, tokenOperations[0]), Object.assign({}, tokenOperations[1])]));
142
+ jest
143
+ .spyOn(etherscanAPI, "getLastNftOperations")
144
+ .mockImplementation(() => Promise.resolve([
145
+ Object.assign({}, erc721Operations[0]),
146
+ Object.assign({}, erc721Operations[1]),
147
+ Object.assign({}, erc721Operations[2]),
148
+ Object.assign({}, erc1155Operations[0]),
149
+ Object.assign({}, erc1155Operations[1]),
230
150
  ]));
231
151
  jest
232
152
  .spyOn(rpcAPI, "getTokenBalance")
233
153
  .mockImplementation((a, b, contractAddress) => __awaiter(void 0, void 0, void 0, function* () {
234
- if (contractAddress === tokenCurrency1.contractAddress) {
154
+ if (contractAddress === tokenCurrencies[0].contractAddress) {
235
155
  return new BigNumber(10000);
236
156
  }
237
157
  throw new Error("Shouldn't be trying to fetch this token balance");
@@ -243,17 +163,32 @@ describe("EVM Family", () => {
243
163
  it("should add the fetched transactions to the operations", () => __awaiter(void 0, void 0, void 0, function* () {
244
164
  var _a, _b;
245
165
  const accountShape = yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: account }), {});
246
- expect(accountShape.operations).toEqual([coinOperation2, coinOperation1]);
166
+ expect(accountShape.operations).toEqual([
167
+ Object.assign(Object.assign({}, coinOperations[1]), { nftOperations: [erc721Operations[1], erc721Operations[2], erc1155Operations[1]] }),
168
+ Object.assign(Object.assign({}, tokenOperations[1]), { id: `js:2:ethereum:0xkvn:-${tokenOperations[1].hash}-NONE`, type: "NONE", value: new BigNumber(0), fee: new BigNumber(0), senders: [], recipients: [], subOperations: [tokenOperations[1]], accountId: "", contract: undefined }),
169
+ Object.assign(Object.assign({}, coinOperations[0]), { subOperations: [tokenOperations[0]], nftOperations: [erc721Operations[0], erc1155Operations[0]] }),
170
+ ]);
247
171
  expect((_b = (_a = accountShape === null || accountShape === void 0 ? void 0 : accountShape.subAccounts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.operations).toEqual([
248
- tokenOperation2,
249
- tokenOperation1,
172
+ tokenOperations[1],
173
+ tokenOperations[0],
250
174
  ]);
251
175
  }));
176
+ it("should add aggregated NFTs to the account", () => __awaiter(void 0, void 0, void 0, function* () {
177
+ const accountShape = yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: account }), {});
178
+ expect(accountShape.nfts).toEqual([nfts[0], nfts[1]]);
179
+ }));
252
180
  it("should return a partial account based on blockHeight", () => __awaiter(void 0, void 0, void 0, function* () {
253
- jest
254
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastCoinOperations")
255
- .mockImplementation(() => Promise.resolve([coinOperation3]));
256
- const operations = [coinOperation2, coinOperation1];
181
+ jest.spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastOperations").mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
182
+ return ({
183
+ lastTokenOperations: [],
184
+ lastNftOperations: [],
185
+ lastCoinOperations: [coinOperations[2]],
186
+ });
187
+ }));
188
+ const operations = [
189
+ Object.assign(Object.assign({}, coinOperations[1]), { nftOperations: [erc721Operations[1], erc721Operations[2], erc1155Operations[1]] }),
190
+ Object.assign(Object.assign({}, coinOperations[0]), { nftOperations: [erc721Operations[0], erc1155Operations[0]] }),
191
+ ];
257
192
  const accountShape = yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), { operations }) }), {});
258
193
  expect(accountShape).toEqual({
259
194
  type: "Account",
@@ -261,33 +196,25 @@ describe("EVM Family", () => {
261
196
  syncHash: expect.stringMatching(/^0x[A-Fa-f0-9]{64}$/),
262
197
  balance: new BigNumber(100),
263
198
  spendableBalance: new BigNumber(100),
264
- blockHeight: 10,
265
- operations: [coinOperation3, coinOperation2, coinOperation1],
199
+ nfts: [nfts[0], nfts[1]],
200
+ blockHeight: 6969,
201
+ operations: [coinOperations[2], ...operations],
266
202
  operationsCount: 3,
267
- subAccounts: [
268
- Object.assign(Object.assign({}, tokenAccount), { balance: new BigNumber(10000), spendableBalance: new BigNumber(10000), operations: [tokenOperation2, tokenOperation1], operationsCount: 2 }),
269
- ],
203
+ subAccounts: account.subAccounts,
270
204
  lastSyncDate: new Date("2014-04-21"),
271
205
  });
272
206
  }));
273
207
  });
274
208
  describe("With pending operations", () => {
275
209
  beforeAll(() => {
276
- jest
277
- .spyOn(etherscanAPI, "getLastCoinOperations")
278
- .mockImplementation(() => Promise.resolve([]));
279
- jest
280
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastCoinOperations")
281
- .mockImplementation(() => Promise.resolve([]));
282
- jest
283
- .spyOn(etherscanAPI, "getLastTokenOperations")
284
- .mockImplementation(() => Promise.resolve([]));
285
- jest
286
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastTokenOperations")
287
- .mockImplementation(() => Promise.resolve([]));
210
+ jest.spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastOperations").mockImplementation(() => Promise.resolve({
211
+ lastCoinOperations: [],
212
+ lastTokenOperations: [],
213
+ lastNftOperations: [],
214
+ }));
288
215
  jest
289
216
  .spyOn(synchronization, "getOperationStatus")
290
- .mockImplementation((currency, op) => Promise.resolve(op.hash === "0xH4sH" ? coinOperation1 : null));
217
+ .mockImplementation((currency, op) => Promise.resolve(op.hash === coinOperations[0].hash ? coinOperations[0] : null));
291
218
  });
292
219
  afterAll(() => {
293
220
  jest.restoreAllMocks();
@@ -296,10 +223,10 @@ describe("EVM Family", () => {
296
223
  const accountShape = yield synchronization.getAccountShape(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: Object.assign(Object.assign({}, account), {
297
224
  // 2 operations to confirm here, they're differenciated by id
298
225
  pendingOperations: [
299
- coinOperation1,
300
- Object.assign(Object.assign({}, coinOperation1), { hash: "0xN0tH4sH", id: "js:2:ethereum:0xkvn:-0xN0tH4sH-OUT" }),
226
+ coinOperations[0],
227
+ Object.assign(Object.assign({}, coinOperations[0]), { hash: "0xN0tH4sH", id: "js:2:ethereum:0xkvn:-0xN0tH4sH-OUT" }),
301
228
  ] }) }), {});
302
- expect(accountShape.operations).toEqual([coinOperation1]);
229
+ expect(accountShape.operations).toEqual([coinOperations[0]]);
303
230
  }));
304
231
  });
305
232
  });
@@ -320,56 +247,11 @@ describe("EVM Family", () => {
320
247
  jest.restoreAllMocks();
321
248
  });
322
249
  it("should return the right subAccounts", () => __awaiter(void 0, void 0, void 0, function* () {
323
- jest.spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastTokenOperations").mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
324
- return [
325
- { tokenCurrency: tokenCurrency1, operation: tokenOperation1 },
326
- { tokenCurrency: tokenCurrency1, operation: tokenOperation2 },
327
- { tokenCurrency: tokenCurrency2, operation: tokenOperation4 },
328
- {
329
- tokenCurrency: undefined,
330
- operation: ignoredTokenOperation,
331
- },
332
- ];
333
- }));
334
- const tokenAccounts = yield synchronization.getSubAccounts(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: account }), account.id);
335
- const expectedUsdcAccount = Object.assign(Object.assign({}, tokenAccount), { balance: new BigNumber(1), spendableBalance: new BigNumber(1), operations: [tokenOperation1, tokenOperation2], operationsCount: 2, starred: undefined, swapHistory: [] });
336
- const expectedUsdtAccount = Object.assign(Object.assign({}, makeTokenAccount(account.freshAddress, tokenCurrency2)), { balance: new BigNumber(2), spendableBalance: new BigNumber(2), operations: [tokenOperation4], operationsCount: 1, starred: undefined, swapHistory: [] });
250
+ const tokenAccounts = yield synchronization.getSubAccounts(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: account }), account.id, [tokenOperations[0], tokenOperations[1], tokenOperations[3]]);
251
+ const expectedUsdcAccount = Object.assign(Object.assign({}, tokenAccount), { balance: new BigNumber(1), spendableBalance: new BigNumber(1), operations: [tokenOperations[0], tokenOperations[1]], operationsCount: 2, starred: undefined, swapHistory: [] });
252
+ const expectedUsdtAccount = Object.assign(Object.assign({}, makeTokenAccount(account.freshAddress, tokenCurrencies[1])), { balance: new BigNumber(2), spendableBalance: new BigNumber(2), operations: [tokenOperations[3]], operationsCount: 1, starred: undefined, swapHistory: [] });
337
253
  expect(tokenAccounts).toEqual([expectedUsdcAccount, expectedUsdtAccount]);
338
254
  }));
339
- it("should return a partial sub account based on blockHeight", () => __awaiter(void 0, void 0, void 0, function* () {
340
- jest
341
- .spyOn(etherscanAPI === null || etherscanAPI === void 0 ? void 0 : etherscanAPI.default, "getLastTokenOperations")
342
- .mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
343
- return [
344
- { tokenCurrency: tokenCurrency1, operation: tokenOperation3 },
345
- ];
346
- }));
347
- const incompleteUsdcAccount = Object.assign(Object.assign({}, tokenAccount), { balance: new BigNumber(0), spendableBalance: new BigNumber(0), operations: [tokenOperation1, tokenOperation2], operationsCount: 1 });
348
- const accountWithIncompleteSubAccount = Object.assign(Object.assign({}, account), { subAccounts: [incompleteUsdcAccount] });
349
- const tokenAccounts = yield synchronization.getSubAccounts(Object.assign(Object.assign({}, getAccountShapeParameters), { initialAccount: accountWithIncompleteSubAccount }), account.id);
350
- const expectedUsdcAccount = Object.assign(Object.assign({}, incompleteUsdcAccount), { balance: new BigNumber(1), spendableBalance: new BigNumber(1), operations: [tokenOperation3], operationsCount: 1, starred: undefined, swapHistory: [] });
351
- expect(tokenAccounts).toEqual([expectedUsdcAccount]);
352
- // (currency, address, accountId, fromBlock)
353
- expect(etherscanAPI.default.getLastTokenOperations).toBeCalledWith(currency, account.freshAddress, account.id, tokenOperation2.blockHeight);
354
- }));
355
- it("should throw for currency with unsupported explorer", () => __awaiter(void 0, void 0, void 0, function* () {
356
- try {
357
- yield synchronization.getSubAccounts(Object.assign(Object.assign({}, getAccountShapeParameters), { currency: Object.assign(Object.assign({}, currency), { ethereumLikeInfo: {
358
- chainId: 1,
359
- explorer: {
360
- uri: "http://nope.com",
361
- type: "unsupported",
362
- },
363
- } }) }), account.id);
364
- fail("Promise should have been rejected");
365
- }
366
- catch (e) {
367
- if (e instanceof AssertionError) {
368
- throw e;
369
- }
370
- expect(e.message).toMatch("No explorer found for currency");
371
- }
372
- }));
373
255
  });
374
256
  describe("getSubAccountShape", () => {
375
257
  beforeEach(() => {
@@ -388,8 +270,8 @@ describe("EVM Family", () => {
388
270
  jest.restoreAllMocks();
389
271
  });
390
272
  it("should return a correct sub account shape", () => __awaiter(void 0, void 0, void 0, function* () {
391
- const subAccount = yield synchronization.getSubAccountShape(currency, account.id, tokenCurrency1, [tokenOperation1, tokenOperation2, tokenOperation3]);
392
- expect(subAccount).toEqual(Object.assign(Object.assign({}, tokenAccount), { balance: new BigNumber(1), spendableBalance: new BigNumber(1), operations: [tokenOperation1, tokenOperation2, tokenOperation3], operationsCount: 3, starred: undefined, swapHistory: [] }));
273
+ const subAccount = yield synchronization.getSubAccountShape(currency, account.id, tokenCurrencies[0], [tokenOperations[0], tokenOperations[1], tokenOperations[2]]);
274
+ expect(subAccount).toEqual(Object.assign(Object.assign({}, tokenAccount), { balance: new BigNumber(1), spendableBalance: new BigNumber(1), operations: [tokenOperations[0], tokenOperations[1], tokenOperations[2]], operationsCount: 3, starred: undefined, swapHistory: [] }));
393
275
  }));
394
276
  });
395
277
  describe("getOperationStatus", () => {
@@ -397,7 +279,8 @@ describe("EVM Family", () => {
397
279
  jest.spyOn(rpcAPI, "getTransaction").mockImplementationOnce(() => {
398
280
  throw new Error();
399
281
  });
400
- expect(yield synchronization.getOperationStatus(currency, coinOperation1)).toBe(null);
282
+ const operationStatus = yield synchronization.getOperationStatus(currency, coinOperations[0]);
283
+ expect(operationStatus).toBe(null);
401
284
  }));
402
285
  it("should return null if retrieved transaction has no blockHeight", () => __awaiter(void 0, void 0, void 0, function* () {
403
286
  jest.spyOn(rpcAPI, "getTransaction").mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
@@ -407,7 +290,8 @@ describe("EVM Family", () => {
407
290
  nonce: 1,
408
291
  });
409
292
  }));
410
- expect(yield synchronization.getOperationStatus(currency, coinOperation1)).toBe(null);
293
+ const operationStatus = yield synchronization.getOperationStatus(currency, coinOperations[0]);
294
+ expect(operationStatus).toBe(null);
411
295
  }));
412
296
  it("should return the retrieved operation with network properties", () => __awaiter(void 0, void 0, void 0, function* () {
413
297
  jest.spyOn(rpcAPI, "getTransaction").mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
@@ -418,7 +302,19 @@ describe("EVM Family", () => {
418
302
  nonce: 123,
419
303
  });
420
304
  }));
421
- expect(yield synchronization.getOperationStatus(currency, coinOperation1)).toEqual(Object.assign(Object.assign({}, coinOperation1), { blockHash: "hash", blockHeight: 10, date: new Date(), transactionSequenceNumber: 123 }));
305
+ const expectedAddition = {
306
+ blockHash: "hash",
307
+ blockHeight: 10,
308
+ date: new Date(),
309
+ transactionSequenceNumber: 123,
310
+ };
311
+ const operationStatus = yield synchronization.getOperationStatus(currency, Object.assign(Object.assign({}, coinOperations[0]), { subOperations: [tokenOperations[0]], nftOperations: [erc721Operations[0], erc1155Operations[0]] }));
312
+ expect(operationStatus).toEqual(Object.assign(Object.assign(Object.assign({}, coinOperations[0]), expectedAddition), { subOperations: [
313
+ Object.assign(Object.assign({}, tokenOperations[0]), expectedAddition),
314
+ ], nftOperations: [
315
+ Object.assign(Object.assign({}, erc721Operations[0]), expectedAddition),
316
+ Object.assign(Object.assign({}, erc1155Operations[0]), expectedAddition),
317
+ ] }));
422
318
  }));
423
319
  it("should return the retrieved operation with network properties even if the rpc doesn't return timestamp", () => __awaiter(void 0, void 0, void 0, function* () {
424
320
  jest.spyOn(rpcAPI, "getTransaction").mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
@@ -431,7 +327,19 @@ describe("EVM Family", () => {
431
327
  jest
432
328
  .spyOn(rpcAPI, "getBlock")
433
329
  .mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () { return ({ timestamp: Date.now() / 1000 }); }));
434
- expect(yield synchronization.getOperationStatus(currency, coinOperation1)).toEqual(Object.assign(Object.assign({}, coinOperation1), { blockHash: "hash", blockHeight: 10, date: new Date(), transactionSequenceNumber: 123 }));
330
+ const expectedAddition = {
331
+ blockHash: "hash",
332
+ blockHeight: 10,
333
+ date: new Date(),
334
+ transactionSequenceNumber: 123,
335
+ };
336
+ const operationStatus = yield synchronization.getOperationStatus(currency, Object.assign(Object.assign({}, coinOperations[0]), { subOperations: [tokenOperations[0]], nftOperations: [erc721Operations[0], erc1155Operations[0]] }));
337
+ expect(operationStatus).toEqual(Object.assign(Object.assign(Object.assign({}, coinOperations[0]), expectedAddition), { subOperations: [
338
+ Object.assign(Object.assign({}, tokenOperations[0]), expectedAddition),
339
+ ], nftOperations: [
340
+ Object.assign(Object.assign({}, erc721Operations[0]), expectedAddition),
341
+ Object.assign(Object.assign({}, erc1155Operations[0]), expectedAddition),
342
+ ] }));
435
343
  }));
436
344
  });
437
345
  describe("postSync", () => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/synchronization.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.unit.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/transaction.unit.test.ts"],"names":[],"mappings":""}