@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
package/lib/logic.js CHANGED
@@ -12,11 +12,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getSyncHash = exports.mergeSubAccounts = exports.getAdditionalLayer2Fees = exports.getEstimatedFees = exports.eip1559TransactionHasFees = exports.legacyTransactionHasFees = void 0;
15
+ exports.isNftTransaction = exports.attachOperations = exports.getSyncHash = exports.mergeSubAccounts = exports.getAdditionalLayer2Fees = exports.getEstimatedFees = exports.eip1559TransactionHasFees = exports.legacyTransactionHasFees = void 0;
16
16
  const ethers_1 = require("ethers");
17
17
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
+ const support_1 = require("@ledgerhq/coin-framework/nft/support");
18
19
  const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
20
+ const operation_1 = require("@ledgerhq/coin-framework/operation");
19
21
  const tokens_1 = require("@ledgerhq/cryptoassets/tokens");
22
+ const index_1 = require("@ledgerhq/coin-framework/account/index");
20
23
  const rpc_common_1 = require("./api/rpc/rpc.common");
21
24
  /**
22
25
  * Helper to check if a legacy transaction has the right fee property
@@ -119,13 +122,106 @@ exports.mergeSubAccounts = mergeSubAccounts;
119
122
  /**
120
123
  * Method creating a hash that will help triggering or not a full synchronization on an account.
121
124
  * As of now, it's checking if a token has been added, removed of changed regarding important properties
125
+ * and if the NFTs are activated/supported on this chain
122
126
  */
123
127
  const getSyncHash = (currency) => {
124
128
  const tokens = (0, tokens_1.listTokensForCryptoCurrency)(currency);
125
129
  const basicTokensListString = tokens
126
130
  .map(token => token.id + token.contractAddress + token.name + token.ticker + token.delisted)
127
131
  .join("");
128
- return ethers_1.ethers.utils.sha256(Buffer.from(basicTokensListString));
132
+ const isNftSupported = (0, support_1.isNFTActive)(currency);
133
+ return ethers_1.ethers.utils.sha256(Buffer.from(basicTokensListString + isNftSupported));
129
134
  };
130
135
  exports.getSyncHash = getSyncHash;
136
+ /**
137
+ * Helper in charge of linking operations together based on transaction hash.
138
+ * Token operations & NFT operations are the result of a coin operation
139
+ * and if this coin operation is originated by our user we want
140
+ * to link those operations together as main & children ops.
141
+ *
142
+ * A sub operation should always be linked to a coin operation,
143
+ * even if the user isn't at the origin of the sub op.
144
+ * "NONE" coin ops can be added when necessary.
145
+ *
146
+ * ⚠️ If an NFT operation was found without a coin parent op
147
+ * just like if it was not initiated by the synced account
148
+ * and we were to find that coin op during another sync,
149
+ * the NONE operation created would not be removed,
150
+ * creating a duplicate that will cause issues.
151
+ * (Incorrect NFT balance & React key dup)
152
+ */
153
+ const attachOperations = (_coinOperations, _tokenOperations, _nftOperations) => {
154
+ // Creating deep copies of each Operation[] to prevent mutating the originals
155
+ const coinOperations = _coinOperations.map(op => (Object.assign({}, op)));
156
+ const tokenOperations = _tokenOperations.map(op => (Object.assign({}, op)));
157
+ const nftOperations = _nftOperations.map(op => (Object.assign({}, op)));
158
+ // Helper to create a coin operation with type NONE as a parent of an orphan child operation
159
+ const makeCoinOpForOrphanChildOp = (childOp) => {
160
+ const type = "NONE";
161
+ const { accountId } = (0, index_1.decodeTokenAccountId)(childOp.accountId);
162
+ const id = (0, operation_1.encodeOperationId)(accountId, childOp.hash, type);
163
+ return {
164
+ id,
165
+ hash: childOp.hash,
166
+ type,
167
+ value: new bignumber_js_1.default(0),
168
+ fee: new bignumber_js_1.default(0),
169
+ senders: [],
170
+ recipients: [],
171
+ blockHeight: childOp.blockHeight,
172
+ blockHash: childOp.blockHash,
173
+ transactionSequenceNumber: childOp.transactionSequenceNumber,
174
+ subOperations: [],
175
+ nftOperations: [],
176
+ accountId: "",
177
+ date: childOp.date,
178
+ extra: {},
179
+ };
180
+ };
181
+ // Create a Map of hash => operation
182
+ const coinOperationsByHash = {};
183
+ coinOperations.forEach(op => {
184
+ if (!coinOperationsByHash[op.hash]) {
185
+ coinOperationsByHash[op.hash] = [];
186
+ }
187
+ // Adding arrays just in case but this is defined
188
+ // by the adapters so it should never be needed
189
+ op.subOperations = [];
190
+ op.nftOperations = [];
191
+ coinOperationsByHash[op.hash].push(op);
192
+ });
193
+ // Looping through token operations to potentially copy them as a child operation of a coin operation
194
+ for (const tokenOperation of tokenOperations) {
195
+ let mainOperations = coinOperationsByHash[tokenOperation.hash];
196
+ if (!(mainOperations === null || mainOperations === void 0 ? void 0 : mainOperations.length)) {
197
+ const noneOperation = makeCoinOpForOrphanChildOp(tokenOperation);
198
+ mainOperations = [noneOperation];
199
+ coinOperations.push(noneOperation);
200
+ }
201
+ // Ugly loop in loop but in theory, this can only be a 2 elements array maximum in the case of a self send
202
+ for (const mainOperation of mainOperations) {
203
+ mainOperation.subOperations.push(tokenOperation);
204
+ }
205
+ }
206
+ // Looping through nft operations to potentially copy them as a child operation of a coin operation
207
+ for (const nftOperation of nftOperations) {
208
+ let mainOperations = coinOperationsByHash[nftOperation.hash];
209
+ if (!(mainOperations === null || mainOperations === void 0 ? void 0 : mainOperations.length)) {
210
+ const noneOperation = makeCoinOpForOrphanChildOp(nftOperation);
211
+ mainOperations = [noneOperation];
212
+ coinOperations.push(noneOperation);
213
+ }
214
+ // Ugly loop in loop but in theory, this can only be a 2 elements array maximum in the case of a self send
215
+ for (const mainOperation of mainOperations) {
216
+ mainOperation.nftOperations.push(nftOperation);
217
+ }
218
+ }
219
+ return coinOperations;
220
+ };
221
+ exports.attachOperations = attachOperations;
222
+ /**
223
+ * Type guard for NFT transactions
224
+ */
225
+ const isNftTransaction = (transaction) => ["erc1155", "erc721"].includes(transaction.mode);
226
+ exports.isNftTransaction = isNftTransaction;
131
227
  //# sourceMappingURL=logic.js.map
