@ledgerhq/coin-aptos 1.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 (439) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.unimportedrc.json +16 -0
  3. package/CHANGELOG.md +18 -0
  4. package/LICENSE.txt +21 -0
  5. package/jest.config.js +8 -0
  6. package/lib/__tests__/api/index.test.d.ts +2 -0
  7. package/lib/__tests__/api/index.test.d.ts.map +1 -0
  8. package/lib/__tests__/api/index.test.js +447 -0
  9. package/lib/__tests__/api/index.test.js.map +1 -0
  10. package/lib/__tests__/bridge/broadcast.test.d.ts +2 -0
  11. package/lib/__tests__/bridge/broadcast.test.d.ts.map +1 -0
  12. package/lib/__tests__/bridge/broadcast.test.js +98 -0
  13. package/lib/__tests__/bridge/broadcast.test.js.map +1 -0
  14. package/lib/__tests__/bridge/buildTransaction.test.d.ts +2 -0
  15. package/lib/__tests__/bridge/buildTransaction.test.d.ts.map +1 -0
  16. package/lib/__tests__/bridge/buildTransaction.test.js +62 -0
  17. package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -0
  18. package/lib/__tests__/bridge/createTransaction.test.d.ts +2 -0
  19. package/lib/__tests__/bridge/createTransaction.test.d.ts.map +1 -0
  20. package/lib/__tests__/bridge/createTransaction.test.js +38 -0
  21. package/lib/__tests__/bridge/createTransaction.test.js.map +1 -0
  22. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts +2 -0
  23. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  24. package/lib/__tests__/bridge/deviceTransactionConfig.test.js +43 -0
  25. package/lib/__tests__/bridge/deviceTransactionConfig.test.js.map +1 -0
  26. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts +2 -0
  27. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  28. package/lib/__tests__/bridge/estimateMaxSpendable.test.js +84 -0
  29. package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -0
  30. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts +2 -0
  31. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  32. package/lib/__tests__/bridge/getFeesForTransaction.test.js +188 -0
  33. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -0
  34. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts +2 -0
  35. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts.map +1 -0
  36. package/lib/__tests__/bridge/getTransactionStatus.test.js +133 -0
  37. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -0
  38. package/lib/__tests__/bridge/index.test.d.ts +2 -0
  39. package/lib/__tests__/bridge/index.test.d.ts.map +1 -0
  40. package/lib/__tests__/bridge/index.test.js +116 -0
  41. package/lib/__tests__/bridge/index.test.js.map +1 -0
  42. package/lib/__tests__/bridge/logic.test.d.ts +2 -0
  43. package/lib/__tests__/bridge/logic.test.d.ts.map +1 -0
  44. package/lib/__tests__/bridge/logic.test.js +773 -0
  45. package/lib/__tests__/bridge/logic.test.js.map +1 -0
  46. package/lib/__tests__/bridge/prepareTransaction.test.d.ts +2 -0
  47. package/lib/__tests__/bridge/prepareTransaction.test.d.ts.map +1 -0
  48. package/lib/__tests__/bridge/prepareTransaction.test.js +121 -0
  49. package/lib/__tests__/bridge/prepareTransaction.test.js.map +1 -0
  50. package/lib/__tests__/bridge/signOperation.test.d.ts +2 -0
  51. package/lib/__tests__/bridge/signOperation.test.d.ts.map +1 -0
  52. package/lib/__tests__/bridge/signOperation.test.js +185 -0
  53. package/lib/__tests__/bridge/signOperation.test.js.map +1 -0
  54. package/lib/__tests__/bridge/synchronisation.test.d.ts +2 -0
  55. package/lib/__tests__/bridge/synchronisation.test.d.ts.map +1 -0
  56. package/lib/__tests__/bridge/synchronisation.test.js +349 -0
  57. package/lib/__tests__/bridge/synchronisation.test.js.map +1 -0
  58. package/lib/__tests__/bridge/transaction.test.d.ts +2 -0
  59. package/lib/__tests__/bridge/transaction.test.d.ts.map +1 -0
  60. package/lib/__tests__/bridge/transaction.test.js +231 -0
  61. package/lib/__tests__/bridge/transaction.test.js.map +1 -0
  62. package/lib/__tests__/errors.test.d.ts +2 -0
  63. package/lib/__tests__/errors.test.d.ts.map +1 -0
  64. package/lib/__tests__/errors.test.js +18 -0
  65. package/lib/__tests__/errors.test.js.map +1 -0
  66. package/lib/__tests__/index.test.d.ts +2 -0
  67. package/lib/__tests__/index.test.d.ts.map +1 -0
  68. package/lib/__tests__/index.test.js +27 -0
  69. package/lib/__tests__/index.test.js.map +1 -0
  70. package/lib/__tests__/network/index.test.d.ts +2 -0
  71. package/lib/__tests__/network/index.test.d.ts.map +1 -0
  72. package/lib/__tests__/network/index.test.js +57 -0
  73. package/lib/__tests__/network/index.test.js.map +1 -0
  74. package/lib/__tests__/signer/index.test.d.ts +2 -0
  75. package/lib/__tests__/signer/index.test.d.ts.map +1 -0
  76. package/lib/__tests__/signer/index.test.js +37 -0
  77. package/lib/__tests__/signer/index.test.js.map +1 -0
  78. package/lib/api/graphql/queries.d.ts +5 -0
  79. package/lib/api/graphql/queries.d.ts.map +1 -0
  80. package/lib/api/graphql/queries.js +56 -0
  81. package/lib/api/graphql/queries.js.map +1 -0
  82. package/lib/api/graphql/types.d.ts +79 -0
  83. package/lib/api/graphql/types.d.ts.map +1 -0
  84. package/lib/api/graphql/types.js +3 -0
  85. package/lib/api/graphql/types.js.map +1 -0
  86. package/lib/api/index.d.ts +31 -0
  87. package/lib/api/index.d.ts.map +1 -0
  88. package/lib/api/index.js +200 -0
  89. package/lib/api/index.js.map +1 -0
  90. package/lib/bridge/bridge.fixture.d.ts +4 -0
  91. package/lib/bridge/bridge.fixture.d.ts.map +1 -0
  92. package/lib/bridge/bridge.fixture.js +56 -0
  93. package/lib/bridge/bridge.fixture.js.map +1 -0
  94. package/lib/bridge/broadcast.d.ts +7 -0
  95. package/lib/bridge/broadcast.d.ts.map +1 -0
  96. package/lib/bridge/broadcast.js +20 -0
  97. package/lib/bridge/broadcast.js.map +1 -0
  98. package/lib/bridge/buildTransaction.d.ts +7 -0
  99. package/lib/bridge/buildTransaction.d.ts.map +1 -0
  100. package/lib/bridge/buildTransaction.js +28 -0
  101. package/lib/bridge/buildTransaction.js.map +1 -0
  102. package/lib/bridge/createTransaction.d.ts +4 -0
  103. package/lib/bridge/createTransaction.d.ts.map +1 -0
  104. package/lib/bridge/createTransaction.js +20 -0
  105. package/lib/bridge/createTransaction.js.map +1 -0
  106. package/lib/bridge/deviceTransactionConfig.d.ts +11 -0
  107. package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -0
  108. package/lib/bridge/deviceTransactionConfig.js +23 -0
  109. package/lib/bridge/deviceTransactionConfig.js.map +1 -0
  110. package/lib/bridge/estimateMaxSpendable.d.ts +10 -0
  111. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
  112. package/lib/bridge/estimateMaxSpendable.js +30 -0
  113. package/lib/bridge/estimateMaxSpendable.js.map +1 -0
  114. package/lib/bridge/getFeesForTransaction.d.ts +16 -0
  115. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -0
  116. package/lib/bridge/getFeesForTransaction.js +74 -0
  117. package/lib/bridge/getFeesForTransaction.js.map +1 -0
  118. package/lib/bridge/getTransactionStatus.d.ts +5 -0
  119. package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
  120. package/lib/bridge/getTransactionStatus.js +48 -0
  121. package/lib/bridge/getTransactionStatus.js.map +1 -0
  122. package/lib/bridge/index.d.ts +8 -0
  123. package/lib/bridge/index.d.ts.map +1 -0
  124. package/lib/bridge/index.js +54 -0
  125. package/lib/bridge/index.js.map +1 -0
  126. package/lib/bridge/logic.d.ts +24 -0
  127. package/lib/bridge/logic.d.ts.map +1 -0
  128. package/lib/bridge/logic.js +200 -0
  129. package/lib/bridge/logic.js.map +1 -0
  130. package/lib/bridge/prepareTransaction.d.ts +5 -0
  131. package/lib/bridge/prepareTransaction.d.ts.map +1 -0
  132. package/lib/bridge/prepareTransaction.js +44 -0
  133. package/lib/bridge/prepareTransaction.js.map +1 -0
  134. package/lib/bridge/signOperation.d.ts +11 -0
  135. package/lib/bridge/signOperation.d.ts.map +1 -0
  136. package/lib/bridge/signOperation.js +77 -0
  137. package/lib/bridge/signOperation.js.map +1 -0
  138. package/lib/bridge/synchronisation.d.ts +3 -0
  139. package/lib/bridge/synchronisation.d.ts.map +1 -0
  140. package/lib/bridge/synchronisation.js +53 -0
  141. package/lib/bridge/synchronisation.js.map +1 -0
  142. package/lib/bridge/transaction.d.ts +15 -0
  143. package/lib/bridge/transaction.d.ts.map +1 -0
  144. package/lib/bridge/transaction.js +37 -0
  145. package/lib/bridge/transaction.js.map +1 -0
  146. package/lib/constants.d.ts +19 -0
  147. package/lib/constants.d.ts.map +1 -0
  148. package/lib/constants.js +33 -0
  149. package/lib/constants.js.map +1 -0
  150. package/lib/errors.d.ts +10 -0
  151. package/lib/errors.d.ts.map +1 -0
  152. package/lib/errors.js +8 -0
  153. package/lib/errors.js.map +1 -0
  154. package/lib/index.d.ts +3 -0
  155. package/lib/index.d.ts.map +1 -0
  156. package/lib/index.js +21 -0
  157. package/lib/index.js.map +1 -0
  158. package/lib/network/index.d.ts +6 -0
  159. package/lib/network/index.d.ts.map +1 -0
  160. package/lib/network/index.js +39 -0
  161. package/lib/network/index.js.map +1 -0
  162. package/lib/signer/index.d.ts +6 -0
  163. package/lib/signer/index.d.ts.map +1 -0
  164. package/lib/signer/index.js +23 -0
  165. package/lib/signer/index.js.map +1 -0
  166. package/lib/test/bot-specs.d.ts +7 -0
  167. package/lib/test/bot-specs.d.ts.map +1 -0
  168. package/lib/test/bot-specs.js +77 -0
  169. package/lib/test/bot-specs.js.map +1 -0
  170. package/lib/test/bridgeDatasetTest.d.ts +4 -0
  171. package/lib/test/bridgeDatasetTest.d.ts.map +1 -0
  172. package/lib/test/bridgeDatasetTest.js +85 -0
  173. package/lib/test/bridgeDatasetTest.js.map +1 -0
  174. package/lib/test/cli.d.ts +19 -0
  175. package/lib/test/cli.d.ts.map +1 -0
  176. package/lib/test/cli.js +59 -0
  177. package/lib/test/cli.js.map +1 -0
  178. package/lib/test/index.d.ts +4 -0
  179. package/lib/test/index.d.ts.map +1 -0
  180. package/lib/test/index.js +20 -0
  181. package/lib/test/index.js.map +1 -0
  182. package/lib/test/speculos-deviceActions.d.ts +5 -0
  183. package/lib/test/speculos-deviceActions.d.ts.map +1 -0
  184. package/lib/test/speculos-deviceActions.js +46 -0
  185. package/lib/test/speculos-deviceActions.js.map +1 -0
  186. package/lib/types/bridge.d.ts +5 -0
  187. package/lib/types/bridge.d.ts.map +1 -0
  188. package/lib/types/bridge.js +9 -0
  189. package/lib/types/bridge.js.map +1 -0
  190. package/lib/types/index.d.ts +62 -0
  191. package/lib/types/index.d.ts.map +1 -0
  192. package/lib/types/index.js +19 -0
  193. package/lib/types/index.js.map +1 -0
  194. package/lib/types/signer.d.ts +27 -0
  195. package/lib/types/signer.d.ts.map +1 -0
  196. package/lib/types/signer.js +3 -0
  197. package/lib/types/signer.js.map +1 -0
  198. package/lib-es/__tests__/api/index.test.d.ts +2 -0
  199. package/lib-es/__tests__/api/index.test.d.ts.map +1 -0
  200. package/lib-es/__tests__/api/index.test.js +442 -0
  201. package/lib-es/__tests__/api/index.test.js.map +1 -0
  202. package/lib-es/__tests__/bridge/broadcast.test.d.ts +2 -0
  203. package/lib-es/__tests__/bridge/broadcast.test.d.ts.map +1 -0
  204. package/lib-es/__tests__/bridge/broadcast.test.js +93 -0
  205. package/lib-es/__tests__/bridge/broadcast.test.js.map +1 -0
  206. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts +2 -0
  207. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts.map +1 -0
  208. package/lib-es/__tests__/bridge/buildTransaction.test.js +57 -0
  209. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -0
  210. package/lib-es/__tests__/bridge/createTransaction.test.d.ts +2 -0
  211. package/lib-es/__tests__/bridge/createTransaction.test.d.ts.map +1 -0
  212. package/lib-es/__tests__/bridge/createTransaction.test.js +33 -0
  213. package/lib-es/__tests__/bridge/createTransaction.test.js.map +1 -0
  214. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts +2 -0
  215. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  216. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js +18 -0
  217. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js.map +1 -0
  218. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts +2 -0
  219. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  220. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +79 -0
  221. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -0
  222. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts +2 -0
  223. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  224. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +160 -0
  225. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -0
  226. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts +2 -0
  227. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts.map +1 -0
  228. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +128 -0
  229. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -0
  230. package/lib-es/__tests__/bridge/index.test.d.ts +2 -0
  231. package/lib-es/__tests__/bridge/index.test.d.ts.map +1 -0
  232. package/lib-es/__tests__/bridge/index.test.js +111 -0
  233. package/lib-es/__tests__/bridge/index.test.js.map +1 -0
  234. package/lib-es/__tests__/bridge/logic.test.d.ts +2 -0
  235. package/lib-es/__tests__/bridge/logic.test.d.ts.map +1 -0
  236. package/lib-es/__tests__/bridge/logic.test.js +768 -0
  237. package/lib-es/__tests__/bridge/logic.test.js.map +1 -0
  238. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts +2 -0
  239. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts.map +1 -0
  240. package/lib-es/__tests__/bridge/prepareTransaction.test.js +116 -0
  241. package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +1 -0
  242. package/lib-es/__tests__/bridge/signOperation.test.d.ts +2 -0
  243. package/lib-es/__tests__/bridge/signOperation.test.d.ts.map +1 -0
  244. package/lib-es/__tests__/bridge/signOperation.test.js +157 -0
  245. package/lib-es/__tests__/bridge/signOperation.test.js.map +1 -0
  246. package/lib-es/__tests__/bridge/synchronisation.test.d.ts +2 -0
  247. package/lib-es/__tests__/bridge/synchronisation.test.d.ts.map +1 -0
  248. package/lib-es/__tests__/bridge/synchronisation.test.js +347 -0
  249. package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -0
  250. package/lib-es/__tests__/bridge/transaction.test.d.ts +2 -0
  251. package/lib-es/__tests__/bridge/transaction.test.d.ts.map +1 -0
  252. package/lib-es/__tests__/bridge/transaction.test.js +226 -0
  253. package/lib-es/__tests__/bridge/transaction.test.js.map +1 -0
  254. package/lib-es/__tests__/errors.test.d.ts +2 -0
  255. package/lib-es/__tests__/errors.test.d.ts.map +1 -0
  256. package/lib-es/__tests__/errors.test.js +16 -0
  257. package/lib-es/__tests__/errors.test.js.map +1 -0
  258. package/lib-es/__tests__/index.test.d.ts +2 -0
  259. package/lib-es/__tests__/index.test.d.ts.map +1 -0
  260. package/lib-es/__tests__/index.test.js +25 -0
  261. package/lib-es/__tests__/index.test.js.map +1 -0
  262. package/lib-es/__tests__/network/index.test.d.ts +2 -0
  263. package/lib-es/__tests__/network/index.test.d.ts.map +1 -0
  264. package/lib-es/__tests__/network/index.test.js +55 -0
  265. package/lib-es/__tests__/network/index.test.js.map +1 -0
  266. package/lib-es/__tests__/signer/index.test.d.ts +2 -0
  267. package/lib-es/__tests__/signer/index.test.d.ts.map +1 -0
  268. package/lib-es/__tests__/signer/index.test.js +32 -0
  269. package/lib-es/__tests__/signer/index.test.js.map +1 -0
  270. package/lib-es/api/graphql/queries.d.ts +5 -0
  271. package/lib-es/api/graphql/queries.d.ts.map +1 -0
  272. package/lib-es/api/graphql/queries.js +53 -0
  273. package/lib-es/api/graphql/queries.js.map +1 -0
  274. package/lib-es/api/graphql/types.d.ts +79 -0
  275. package/lib-es/api/graphql/types.d.ts.map +1 -0
  276. package/lib-es/api/graphql/types.js +2 -0
  277. package/lib-es/api/graphql/types.js.map +1 -0
  278. package/lib-es/api/index.d.ts +31 -0
  279. package/lib-es/api/index.d.ts.map +1 -0
  280. package/lib-es/api/index.js +193 -0
  281. package/lib-es/api/index.js.map +1 -0
  282. package/lib-es/bridge/bridge.fixture.d.ts +4 -0
  283. package/lib-es/bridge/bridge.fixture.d.ts.map +1 -0
  284. package/lib-es/bridge/bridge.fixture.js +48 -0
  285. package/lib-es/bridge/bridge.fixture.js.map +1 -0
  286. package/lib-es/bridge/broadcast.d.ts +7 -0
  287. package/lib-es/bridge/broadcast.d.ts.map +1 -0
  288. package/lib-es/bridge/broadcast.js +18 -0
  289. package/lib-es/bridge/broadcast.js.map +1 -0
  290. package/lib-es/bridge/buildTransaction.d.ts +7 -0
  291. package/lib-es/bridge/buildTransaction.d.ts.map +1 -0
  292. package/lib-es/bridge/buildTransaction.js +26 -0
  293. package/lib-es/bridge/buildTransaction.js.map +1 -0
  294. package/lib-es/bridge/createTransaction.d.ts +4 -0
  295. package/lib-es/bridge/createTransaction.d.ts.map +1 -0
  296. package/lib-es/bridge/createTransaction.js +15 -0
  297. package/lib-es/bridge/createTransaction.js.map +1 -0
  298. package/lib-es/bridge/deviceTransactionConfig.d.ts +11 -0
  299. package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -0
  300. package/lib-es/bridge/deviceTransactionConfig.js +19 -0
  301. package/lib-es/bridge/deviceTransactionConfig.js.map +1 -0
  302. package/lib-es/bridge/estimateMaxSpendable.d.ts +10 -0
  303. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
  304. package/lib-es/bridge/estimateMaxSpendable.js +28 -0
  305. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
  306. package/lib-es/bridge/getFeesForTransaction.d.ts +16 -0
  307. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -0
  308. package/lib-es/bridge/getFeesForTransaction.js +66 -0
  309. package/lib-es/bridge/getFeesForTransaction.js.map +1 -0
  310. package/lib-es/bridge/getTransactionStatus.d.ts +5 -0
  311. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
  312. package/lib-es/bridge/getTransactionStatus.js +46 -0
  313. package/lib-es/bridge/getTransactionStatus.js.map +1 -0
  314. package/lib-es/bridge/index.d.ts +8 -0
  315. package/lib-es/bridge/index.d.ts.map +1 -0
  316. package/lib-es/bridge/index.js +47 -0
  317. package/lib-es/bridge/index.js.map +1 -0
  318. package/lib-es/bridge/logic.d.ts +24 -0
  319. package/lib-es/bridge/logic.d.ts.map +1 -0
  320. package/lib-es/bridge/logic.js +183 -0
  321. package/lib-es/bridge/logic.js.map +1 -0
  322. package/lib-es/bridge/prepareTransaction.d.ts +5 -0
  323. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
  324. package/lib-es/bridge/prepareTransaction.js +39 -0
  325. package/lib-es/bridge/prepareTransaction.js.map +1 -0
  326. package/lib-es/bridge/signOperation.d.ts +11 -0
  327. package/lib-es/bridge/signOperation.d.ts.map +1 -0
  328. package/lib-es/bridge/signOperation.js +70 -0
  329. package/lib-es/bridge/signOperation.js.map +1 -0
  330. package/lib-es/bridge/synchronisation.d.ts +3 -0
  331. package/lib-es/bridge/synchronisation.d.ts.map +1 -0
  332. package/lib-es/bridge/synchronisation.js +49 -0
  333. package/lib-es/bridge/synchronisation.js.map +1 -0
  334. package/lib-es/bridge/transaction.d.ts +15 -0
  335. package/lib-es/bridge/transaction.d.ts.map +1 -0
  336. package/lib-es/bridge/transaction.js +31 -0
  337. package/lib-es/bridge/transaction.js.map +1 -0
  338. package/lib-es/constants.d.ts +19 -0
  339. package/lib-es/constants.d.ts.map +1 -0
  340. package/lib-es/constants.js +30 -0
  341. package/lib-es/constants.js.map +1 -0
  342. package/lib-es/errors.d.ts +10 -0
  343. package/lib-es/errors.d.ts.map +1 -0
  344. package/lib-es/errors.js +5 -0
  345. package/lib-es/errors.js.map +1 -0
  346. package/lib-es/index.d.ts +3 -0
  347. package/lib-es/index.d.ts.map +1 -0
  348. package/lib-es/index.js +3 -0
  349. package/lib-es/index.js.map +1 -0
  350. package/lib-es/network/index.d.ts +6 -0
  351. package/lib-es/network/index.d.ts.map +1 -0
  352. package/lib-es/network/index.js +35 -0
  353. package/lib-es/network/index.js.map +1 -0
  354. package/lib-es/signer/index.d.ts +6 -0
  355. package/lib-es/signer/index.d.ts.map +1 -0
  356. package/lib-es/signer/index.js +21 -0
  357. package/lib-es/signer/index.js.map +1 -0
  358. package/lib-es/test/bot-specs.d.ts +7 -0
  359. package/lib-es/test/bot-specs.d.ts.map +1 -0
  360. package/lib-es/test/bot-specs.js +72 -0
  361. package/lib-es/test/bot-specs.js.map +1 -0
  362. package/lib-es/test/bridgeDatasetTest.d.ts +4 -0
  363. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -0
  364. package/lib-es/test/bridgeDatasetTest.js +79 -0
  365. package/lib-es/test/bridgeDatasetTest.js.map +1 -0
  366. package/lib-es/test/cli.d.ts +19 -0
  367. package/lib-es/test/cli.d.ts.map +1 -0
  368. package/lib-es/test/cli.js +53 -0
  369. package/lib-es/test/cli.js.map +1 -0
  370. package/lib-es/test/index.d.ts +4 -0
  371. package/lib-es/test/index.d.ts.map +1 -0
  372. package/lib-es/test/index.js +4 -0
  373. package/lib-es/test/index.js.map +1 -0
  374. package/lib-es/test/speculos-deviceActions.d.ts +5 -0
  375. package/lib-es/test/speculos-deviceActions.d.ts.map +1 -0
  376. package/lib-es/test/speculos-deviceActions.js +43 -0
  377. package/lib-es/test/speculos-deviceActions.js.map +1 -0
  378. package/lib-es/types/bridge.d.ts +5 -0
  379. package/lib-es/types/bridge.d.ts.map +1 -0
  380. package/lib-es/types/bridge.js +6 -0
  381. package/lib-es/types/bridge.js.map +1 -0
  382. package/lib-es/types/index.d.ts +62 -0
  383. package/lib-es/types/index.d.ts.map +1 -0
  384. package/lib-es/types/index.js +3 -0
  385. package/lib-es/types/index.js.map +1 -0
  386. package/lib-es/types/signer.d.ts +27 -0
  387. package/lib-es/types/signer.d.ts.map +1 -0
  388. package/lib-es/types/signer.js +2 -0
  389. package/lib-es/types/signer.js.map +1 -0
  390. package/package.json +124 -0
  391. package/src/__tests__/api/index.test.ts +499 -0
  392. package/src/__tests__/bridge/broadcast.test.ts +98 -0
  393. package/src/__tests__/bridge/buildTransaction.test.ts +61 -0
  394. package/src/__tests__/bridge/createTransaction.test.ts +27 -0
  395. package/src/__tests__/bridge/deviceTransactionConfig.test.ts +19 -0
  396. package/src/__tests__/bridge/estimateMaxSpendable.test.ts +94 -0
  397. package/src/__tests__/bridge/getFeesForTransaction.test.ts +189 -0
  398. package/src/__tests__/bridge/getTransactionStatus.test.ts +155 -0
  399. package/src/__tests__/bridge/index.test.ts +108 -0
  400. package/src/__tests__/bridge/logic.test.ts +876 -0
  401. package/src/__tests__/bridge/prepareTransaction.test.ts +118 -0
  402. package/src/__tests__/bridge/signOperation.test.ts +178 -0
  403. package/src/__tests__/bridge/synchronisation.test.ts +374 -0
  404. package/src/__tests__/bridge/transaction.test.ts +261 -0
  405. package/src/__tests__/errors.test.ts +25 -0
  406. package/src/__tests__/index.test.ts +26 -0
  407. package/src/__tests__/network/index.test.ts +95 -0
  408. package/src/__tests__/signer/index.test.ts +24 -0
  409. package/src/api/graphql/queries.ts +53 -0
  410. package/src/api/graphql/types.ts +85 -0
  411. package/src/api/index.ts +224 -0
  412. package/src/bridge/bridge.fixture.ts +53 -0
  413. package/src/bridge/broadcast.ts +17 -0
  414. package/src/bridge/buildTransaction.ts +29 -0
  415. package/src/bridge/createTransaction.ts +17 -0
  416. package/src/bridge/deviceTransactionConfig.ts +30 -0
  417. package/src/bridge/estimateMaxSpendable.ts +35 -0
  418. package/src/bridge/getFeesForTransaction.ts +87 -0
  419. package/src/bridge/getTransactionStatus.ts +54 -0
  420. package/src/bridge/index.ts +65 -0
  421. package/src/bridge/logic.ts +265 -0
  422. package/src/bridge/prepareTransaction.ts +55 -0
  423. package/src/bridge/signOperation.ts +82 -0
  424. package/src/bridge/synchronisation.ts +50 -0
  425. package/src/bridge/transaction.ts +61 -0
  426. package/src/constants.ts +34 -0
  427. package/src/errors.ts +7 -0
  428. package/src/index.ts +3 -0
  429. package/src/network/index.ts +54 -0
  430. package/src/signer/index.ts +17 -0
  431. package/src/test/bot-specs.ts +86 -0
  432. package/src/test/bridgeDatasetTest.ts +82 -0
  433. package/src/test/cli.ts +80 -0
  434. package/src/test/index.ts +3 -0
  435. package/src/test/speculos-deviceActions.ts +52 -0
  436. package/src/types/bridge.ts +4 -0
  437. package/src/types/index.ts +74 -0
  438. package/src/types/signer.ts +26 -0
  439. package/tsconfig.json +14 -0
