@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 @@
1
+ {"version":3,"file":"buildTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/buildTransaction.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAIjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEhD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,2BAA2B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,WAAW,EAAE,GAAG;IAChB,iBAAiB,EAAE,GAAG;CACvB,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,OAAO;QACL,QAAQ,EAAE;YACR,OAAO;gBACL,mBAAmB;aACpB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,kBAAkB,EAAE,GAAS,EAAE;QAChC,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,wBAAwB,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG,IAAI,CAAC;QAEtB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,MAAM,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAEnF,MAAM,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAErD,MAAM,uBAAuB,GAC3B,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEpC,MAAM,CAAC,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;QAEH,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,QAAQ,EAAE,oCAAoC;YAC9C,aAAa,EAAE,CAAC,4BAA4B,CAAC;YAC7C,iBAAiB,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;SAC7B,CAAC,CAAC;QACH,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/createTransaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
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 createTransaction from "../../bridge/createTransaction";
12
+ jest.mock("../../bridge/logic", () => ({
13
+ DEFAULT_GAS: 100,
14
+ DEFAULT_GAS_PRICE: 200,
15
+ }));
16
+ describe("createTransaction Test", () => {
17
+ it("should return a transaction object", () => __awaiter(void 0, void 0, void 0, function* () {
18
+ const result = createTransaction();
19
+ const expected = {
20
+ family: "aptos",
21
+ mode: "send",
22
+ amount: BigNumber(0),
23
+ recipient: "",
24
+ useAllAmount: false,
25
+ options: {
26
+ maxGasAmount: "100",
27
+ gasUnitPrice: "200",
28
+ },
29
+ };
30
+ expect(result).toEqual(expected);
31
+ }));
32
+ });
33
+ //# sourceMappingURL=createTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/createTransaction.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAE/D,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,WAAW,EAAE,GAAG;IAChB,iBAAiB,EAAE,GAAG;CACvB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oCAAoC,EAAE,GAAS,EAAE;QAClD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACpB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE;gBACP,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,KAAK;aACpB;SACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deviceTransactionConfig.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTransactionConfig.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/deviceTransactionConfig.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import getDeviceTransactionConfig, { methodToString } from "../../bridge/deviceTransactionConfig";
2
+ describe("deviceTransactionConfig", () => {
3
+ test("methodToString", () => {
4
+ expect(methodToString(0)).toBe("Coin transfer");
5
+ expect(methodToString(1)).toBe("Unknown");
6
+ });
7
+ test("getDeviceTransactionConfig", () => {
8
+ const fields = getDeviceTransactionConfig();
9
+ expect(fields).toMatchObject([
10
+ {
11
+ type: "text",
12
+ label: "Type",
13
+ value: "Coin transfer",
14
+ },
15
+ ]);
16
+ });
17
+ });
18
+ //# sourceMappingURL=deviceTransactionConfig.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTransactionConfig.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/deviceTransactionConfig.test.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,EAAE,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAElG,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,eAAe;aACvB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=estimateMaxSpendable.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
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 { createFixtureAccount, createFixtureTransaction } from "../../bridge/bridge.fixture";
11
+ import estimateMaxSpendable from "../../bridge/estimateMaxSpendable";
12
+ import BigNumber from "bignumber.js";
13
+ jest.mock("../../bridge/getFeesForTransaction", () => ({
14
+ getEstimatedGas: jest.fn(() => ({
15
+ fees: new BigNumber(0),
16
+ estimate: {
17
+ maxGasAmount: 1,
18
+ gasUnitPrice: 2,
19
+ },
20
+ errors: {},
21
+ })),
22
+ }));
23
+ describe("estimateMaxSpendable Test", () => {
24
+ describe("spendable balance is lower than the total gas", () => {
25
+ it("should return 0", () => __awaiter(void 0, void 0, void 0, function* () {
26
+ const account = createFixtureAccount();
27
+ const spendableBalance = new BigNumber(0);
28
+ account.spendableBalance = spendableBalance;
29
+ const result = yield estimateMaxSpendable({
30
+ account,
31
+ });
32
+ const expected = spendableBalance;
33
+ expect(result.isEqualTo(expected)).toBe(true);
34
+ }));
35
+ });
36
+ describe("spendable balance is higher than the total gas", () => {
37
+ it("should return spendable amount minus total gas", () => __awaiter(void 0, void 0, void 0, function* () {
38
+ const account = createFixtureAccount();
39
+ const spendableBalance = new BigNumber(100000);
40
+ account.spendableBalance = spendableBalance;
41
+ const result = yield estimateMaxSpendable({
42
+ account,
43
+ });
44
+ const expected = new BigNumber(80000);
45
+ expect(result.isEqualTo(expected)).toBe(true);
46
+ }));
47
+ });
48
+ describe("transaction spendable balance is higher than the total gas", () => {
49
+ it("should return transaction spendable amount minus total gas", () => __awaiter(void 0, void 0, void 0, function* () {
50
+ const account = createFixtureAccount();
51
+ const transaction = createFixtureTransaction();
52
+ const spendableBalance = new BigNumber(1);
53
+ account.spendableBalance = spendableBalance;
54
+ const result = yield estimateMaxSpendable({
55
+ account,
56
+ parentAccount: account,
57
+ transaction,
58
+ });
59
+ const expected = new BigNumber(0);
60
+ expect(result.isEqualTo(expected)).toBe(true);
61
+ }));
62
+ });
63
+ describe("transaction spendable balance is higher than the total gas", () => {
64
+ it("should return transaction spendable amount minus total gas", () => __awaiter(void 0, void 0, void 0, function* () {
65
+ const account = createFixtureAccount();
66
+ const transaction = createFixtureTransaction();
67
+ const spendableBalance = new BigNumber(100000);
68
+ account.spendableBalance = spendableBalance;
69
+ const result = yield estimateMaxSpendable({
70
+ account,
71
+ parentAccount: account,
72
+ transaction,
73
+ });
74
+ const expected = new BigNumber(99998);
75
+ expect(result.isEqualTo(expected)).toBe(true);
76
+ }));
77
+ });
78
+ });
79
+ //# sourceMappingURL=estimateMaxSpendable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getFeesForTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,160 @@
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 { createFixtureAccount, createFixtureTransaction } from "../../bridge/bridge.fixture";
12
+ import * as getFeesForTransaction from "../../bridge/getFeesForTransaction";
13
+ import { AptosAPI } from "../../api";
14
+ let simulateTransaction = jest.fn();
15
+ jest.mock("../../api", () => {
16
+ return {
17
+ AptosAPI: function () {
18
+ return {
19
+ estimateGasPrice: jest.fn(() => ({ gas_estimate: 101 })),
20
+ generateTransaction: jest.fn(() => "tx"),
21
+ simulateTransaction,
22
+ getAccount: jest.fn(() => ({ sequence_number: "123" })),
23
+ };
24
+ },
25
+ };
26
+ });
27
+ jest.mock("@aptos-labs/ts-sdk", () => {
28
+ return {
29
+ Ed25519PublicKey: jest.fn(),
30
+ };
31
+ });
32
+ jest.mock("../../bridge/logic", () => {
33
+ return {
34
+ DEFAULT_GAS: 201,
35
+ DEFAULT_GAS_PRICE: 101,
36
+ ESTIMATE_GAS_MUL: 1,
37
+ normalizeTransactionOptions: jest.fn(),
38
+ };
39
+ });
40
+ describe("getFeesForTransaction Test", () => {
41
+ describe("when using getFee", () => {
42
+ describe("with vm_status as INSUFFICIENT_BALANCE", () => {
43
+ it("should return a fee estimation object", () => __awaiter(void 0, void 0, void 0, function* () {
44
+ simulateTransaction = jest.fn(() => [
45
+ {
46
+ success: false,
47
+ vm_status: ["INSUFFICIENT_BALANCE"],
48
+ expiration_timestamp_secs: 5,
49
+ gas_used: "202",
50
+ gas_unit_price: "102",
51
+ },
52
+ ]);
53
+ const account = createFixtureAccount();
54
+ const transaction = createFixtureTransaction();
55
+ const aptosClient = new AptosAPI(account.currency.id);
56
+ transaction.amount = new BigNumber(1);
57
+ account.xpub = "xpub";
58
+ account.spendableBalance = new BigNumber(100000000);
59
+ const result = yield getFeesForTransaction.getFee(account, transaction, aptosClient);
60
+ const expected = {
61
+ fees: new BigNumber(20604),
62
+ estimate: {
63
+ maxGasAmount: "202",
64
+ gasUnitPrice: "102",
65
+ },
66
+ errors: {},
67
+ };
68
+ expect(result).toEqual(expected);
69
+ }));
70
+ });
71
+ describe("with vm_status as DUMMY_STATE", () => {
72
+ it("should return a fee estimation object", () => {
73
+ simulateTransaction = jest.fn(() => [
74
+ {
75
+ success: false,
76
+ vm_status: ["DUMMY_STATE"],
77
+ expiration_timestamp_secs: 5,
78
+ gas_used: "9",
79
+ gas_unit_price: "100",
80
+ },
81
+ ]);
82
+ const account = createFixtureAccount();
83
+ const transaction = createFixtureTransaction();
84
+ const aptosClient = new AptosAPI(account.currency.id);
85
+ transaction.amount = new BigNumber(1);
86
+ account.xpub = "xpub";
87
+ account.spendableBalance = new BigNumber(100000000);
88
+ expect(() => __awaiter(void 0, void 0, void 0, function* () {
89
+ yield getFeesForTransaction.getFee(account, transaction, aptosClient);
90
+ })).rejects.toThrow("Simulation failed with following error: DUMMY_STATE");
91
+ });
92
+ });
93
+ });
94
+ describe("when using getEstimatedGas", () => {
95
+ describe("when key not in cache", () => {
96
+ it("should return fee", () => __awaiter(void 0, void 0, void 0, function* () {
97
+ simulateTransaction = jest.fn(() => [
98
+ {
99
+ success: true,
100
+ vm_status: [],
101
+ expiration_timestamp_secs: 5,
102
+ gas_used: "9",
103
+ gas_unit_price: "102",
104
+ },
105
+ ]);
106
+ const account = createFixtureAccount();
107
+ const transaction = createFixtureTransaction();
108
+ const aptosClient = new AptosAPI(account.currency.id);
109
+ transaction.amount = new BigNumber(1);
110
+ account.xpub = "xpub";
111
+ account.spendableBalance = new BigNumber(100000000);
112
+ const result = yield getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
113
+ const expected = {
114
+ errors: {},
115
+ estimate: {
116
+ gasUnitPrice: "102",
117
+ maxGasAmount: "9",
118
+ },
119
+ fees: new BigNumber("918"),
120
+ };
121
+ expect(result).toEqual(expected);
122
+ }));
123
+ });
124
+ describe("when key is in cache", () => {
125
+ beforeEach(() => {
126
+ jest.clearAllMocks();
127
+ });
128
+ it("should return cached fee", () => __awaiter(void 0, void 0, void 0, function* () {
129
+ simulateTransaction = jest.fn(() => [
130
+ {
131
+ success: true,
132
+ vm_status: [],
133
+ expiration_timestamp_secs: 5,
134
+ gas_used: "202",
135
+ gas_unit_price: "102",
136
+ },
137
+ ]);
138
+ const account = createFixtureAccount();
139
+ account.xpub = "xpub";
140
+ const transaction = createFixtureTransaction();
141
+ const aptosClient = new AptosAPI(account.currency.id);
142
+ transaction.amount = new BigNumber(10);
143
+ const result1 = yield getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
144
+ const result2 = yield getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
145
+ expect(simulateTransaction.mock.calls).toHaveLength(1);
146
+ const expected = {
147
+ errors: {},
148
+ estimate: {
149
+ gasUnitPrice: "102",
150
+ maxGasAmount: "202",
151
+ },
152
+ fees: new BigNumber("20604"),
153
+ };
154
+ expect(result1).toEqual(expected);
155
+ expect(result2).toEqual(expected);
156
+ }));
157
+ });
158
+ });
159
+ });
160
+ //# sourceMappingURL=getFeesForTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getTransactionStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
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 { createFixtureAccount, createFixtureTransaction } from "../../bridge/bridge.fixture";
12
+ import getTransactionStatus from "../../bridge/getTransactionStatus";
13
+ import { AmountRequired, FeeNotLoaded, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, NotEnoughBalance, RecipientRequired, } from "@ledgerhq/errors";
14
+ describe("getTransactionStatus Test", () => {
15
+ it("should return errors for AmountRequired", () => __awaiter(void 0, void 0, void 0, function* () {
16
+ const account = createFixtureAccount();
17
+ const transaction = createFixtureTransaction();
18
+ transaction.fees = new BigNumber(2);
19
+ transaction.recipient = "0x" + "0".repeat(64);
20
+ const result = yield getTransactionStatus(account, transaction);
21
+ const expected = {
22
+ errors: {
23
+ amount: new AmountRequired(),
24
+ },
25
+ warnings: {},
26
+ estimatedFees: new BigNumber(2),
27
+ amount: new BigNumber(0),
28
+ totalSpent: new BigNumber(2),
29
+ };
30
+ expect(result).toEqual(expected);
31
+ }));
32
+ it("should return errors for FeeNotLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
33
+ const account = createFixtureAccount();
34
+ account.balance = new BigNumber(10);
35
+ const transaction = createFixtureTransaction();
36
+ transaction.fees = null;
37
+ transaction.amount = new BigNumber(2);
38
+ transaction.recipient = "0x" + "0".repeat(64);
39
+ const result = yield getTransactionStatus(account, transaction);
40
+ const expected = {
41
+ errors: {
42
+ fees: new FeeNotLoaded(),
43
+ },
44
+ warnings: {},
45
+ estimatedFees: new BigNumber(0),
46
+ amount: new BigNumber(2),
47
+ totalSpent: new BigNumber(2),
48
+ };
49
+ expect(result).toEqual(expected);
50
+ }));
51
+ it("should return errors for NotEnoughBalance", () => __awaiter(void 0, void 0, void 0, function* () {
52
+ const account = createFixtureAccount();
53
+ account.balance = new BigNumber(1);
54
+ const transaction = createFixtureTransaction();
55
+ transaction.recipient = "0x" + "0".repeat(64);
56
+ transaction.amount = new BigNumber(2);
57
+ transaction.fees = new BigNumber(2);
58
+ const result = yield getTransactionStatus(account, transaction);
59
+ const expected = {
60
+ errors: {
61
+ amount: new NotEnoughBalance(),
62
+ },
63
+ warnings: {},
64
+ estimatedFees: new BigNumber(2),
65
+ amount: new BigNumber(2),
66
+ totalSpent: new BigNumber(4),
67
+ };
68
+ expect(result).toEqual(expected);
69
+ }));
70
+ it("should return errors for RecipientRequired", () => __awaiter(void 0, void 0, void 0, function* () {
71
+ const account = createFixtureAccount();
72
+ account.balance = new BigNumber(10);
73
+ const transaction = createFixtureTransaction();
74
+ transaction.amount = new BigNumber(2);
75
+ transaction.fees = new BigNumber(2);
76
+ const result = yield getTransactionStatus(account, transaction);
77
+ const expected = {
78
+ errors: {
79
+ recipient: new RecipientRequired(),
80
+ },
81
+ warnings: {},
82
+ estimatedFees: new BigNumber(2),
83
+ amount: new BigNumber(2),
84
+ totalSpent: new BigNumber(4),
85
+ };
86
+ expect(result).toEqual(expected);
87
+ }));
88
+ it("should return errors for InvalidAddress", () => __awaiter(void 0, void 0, void 0, function* () {
89
+ const account = createFixtureAccount();
90
+ const transaction = createFixtureTransaction();
91
+ transaction.amount = new BigNumber(2);
92
+ transaction.fees = new BigNumber(2);
93
+ transaction.recipient = "0x";
94
+ const result = yield getTransactionStatus(account, transaction);
95
+ const expected = {
96
+ errors: {
97
+ recipient: new InvalidAddress(),
98
+ amount: new NotEnoughBalance(),
99
+ },
100
+ warnings: {},
101
+ estimatedFees: new BigNumber(2),
102
+ amount: new BigNumber(2),
103
+ totalSpent: new BigNumber(4),
104
+ };
105
+ expect(result).toEqual(expected);
106
+ }));
107
+ it("should return errors for InvalidAddressBecauseDestinationIsAlsoSource", () => __awaiter(void 0, void 0, void 0, function* () {
108
+ const account = createFixtureAccount();
109
+ const transaction = createFixtureTransaction();
110
+ transaction.amount = new BigNumber(2);
111
+ transaction.fees = new BigNumber(2);
112
+ transaction.recipient = "0x" + "0".repeat(64);
113
+ account.freshAddress = transaction.recipient;
114
+ const result = yield getTransactionStatus(account, transaction);
115
+ const expected = {
116
+ errors: {
117
+ recipient: new InvalidAddressBecauseDestinationIsAlsoSource(),
118
+ amount: new NotEnoughBalance(),
119
+ },
120
+ warnings: {},
121
+ estimatedFees: new BigNumber(2),
122
+ amount: new BigNumber(2),
123
+ totalSpent: new BigNumber(4),
124
+ };
125
+ expect(result).toEqual(expected);
126
+ }));
127
+ });
128
+ //# sourceMappingURL=getTransactionStatus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
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 { createBridges } from "../../bridge";
12
+ import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
13
+ const signer = jest.fn();
14
+ const bridge = createBridges(signer);
15
+ describe("Aptos bridge interface ", () => {
16
+ describe("currencyBridge", () => {
17
+ it("should have a preload method that returns a promise", () => __awaiter(void 0, void 0, void 0, function* () {
18
+ const cryptoCurrency = getCryptoCurrencyById("aptos");
19
+ const result = bridge.currencyBridge.preload(cryptoCurrency);
20
+ expect(result).toBeInstanceOf(Promise);
21
+ yield expect(result).resolves.toEqual({});
22
+ }));
23
+ it("should have a hydrate method that is a function", () => {
24
+ expect(bridge.currencyBridge.hydrate).toBeDefined();
25
+ expect(typeof bridge.currencyBridge.hydrate).toBe("function");
26
+ const cryptoCurrency = getCryptoCurrencyById("aptos");
27
+ const result = bridge.currencyBridge.hydrate({}, cryptoCurrency);
28
+ expect(result).toBeUndefined();
29
+ });
30
+ it("should have a scanAccounts method that is a function", () => {
31
+ expect(bridge.currencyBridge.scanAccounts).toBeDefined();
32
+ expect(typeof bridge.currencyBridge.scanAccounts).toBe("function");
33
+ const cryptoCurrency = getCryptoCurrencyById("aptos");
34
+ const deviceId = "test-device";
35
+ const result = bridge.currencyBridge.scanAccounts({
36
+ currency: cryptoCurrency,
37
+ deviceId,
38
+ syncConfig: { paginationConfig: {} },
39
+ });
40
+ expect(result).toBeDefined();
41
+ });
42
+ });
43
+ describe("accountBridge", () => {
44
+ it("should contain all methods", () => {
45
+ expect(bridge.accountBridge.estimateMaxSpendable).toBeDefined();
46
+ expect(typeof bridge.accountBridge.estimateMaxSpendable).toBe("function");
47
+ expect(bridge.accountBridge.createTransaction).toBeDefined();
48
+ expect(typeof bridge.accountBridge.createTransaction).toBe("function");
49
+ expect(bridge.accountBridge.updateTransaction).toBeDefined();
50
+ expect(typeof bridge.accountBridge.updateTransaction).toBe("function");
51
+ expect(bridge.accountBridge.getTransactionStatus).toBeDefined();
52
+ expect(typeof bridge.accountBridge.getTransactionStatus).toBe("function");
53
+ expect(bridge.accountBridge.prepareTransaction).toBeDefined();
54
+ expect(typeof bridge.accountBridge.prepareTransaction).toBe("function");
55
+ expect(bridge.accountBridge.sync).toBeDefined();
56
+ expect(typeof bridge.accountBridge.sync).toBe("function");
57
+ expect(bridge.accountBridge.receive).toBeDefined();
58
+ expect(typeof bridge.accountBridge.receive).toBe("function");
59
+ expect(bridge.accountBridge.signOperation).toBeDefined();
60
+ expect(typeof bridge.accountBridge.signOperation).toBe("function");
61
+ expect(bridge.accountBridge.broadcast).toBeDefined();
62
+ expect(typeof bridge.accountBridge.broadcast).toBe("function");
63
+ expect(bridge.currencyBridge.hydrate).toBeDefined();
64
+ expect(typeof bridge.currencyBridge.hydrate).toBe("function");
65
+ expect(bridge.currencyBridge.preload).toBeDefined();
66
+ expect(typeof bridge.currencyBridge.preload).toBe("function");
67
+ expect(bridge.currencyBridge.scanAccounts).toBeDefined();
68
+ expect(typeof bridge.currencyBridge.scanAccounts).toBe("function");
69
+ });
70
+ });
71
+ describe("updateTransaction", () => {
72
+ it("should update the transaction with the given patch", () => {
73
+ const initialTransaction = {
74
+ amount: new BigNumber(100),
75
+ recipient: "address1",
76
+ mode: "send",
77
+ family: "aptos",
78
+ options: { maxGasAmount: "", gasUnitPrice: "" },
79
+ };
80
+ const patch = { amount: new BigNumber(200) };
81
+ const updatedTransaction = bridge.accountBridge.updateTransaction(initialTransaction, patch);
82
+ expect(updatedTransaction).toEqual({
83
+ amount: new BigNumber(200),
84
+ recipient: "address1",
85
+ mode: "send",
86
+ family: "aptos",
87
+ options: { maxGasAmount: "", gasUnitPrice: "" },
88
+ });
89
+ });
90
+ it("should not modify the original transaction object", () => {
91
+ const initialTransaction = {
92
+ amount: new BigNumber(100),
93
+ recipient: "address1",
94
+ mode: "send",
95
+ family: "aptos",
96
+ options: { maxGasAmount: "", gasUnitPrice: "" },
97
+ };
98
+ const patch = { amount: new BigNumber(200) };
99
+ const updatedTransaction = bridge.accountBridge.updateTransaction(initialTransaction, patch);
100
+ expect(initialTransaction).toEqual({
101
+ amount: new BigNumber(100),
102
+ recipient: "address1",
103
+ mode: "send",
104
+ family: "aptos",
105
+ options: { maxGasAmount: "", gasUnitPrice: "" },
106
+ });
107
+ expect(updatedTransaction).not.toBe(initialTransaction);
108
+ });
109
+ });
110
+ });
111
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/index.test.ts"],"names":[],"mappings":"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"}