package/lib/logic.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { CurrencyBridge, NFTCollectionMetadataResponse, NFTMetadataResponse } from "@ledgerhq/types-live";
2
+ type NftResolvers = NonNullable<CurrencyBridge["nftResolvers"]>;
3
+ export declare const nftMetadata: NftResolvers["nftMetadata"];
4
+ export declare const collectionMetadata: NftResolvers["collectionMetadata"];
5
+ declare const _default: {
6
+ nftMetadata: (arg: {
7
+ contract: string;
8
+ tokenId: string;
9
+ currencyId: string;
10
+ metadata?: import("@ledgerhq/types-live").NFTMetadata | undefined;
11
+ }) => Promise<NFTMetadataResponse>;
12
+ collectionMetadata: (arg: {
13
+ contract: string;
14
+ currencyId: string;
15
+ metadata?: import("@ledgerhq/types-live").NFTCollectionMetadata | undefined;
16
+ }) => Promise<NFTCollectionMetadataResponse>;
17
+ };
18
+ export default _default;
19
+ //# sourceMappingURL=nftResolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nftResolvers.d.ts","sourceRoot":"","sources":["../src/nftResolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAK9B,KAAK,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AAEhE,eAAO,MAAM,WAAW,EAAE,YAAY,CAAC,aAAa,CA6BnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,oBAAoB,CA0BjE,CAAC;;;;;;;;;;;;;;AAEF,wBAAmD"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.collectionMetadata = exports.nftMetadata = void 0;
16
+ const support_1 = require("@ledgerhq/coin-framework/nft/support");
17
+ const index_1 = require("@ledgerhq/coin-framework/currencies/index");
18
+ const nft_1 = __importDefault(require("./api/nft"));
19
+ const nftMetadata = ({ contract, tokenId, currencyId, metadata, }) => __awaiter(void 0, void 0, void 0, function* () {
20
+ // This is for test/mock purposes
21
+ if (typeof metadata !== "undefined") {
22
+ return {
23
+ status: 200,
24
+ result: Object.assign({ contract,
25
+ tokenId }, metadata),
26
+ };
27
+ }
28
+ const currency = (0, index_1.getCryptoCurrencyById)(currencyId);
29
+ if (!(0, support_1.isNFTActive)(currency)) {
30
+ throw new Error("Ethereum Bridge NFT Resolver: Unsupported currency");
31
+ }
32
+ const response = yield (0, support_1.metadataCallBatcher)(currency, nft_1.default).loadNft({
33
+ contract,
34
+ tokenId,
35
+ });
36
+ return response;
37
+ });
38
+ exports.nftMetadata = nftMetadata;
39
+ const collectionMetadata = ({ contract, currencyId, metadata, }) => __awaiter(void 0, void 0, void 0, function* () {
40
+ // This is for test/mock purposes
41
+ if (typeof metadata !== "undefined") {
42
+ return {
43
+ status: 200,
44
+ result: Object.assign({ contract }, metadata),
45
+ };
46
+ }
47
+ const currency = (0, index_1.getCryptoCurrencyById)(currencyId);
48
+ if (!(0, support_1.isNFTActive)(currency)) {
49
+ throw new Error("Ethereum Bridge NFT Resolver: Unsupported currency");
50
+ }
51
+ const response = yield (0, support_1.metadataCallBatcher)(currency, nft_1.default).loadCollection({
52
+ contract,
53
+ });
54
+ return response;
55
+ });
56
+ exports.collectionMetadata = collectionMetadata;
57
+ exports.default = { nftMetadata: exports.nftMetadata, collectionMetadata: exports.collectionMetadata };
58
+ //# sourceMappingURL=nftResolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nftResolvers.js","sourceRoot":"","sources":["../src/nftResolvers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,kEAAwF;AACxF,qEAAkF;AAClF,oDAA+B;AAIxB,MAAM,WAAW,GAAgC,CAAO,EAC7D,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,GACT,EAAgC,EAAE;IACjC,iCAAiC;IACjC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,OAAO;YACL,MAAM,EAAE,GAAG;YACX,MAAM,kBACJ,QAAQ;gBACR,OAAO,IACJ,QAAQ,CACZ;SACqB,CAAC;KAC1B;IAED,MAAM,QAAQ,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAmB,EAAC,QAAQ,EAAE,aAAM,CAAC,CAAC,OAAO,CAAC;QACnE,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AA7BW,QAAA,WAAW,eA6BtB;AAEK,MAAM,kBAAkB,GAAuC,CAAO,EAC3E,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAA0C,EAAE;IAC3C,iCAAiC;IACjC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,OAAO;YACL,MAAM,EAAE,GAAG;YACX,MAAM,kBACJ,QAAQ,IACL,QAAQ,CACZ;SACF,CAAC;KACH;IAED,MAAM,QAAQ,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAmB,EAAC,QAAQ,EAAE,aAAM,CAAC,CAAC,cAAc,CAAC;QAC1E,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B;AAEF,kBAAe,EAAE,WAAW,EAAX,mBAAW,EAAE,kBAAkB,EAAlB,0BAAkB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAM9D,eAAO,MAAM,gBAAgB,EAAE,CAC7B,QAAQ,EAAE,cAAc,KACrB,OAAO,CAAC,UAAU,EAAE,CAqBxB,CAAC;AAEF,wBAAsB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAI7E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAIpE"}
1
+ {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAM9D,eAAO,MAAM,gBAAgB,EAAE,CAC7B,QAAQ,EAAE,cAAc,KACrB,OAAO,CAAC,UAAU,EAAE,CAsBxB,CAAC;AAEF,wBAAsB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAS7E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAIpE"}
package/lib/preload.js CHANGED
@@ -32,8 +32,7 @@ const fetchERC20Tokens = (currency) => __awaiter(void 0, void 0, void 0, functio
32
32
  });