@@ -0,0 +1,18 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
11
+ import { AptosAPI } from "../api";
12
+ const broadcast = (_a) => __awaiter(void 0, [_a], void 0, function* ({ signedOperation, account, }) {
13
+ const { signature, operation } = signedOperation;
14
+ const hash = yield new AptosAPI(account.currency.id).broadcast(signature);
15
+ return patchOperationWithHash(operation, hash);
16
+ });
17
+ export default broadcast;
18
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,SAAS,GAAG,KAMK,EAAE,4CANA,EACvB,eAAe,EACf,OAAO,GAIR;IACC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAA,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { RawTransaction } from "@aptos-labs/ts-sdk";
2
+ import type { Account } from "@ledgerhq/types-live";
3
+ import { AptosAPI } from "../api";
4
+ import type { Transaction } from "../types";
5
+ declare const buildTransaction: (account: Account, transaction: Transaction, aptosClient: AptosAPI) => Promise<RawTransaction>;
6
+ export default buildTransaction;
7
+ //# sourceMappingURL=buildTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/buildTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,QAAA,MAAM,gBAAgB,YACX,OAAO,eACH,WAAW,eACX,QAAQ,KACpB,QAAQ,cAAc,CAMxB,CAAC;AAUF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,26 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { APTOS_ASSET_ID } from "../constants";
11
+ import { normalizeTransactionOptions } from "./logic";
12
+ const buildTransaction = (account, transaction, aptosClient) => __awaiter(void 0, void 0, void 0, function* () {
13
+ const txPayload = getPayload(transaction.recipient, transaction.amount);
14
+ const txOptions = normalizeTransactionOptions(transaction.options);
15
+ const tx = yield aptosClient.generateTransaction(account.freshAddress, txPayload, txOptions);
16
+ return tx;
17
+ });
18
+ const getPayload = (sendTo, amount) => {
19
+ return {
20
+ function: "0x1::aptos_account::transfer_coins",
21
+ typeArguments: [APTOS_ASSET_ID],
22
+ functionArguments: [sendTo, amount.toString()],
23
+ };
24
+ };
25
+ export default buildTransaction;
26
+ //# sourceMappingURL=buildTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTransaction.js","sourceRoot":"","sources":["../../src/bridge/buildTransaction.ts"],"names":[],"mappings":";;;;;;;;;AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAGtD,MAAM,gBAAgB,GAAG,CACvB,OAAgB,EAChB,WAAwB,EACxB,WAAqB,EACI,EAAE;IAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,2BAA2B,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAE7F,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,MAAiB,EAA0B,EAAE;IAC/E,OAAO;QACL,QAAQ,EAAE,oCAAoC;QAC9C,aAAa,EAAE,CAAC,cAAc,CAAC;QAC/B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Transaction } from "../types";
2
+ declare const createTransaction: () => Transaction;
3
+ export default createTransaction;
4
+ //# sourceMappingURL=createTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/createTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,QAAA,MAAM,iBAAiB,QAAO,WAU5B,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { DEFAULT_GAS, DEFAULT_GAS_PRICE } from "./logic";
3
+ const createTransaction = () => ({
4
+ family: "aptos",
5
+ mode: "send",
6
+ amount: BigNumber(0),
7
+ recipient: "",
8
+ useAllAmount: false,
9
+ options: {
10
+ maxGasAmount: DEFAULT_GAS.toString(),
11
+ gasUnitPrice: DEFAULT_GAS_PRICE.toString(),
12
+ },
13
+ });
14
+ export default createTransaction;
15
+ //# sourceMappingURL=createTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../../src/bridge/createTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,iBAAiB,GAAG,GAAgB,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACpB,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE;QACP,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;QACpC,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE;KAC3C;CACF,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CommonDeviceTransactionField as DeviceTransactionField } from "@ledgerhq/coin-framework/transaction/common";
2
+ import BigNumber from "bignumber.js";
3
+ export declare const methodToString: (method: number) => string;
4
+ export type ExtraDeviceTransactionField = {
5
+ type: "aptos.extendedAmount";
6
+ label: string;
7
+ value: number | BigNumber;
8
+ };
9
+ declare function getDeviceTransactionConfig(): Array<DeviceTransactionField>;
10
+ export default getDeviceTransactionConfig;
11
+ //# sourceMappingURL=deviceTransactionConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../../src/bridge/deviceTransactionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,IAAI,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1H,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,MAO/C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,iBAAS,0BAA0B,IAAI,KAAK,CAAC,sBAAsB,CAAC,CASnE;AAED,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,19 @@
1
+ export const methodToString = (method) => {
2
+ switch (method) {
3
+ case 0:
4
+ return "Coin transfer";
5
+ default:
6
+ return "Unknown";
7
+ }
8
+ };
9
+ function getDeviceTransactionConfig() {
10
+ const fields = [];
11
+ fields.push({
12
+ type: "text",
13
+ label: "Type",
14
+ value: methodToString(0),
15
+ });
16
+ return fields;
17
+ }
18
+ export default getDeviceTransactionConfig;
19
+ //# sourceMappingURL=deviceTransactionConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../../src/bridge/deviceTransactionConfig.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC;YACJ,OAAO,eAAe,CAAC;QACzB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAQF,SAAS,0BAA0B;IACjC,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;KACzB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Account, AccountLike } from "@ledgerhq/types-live";
2
+ import { BigNumber } from "bignumber.js";
3
+ import type { Transaction } from "../types";
4
+ declare const estimateMaxSpendable: ({ account, parentAccount, transaction, }: {
5
+ account: AccountLike;
6
+ parentAccount?: Account;
7
+ transaction?: Transaction;
8
+ }) => Promise<BigNumber>;
9
+ export default estimateMaxSpendable;
10
+ //# sourceMappingURL=estimateMaxSpendable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.d.ts","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAKzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,QAAA,MAAM,oBAAoB;aAKf,WAAW;oBACJ,OAAO;kBACT,WAAW;MACvB,QAAQ,SAAS,CAgBpB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,28 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BigNumber } from "bignumber.js";
11
+ import { getMainAccount } from "@ledgerhq/coin-framework/account/index";
12
+ import { AptosAPI } from "../api";
13
+ import { getEstimatedGas } from "./getFeesForTransaction";
14
+ import { DEFAULT_GAS, DEFAULT_GAS_PRICE, getMaxSendBalance } from "./logic";
15
+ const estimateMaxSpendable = (_a) => __awaiter(void 0, [_a], void 0, function* ({ account, parentAccount, transaction, }) {
16
+ const mainAccount = getMainAccount(account, parentAccount);
17
+ const aptosClient = new AptosAPI(mainAccount.currency.id);
18
+ let maxGasAmount = new BigNumber(DEFAULT_GAS);
19
+ let gasUnitPrice = new BigNumber(DEFAULT_GAS_PRICE);
20
+ if (transaction) {
21
+ const { estimate } = yield getEstimatedGas(mainAccount, transaction, aptosClient);
22
+ maxGasAmount = BigNumber(estimate.maxGasAmount);
23
+ gasUnitPrice = BigNumber(estimate.gasUnitPrice);
24
+ }
25
+ return getMaxSendBalance(mainAccount.spendableBalance, maxGasAmount, gasUnitPrice);
26
+ });
27
+ export default estimateMaxSpendable;
28
+ //# sourceMappingURL=estimateMaxSpendable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5E,MAAM,oBAAoB,GAAG,KAQN,EAAE,4CARW,EAClC,OAAO,EACP,aAAa,EACb,WAAW,GAKZ;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE1D,IAAI,YAAY,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,YAAY,GAAG,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAEpD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAElF,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChD,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACrF,CAAC,CAAA,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Account } from "@ledgerhq/types-live";
2
+ import BigNumber from "bignumber.js";
3
+ import { AptosAPI } from "../api";
4
+ import type { Transaction, TransactionErrors } from "../types";
5
+ type IGetEstimatedGasReturnType = {
6
+ fees: BigNumber;
7
+ estimate: {
8
+ maxGasAmount: string;
9
+ gasUnitPrice: string;
10
+ };
11
+ errors: TransactionErrors;
12
+ };
13
+ export declare const getFee: (account: Account, transaction: Transaction, aptosClient: AptosAPI) => Promise<IGetEstimatedGasReturnType>;
14
+ export declare const getEstimatedGas: (account: Account, transaction: Transaction, aptosClient: AptosAPI) => Promise<IGetEstimatedGasReturnType>;
15
+ export {};
16
+ //# sourceMappingURL=getFeesForTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/getFeesForTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE/D,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,MAAM,YACR,OAAO,eACH,WAAW,eACX,QAAQ,KACpB,QAAQ,0BAA0B,CA+CpC,CAAC;AAUF,eAAO,MAAM,eAAe,YACjB,OAAO,eACH,WAAW,eACX,QAAQ,KACpB,QAAQ,0BAA0B,CAEpC,CAAC"}
@@ -0,0 +1,66 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Ed25519PublicKey } from "@aptos-labs/ts-sdk";
11
+ import { log } from "@ledgerhq/logs";
12
+ import BigNumber from "bignumber.js";
13
+ import { makeLRUCache, seconds } from "@ledgerhq/live-network/cache";
14
+ import buildTransaction from "./buildTransaction";
15
+ import { DEFAULT_GAS, DEFAULT_GAS_PRICE, ESTIMATE_GAS_MUL } from "./logic";
16
+ export const getFee = (account, transaction, aptosClient) => __awaiter(void 0, void 0, void 0, function* () {
17
+ const res = {
18
+ fees: new BigNumber(DEFAULT_GAS).multipliedBy(DEFAULT_GAS_PRICE),
19
+ estimate: {
20
+ maxGasAmount: DEFAULT_GAS.toString(),
21
+ gasUnitPrice: DEFAULT_GAS_PRICE.toString(),
22
+ },
23
+ errors: Object.assign({}, transaction.errors),
24
+ };
25
+ let gasLimit = DEFAULT_GAS;
26
+ let gasPrice = DEFAULT_GAS_PRICE;
27
+ transaction.options = {
28
+ maxGasAmount: gasLimit.toString(),
29
+ gasUnitPrice: gasPrice.toString(),
30
+ };
31
+ if (account.xpub) {
32
+ try {
33
+ const publicKeyEd = new Ed25519PublicKey(account.xpub);
34
+ const tx = yield buildTransaction(account, transaction, aptosClient);
35
+ const simulation = yield aptosClient.simulateTransaction(publicKeyEd, tx);
36
+ const completedTx = simulation[0];
37
+ gasLimit = new BigNumber(completedTx.gas_used).multipliedBy(ESTIMATE_GAS_MUL);
38
+ gasPrice = new BigNumber(completedTx.gas_unit_price);
39
+ const expectedGas = gasPrice.multipliedBy(gasLimit);
40
+ const isUnderMaxSpendable = transaction.amount
41
+ .plus(expectedGas)
42
+ .isLessThan(account.spendableBalance);
43
+ if (isUnderMaxSpendable && !completedTx.success) {
44
+ // we want to skip INSUFFICIENT_BALANCE error because it will be processed by getTransactionStatus
45
+ if (!completedTx.vm_status.includes("INSUFFICIENT_BALANCE")) {
46
+ throw Error(`Simulation failed with following error: ${completedTx.vm_status}`);
47
+ }
48
+ }
49
+ res.fees = expectedGas;
50
+ res.estimate.maxGasAmount = gasLimit.toString();
51
+ res.estimate.gasUnitPrice = completedTx.gas_unit_price;
52
+ }
53
+ catch (error) {
54
+ log(error.message);
55
+ throw error;
56
+ }
57
+ }
58
+ return res;
59
+ });
60
+ const CACHE = makeLRUCache(getFee, (_account, transaction, _aptosClient) => {
61
+ return transaction.amount.toString();
62
+ }, seconds(30));
63
+ export const getEstimatedGas = (account, transaction, aptosClient) => __awaiter(void 0, void 0, void 0, function* () {
64
+ return yield CACHE(account, transaction, aptosClient);
65
+ });
66
+ //# sourceMappingURL=getFeesForTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.js","sourceRoot":"","sources":["../../src/bridge/getFeesForTransaction.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAY3E,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,OAAgB,EAChB,WAAwB,EACxB,WAAqB,EACgB,EAAE;IACvC,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC;QAChE,QAAQ,EAAE;YACR,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;YACpC,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE;SAC3C;QACD,MAAM,oBAAO,WAAW,CAAC,MAAM,CAAE;KAClC,CAAC;IAEF,IAAI,QAAQ,GAAG,WAAW,CAAC;IAC3B,IAAI,QAAQ,GAAG,iBAAiB,CAAC;IACjC,WAAW,CAAC,OAAO,GAAG;QACpB,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;QACjC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;KAClC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC;YACjE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAElC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAC9E,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAErD,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAEpD,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM;iBAC3C,IAAI,CAAC,WAAW,CAAC;iBACjB,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAExC,IAAI,mBAAmB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAChD,kGAAkG;gBAClG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,CAAC,2CAA2C,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;YACvB,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChD,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC;QACzD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAA,CAAC;AAEF,MAAM,KAAK,GAAG,YAAY,CACxB,MAAM,EACN,CAAC,QAAiB,EAAE,WAAwB,EAAE,YAAsB,EAAE,EAAE;IACtE,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACvC,CAAC,EACD,OAAO,CAAC,EAAE,CAAC,CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,WAAwB,EACxB,WAAqB,EACgB,EAAE;IACvC,OAAO,MAAM,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC,CAAA,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Account } from "@ledgerhq/types-live";
2
+ import type { Transaction, TransactionStatus } from "../types";
3
+ declare const getTransactionStatus: (a: Account, t: Transaction) => Promise<TransactionStatus>;
4
+ export default getTransactionStatus;
5
+ //# sourceMappingURL=getTransactionStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D,QAAA,MAAM,oBAAoB,MAAa,OAAO,KAAK,WAAW,KAAG,QAAQ,iBAAiB,CAqCzF,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,46 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BigNumber } from "bignumber.js";
11
+ import { NotEnoughBalance, RecipientRequired, InvalidAddress, FeeNotLoaded, InvalidAddressBecauseDestinationIsAlsoSource, AmountRequired, } from "@ledgerhq/errors";
12
+ import { AccountAddress } from "@aptos-labs/ts-sdk";
13
+ const getTransactionStatus = (a, t) => __awaiter(void 0, void 0, void 0, function* () {
14
+ const errors = {};
15
+ const warnings = {};
16
+ if (!t.fees) {
17
+ errors.fees = new FeeNotLoaded();
18
+ }
19
+ const estimatedFees = t.fees || BigNumber(0);
20
+ if (t.amount.eq(0)) {
21
+ errors.amount = new AmountRequired();
22
+ }
23
+ const amount = t.amount;
24
+ const totalSpent = BigNumber(t.amount).plus(estimatedFees);
25
+ if (totalSpent.gt(a.balance) && !errors.amount) {
26
+ errors.amount = new NotEnoughBalance();
27
+ }
28
+ if (!t.recipient) {
29
+ errors.recipient = new RecipientRequired();
30
+ }
31
+ else if (AccountAddress.isValid({ input: t.recipient }).valid === false && !errors.recipient) {
32
+ errors.recipient = new InvalidAddress("", { currencyName: a.currency.name });
33
+ }
34
+ else if (t.recipient === a.freshAddress && !errors.recipient) {
35
+ errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
36
+ }
37
+ return Promise.resolve({
38
+ errors,
39
+ warnings,
40
+ estimatedFees,
41
+ amount,
42
+ totalSpent,
43
+ });
44
+ });
45
+ export default getTransactionStatus;
46
+ //# sourceMappingURL=getTransactionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,4CAA4C,EAC5C,cAAc,GACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,oBAAoB,GAAG,CAAO,CAAU,EAAE,CAAc,EAA8B,EAAE;IAC5F,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAExB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3D,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,CAAC,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC7C,CAAC;SAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC/F,MAAM,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;SAAM,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC/D,MAAM,CAAC,SAAS,GAAG,IAAI,4CAA4C,EAAE,CAAC;IACxE,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,MAAM;QACN,QAAQ;QACR,aAAa;QACb,MAAM;QACN,UAAU;KACX,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
2
+ import type { Account, AccountBridge, CurrencyBridge } from "@ledgerhq/types-live";
3
+ import type { Transaction, AptosSigner } from "../types";
4
+ export declare function createBridges(signerContext: SignerContext<AptosSigner>): {
5
+ currencyBridge: CurrencyBridge;
6
+ accountBridge: AccountBridge<Transaction, Account, import("@ledgerhq/types-live").TransactionStatusCommon>;
7
+ };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAqB,WAAW,EAAE,MAAM,UAAU,CAAC;AAgD5E,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC;;;EAKtE"}
@@ -0,0 +1,47 @@
1
+ import { makeAccountBridgeReceive, makeScanAccounts, getSerializedAddressParameters, makeSync, updateTransaction, } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ import getAddressWrapper from "@ledgerhq/coin-framework/bridge/getAddressWrapper";
3
+ import resolver from "../signer";
4
+ import getTransactionStatus from "./getTransactionStatus";
5
+ import estimateMaxSpendable from "./estimateMaxSpendable";
6
+ import prepareTransaction from "./prepareTransaction";
7
+ import createTransaction from "./createTransaction";
8
+ import { getAccountShape } from "./synchronisation";
9
+ import buildSignOperation from "./signOperation";
10
+ import broadcast from "./broadcast";
11
+ function buildCurrencyBridge(signerContext) {
12
+ const getAddress = resolver(signerContext);
13
+ const scanAccounts = makeScanAccounts({
14
+ getAccountShape,
15
+ getAddressFn: getAddressWrapper(getAddress),
16
+ });
17
+ return {
18
+ preload: () => Promise.resolve({}),
19
+ hydrate: () => { },
20
+ scanAccounts,
21
+ };
22
+ }
23
+ const sync = makeSync({ getAccountShape });
24
+ function buildAccountBridge(signerContext) {
25
+ const getAddress = resolver(signerContext);
26
+ const receive = makeAccountBridgeReceive(getAddressWrapper(getAddress));
27
+ const signOperation = buildSignOperation(signerContext);
28
+ return {
29
+ estimateMaxSpendable,
30
+ createTransaction,
31
+ updateTransaction,
32
+ getTransactionStatus,
33
+ getSerializedAddressParameters,
34
+ prepareTransaction,
35
+ sync,
36
+ receive,
37
+ signOperation,
38
+ broadcast,
39
+ };
40
+ }
41
+ export function createBridges(signerContext) {
42
+ return {
43
+ currencyBridge: buildCurrencyBridge(signerContext),
44
+ accountBridge: buildAccountBridge(signerContext),
45
+ };
46
+ }
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,EAC9B,QAAQ,EACR,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,iBAAiB,MAAM,mDAAmD,CAAC;AAGlF,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,kBAAkB,MAAM,iBAAiB,CAAC;AACjD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,SAAS,mBAAmB,CAAC,aAAyC;IACpE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,gBAAgB,CAAC;QACpC,eAAe;QACf,YAAY,EAAE,iBAAiB,CAAC,UAAU,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;AAE3C,SAAS,kBAAkB,CACzB,aAAyC;IAEzC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACL,oBAAoB;QACpB,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB;QACpB,8BAA8B;QAC9B,kBAAkB;QAClB,IAAI;QACJ,OAAO;QACP,aAAa;QACb,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAyC;IACrE,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Event, InputEntryFunctionData, WriteSetChange } from "@aptos-labs/ts-sdk";
2
+ import type { Operation } from "@ledgerhq/types-live";
3
+ import BigNumber from "bignumber.js";
4
+ import type { AptosTransaction, TransactionOptions } from "../types";
5
+ export declare const DEFAULT_GAS: BigNumber;
6
+ export declare const DEFAULT_GAS_PRICE: BigNumber;
7
+ export declare const ESTIMATE_GAS_MUL: BigNumber;
8
+ export declare function isTestnet(currencyId: string): boolean;
9
+ export declare const getMaxSendBalance: (amount: BigNumber, gas: BigNumber, gasPrice: BigNumber) => BigNumber;
10
+ export declare function normalizeTransactionOptions(options: TransactionOptions): TransactionOptions;
11
+ export declare const getBlankOperation: (tx: AptosTransaction, id: string) => Operation<Record<string, string>>;
12
+ export declare const txsToOps: (info: {
13
+ address: string;
14
+ }, id: string, txs: (AptosTransaction | null)[]) => Operation[];
15
+ export declare function compareAddress(addressA: string, addressB: string): boolean;
16
+ export declare function getFunctionAddress(payload: InputEntryFunctionData): string | undefined;
17
+ export declare function processRecipients(payload: InputEntryFunctionData, address: string, op: Operation, function_address: string): void;
18
+ export declare function isChangeOfAptos(writeSetChange: WriteSetChange, event: Event, event_name: string): boolean;
19
+ export declare function getAptosAmounts(tx: AptosTransaction, address: string): {
20
+ amount_in: BigNumber;
21
+ amount_out: BigNumber;
22
+ };
23
+ export declare function calculateAmount(sender: string, address: string, fee: BigNumber, amount_in: BigNumber, amount_out: BigNumber): BigNumber;
24
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EACL,sBAAsB,EAEtB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,sBAAsB,CAAC;AACrE,OAAO,SAAS,MAAM,cAAc,CAAC;AAUrC,OAAO,KAAK,EAAqB,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAExF,eAAO,MAAM,WAAW,WAAqB,CAAC;AAC9C,eAAO,MAAM,iBAAiB,WAAqB,CAAC;AACpD,eAAO,MAAM,gBAAgB,WAAqB,CAAC;AAInD,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,eAAO,MAAM,iBAAiB,WACpB,SAAS,OACZ,SAAS,YACJ,SAAS,KAClB,SAIF,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAe3F;AAED,eAAO,MAAM,iBAAiB,OACxB,gBAAgB,MAChB,MAAM,KACT,UAAU,OAAO,MAAM,EAAE,MAAM,CAAC,CAejC,CAAC;AAUH,eAAO,MAAM,QAAQ,SACb;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,MACrB,MAAM,OACL,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,KAC/B,SAAS,EAsCX,CAAC;AAEF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAKhE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAMtF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,SAAS,EACb,gBAAgB,EAAE,MAAM,GACvB,IAAI,CA6BN;AAQD,wBAAgB,eAAe,CAC7B,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CA6BT;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,MAAM,GACd;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,SAAS,CAAA;CAAE,CAqBjD;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,GACpB,SAAS,CAUX"}
@@ -0,0 +1,183 @@
1
+ import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
2
+ import BigNumber from "bignumber.js";
3
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
4
+ import { APTOS_COIN_CHANGE, BATCH_TRANSFER_TYPES, DELEGATION_POOL_TYPES, DIRECTION, TRANSFER_TYPES, WRITE_RESOURCE, } from "../constants";
5
+ export const DEFAULT_GAS = new BigNumber(200);
6
+ export const DEFAULT_GAS_PRICE = new BigNumber(100);
7
+ export const ESTIMATE_GAS_MUL = new BigNumber(1.0); // define buffer for gas estimation change here, if needed
8
+ const CLEAN_HEX_REGEXP = /^0x0*|^0+/;
9
+ export function isTestnet(currencyId) {
10
+ return getCryptoCurrencyById(currencyId).isTestnetFor ? true : false;
11
+ }
12
+ export const getMaxSendBalance = (amount, gas, gasPrice) => {
13
+ const totalGas = gas.multipliedBy(gasPrice);
14
+ return amount.gt(totalGas) ? amount.minus(totalGas) : new BigNumber(0);
15
+ };
16
+ export function normalizeTransactionOptions(options) {
17
+ // FIXME: this is wrong. TransactionOptions is
18
+ // {
19
+ // maxGasAmount: string;
20
+ // gasUnitPrice: string;
21
+ // sequenceNumber?: string;
22
+ // expirationTimestampSecs?: string;
23
+ // }
24
+ // meaning we can't return undefined in check method.
25
+ // This method is useless, not deleting as it breaks code and this iteration is coin modularisation.
26
+ const check = (v) => ((v !== null && v !== void 0 ? v : "").toString().trim() ? v : undefined);
27
+ return {
28
+ maxGasAmount: check(options.maxGasAmount),
29
+ gasUnitPrice: check(options.gasUnitPrice),
30
+ };
31
+ }
32
+ export const getBlankOperation = (tx, id) => {
33
+ var _a, _b;
34
+ return ({
35
+ id: "",
36
+ hash: tx.hash,
37
+ type: "",
38
+ value: new BigNumber(0),
39
+ fee: new BigNumber(0),
40
+ blockHash: (_a = tx.block) === null || _a === void 0 ? void 0 : _a.hash,
41
+ blockHeight: (_b = tx.block) === null || _b === void 0 ? void 0 : _b.height,
42
+ senders: [],
43
+ recipients: [],
44
+ accountId: id,
45
+ date: new Date(parseInt(tx.timestamp) / 1000),
46
+ extra: { version: tx.version },
47
+ transactionSequenceNumber: parseInt(tx.sequence_number),
48
+ hasFailed: false,
49
+ });
50
+ };
51
+ const convertFunctionPayloadResponseToInputEntryFunctionData = (payload) => ({
52
+ function: payload.function,
53
+ typeArguments: payload.type_arguments,
54
+ functionArguments: payload.arguments,
55
+ });
56
+ export const txsToOps = (info, id, txs) => {
57
+ const { address } = info;
58
+ const ops = [];
59
+ txs.forEach(tx => {
60
+ if (tx !== null) {
61
+ const op = getBlankOperation(tx, id);
62
+ op.fee = new BigNumber(tx.gas_used).multipliedBy(new BigNumber(tx.gas_unit_price));
63
+ const payload = convertFunctionPayloadResponseToInputEntryFunctionData(tx.payload);
64
+ const function_address = getFunctionAddress(payload);
65
+ if (!function_address) {
66
+ return; // skip transaction without functions in payload
67
+ }
68
+ const { amount_in, amount_out } = getAptosAmounts(tx, address);
69
+ op.value = calculateAmount(tx.sender, address, op.fee, amount_in, amount_out);
70
+ op.type = compareAddress(tx.sender, address) ? DIRECTION.OUT : DIRECTION.IN;
71
+ op.senders.push(tx.sender);
72
+ processRecipients(payload, address, op, function_address);
73
+ if (op.value.isZero()) {
74
+ // skip transaction that result no Aptos change
75
+ op.type = DIRECTION.UNKNOWN;
76
+ }
77
+ op.hasFailed = !tx.success;
78
+ op.id = encodeOperationId(id, tx.hash, op.type);
79
+ if (op.type !== DIRECTION.UNKNOWN)
80
+ ops.push(op);
81
+ }
82
+ });
83
+ return ops;
84
+ };
85
+ export function compareAddress(addressA, addressB) {
86
+ return (addressA.replace(CLEAN_HEX_REGEXP, "").toLowerCase() ===
87
+ addressB.replace(CLEAN_HEX_REGEXP, "").toLowerCase());
88
+ }
89
+ export function getFunctionAddress(payload) {
90
+ if (payload.function) {
91
+ const parts = payload.function.split("::");
92
+ return parts.length === 3 && parts[0].length ? parts[0] : undefined;
93
+ }
94
+ return undefined;
95
+ }
96
+ export function processRecipients(payload, address, op, function_address) {
97
+ // get recipients buy 3 groups
98
+ if ((TRANSFER_TYPES.includes(payload.function) ||
99
+ DELEGATION_POOL_TYPES.includes(payload.function)) &&
100
+ payload.functionArguments &&
101
+ payload.functionArguments.length > 0 &&
102
+ typeof payload.functionArguments[0] === "string") {
103
+ // 1. Transfer like functions (includes some delegation pool functions)
104
+ op.recipients.push(payload.functionArguments[0].toString());
105
+ }
106
+ else if (BATCH_TRANSFER_TYPES.includes(payload.function) &&
107
+ payload.functionArguments &&
108
+ payload.functionArguments.length > 0 &&
109
+ Array.isArray(payload.functionArguments[0])) {
110
+ // 2. Batch function, to validate we are in the recipients list
111
+ if (!compareAddress(op.senders[0], address)) {
112
+ for (const recipient of payload.functionArguments[0]) {
113
+ if (recipient && compareAddress(recipient.toString(), address)) {
114
+ op.recipients.push(recipient.toString());
115
+ }
116
+ }
117
+ }
118
+ }
119
+ else {
120
+ // 3. other smart contracts, in this case smart contract will be treated as a recipient
121
+ op.recipients.push(function_address);
122
+ }
123
+ }
124
+ function checkWriteSets(tx, event, event_name) {
125
+ return tx.changes.some(change => {
126
+ return isChangeOfAptos(change, event, event_name);
127
+ });
128
+ }
129
+ export function isChangeOfAptos(writeSetChange, event, event_name) {
130
+ // to validate the event is related to Aptos Tokens we need to find change of type "write_resource"
131
+ // with the same guid as event
132
+ if (writeSetChange.type !== WRITE_RESOURCE) {
133
+ return false;
134
+ }
135
+ if (!("data" in writeSetChange)) {
136
+ return false;
137
+ }
138
+ const change_data = writeSetChange.data;
139
+ if (!("type" in change_data)) {
140
+ return false;
141
+ }
142
+ const mr = change_data;
143
+ if (mr.type !== APTOS_COIN_CHANGE) {
144
+ return false;
145
+ }
146
+ const change_event_data = mr.data[event_name];
147
+ return (change_event_data.guid.id.addr === event.guid.account_address &&
148
+ change_event_data.guid.id.creation_num === event.guid.creation_number);
149
+ }
150
+ export function getAptosAmounts(tx, address) {
151
+ let amount_in = new BigNumber(0);
152
+ let amount_out = new BigNumber(0);
153
+ // collect all events related to the address and calculate the overall amounts
154
+ tx.events.forEach(event => {
155
+ if (compareAddress(event.guid.account_address, address)) {
156
+ switch (event.type) {
157
+ case "0x1::coin::WithdrawEvent":
158
+ if (checkWriteSets(tx, event, "withdraw_events")) {
159
+ amount_out = amount_out.plus(event.data.amount);
160
+ }
161
+ break;
162
+ case "0x1::coin::DepositEvent":
163
+ if (checkWriteSets(tx, event, "deposit_events")) {
164
+ amount_in = amount_in.plus(event.data.amount);
165
+ }
166
+ break;
167
+ }
168
+ }
169
+ });
170
+ return { amount_in, amount_out };
171
+ }
172
+ export function calculateAmount(sender, address, fee, amount_in, amount_out) {
173
+ const is_sender = compareAddress(sender, address);
174
+ // Include fees if our address is the sender
175
+ if (is_sender) {
176
+ amount_out = amount_out.plus(fee);
177
+ }
178
+ // LL negates the amount for SEND transactions
179
+ // to show positive amount on the send transaction (ex: in "cancel" tx, when amount will be returned to our account)
180
+ // we need to make it negative
181
+ return is_sender ? amount_out.minus(amount_in) : amount_in.minus(amount_out);
182
+ }
183
+ //# sourceMappingURL=logic.js.map