33
33
  if (dynamicTokens)
34
34
  return dynamicTokens;
35
- // @ts-expect-error FIXME: fix typings
36
- const tokens = index_1.tokens[(ethereumLikeInfo === null || ethereumLikeInfo === void 0 ? void 0 : ethereumLikeInfo.chainId) || ""];
35
+ const tokens = index_1.tokens[ethereumLikeInfo === null || ethereumLikeInfo === void 0 ? void 0 : ethereumLikeInfo.chainId];
37
36
  if (tokens)
38
37
  return tokens;
39
38
  (0, logs_1.log)("warning", `EVM Family: No tokens found in CAL for currency: ${currency.id}`, currency);
@@ -43,7 +42,12 @@ exports.fetchERC20Tokens = fetchERC20Tokens;
43
42
  function preload(currency) {
44
43
  return __awaiter(this, void 0, void 0, function* () {
45
44
  const erc20 = yield (0, exports.fetchERC20Tokens)(currency);
46
- (0, tokens_1.addTokens)(erc20.map(tokens_1.convertERC20));
45
+ // This weird thing is here to help the "clone" currencies like
46
+ // ethereum_as_evm_test_only & polygon_as_evm_test_only
47
+ // to get tokens despite the different currency_id
48
+ // registered in the CAL for those chain ids
49
+ // We should remove this after the merge
50
+ (0, tokens_1.addTokens)(erc20.map(([, ...tokenRest]) => (0, tokens_1.convertERC20)([currency.id, ...tokenRest])));
47
51
  return erc20;
48
52
  });
49
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAqC;AAGrC,0DAAwE;AACxE,iEAAkF;AAClF,6EAAqD;AACrD,iDAA4C;AAErC,MAAM,gBAAgB,GAEA,CAAM,QAAQ,EAAC,EAAE;IAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEtC,MAAM,GAAG,GAAG,GAAG,IAAA,iBAAM,EAAC,sBAAsB,CAAC,QAAQ,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,CAAC,aAAa,CAAC;IACjG,MAAM,aAAa,GAAwB,MAAM,IAAA,iBAAO,EAAC;QACvD,MAAM,EAAE,KAAK;QACb,GAAG;KACJ,CAAC;SACC,IAAI,CAAC,CAAC,EAAE,IAAI,EAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACvE,KAAK,CAAC,CAAC,CAAC,EAAE;QACT,IAAA,UAAG,EAAC,OAAO,EAAE,qDAAqD,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACL,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,sCAAsC;IACtC,MAAM,MAAM,GAAG,cAAe,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAA,UAAG,EAAC,SAAS,EAAE,oDAAoD,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5F,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA,CAAC;AAvBW,QAAA,gBAAgB,oBAuB3B;AAEF,SAAsB,OAAO,CAAC,QAAwB;;QACpD,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;QAC/C,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AAJD,0BAIC;AAED,SAAgB,OAAO,CAAC,KAAsC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAClC,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC,CAAC;IACnC,IAAA,UAAG,EAAC,aAAa,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAC5D,CAAC;AAJD,0BAIC"}
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAqC;AAGrC,0DAAwE;AACxE,iEAAkF;AAClF,6EAAqD;AACrD,iDAA4C;AAErC,MAAM,gBAAgB,GAEA,CAAM,QAAQ,EAAC,EAAE;IAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEtC,MAAM,GAAG,GAAG,GAAG,IAAA,iBAAM,EAAC,sBAAsB,CAAC,QAAQ,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,CAAC,aAAa,CAAC;IACjG,MAAM,aAAa,GAAwB,MAAM,IAAA,iBAAO,EAAC;QACvD,MAAM,EAAE,KAAK;QACb,GAAG;KACJ,CAAC;SACC,IAAI,CAAC,CAAC,EAAE,IAAI,EAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACvE,KAAK,CAAC,CAAC,CAAC,EAAE;QACT,IAAA,UAAG,EAAC,OAAO,EAAE,qDAAqD,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACL,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,MAAM,GAAG,cAAe,CAC5B,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAuC,CAC1C,CAAC;IAClB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAA,UAAG,EAAC,SAAS,EAAE,oDAAoD,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5F,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA,CAAC;AAxBW,QAAA,gBAAgB,oBAwB3B;AAEF,SAAsB,OAAO,CAAC,QAAwB;;QACpD,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;QAC/C,+DAA+D;QAC/D,uDAAuD;QACvD,kDAAkD;QAClD,4CAA4C;QAC5C,wCAAwC;QACxC,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAY,EAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AATD,0BASC;AAED,SAAgB,OAAO,CAAC,KAAsC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAClC,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC,CAAC;IACnC,IAAA,UAAG,EAAC,aAAa,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAC5D,CAAC;AAJD,0BAIC"}
@@ -1,5 +1,5 @@
1
1
  import { Account, TokenAccount } from "@ledgerhq/types-live";
2
- import { Transaction as EvmTransaction } from "./types";
2
+ import { EvmNftTransaction, Transaction as EvmTransaction } from "./types";
3
3
  /**
4
4
  * Prepare basic coin transactions or smart contract interactions (other than live ERC20 transfers)
5
5
  * Should be used for transactions coming from the wallet API
@@ -11,6 +11,11 @@ export declare const prepareCoinTransaction: (account: Account, typedTransaction
11
11
  * Handling addition of ERC20 transfer data and gas limit
12
12
  */
13
13
  export declare const prepareTokenTransaction: (account: Account, tokenAccount: TokenAccount, typedTransaction: EvmTransaction) => Promise<EvmTransaction>;
14
+ /**
15
+ * Prepare ERC721/ERC1155 transactions.
16
+ * Handling addition of NFT safeTransferFrom data and gas limit
17
+ */
18
+ export declare const prepareNftTransaction: (account: Account, typedTransaction: EvmNftTransaction & EvmTransaction) => Promise<EvmTransaction>;
14
19
  /**
15
20
  * Method called to update a transaction into a state that would make it valid
16
21
  * (E.g. Adding fees, add smart contract data, etc...)
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAM7D,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,YACxB,OAAO,oBACE,cAAc,KAC/B,QAAQ,cAAc,CAgDxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,YACzB,OAAO,gBACF,YAAY,oBACR,cAAc,KAC/B,QAAQ,cAAc,CAiCxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YACpB,OAAO,eACH,cAAc,KAC1B,QAAQ,cAAc,CA4BxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,YACzB,OAAO,eACH,cAAc,KAC1B,QAAQ,cAAc,CAkBxB,CAAC"}
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAO3E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,YACxB,OAAO,oBACE,cAAc,KAC/B,QAAQ,cAAc,CAgDxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,YACzB,OAAO,gBACF,YAAY,oBACR,cAAc,KAC/B,QAAQ,cAAc,CAmCxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YACvB,OAAO,oBACE,iBAAiB,GAAG,cAAc,KACnD,QAAQ,cAAc,CA8CxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YACpB,OAAO,eACH,cAAc,KAC1B,QAAQ,cAAc,CAoCxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,YACzB,OAAO,eACH,cAAc,KAC1B,QAAQ,cAAc,CA6BxB,CAAC"}
@@ -12,13 +12,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.prepareForSignOperation = exports.prepareTransaction = exports.prepareTokenTransaction = exports.prepareCoinTransaction = void 0;
16
- const index_1 = require("@ledgerhq/coin-framework/account/index");
15
+ exports.prepareForSignOperation = exports.prepareTransaction = exports.prepareNftTransaction = exports.prepareTokenTransaction = exports.prepareCoinTransaction = void 0;
16
+ const lodash_1 = require("lodash");
17
17
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
- const rpc_1 = require("./api/rpc");
18
+ const index_1 = require("@ledgerhq/coin-framework/account/index");
19
+ const transaction_1 = require("./transaction");
19
20
  const getTransactionStatus_1 = require("./getTransactionStatus");
21
+ const nft_1 = require("./api/nft");
22
+ const rpc_1 = require("./api/rpc");
20
23
  const logic_1 = require("./logic");
21
- const transaction_1 = require("./transaction");
22
24
  /**
23
25
  * Prepare basic coin transactions or smart contract interactions (other than live ERC20 transfers)
24
26
  * Should be used for transactions coming from the wallet API
@@ -60,7 +62,7 @@ const prepareTokenTransaction = (account, tokenAccount, typedTransaction) => __a
60
62
  const [recipientErrors] = (0, getTransactionStatus_1.validateRecipient)(account, typedTransaction);
61
63
  const amount = typedTransaction.useAllAmount ? tokenAccount.balance : typedTransaction.amount;
62
64
  const data = !Object.keys(recipientErrors).length
63
- ? (0, transaction_1.getTransactionData)(Object.assign(Object.assign({}, typedTransaction), { amount }))
65
+ ? (0, transaction_1.getTransactionData)(account, Object.assign(Object.assign({}, typedTransaction), { amount }))
64
66
  : undefined;
65
67
  // As we're interacting with a smart contract,
66
68
  // it's going to be the real recipient for the tx
@@ -73,12 +75,46 @@ const prepareTokenTransaction = (account, tokenAccount, typedTransaction) => __a
73
75
  gasLimit }));
74
76
  // Recipient isn't changed here as it would change on the UI end as well
75
77
  // The change will be handled by the `prepareForSignOperation` method
78
+ // right before the device signature by the signOperation step
76
79
  return Object.assign(Object.assign({}, typedTransaction), { amount,
77
80
  data,
78
81
  gasLimit,
79
82
  additionalFees });
80
83
  });
81
84
  exports.prepareTokenTransaction = prepareTokenTransaction;
85
+ /**
86
+ * Prepare ERC721/ERC1155 transactions.
87
+ * Handling addition of NFT safeTransferFrom data and gas limit
88
+ */
89
+ const prepareNftTransaction = (account, typedTransaction) => __awaiter(void 0, void 0, void 0, function* () {
90
+ var _a, _b;
91
+ const { currency } = account;
92
+ const [recipientErrors] = (0, getTransactionStatus_1.validateRecipient)(account, typedTransaction);
93
+ const data = !Object.keys(recipientErrors).length
94
+ ? (0, transaction_1.getTransactionData)(account, typedTransaction)
95
+ : undefined;
96
+ // As we're interacting with a smart contract,
97
+ // it's going to be the real recipient for the tx
98
+ const gasLimit = data
99
+ ? yield (0, rpc_1.getGasEstimation)(account, Object.assign(Object.assign({}, typedTransaction), { amount: new bignumber_js_1.default(0), recipient: typedTransaction.nft.contract, // recipient is then the nft smart contract
100
+ data })).catch(() => new bignumber_js_1.default(0)) // this catch returning 0 should be handled by the `getTransactionStatus` method
101
+ : new bignumber_js_1.default(0);
102
+ const additionalFees = yield (0, logic_1.getAdditionalLayer2Fees)(account.currency, Object.assign(Object.assign({}, typedTransaction), { amount: new bignumber_js_1.default(0), recipient: typedTransaction.nft.contract, // recipient is then the token smart contract
103
+ data,
104
+ gasLimit }));
105
+ // Providing the collection name to the transaction for the
106
+ // deviceTransactionConfig step (so purely UI)
107
+ const [collectionMetadata] = yield (0, nft_1.getNftCollectionMetadata)([{ contract: typedTransaction.nft.contract }], ((_a = currency === null || currency === void 0 ? void 0 : currency.ethereumLikeInfo) === null || _a === void 0 ? void 0 : _a.chainId) || 0);
108
+ const nft = Object.assign(Object.assign({}, typedTransaction.nft), { collectionName: ((_b = collectionMetadata.result) === null || _b === void 0 ? void 0 : _b.tokenName) || "" });
109
+ // Recipient isn't changed here as it would change on the UI end as well
110
+ // The change will be handled by the `prepareForSignOperation` method
111
+ // right before the device signature by the signOperation step
112
+ return Object.assign(Object.assign({}, typedTransaction), { data,
113
+ gasLimit,
114
+ additionalFees,
115
+ nft });
116
+ });
117
+ exports.prepareNftTransaction = prepareNftTransaction;
82
118
  /**
83
119
  * Method called to update a transaction into a state that would make it valid
84
120
  * (E.g. Adding fees, add smart contract data, etc...)
@@ -87,26 +123,33 @@ const prepareTransaction = (account, transaction) => __awaiter(void 0, void 0, v
87
123
  const { currency } = account;
88
124
  // Get the current network status fees
89
125
  const feeData = yield (() => __awaiter(void 0, void 0, void 0, function* () {
90
- var _a, _b, _c, _d;
126
+ var _c, _d, _e, _f;
91
127
  if (transaction.feesStrategy === "custom") {
92
128
  return {
93
- gasPrice: (_a = transaction.gasPrice) !== null && _a !== void 0 ? _a : null,
94
- maxFeePerGas: (_b = transaction.maxFeePerGas) !== null && _b !== void 0 ? _b : null,
95
- maxPriorityFeePerGas: (_c = transaction.maxPriorityFeePerGas) !== null && _c !== void 0 ? _c : null,
129
+ gasPrice: (_c = transaction.gasPrice) !== null && _c !== void 0 ? _c : null,
130
+ maxFeePerGas: (_d = transaction.maxFeePerGas) !== null && _d !== void 0 ? _d : null,
131
+ maxPriorityFeePerGas: (_e = transaction.maxPriorityFeePerGas) !== null && _e !== void 0 ? _e : null,
96
132
  };
97
133
  }
98
134
  if (!transaction.feesStrategy) {
99
135
  return (0, rpc_1.getFeesEstimation)(currency);
100
136
  }
101
- const gasOption = (_d = transaction.gasOptions) === null || _d === void 0 ? void 0 : _d[transaction.feesStrategy];
137
+ const gasOption = (_f = transaction.gasOptions) === null || _f === void 0 ? void 0 : _f[transaction.feesStrategy];
102
138
  return gasOption !== null && gasOption !== void 0 ? gasOption : (0, rpc_1.getFeesEstimation)(currency);
103
139
  }))();
104
140
  const subAccount = (0, index_1.findSubAccountById)(account, transaction.subAccountId || "");
105
- const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
106
141
  const typedTransaction = (0, transaction_1.getTypedTransaction)(transaction, feeData);
107
- return isTokenTransaction
108
- ? yield (0, exports.prepareTokenTransaction)(account, subAccount, typedTransaction)
109
- : yield (0, exports.prepareCoinTransaction)(account, typedTransaction);
142
+ const newTransaction = yield (() => {
143
+ if ((0, logic_1.isNftTransaction)(typedTransaction)) {
144
+ return (0, exports.prepareNftTransaction)(account, typedTransaction);
145
+ }
146
+ const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
147
+ return isTokenTransaction
148
+ ? (0, exports.prepareTokenTransaction)(account, subAccount, typedTransaction)
149
+ : (0, exports.prepareCoinTransaction)(account, typedTransaction);
150
+ })();
151
+ // maintaining reference if the transaction hasn't change
152
+ return (0, lodash_1.isEqual)(transaction, newTransaction) ? transaction : newTransaction;
110
153
  });
111
154
  exports.prepareTransaction = prepareTransaction;
112
155
  /**
@@ -116,13 +159,21 @@ exports.prepareTransaction = prepareTransaction;
116
159
  * (which would change as well in the UI if it was done before that step)
117
160
  */
118
161
  const prepareForSignOperation = (account, transaction) => __awaiter(void 0, void 0, void 0, function* () {
162
+ var _g;
119
163
  const nonce = yield (0, rpc_1.getTransactionCount)(account.currency, account.freshAddress);
120
- const subAccount = (0, index_1.findSubAccountById)(account, transaction.subAccountId || "");
164
+ if ((0, logic_1.isNftTransaction)(transaction)) {
165
+ return Object.assign(Object.assign({}, transaction), { amount: new bignumber_js_1.default(0), recipient: transaction.nft.contract, // recipient is then the NFT smart contract
166
+ // data as already been added by the `prepareTokenTransaction` method
167
+ nonce });
168
+ }
169
+ const subAccount = (0, index_1.findSubAccountById)(account, (_g = transaction.subAccountId) !== null && _g !== void 0 ? _g : "");
121
170
  const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
122
- return isTokenTransaction
123
- ? Object.assign(Object.assign({}, transaction), { amount: new bignumber_js_1.default(0), recipient: subAccount.token.contractAddress, // recipient is then the token smart contract
171
+ if (isTokenTransaction) {
172
+ return Object.assign(Object.assign({}, transaction), { amount: new bignumber_js_1.default(0), recipient: subAccount.token.contractAddress, // recipient is then the token smart contract
124
173
  // data as already been added by the `prepareTokenTransaction` method
125
- nonce }) : Object.assign(Object.assign({}, transaction), { nonce });
174
+ nonce });
175
+ }
176
+ return Object.assign(Object.assign({}, transaction), { nonce });
126
177
  });
127
178
  exports.prepareForSignOperation = prepareForSignOperation;
128
179
  //# sourceMappingURL=prepareTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { SignOperationFnSignature } from "@ledgerhq/types-live";
2
2
  import { SignerContext } from "@ledgerhq/coin-framework/signer";
3
- import { Transaction } from "./types";
4
3
  import { EvmAddress, EvmSignature, EvmSigner } from "./signer";
4
+ import { Transaction } from "./types";
5
5
  /**
6
6
  * Transforms the ECDSA signature paremeter v hexadecimal string received
7
7
  * from the nano into an EIP155 compatible number.
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIhE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,WAAW,MAAM,KAAG,MAgB7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAEZ,cAAc,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC,KACjE,yBAAyB,WAAW,CAkEnC,CAAC"}
1
+ {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,WAAW,MAAM,KAAG,MAgB7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAEZ,cAAc,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC,KACjE,yBAAyB,WAAW,CA6EnC,CAAC"}
@@ -11,7 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.buildSignOperation = exports.applyEIP155 = void 0;
13
13
  const rxjs_1 = require("rxjs");
14
+ const live_env_1 = require("@ledgerhq/live-env");
14
15
  const hw_app_eth_1 = require("@ledgerhq/hw-app-eth");
16
+ const support_1 = require("@ledgerhq/coin-framework/nft/support");
15
17
  const buildOptimisticOperation_1 = require("./buildOptimisticOperation");
16
18
  const prepareTransaction_1 = require("./prepareTransaction");
17
19
  const transaction_1 = require("./transaction");
@@ -53,23 +55,30 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction,
53
55
  const resolutionConfig = {
54
56
  externalPlugins: true,
55
57
  erc20: true,
58
+ nft: (0, support_1.isNFTActive)(account.currency),
56
59
  domains: transaction.recipientDomain ? [transaction.recipientDomain] : [],
57
60
  };
61
+ const loadConfig = {
62
+ cryptoassetsBaseURL: (0, live_env_1.getEnv)("DYNAMIC_CAL_BASE_URL"),
63
+ nftExplorerBaseURL: (0, live_env_1.getEnv)("NFT_ETH_METADATA_SERVICE") + "/v1/ethereum",
64
+ };
58
65
  // Look for resolutions for external plugins and ERC20
59
- const resolution = yield hw_app_eth_1.ledgerService.resolveTransaction(serializedTxHexString, {}, resolutionConfig);
66
+ const resolution = yield hw_app_eth_1.ledgerService.resolveTransaction(serializedTxHexString, loadConfig, resolutionConfig);
60
67
  o.next({
61
68
  type: "device-signature-requested",
62
69
  });
63
- const sig = (yield signerContext(deviceId, signer =>
64
- // Request signature on the nano
65
- signer.signTransaction(account.freshAddressPath, serializedTxHexString, resolution)));
70
+ const sig = (yield signerContext(deviceId, signer => {
71
+ signer.setLoadConfig(loadConfig);
72
+ // Request signature on the nano
73
+ return signer.signTransaction(account.freshAddressPath, serializedTxHexString, resolution);
74
+ }));
66
75
  o.next({ type: "device-signature-granted" }); // Signature is done
67
76
  const { chainId = 0 } = account.currency.ethereumLikeInfo || {};
68
77
  // Create a new serialized tx with the signature now
69
78
  const signature = yield (0, transaction_1.getSerializedTransaction)(preparedTransaction, {
70
79
  r: "0x" + sig.r,
71
80
  s: "0x" + sig.s,
72
- v: (0, exports.applyEIP155)(sig.v, chainId),
81
+ v: (0, exports.applyEIP155)(typeof sig.v === "number" ? sig.v.toString(16) : sig.v, chainId),
73
82
  });
74
83
  const operation = (0, buildOptimisticOperation_1.buildOptimisticOperation)(account, Object.assign(Object.assign({}, transaction), { nonce: preparedTransaction.nonce }));
75
84
  o.next({
@@ -82,7 +91,9 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction,
82
91
  });
83
92
  });
84
93
  }
85
- main().then(() => o.complete(), e => o.error(e));
94
+ main().then(() => o.complete(),
95
+ /* istanbul ignore next: don't test throwing an error */
96
+ e => o.error(e));
86
97
  });
87
98
  exports.buildSignOperation = buildSignOperation;
88
99
  //# sourceMappingURL=signOperation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"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"}
package/lib/signer.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { DomainServiceResolution } from "@ledgerhq/domain-service/types";
2
+ import { EIP712Message } from "@ledgerhq/types-live";
2
3
  export type EvmAddress = {
3
4
  publicKey: string;
4
5
  address: string;
@@ -6,7 +7,7 @@ export type EvmAddress = {
6
7
  };
7
8
  export type EvmSignature = {
8
9
  s: string;
9
- v: string;
10
+ v: string | number;
10
11
  r: string;
11
12
  };
12
13
  type LedgerEthTransactionResolution = {
@@ -19,9 +20,31 @@ type LedgerEthTransactionResolution = {
19
20
  plugin: Array<string>;
20
21
  domains: DomainServiceResolution[];
21
22
  };
23
+ type LoadConfig = {
24
+ nftExplorerBaseURL?: string | null;
25
+ pluginBaseURL?: string | null;
26
+ extraPlugins?: any | null;
27
+ cryptoassetsBaseURL?: string | null;
28
+ };
22
29
  export interface EvmSigner {
30
+ setLoadConfig(loadConfig: LoadConfig): void;
23
31
  getAddress(path: string, boolDisplay?: boolean, boolChaincode?: boolean): Promise<EvmAddress>;
24
32
  signTransaction(path: string, rawTxHex: string, resolution?: LedgerEthTransactionResolution | null): Promise<EvmSignature>;
33
+ signPersonalMessage(path: string, messageHex: string): Promise<{
34
+ v: number;
35
+ s: string;
36
+ r: string;
37
+ }>;
38
+ signEIP712HashedMessage(path: string, domainSeparatorHex: string, hashStructMessageHex: string): Promise<{
39
+ v: number;
40
+ s: string;
41
+ r: string;
42
+ }>;
43
+ signEIP712Message(path: string, jsonMessage: EIP712Message, fullImplem?: boolean): Promise<{
44
+ v: number;
45
+ s: string;
46
+ r: string;
47
+ }>;
25
48
  }
26
49
  export {};
27
50
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAGF,KAAK,8BAA8B,GAAG;IAEpC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEpB,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9F,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,8BAA8B,GAAG,IAAI,GACjD,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAGF,KAAK,8BAA8B,GAAG;IAEpC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEpB,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACpC,CAAC;AAGF,KAAK,UAAU,GAAG;IAEhB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAInC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9F,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,8BAA8B,GAAG,IAAI,GACjD,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC,CAAC;IACH,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC,CAAC;IACH,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,aAAa,EAC1B,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC,CAAC;CACJ"}