@ledgerhq/coin-vechain 2.9.1-nightly.1 → 2.10.0-nightly.3

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 (475) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +16 -4
  3. package/CHANGELOG.md +22 -0
  4. package/lib/bridge/broadcast.d.ts.map +1 -1
  5. package/lib/bridge/broadcast.js +2 -3
  6. package/lib/bridge/broadcast.js.map +1 -1
  7. package/lib/bridge/broadcast.test.d.ts +2 -0
  8. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  9. package/lib/bridge/broadcast.test.js +188 -0
  10. package/lib/bridge/broadcast.test.js.map +1 -0
  11. package/lib/bridge/buildOptimisticOperatioin.test.d.ts +2 -0
  12. package/lib/bridge/buildOptimisticOperatioin.test.d.ts.map +1 -0
  13. package/lib/bridge/buildOptimisticOperatioin.test.js +286 -0
  14. package/lib/bridge/buildOptimisticOperatioin.test.js.map +1 -0
  15. package/lib/bridge/createTransaction.d.ts.map +1 -1
  16. package/lib/bridge/createTransaction.js +2 -1
  17. package/lib/bridge/createTransaction.js.map +1 -1
  18. package/lib/bridge/createTransaction.test.d.ts +2 -0
  19. package/lib/bridge/createTransaction.test.d.ts.map +1 -0
  20. package/lib/bridge/createTransaction.test.js +167 -0
  21. package/lib/bridge/createTransaction.test.js.map +1 -0
  22. package/lib/bridge/estimateMaxSpendable.test.d.ts +2 -0
  23. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  24. package/lib/bridge/estimateMaxSpendable.test.js +269 -0
  25. package/lib/bridge/estimateMaxSpendable.test.js.map +1 -0
  26. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  27. package/lib/bridge/getTransactionStatus.js +3 -1
  28. package/lib/bridge/getTransactionStatus.js.map +1 -1
  29. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  30. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  31. package/lib/bridge/getTransactionStatus.test.js +282 -0
  32. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  33. package/lib/bridge/helpers.test.d.ts +2 -0
  34. package/lib/bridge/helpers.test.d.ts.map +1 -0
  35. package/lib/bridge/helpers.test.js +298 -0
  36. package/lib/bridge/helpers.test.js.map +1 -0
  37. package/lib/bridge/prepareTransaction.d.ts.map +1 -1
  38. package/lib/bridge/prepareTransaction.js +10 -3
  39. package/lib/bridge/prepareTransaction.js.map +1 -1
  40. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  41. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  42. package/lib/bridge/prepareTransaction.test.js +277 -0
  43. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  44. package/lib/bridge/signOperation.d.ts.map +1 -1
  45. package/lib/bridge/signOperation.js +3 -3
  46. package/lib/bridge/signOperation.js.map +1 -1
  47. package/lib/bridge/signOperation.test.d.ts +2 -0
  48. package/lib/bridge/signOperation.test.d.ts.map +1 -0
  49. package/lib/bridge/signOperation.test.js +295 -0
  50. package/lib/bridge/signOperation.test.js.map +1 -0
  51. package/lib/bridge/synchronisation.d.ts.map +1 -1
  52. package/lib/bridge/synchronisation.js +2 -2
  53. package/lib/bridge/synchronisation.js.map +1 -1
  54. package/lib/bridge/transaction.test.d.ts +2 -0
  55. package/lib/bridge/transaction.test.d.ts.map +1 -0
  56. package/lib/bridge/transaction.test.js +353 -0
  57. package/lib/bridge/transaction.test.js.map +1 -0
  58. package/lib/common-logic/calculateClauses.d.ts +5 -0
  59. package/lib/common-logic/calculateClauses.d.ts.map +1 -0
  60. package/lib/common-logic/{logic.js → calculateClauses.js} +7 -10
  61. package/lib/common-logic/calculateClauses.js.map +1 -0
  62. package/lib/common-logic/calculateClauses.test.d.ts +2 -0
  63. package/lib/common-logic/calculateClauses.test.d.ts.map +1 -0
  64. package/lib/common-logic/calculateClauses.test.js +156 -0
  65. package/lib/common-logic/calculateClauses.test.js.map +1 -0
  66. package/lib/common-logic/calculateGasFees.d.ts +9 -0
  67. package/lib/common-logic/calculateGasFees.d.ts.map +1 -0
  68. package/lib/common-logic/calculateGasFees.js +39 -0
  69. package/lib/common-logic/calculateGasFees.js.map +1 -0
  70. package/lib/common-logic/calculateGasFees.test.d.ts +2 -0
  71. package/lib/common-logic/calculateGasFees.test.d.ts.map +1 -0
  72. package/lib/common-logic/calculateGasFees.test.js +279 -0
  73. package/lib/common-logic/calculateGasFees.test.js.map +1 -0
  74. package/lib/common-logic/calculateTransactionInfo.d.ts +10 -0
  75. package/lib/common-logic/calculateTransactionInfo.d.ts.map +1 -0
  76. package/lib/common-logic/calculateTransactionInfo.js +81 -0
  77. package/lib/common-logic/calculateTransactionInfo.js.map +1 -0
  78. package/lib/common-logic/calculateTransactionInfo.test.d.ts +2 -0
  79. package/lib/common-logic/calculateTransactionInfo.test.d.ts.map +1 -0
  80. package/lib/common-logic/calculateTransactionInfo.test.js +314 -0
  81. package/lib/common-logic/calculateTransactionInfo.test.js.map +1 -0
  82. package/lib/common-logic/estimateGas.d.ts +10 -0
  83. package/lib/common-logic/estimateGas.d.ts.map +1 -0
  84. package/lib/common-logic/estimateGas.js +17 -0
  85. package/lib/common-logic/estimateGas.js.map +1 -0
  86. package/lib/common-logic/estimateGas.test.d.ts +2 -0
  87. package/lib/common-logic/estimateGas.test.d.ts.map +1 -0
  88. package/lib/common-logic/estimateGas.test.js +129 -0
  89. package/lib/common-logic/estimateGas.test.js.map +1 -0
  90. package/lib/common-logic/fixPrefixCase.d.ts +2 -0
  91. package/lib/common-logic/fixPrefixCase.d.ts.map +1 -0
  92. package/lib/common-logic/fixPrefixCase.js +9 -0
  93. package/lib/common-logic/fixPrefixCase.js.map +1 -0
  94. package/lib/common-logic/fixPrefixCase.test.d.ts +2 -0
  95. package/lib/common-logic/fixPrefixCase.test.d.ts.map +1 -0
  96. package/lib/common-logic/fixPrefixCase.test.js +46 -0
  97. package/lib/common-logic/fixPrefixCase.test.js.map +1 -0
  98. package/lib/common-logic/generateNonce.d.ts +6 -0
  99. package/lib/common-logic/generateNonce.d.ts.map +1 -0
  100. package/lib/common-logic/generateNonce.js +13 -0
  101. package/lib/common-logic/generateNonce.js.map +1 -0
  102. package/lib/common-logic/generateNonce.test.d.ts +2 -0
  103. package/lib/common-logic/generateNonce.test.d.ts.map +1 -0
  104. package/lib/common-logic/generateNonce.test.js +59 -0
  105. package/lib/common-logic/generateNonce.test.js.map +1 -0
  106. package/lib/common-logic/getThorClient.d.ts +7 -0
  107. package/lib/common-logic/getThorClient.d.ts.map +1 -0
  108. package/lib/common-logic/getThorClient.js +14 -0
  109. package/lib/common-logic/getThorClient.js.map +1 -0
  110. package/lib/common-logic/getThorClient.test.d.ts +2 -0
  111. package/lib/common-logic/getThorClient.test.d.ts.map +1 -0
  112. package/lib/common-logic/getThorClient.test.js +53 -0
  113. package/lib/common-logic/getThorClient.test.js.map +1 -0
  114. package/lib/common-logic/index.d.ts +8 -6
  115. package/lib/common-logic/index.d.ts.map +1 -1
  116. package/lib/common-logic/index.js +8 -6
  117. package/lib/common-logic/index.js.map +1 -1
  118. package/lib/common-logic/{mapping-utils.d.ts → mapTransfersToOperations.d.ts} +2 -2
  119. package/lib/common-logic/mapTransfersToOperations.d.ts.map +1 -0
  120. package/lib/common-logic/{mapping-utils.js → mapTransfersToOperations.js} +26 -19
  121. package/lib/common-logic/mapTransfersToOperations.js.map +1 -0
  122. package/lib/common-logic/mapTransfersToOperations.test.d.ts +2 -0
  123. package/lib/common-logic/mapTransfersToOperations.test.d.ts.map +1 -0
  124. package/lib/common-logic/mapTransfersToOperations.test.js +274 -0
  125. package/lib/common-logic/mapTransfersToOperations.test.js.map +1 -0
  126. package/lib/common-logic/{pad-address.d.ts → padAddress.d.ts} +1 -1
  127. package/lib/common-logic/padAddress.d.ts.map +1 -0
  128. package/lib/common-logic/{pad-address.js → padAddress.js} +1 -1
  129. package/lib/common-logic/padAddress.js.map +1 -0
  130. package/lib/common-logic/padAddress.test.d.ts +2 -0
  131. package/lib/common-logic/padAddress.test.d.ts.map +1 -0
  132. package/lib/common-logic/padAddress.test.js +59 -0
  133. package/lib/common-logic/padAddress.test.js.map +1 -0
  134. package/lib/common-logic/parseAddress.d.ts +7 -0
  135. package/lib/common-logic/parseAddress.d.ts.map +1 -0
  136. package/lib/common-logic/parseAddress.js +15 -0
  137. package/lib/common-logic/parseAddress.js.map +1 -0
  138. package/lib/common-logic/parseAddress.test.d.ts +2 -0
  139. package/lib/common-logic/parseAddress.test.d.ts.map +1 -0
  140. package/lib/common-logic/parseAddress.test.js +97 -0
  141. package/lib/common-logic/parseAddress.test.js.map +1 -0
  142. package/lib/constants/env.d.ts +2 -0
  143. package/lib/constants/env.d.ts.map +1 -0
  144. package/lib/constants/env.js +6 -0
  145. package/lib/constants/env.js.map +1 -0
  146. package/lib/constants/index.d.ts +2 -0
  147. package/lib/constants/index.d.ts.map +1 -0
  148. package/lib/constants/index.js +18 -0
  149. package/lib/constants/index.js.map +1 -0
  150. package/lib/network/sdk.d.ts +3 -10
  151. package/lib/network/sdk.d.ts.map +1 -1
  152. package/lib/network/sdk.js +15 -30
  153. package/lib/network/sdk.js.map +1 -1
  154. package/lib/signer/getAddress.test.d.ts +2 -0
  155. package/lib/signer/getAddress.test.d.ts.map +1 -0
  156. package/lib/signer/getAddress.test.js +357 -0
  157. package/lib/signer/getAddress.test.js.map +1 -0
  158. package/lib/signer/signMessage.d.ts.map +1 -1
  159. package/lib/signer/signMessage.js +3 -3
  160. package/lib/signer/signMessage.js.map +1 -1
  161. package/lib/signer/signMessage.test.d.ts +2 -0
  162. package/lib/signer/signMessage.test.d.ts.map +1 -0
  163. package/lib/signer/signMessage.test.js +242 -0
  164. package/lib/signer/signMessage.test.js.map +1 -0
  165. package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
  166. package/lib/test/bridgeDatasetTest.js +79 -53
  167. package/lib/test/bridgeDatasetTest.js.map +1 -1
  168. package/lib/test/cli.d.ts.map +1 -1
  169. package/lib/test/cli.js +5 -4
  170. package/lib/test/cli.js.map +1 -1
  171. package/lib/types/bridge.d.ts +11 -3
  172. package/lib/types/bridge.d.ts.map +1 -1
  173. package/lib/types/bridge.js +3 -0
  174. package/lib/types/bridge.js.map +1 -1
  175. package/lib/types/constants.d.ts +0 -3
  176. package/lib/types/constants.d.ts.map +1 -1
  177. package/lib/types/constants.js +1 -4
  178. package/lib/types/constants.js.map +1 -1
  179. package/lib/types/signer.d.ts +0 -2
  180. package/lib/types/signer.d.ts.map +1 -1
  181. package/lib-es/bridge/broadcast.d.ts.map +1 -1
  182. package/lib-es/bridge/broadcast.js +2 -3
  183. package/lib-es/bridge/broadcast.js.map +1 -1
  184. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  185. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  186. package/lib-es/bridge/broadcast.test.js +183 -0
  187. package/lib-es/bridge/broadcast.test.js.map +1 -0
  188. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts +2 -0
  189. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts.map +1 -0
  190. package/lib-es/bridge/buildOptimisticOperatioin.test.js +281 -0
  191. package/lib-es/bridge/buildOptimisticOperatioin.test.js.map +1 -0
  192. package/lib-es/bridge/createTransaction.d.ts.map +1 -1
  193. package/lib-es/bridge/createTransaction.js +3 -2
  194. package/lib-es/bridge/createTransaction.js.map +1 -1
  195. package/lib-es/bridge/createTransaction.test.d.ts +2 -0
  196. package/lib-es/bridge/createTransaction.test.d.ts.map +1 -0
  197. package/lib-es/bridge/createTransaction.test.js +162 -0
  198. package/lib-es/bridge/createTransaction.test.js.map +1 -0
  199. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +2 -0
  200. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  201. package/lib-es/bridge/estimateMaxSpendable.test.js +264 -0
  202. package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -0
  203. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  204. package/lib-es/bridge/getTransactionStatus.js +4 -2
  205. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  206. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  207. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  208. package/lib-es/bridge/getTransactionStatus.test.js +277 -0
  209. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  210. package/lib-es/bridge/helpers.test.d.ts +2 -0
  211. package/lib-es/bridge/helpers.test.d.ts.map +1 -0
  212. package/lib-es/bridge/helpers.test.js +293 -0
  213. package/lib-es/bridge/helpers.test.js.map +1 -0
  214. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
  215. package/lib-es/bridge/prepareTransaction.js +11 -4
  216. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  217. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  218. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  219. package/lib-es/bridge/prepareTransaction.test.js +272 -0
  220. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  221. package/lib-es/bridge/signOperation.d.ts.map +1 -1
  222. package/lib-es/bridge/signOperation.js +3 -3
  223. package/lib-es/bridge/signOperation.js.map +1 -1
  224. package/lib-es/bridge/signOperation.test.d.ts +2 -0
  225. package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
  226. package/lib-es/bridge/signOperation.test.js +290 -0
  227. package/lib-es/bridge/signOperation.test.js.map +1 -0
  228. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  229. package/lib-es/bridge/synchronisation.js +1 -1
  230. package/lib-es/bridge/synchronisation.js.map +1 -1
  231. package/lib-es/bridge/transaction.test.d.ts +2 -0
  232. package/lib-es/bridge/transaction.test.d.ts.map +1 -0
  233. package/lib-es/bridge/transaction.test.js +347 -0
  234. package/lib-es/bridge/transaction.test.js.map +1 -0
  235. package/lib-es/common-logic/calculateClauses.d.ts +5 -0
  236. package/lib-es/common-logic/calculateClauses.d.ts.map +1 -0
  237. package/lib-es/common-logic/{logic.js → calculateClauses.js} +6 -6
  238. package/lib-es/common-logic/calculateClauses.js.map +1 -0
  239. package/lib-es/common-logic/calculateClauses.test.d.ts +2 -0
  240. package/lib-es/common-logic/calculateClauses.test.d.ts.map +1 -0
  241. package/lib-es/common-logic/calculateClauses.test.js +151 -0
  242. package/lib-es/common-logic/calculateClauses.test.js.map +1 -0
  243. package/lib-es/common-logic/calculateGasFees.d.ts +9 -0
  244. package/lib-es/common-logic/calculateGasFees.d.ts.map +1 -0
  245. package/lib-es/common-logic/calculateGasFees.js +32 -0
  246. package/lib-es/common-logic/calculateGasFees.js.map +1 -0
  247. package/lib-es/common-logic/calculateGasFees.test.d.ts +2 -0
  248. package/lib-es/common-logic/calculateGasFees.test.d.ts.map +1 -0
  249. package/lib-es/common-logic/calculateGasFees.test.js +274 -0
  250. package/lib-es/common-logic/calculateGasFees.test.js.map +1 -0
  251. package/lib-es/common-logic/calculateTransactionInfo.d.ts +10 -0
  252. package/lib-es/common-logic/calculateTransactionInfo.d.ts.map +1 -0
  253. package/lib-es/common-logic/calculateTransactionInfo.js +74 -0
  254. package/lib-es/common-logic/calculateTransactionInfo.js.map +1 -0
  255. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts +2 -0
  256. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts.map +1 -0
  257. package/lib-es/common-logic/calculateTransactionInfo.test.js +309 -0
  258. package/lib-es/common-logic/calculateTransactionInfo.test.js.map +1 -0
  259. package/lib-es/common-logic/estimateGas.d.ts +10 -0
  260. package/lib-es/common-logic/estimateGas.d.ts.map +1 -0
  261. package/lib-es/common-logic/estimateGas.js +13 -0
  262. package/lib-es/common-logic/estimateGas.js.map +1 -0
  263. package/lib-es/common-logic/estimateGas.test.d.ts +2 -0
  264. package/lib-es/common-logic/estimateGas.test.d.ts.map +1 -0
  265. package/lib-es/common-logic/estimateGas.test.js +127 -0
  266. package/lib-es/common-logic/estimateGas.test.js.map +1 -0
  267. package/lib-es/common-logic/fixPrefixCase.d.ts +2 -0
  268. package/lib-es/common-logic/fixPrefixCase.d.ts.map +1 -0
  269. package/lib-es/common-logic/fixPrefixCase.js +5 -0
  270. package/lib-es/common-logic/fixPrefixCase.js.map +1 -0
  271. package/lib-es/common-logic/fixPrefixCase.test.d.ts +2 -0
  272. package/lib-es/common-logic/fixPrefixCase.test.d.ts.map +1 -0
  273. package/lib-es/common-logic/fixPrefixCase.test.js +44 -0
  274. package/lib-es/common-logic/fixPrefixCase.test.js.map +1 -0
  275. package/lib-es/common-logic/generateNonce.d.ts +6 -0
  276. package/lib-es/common-logic/generateNonce.d.ts.map +1 -0
  277. package/lib-es/common-logic/generateNonce.js +9 -0
  278. package/lib-es/common-logic/generateNonce.js.map +1 -0
  279. package/lib-es/common-logic/generateNonce.test.d.ts +2 -0
  280. package/lib-es/common-logic/generateNonce.test.d.ts.map +1 -0
  281. package/lib-es/common-logic/generateNonce.test.js +57 -0
  282. package/lib-es/common-logic/generateNonce.test.js.map +1 -0
  283. package/lib-es/common-logic/getThorClient.d.ts +7 -0
  284. package/lib-es/common-logic/getThorClient.d.ts.map +1 -0
  285. package/lib-es/common-logic/getThorClient.js +10 -0
  286. package/lib-es/common-logic/getThorClient.js.map +1 -0
  287. package/lib-es/common-logic/getThorClient.test.d.ts +2 -0
  288. package/lib-es/common-logic/getThorClient.test.d.ts.map +1 -0
  289. package/lib-es/common-logic/getThorClient.test.js +51 -0
  290. package/lib-es/common-logic/getThorClient.test.js.map +1 -0
  291. package/lib-es/common-logic/index.d.ts +8 -6
  292. package/lib-es/common-logic/index.d.ts.map +1 -1
  293. package/lib-es/common-logic/index.js +8 -6
  294. package/lib-es/common-logic/index.js.map +1 -1
  295. package/lib-es/common-logic/{mapping-utils.d.ts → mapTransfersToOperations.d.ts} +2 -2
  296. package/lib-es/common-logic/mapTransfersToOperations.d.ts.map +1 -0
  297. package/lib-es/common-logic/mapTransfersToOperations.js +51 -0
  298. package/lib-es/common-logic/mapTransfersToOperations.js.map +1 -0
  299. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts +2 -0
  300. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts.map +1 -0
  301. package/lib-es/common-logic/mapTransfersToOperations.test.js +269 -0
  302. package/lib-es/common-logic/mapTransfersToOperations.test.js.map +1 -0
  303. package/lib-es/common-logic/{pad-address.d.ts → padAddress.d.ts} +1 -1
  304. package/lib-es/common-logic/padAddress.d.ts.map +1 -0
  305. package/lib-es/common-logic/{pad-address.js → padAddress.js} +1 -1
  306. package/lib-es/common-logic/padAddress.js.map +1 -0
  307. package/lib-es/common-logic/padAddress.test.d.ts +2 -0
  308. package/lib-es/common-logic/padAddress.test.d.ts.map +1 -0
  309. package/lib-es/common-logic/padAddress.test.js +57 -0
  310. package/lib-es/common-logic/padAddress.test.js.map +1 -0
  311. package/lib-es/common-logic/parseAddress.d.ts +7 -0
  312. package/lib-es/common-logic/parseAddress.d.ts.map +1 -0
  313. package/lib-es/common-logic/parseAddress.js +11 -0
  314. package/lib-es/common-logic/parseAddress.js.map +1 -0
  315. package/lib-es/common-logic/parseAddress.test.d.ts +2 -0
  316. package/lib-es/common-logic/parseAddress.test.d.ts.map +1 -0
  317. package/lib-es/common-logic/parseAddress.test.js +95 -0
  318. package/lib-es/common-logic/parseAddress.test.js.map +1 -0
  319. package/lib-es/constants/env.d.ts +2 -0
  320. package/lib-es/constants/env.d.ts.map +1 -0
  321. package/lib-es/constants/env.js +3 -0
  322. package/lib-es/constants/env.js.map +1 -0
  323. package/lib-es/constants/index.d.ts +2 -0
  324. package/lib-es/constants/index.d.ts.map +1 -0
  325. package/lib-es/constants/index.js +2 -0
  326. package/lib-es/constants/index.js.map +1 -0
  327. package/lib-es/network/sdk.d.ts +3 -10
  328. package/lib-es/network/sdk.d.ts.map +1 -1
  329. package/lib-es/network/sdk.js +5 -19
  330. package/lib-es/network/sdk.js.map +1 -1
  331. package/lib-es/signer/getAddress.test.d.ts +2 -0
  332. package/lib-es/signer/getAddress.test.d.ts.map +1 -0
  333. package/lib-es/signer/getAddress.test.js +352 -0
  334. package/lib-es/signer/getAddress.test.js.map +1 -0
  335. package/lib-es/signer/signMessage.d.ts.map +1 -1
  336. package/lib-es/signer/signMessage.js +3 -3
  337. package/lib-es/signer/signMessage.js.map +1 -1
  338. package/lib-es/signer/signMessage.test.d.ts +2 -0
  339. package/lib-es/signer/signMessage.test.d.ts.map +1 -0
  340. package/lib-es/signer/signMessage.test.js +240 -0
  341. package/lib-es/signer/signMessage.test.js.map +1 -0
  342. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
  343. package/lib-es/test/bridgeDatasetTest.js +80 -54
  344. package/lib-es/test/bridgeDatasetTest.js.map +1 -1
  345. package/lib-es/test/cli.d.ts.map +1 -1
  346. package/lib-es/test/cli.js +4 -3
  347. package/lib-es/test/cli.js.map +1 -1
  348. package/lib-es/types/bridge.d.ts +11 -3
  349. package/lib-es/types/bridge.d.ts.map +1 -1
  350. package/lib-es/types/bridge.js +6 -1
  351. package/lib-es/types/bridge.js.map +1 -1
  352. package/lib-es/types/constants.d.ts +0 -3
  353. package/lib-es/types/constants.d.ts.map +1 -1
  354. package/lib-es/types/constants.js +0 -3
  355. package/lib-es/types/constants.js.map +1 -1
  356. package/lib-es/types/signer.d.ts +0 -2
  357. package/lib-es/types/signer.d.ts.map +1 -1
  358. package/package.json +9 -8
  359. package/src/bridge/broadcast.test.ts +236 -0
  360. package/src/bridge/broadcast.ts +4 -5
  361. package/src/bridge/buildOptimisticOperatioin.test.ts +364 -0
  362. package/src/bridge/createTransaction.test.ts +201 -0
  363. package/src/bridge/createTransaction.ts +3 -2
  364. package/src/bridge/estimateMaxSpendable.test.ts +319 -0
  365. package/src/bridge/getTransactionStatus.test.ts +353 -0
  366. package/src/bridge/getTransactionStatus.ts +4 -2
  367. package/src/bridge/helpers.test.ts +356 -0
  368. package/src/bridge/prepareTransaction.test.ts +345 -0
  369. package/src/bridge/prepareTransaction.ts +20 -10
  370. package/src/bridge/signOperation.test.ts +354 -0
  371. package/src/bridge/signOperation.ts +6 -3
  372. package/src/bridge/synchronisation.ts +1 -1
  373. package/src/bridge/transaction.test.ts +440 -0
  374. package/src/common-logic/calculateClauses.test.ts +186 -0
  375. package/src/common-logic/calculateClauses.ts +44 -0
  376. package/src/common-logic/calculateGasFees.test.ts +363 -0
  377. package/src/common-logic/calculateGasFees.ts +45 -0
  378. package/src/common-logic/calculateTransactionInfo.test.ts +396 -0
  379. package/src/common-logic/calculateTransactionInfo.ts +96 -0
  380. package/src/common-logic/estimateGas.test.ts +162 -0
  381. package/src/common-logic/estimateGas.ts +18 -0
  382. package/src/common-logic/fixPrefixCase.test.ts +51 -0
  383. package/src/common-logic/fixPrefixCase.ts +5 -0
  384. package/src/common-logic/generateNonce.test.ts +72 -0
  385. package/src/common-logic/generateNonce.ts +9 -0
  386. package/src/common-logic/getThorClient.test.ts +66 -0
  387. package/src/common-logic/getThorClient.ts +10 -0
  388. package/src/common-logic/index.ts +8 -6
  389. package/src/common-logic/mapTransfersToOperations.test.ts +342 -0
  390. package/src/common-logic/mapTransfersToOperations.ts +77 -0
  391. package/src/common-logic/padAddress.test.ts +65 -0
  392. package/src/common-logic/parseAddress.test.ts +130 -0
  393. package/src/common-logic/parseAddress.ts +11 -0
  394. package/src/constants/env.ts +3 -0
  395. package/src/constants/index.ts +1 -0
  396. package/src/network/sdk.ts +22 -30
  397. package/src/signer/getAddress.test.ts +454 -0
  398. package/src/signer/signMessage.test.ts +329 -0
  399. package/src/signer/signMessage.ts +4 -5
  400. package/src/test/bridgeDatasetTest.ts +86 -58
  401. package/src/test/cli.ts +4 -3
  402. package/src/types/bridge.ts +16 -3
  403. package/src/types/constants.ts +0 -3
  404. package/lib/common-logic/address-utils.d.ts +0 -2
  405. package/lib/common-logic/address-utils.d.ts.map +0 -1
  406. package/lib/common-logic/address-utils.js +0 -19
  407. package/lib/common-logic/address-utils.js.map +0 -1
  408. package/lib/common-logic/hex-utils.d.ts +0 -8
  409. package/lib/common-logic/hex-utils.d.ts.map +0 -1
  410. package/lib/common-logic/hex-utils.js +0 -52
  411. package/lib/common-logic/hex-utils.js.map +0 -1
  412. package/lib/common-logic/logic.d.ts +0 -5
  413. package/lib/common-logic/logic.d.ts.map +0 -1
  414. package/lib/common-logic/logic.js.map +0 -1
  415. package/lib/common-logic/mapping-utils.d.ts.map +0 -1
  416. package/lib/common-logic/mapping-utils.js.map +0 -1
  417. package/lib/common-logic/pad-address.d.ts.map +0 -1
  418. package/lib/common-logic/pad-address.js.map +0 -1
  419. package/lib/common-logic/transaction-utils.d.ts +0 -30
  420. package/lib/common-logic/transaction-utils.d.ts.map +0 -1
  421. package/lib/common-logic/transaction-utils.js +0 -161
  422. package/lib/common-logic/transaction-utils.js.map +0 -1
  423. package/lib/contracts/abis/VIP180.d.ts +0 -17
  424. package/lib/contracts/abis/VIP180.d.ts.map +0 -1
  425. package/lib/contracts/abis/VIP180.js +0 -265
  426. package/lib/contracts/abis/VIP180.js.map +0 -1
  427. package/lib/contracts/abis/params.d.ts +0 -8
  428. package/lib/contracts/abis/params.d.ts.map +0 -1
  429. package/lib/contracts/abis/params.js +0 -69
  430. package/lib/contracts/abis/params.js.map +0 -1
  431. package/lib/contracts/constants.d.ts +0 -6
  432. package/lib/contracts/constants.d.ts.map +0 -1
  433. package/lib/contracts/constants.js +0 -10
  434. package/lib/contracts/constants.js.map +0 -1
  435. package/lib-es/common-logic/address-utils.d.ts +0 -2
  436. package/lib-es/common-logic/address-utils.d.ts.map +0 -1
  437. package/lib-es/common-logic/address-utils.js +0 -12
  438. package/lib-es/common-logic/address-utils.js.map +0 -1
  439. package/lib-es/common-logic/hex-utils.d.ts +0 -8
  440. package/lib-es/common-logic/hex-utils.d.ts.map +0 -1
  441. package/lib-es/common-logic/hex-utils.js +0 -50
  442. package/lib-es/common-logic/hex-utils.js.map +0 -1
  443. package/lib-es/common-logic/logic.d.ts +0 -5
  444. package/lib-es/common-logic/logic.d.ts.map +0 -1
  445. package/lib-es/common-logic/logic.js.map +0 -1
  446. package/lib-es/common-logic/mapping-utils.d.ts.map +0 -1
  447. package/lib-es/common-logic/mapping-utils.js +0 -44
  448. package/lib-es/common-logic/mapping-utils.js.map +0 -1
  449. package/lib-es/common-logic/pad-address.d.ts.map +0 -1
  450. package/lib-es/common-logic/pad-address.js.map +0 -1
  451. package/lib-es/common-logic/transaction-utils.d.ts +0 -30
  452. package/lib-es/common-logic/transaction-utils.d.ts.map +0 -1
  453. package/lib-es/common-logic/transaction-utils.js +0 -150
  454. package/lib-es/common-logic/transaction-utils.js.map +0 -1
  455. package/lib-es/contracts/abis/VIP180.d.ts +0 -17
  456. package/lib-es/contracts/abis/VIP180.d.ts.map +0 -1
  457. package/lib-es/contracts/abis/VIP180.js +0 -263
  458. package/lib-es/contracts/abis/VIP180.js.map +0 -1
  459. package/lib-es/contracts/abis/params.d.ts +0 -8
  460. package/lib-es/contracts/abis/params.d.ts.map +0 -1
  461. package/lib-es/contracts/abis/params.js +0 -67
  462. package/lib-es/contracts/abis/params.js.map +0 -1
  463. package/lib-es/contracts/constants.d.ts +0 -6
  464. package/lib-es/contracts/constants.d.ts.map +0 -1
  465. package/lib-es/contracts/constants.js +0 -7
  466. package/lib-es/contracts/constants.js.map +0 -1
  467. package/src/common-logic/address-utils.ts +0 -11
  468. package/src/common-logic/hex-utils.ts +0 -53
  469. package/src/common-logic/logic.ts +0 -44
  470. package/src/common-logic/mapping-utils.ts +0 -67
  471. package/src/common-logic/transaction-utils.ts +0 -190
  472. package/src/contracts/abis/VIP180.ts +0 -265
  473. package/src/contracts/abis/params.ts +0 -70
  474. package/src/contracts/constants.ts +0 -11
  475. /package/src/common-logic/{pad-address.ts → padAddress.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;AAEA,kDAKyB;AAEzB,wCAAyC;AAEzC;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,OAAgB,EAChB,WAAwB,EACF,EAAE;IACxB,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,uCAAwB,EAC5F,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,OAAO,GAAyC,EAAE,CAAC;IACvD,IAAI,WAAW,CAAC,SAAS,IAAI,IAAA,sBAAO,EAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,QAAQ,GAAG,MAAM,IAAA,qBAAW,GAAE,CAAC;QAC/B,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,GAAG,MAAM,IAAA,mCAAoB,EAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,IAAA,kCAAmB,EAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC3E,OAAO,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACzD,CAAC,CAAC;AAvBW,QAAA,kBAAkB,sBAuB7B"}
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;AACA,kDAKyB;AAEzB,wCAAyC;AAEzC;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,OAAgB,EAChB,WAAwB,EACF,EAAE;IACxB,MAAM,EACJ,MAAM,EACN,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,GAAG,MAAM,IAAA,uCAAwB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEzD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,OAAO,GAAuC,EAAE,CAAC;IACrD,IAAI,WAAW,CAAC,SAAS,IAAI,IAAA,2BAAY,EAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,QAAQ,GAAG,MAAM,IAAA,qBAAW,GAAE,CAAC;QAC/B,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,GAAG,MAAM,IAAA,mCAAoB,EAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,IAAA,kCAAmB,EAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG;QACX,GAAG,WAAW,CAAC,IAAI;QACnB,GAAG,EAAE,YAAY;QACjB,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,oBAAoB;KACrB,CAAC;IACF,OAAO,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACzD,CAAC,CAAC;AAlCW,QAAA,kBAAkB,sBAkC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prepareTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
7
+ const prepareTransaction_1 = require("./prepareTransaction");
8
+ const common_logic_1 = require("../common-logic");
9
+ const network_1 = require("../network");
10
+ // Mock dependencies
11
+ jest.mock("../common-logic");
12
+ jest.mock("../network");
13
+ const mockedCalculateTransactionInfo = jest.mocked(common_logic_1.calculateTransactionInfo);
14
+ const mockedCalculateClausesVet = jest.mocked(common_logic_1.calculateClausesVet);
15
+ const mockedCalculateClausesVtho = jest.mocked(common_logic_1.calculateClausesVtho);
16
+ const mockedParseAddress = jest.mocked(common_logic_1.parseAddress);
17
+ const mockedGetBlockRef = jest.mocked(network_1.getBlockRef);
18
+ describe("prepareTransaction", () => {
19
+ const mockAccount = {
20
+ type: "Account",
21
+ id: "vechain:1:0x123:",
22
+ seedIdentifier: "seed123",
23
+ derivationMode: "",
24
+ index: 0,
25
+ freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
26
+ freshAddressPath: "44'/818'/0'/0/0",
27
+ used: true,
28
+ balance: new bignumber_js_1.default("5000000000000000000"), // 5 VET
29
+ spendableBalance: new bignumber_js_1.default("5000000000000000000"),
30
+ creationDate: new Date("2022-01-01"),
31
+ blockHeight: 12345,
32
+ currency: { name: "VeChain" },
33
+ operationsCount: 10,
34
+ operations: [],
35
+ pendingOperations: [],
36
+ lastSyncDate: new Date("2022-01-01"),
37
+ balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
38
+ swapHistory: [],
39
+ subAccounts: [],
40
+ };
41
+ const mockTransaction = {
42
+ family: "vechain",
43
+ recipient: "0x456789012345678901234567890123456789abcd",
44
+ amount: new bignumber_js_1.default("1000000000000000000"), // 1 VET
45
+ estimatedFees: "0",
46
+ body: {
47
+ chainTag: 74,
48
+ blockRef: "0x0000000000000000",
49
+ expiration: 18,
50
+ clauses: [],
51
+ maxFeePerGas: 0,
52
+ maxPriorityFeePerGas: 0,
53
+ gas: "0",
54
+ dependsOn: null,
55
+ nonce: "0x12345678",
56
+ },
57
+ };
58
+ const mockTransactionInfo = {
59
+ amount: new bignumber_js_1.default("1000000000000000000"),
60
+ isTokenAccount: false,
61
+ estimatedFees: "210000000000000000",
62
+ estimatedGas: 21000,
63
+ maxFeePerGas: 10000000000000,
64
+ maxPriorityFeePerGas: 1000000000000,
65
+ spendableBalance: new bignumber_js_1.default("4790000000000000000"),
66
+ balance: new bignumber_js_1.default("5000000000000000000"),
67
+ tokenAccount: undefined,
68
+ };
69
+ const mockVetClauses = [
70
+ {
71
+ to: "0x456789012345678901234567890123456789abcd",
72
+ value: "1000000000000000000",
73
+ data: "0x",
74
+ },
75
+ ];
76
+ const mockVthoClauses = [
77
+ {
78
+ to: "0x0000000000000000000000000000456e65726779",
79
+ value: "0",
80
+ data: "0xa9059cbb000000000000000000000000456789012345678901234567890123456789abcd0000000000000000000000000000000000000000000000000de0b6b3a7640000",
81
+ },
82
+ ];
83
+ beforeEach(() => {
84
+ jest.clearAllMocks();
85
+ mockedCalculateTransactionInfo.mockResolvedValue(mockTransactionInfo);
86
+ mockedParseAddress.mockReturnValue(true);
87
+ mockedGetBlockRef.mockResolvedValue("0x00000000000b2bce");
88
+ mockedCalculateClausesVet.mockResolvedValue(mockVetClauses);
89
+ mockedCalculateClausesVtho.mockResolvedValue(mockVthoClauses);
90
+ });
91
+ describe("VET transactions", () => {
92
+ it("should prepare a VET transaction with valid recipient", async () => {
93
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
94
+ expect(result).toEqual({
95
+ ...mockTransaction,
96
+ body: {
97
+ ...mockTransaction.body,
98
+ gas: 21000,
99
+ blockRef: "0x00000000000b2bce",
100
+ clauses: mockVetClauses,
101
+ maxFeePerGas: 10000000000000,
102
+ maxPriorityFeePerGas: 1000000000000,
103
+ },
104
+ amount: new bignumber_js_1.default("1000000000000000000"),
105
+ estimatedFees: "210000000000000000",
106
+ });
107
+ expect(mockedCalculateClausesVet).toHaveBeenCalledWith(mockTransaction.recipient, new bignumber_js_1.default("1000000000000000000"));
108
+ expect(mockedCalculateClausesVtho).not.toHaveBeenCalled();
109
+ });
110
+ it("should handle VET transaction without recipient", async () => {
111
+ const transactionWithoutRecipient = {
112
+ ...mockTransaction,
113
+ recipient: "",
114
+ };
115
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, transactionWithoutRecipient);
116
+ expect(result.body.clauses).toEqual([]);
117
+ expect(result.body.blockRef).toBe("");
118
+ expect(mockedGetBlockRef).not.toHaveBeenCalled();
119
+ expect(mockedCalculateClausesVet).not.toHaveBeenCalled();
120
+ });
121
+ it("should handle VET transaction with invalid recipient", async () => {
122
+ mockedParseAddress.mockReturnValue(false);
123
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
124
+ expect(result.body.clauses).toEqual([]);
125
+ expect(result.body.blockRef).toBe("");
126
+ expect(mockedGetBlockRef).not.toHaveBeenCalled();
127
+ expect(mockedCalculateClausesVet).not.toHaveBeenCalled();
128
+ });
129
+ });
130
+ describe("Token transactions", () => {
131
+ it("should prepare a token transaction with valid recipient", async () => {
132
+ const tokenTransactionInfo = {
133
+ ...mockTransactionInfo,
134
+ isTokenAccount: true,
135
+ tokenAccount: {},
136
+ };
137
+ mockedCalculateTransactionInfo.mockResolvedValue(tokenTransactionInfo);
138
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
139
+ expect(result).toEqual({
140
+ ...mockTransaction,
141
+ body: {
142
+ ...mockTransaction.body,
143
+ gas: 21000,
144
+ blockRef: "0x00000000000b2bce",
145
+ clauses: mockVthoClauses,
146
+ maxFeePerGas: 10000000000000,
147
+ maxPriorityFeePerGas: 1000000000000,
148
+ },
149
+ amount: new bignumber_js_1.default("1000000000000000000"),
150
+ estimatedFees: "210000000000000000",
151
+ });
152
+ expect(mockedCalculateClausesVtho).toHaveBeenCalledWith(mockTransaction.recipient, new bignumber_js_1.default("1000000000000000000"));
153
+ expect(mockedCalculateClausesVet).not.toHaveBeenCalled();
154
+ });
155
+ });
156
+ describe("calculateTransactionInfo integration", () => {
157
+ it("should call calculateTransactionInfo with correct parameters", async () => {
158
+ await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
159
+ expect(mockedCalculateTransactionInfo).toHaveBeenCalledWith(mockAccount, mockTransaction);
160
+ });
161
+ it("should use transaction info results in the prepared transaction", async () => {
162
+ const customTransactionInfo = {
163
+ amount: new bignumber_js_1.default("2000000000000000000"),
164
+ isTokenAccount: false,
165
+ estimatedFees: "420000000000000000",
166
+ estimatedGas: 42000,
167
+ maxFeePerGas: 20000000000000,
168
+ maxPriorityFeePerGas: 2000000000000,
169
+ spendableBalance: new bignumber_js_1.default("3000000000000000000"),
170
+ balance: new bignumber_js_1.default("5000000000000000000"),
171
+ tokenAccount: undefined,
172
+ };
173
+ mockedCalculateTransactionInfo.mockResolvedValue(customTransactionInfo);
174
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
175
+ expect(result.amount).toEqual(new bignumber_js_1.default("2000000000000000000"));
176
+ expect(result.estimatedFees).toBe("420000000000000000");
177
+ expect(result.body.gas).toBe(42000);
178
+ expect(result.body.maxFeePerGas).toBe(20000000000000);
179
+ expect(result.body.maxPriorityFeePerGas).toBe(2000000000000);
180
+ });
181
+ });
182
+ describe("blockRef handling", () => {
183
+ it("should get blockRef when recipient is valid", async () => {
184
+ await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
185
+ expect(mockedGetBlockRef).toHaveBeenCalledTimes(1);
186
+ });
187
+ it("should not get blockRef when recipient is empty", async () => {
188
+ const transactionWithoutRecipient = {
189
+ ...mockTransaction,
190
+ recipient: "",
191
+ };
192
+ await (0, prepareTransaction_1.prepareTransaction)(mockAccount, transactionWithoutRecipient);
193
+ expect(mockedGetBlockRef).not.toHaveBeenCalled();
194
+ });
195
+ it("should not get blockRef when recipient is invalid", async () => {
196
+ mockedParseAddress.mockReturnValue(false);
197
+ await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
198
+ expect(mockedGetBlockRef).not.toHaveBeenCalled();
199
+ });
200
+ it("should handle getBlockRef errors", async () => {
201
+ const error = new Error("Network error");
202
+ mockedGetBlockRef.mockRejectedValue(error);
203
+ await expect((0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction)).rejects.toThrow("Network error");
204
+ });
205
+ });
206
+ describe("clause calculation", () => {
207
+ it("should handle calculateClausesVet errors", async () => {
208
+ const error = new Error("VET clause calculation failed");
209
+ mockedCalculateClausesVet.mockRejectedValue(error);
210
+ await expect((0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction)).rejects.toThrow("VET clause calculation failed");
211
+ });
212
+ it("should handle calculateClausesVtho errors", async () => {
213
+ const tokenTransactionInfo = {
214
+ ...mockTransactionInfo,
215
+ isTokenAccount: true,
216
+ tokenAccount: {},
217
+ };
218
+ mockedCalculateTransactionInfo.mockResolvedValue(tokenTransactionInfo);
219
+ const error = new Error("VTHO clause calculation failed");
220
+ mockedCalculateClausesVtho.mockRejectedValue(error);
221
+ await expect((0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction)).rejects.toThrow("VTHO clause calculation failed");
222
+ });
223
+ });
224
+ describe("body preservation", () => {
225
+ it("should preserve existing body properties", async () => {
226
+ const transactionWithBody = {
227
+ ...mockTransaction,
228
+ body: {
229
+ ...mockTransaction.body,
230
+ chainTag: 39, // testnet
231
+ expiration: 32,
232
+ dependsOn: "0xprevious123",
233
+ nonce: "0xabcdef123456",
234
+ },
235
+ };
236
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, transactionWithBody);
237
+ expect(result.body.chainTag).toBe(39);
238
+ expect(result.body.expiration).toBe(32);
239
+ expect(result.body.dependsOn).toBe("0xprevious123");
240
+ expect(result.body.nonce).toBe("0xabcdef123456");
241
+ });
242
+ it("should override gas-related properties", async () => {
243
+ const transactionWithOldGas = {
244
+ ...mockTransaction,
245
+ body: {
246
+ ...mockTransaction.body,
247
+ gas: 999,
248
+ maxFeePerGas: 999,
249
+ maxPriorityFeePerGas: 999,
250
+ },
251
+ };
252
+ const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, transactionWithOldGas);
253
+ expect(result.body.gas).toBe(21000);
254
+ expect(result.body.maxFeePerGas).toBe(10000000000000);
255
+ expect(result.body.maxPriorityFeePerGas).toBe(1000000000000);
256
+ });
257
+ });
258
+ describe("address validation", () => {
259
+ it("should call parseAddress with recipient", async () => {
260
+ await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
261
+ expect(mockedParseAddress).toHaveBeenCalledWith(mockTransaction.recipient);
262
+ });
263
+ it("should handle different recipient formats", async () => {
264
+ const recipients = [
265
+ "0x456789012345678901234567890123456789abcd",
266
+ "0X456789012345678901234567890123456789ABCD",
267
+ "456789012345678901234567890123456789abcd",
268
+ ];
269
+ for (const recipient of recipients) {
270
+ const txWithRecipient = { ...mockTransaction, recipient };
271
+ await (0, prepareTransaction_1.prepareTransaction)(mockAccount, txWithRecipient);
272
+ expect(mockedParseAddress).toHaveBeenCalledWith(recipient);
273
+ }
274
+ });
275
+ });
276
+ });
277
+ //# sourceMappingURL=prepareTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,aAAa,EAAgC,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBACb,cAAc,aAAa,CAAC,KAAG,cAAc,WAAW,CAAC,CAAC,eAAe,CAyCrF,CAAC"}
1
+ {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,aAAa,EAAgC,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG3D;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBACb,cAAc,aAAa,CAAC,KAAG,cAAc,WAAW,CAAC,CAAC,eAAe,CA4CrF,CAAC"}
@@ -2,19 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildSignOperation = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
- const thor_devkit_1 = require("thor-devkit");
6
5
  const buildOptimisticOperatioin_1 = require("./buildOptimisticOperatioin");
6
+ const types_1 = require("../types");
7
7
  /**
8
8
  * Sign Transaction with Ledger hardware
9
9
  */
10
10
  const buildSignOperation = (signerContext) => ({ account, transaction, deviceId, }) => new rxjs_1.Observable(o => {
11
11
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
12
12
  async function main() {
13
- const unsigned = new thor_devkit_1.Transaction(transaction.body);
13
+ const unsigned = types_1.VechainSDKTransaction.of(transaction.body);
14
14
  o.next({
15
15
  type: "device-signature-requested",
16
16
  });
17
- const signature = await signerContext(deviceId, signer => signer.signTransaction(account.freshAddressPath, unsigned.encode().toString("hex")));
17
+ const signature = await signerContext(deviceId, signer => signer.signTransaction(account.freshAddressPath, Buffer.from(unsigned.encoded).toString("hex")));
18
18
  o.next({ type: "device-signature-granted" });
19
19
  const operation = await (0, buildOptimisticOperatioin_1.buildOptimisticOperation)(account, transaction);
20
20
  o.next({
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAClC,6CAA6D;AAG7D,2EAAuE;AAGvE;;GAEG;AACI,MAAM,kBAAkB,GAC7B,CAAC,aAA2C,EAA+C,EAAE,CAC7F,CAAC,EACC,OAAO,EACP,WAAW,EACX,QAAQ,GAKT,EAAkC,EAAE,CACnC,IAAI,iBAAU,CAAC,CAAC,CAAC,EAAE;IACjB,4EAA4E;IAC5E,KAAK,UAAU,IAAI;QACjB,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvD,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,4BAA4B;SACnC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACvD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACpF,CAAC;QAEF,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,MAAM,IAAA,oDAAwB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEvE,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE;gBACf,SAAS;gBACT,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AA1CM,QAAA,kBAAkB,sBA0CxB"}
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAGlC,2EAAuE;AAEvE,oCAAiD;AAEjD;;GAEG;AACI,MAAM,kBAAkB,GAC7B,CAAC,aAA2C,EAA+C,EAAE,CAC7F,CAAC,EACC,OAAO,EACP,WAAW,EACX,QAAQ,GAKT,EAAkC,EAAE,CACnC,IAAI,iBAAU,CAAC,CAAC,CAAC,EAAE;IACjB,4EAA4E;IAC5E,KAAK,UAAU,IAAI;QACjB,MAAM,QAAQ,GAAG,6BAAqB,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE5D,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,4BAA4B;SACnC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACvD,MAAM,CAAC,eAAe,CACpB,OAAO,CAAC,gBAAgB,EACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C,CACF,CAAC;QAEF,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,MAAM,IAAA,oDAAwB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEvE,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE;gBACf,SAAS;gBACT,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AA7CM,QAAA,kBAAkB,sBA6CxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signOperation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOperation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const signOperation_1 = require("./signOperation");
7
+ const buildOptimisticOperatioin_1 = require("./buildOptimisticOperatioin");
8
+ const types_1 = require("../types");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ // Mock dependencies
11
+ jest.mock("./buildOptimisticOperatioin");
12
+ jest.mock("../types", () => ({
13
+ ...jest.requireActual("../types"),
14
+ VechainSDKTransaction: {
15
+ of: jest.fn(),
16
+ },
17
+ }));
18
+ const mockedBuildOptimisticOperation = jest.mocked(buildOptimisticOperatioin_1.buildOptimisticOperation);
19
+ const mockedVechainSDKTransaction = jest.mocked(types_1.VechainSDKTransaction);
20
+ describe("buildSignOperation", () => {
21
+ const mockAccount = {
22
+ type: "Account",
23
+ id: "vechain:1:0x123:",
24
+ seedIdentifier: "seed123",
25
+ derivationMode: "",
26
+ index: 0,
27
+ freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
28
+ freshAddressPath: "44'/818'/0'/0/0",
29
+ used: true,
30
+ balance: new bignumber_js_1.default("5000000000000000000"),
31
+ spendableBalance: new bignumber_js_1.default("5000000000000000000"),
32
+ creationDate: new Date("2022-01-01"),
33
+ blockHeight: 12345,
34
+ currency: {},
35
+ operationsCount: 10,
36
+ operations: [],
37
+ pendingOperations: [],
38
+ lastSyncDate: new Date("2022-01-01"),
39
+ balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
40
+ swapHistory: [],
41
+ subAccounts: [],
42
+ };
43
+ const mockTransaction = {
44
+ family: "vechain",
45
+ recipient: "0x456789012345678901234567890123456789abcd",
46
+ amount: new bignumber_js_1.default("1000000000000000000"),
47
+ estimatedFees: "210000000000000000",
48
+ body: {
49
+ chainTag: 74,
50
+ blockRef: "0x00000000000b2bce",
51
+ expiration: 18,
52
+ clauses: [
53
+ {
54
+ to: "0x456789012345678901234567890123456789abcd",
55
+ value: "1000000000000000000",
56
+ data: "0x",
57
+ },
58
+ ],
59
+ maxFeePerGas: 10000000000000,
60
+ maxPriorityFeePerGas: 1000000000000,
61
+ gas: 21000,
62
+ dependsOn: null,
63
+ nonce: "0x12345678",
64
+ },
65
+ };
66
+ const mockDeviceId = "mock-device-id";
67
+ const mockSigner = {
68
+ getAddress: jest.fn(),
69
+ signTransaction: jest.fn(),
70
+ };
71
+ const mockSignerContext = jest.fn();
72
+ const mockUnsignedTransaction = {
73
+ encoded: Buffer.from("mockencoded", "hex"),
74
+ };
75
+ const mockOperation = {
76
+ id: "vechain:1:0x123:0xtxhash:OUT",
77
+ hash: "",
78
+ type: "OUT",
79
+ value: new bignumber_js_1.default("1000000000000000000"),
80
+ fee: new bignumber_js_1.default("210000000000000000"),
81
+ blockHash: null,
82
+ blockHeight: null,
83
+ senders: ["0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4"],
84
+ recipients: ["0x456789012345678901234567890123456789abcd"],
85
+ accountId: "vechain:1:0x123:",
86
+ date: new Date("2022-01-01"),
87
+ extra: {},
88
+ };
89
+ beforeEach(() => {
90
+ jest.clearAllMocks();
91
+ mockedVechainSDKTransaction.of.mockReturnValue(mockUnsignedTransaction);
92
+ mockedBuildOptimisticOperation.mockResolvedValue(mockOperation);
93
+ mockSigner.signTransaction.mockResolvedValue(Buffer.from("signature123", "hex"));
94
+ mockSignerContext.mockImplementation((deviceId, callback) => callback(mockSigner));
95
+ });
96
+ it("should emit correct sequence of events for successful signing", async () => {
97
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
98
+ const observable = signOperation({
99
+ account: mockAccount,
100
+ transaction: mockTransaction,
101
+ deviceId: mockDeviceId,
102
+ });
103
+ const events = [];
104
+ const promise = new Promise((resolve, reject) => {
105
+ observable.subscribe({
106
+ next: event => events.push(event),
107
+ complete: resolve,
108
+ error: reject,
109
+ });
110
+ });
111
+ await promise;
112
+ expect(events).toHaveLength(3);
113
+ expect(events[0]).toEqual({ type: "device-signature-requested" });
114
+ expect(events[1]).toEqual({ type: "device-signature-granted" });
115
+ expect(events[2]).toEqual({
116
+ type: "signed",
117
+ signedOperation: {
118
+ operation: mockOperation,
119
+ signature: "",
120
+ rawData: mockTransaction,
121
+ },
122
+ });
123
+ });
124
+ it("should create unsigned transaction from transaction body", async () => {
125
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
126
+ const observable = signOperation({
127
+ account: mockAccount,
128
+ transaction: mockTransaction,
129
+ deviceId: mockDeviceId,
130
+ });
131
+ await new Promise((resolve, reject) => {
132
+ observable.subscribe({ complete: resolve, error: reject });
133
+ });
134
+ expect(mockedVechainSDKTransaction.of).toHaveBeenCalledWith(mockTransaction.body);
135
+ });
136
+ it("should call signer with correct parameters", async () => {
137
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
138
+ const observable = signOperation({
139
+ account: mockAccount,
140
+ transaction: mockTransaction,
141
+ deviceId: mockDeviceId,
142
+ });
143
+ await new Promise((resolve, reject) => {
144
+ observable.subscribe({ complete: resolve, error: reject });
145
+ });
146
+ expect(mockSignerContext).toHaveBeenCalledWith(mockDeviceId, expect.any(Function));
147
+ expect(mockSigner.signTransaction).toHaveBeenCalledWith(mockAccount.freshAddressPath, mockUnsignedTransaction.encoded.toString("hex"));
148
+ });
149
+ it("should build optimistic operation with correct parameters", async () => {
150
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
151
+ const observable = signOperation({
152
+ account: mockAccount,
153
+ transaction: mockTransaction,
154
+ deviceId: mockDeviceId,
155
+ });
156
+ await new Promise((resolve, reject) => {
157
+ observable.subscribe({ complete: resolve, error: reject });
158
+ });
159
+ expect(mockedBuildOptimisticOperation).toHaveBeenCalledWith(mockAccount, mockTransaction);
160
+ });
161
+ it("should convert signature buffer to hex string", async () => {
162
+ const signatureBuffer = Buffer.from([0x12, 0x34, 0x56, 0x78]);
163
+ mockSigner.signTransaction.mockResolvedValue(signatureBuffer);
164
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
165
+ const observable = signOperation({
166
+ account: mockAccount,
167
+ transaction: mockTransaction,
168
+ deviceId: mockDeviceId,
169
+ });
170
+ const events = [];
171
+ await new Promise((resolve, reject) => {
172
+ observable.subscribe({
173
+ next: event => events.push(event),
174
+ complete: resolve,
175
+ error: reject,
176
+ });
177
+ });
178
+ const signedEvent = events.find(e => e.type === "signed");
179
+ expect(signedEvent.signedOperation.signature).toBe("12345678");
180
+ });
181
+ it("should handle signer errors", async () => {
182
+ const signerError = new Error("Hardware wallet error");
183
+ mockSigner.signTransaction.mockRejectedValue(signerError);
184
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
185
+ const observable = signOperation({
186
+ account: mockAccount,
187
+ transaction: mockTransaction,
188
+ deviceId: mockDeviceId,
189
+ });
190
+ await expect(new Promise((resolve, reject) => {
191
+ observable.subscribe({ complete: resolve, error: reject });
192
+ })).rejects.toThrow("Hardware wallet error");
193
+ });
194
+ it("should handle VechainSDKTransaction creation errors", async () => {
195
+ const transactionError = new Error("Invalid transaction format");
196
+ mockedVechainSDKTransaction.of.mockImplementation(() => {
197
+ throw transactionError;
198
+ });
199
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
200
+ const observable = signOperation({
201
+ account: mockAccount,
202
+ transaction: mockTransaction,
203
+ deviceId: mockDeviceId,
204
+ });
205
+ await expect(new Promise((resolve, reject) => {
206
+ observable.subscribe({ complete: resolve, error: reject });
207
+ })).rejects.toThrow("Invalid transaction format");
208
+ });
209
+ it("should handle buildOptimisticOperation errors", async () => {
210
+ const operationError = new Error("Failed to build operation");
211
+ mockedBuildOptimisticOperation.mockRejectedValue(operationError);
212
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
213
+ const observable = signOperation({
214
+ account: mockAccount,
215
+ transaction: mockTransaction,
216
+ deviceId: mockDeviceId,
217
+ });
218
+ await expect(new Promise((resolve, reject) => {
219
+ observable.subscribe({ complete: resolve, error: reject });
220
+ })).rejects.toThrow("Failed to build operation");
221
+ });
222
+ it("should handle signerContext errors", async () => {
223
+ const contextError = new Error("Signer context failed");
224
+ mockSignerContext.mockRejectedValue(contextError);
225
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
226
+ const observable = signOperation({
227
+ account: mockAccount,
228
+ transaction: mockTransaction,
229
+ deviceId: mockDeviceId,
230
+ });
231
+ await expect(new Promise((resolve, reject) => {
232
+ observable.subscribe({ complete: resolve, error: reject });
233
+ })).rejects.toThrow("Signer context failed");
234
+ });
235
+ it("should work with different device IDs", async () => {
236
+ const deviceIds = ["device1", "device2", "device3"];
237
+ for (const deviceId of deviceIds) {
238
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
239
+ const observable = signOperation({
240
+ account: mockAccount,
241
+ transaction: mockTransaction,
242
+ deviceId,
243
+ });
244
+ await new Promise((resolve, reject) => {
245
+ observable.subscribe({ complete: resolve, error: reject });
246
+ });
247
+ expect(mockSignerContext).toHaveBeenCalledWith(deviceId, expect.any(Function));
248
+ }
249
+ });
250
+ it("should include rawData as transaction in signed operation", async () => {
251
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
252
+ const observable = signOperation({
253
+ account: mockAccount,
254
+ transaction: mockTransaction,
255
+ deviceId: mockDeviceId,
256
+ });
257
+ const events = [];
258
+ await new Promise((resolve, reject) => {
259
+ observable.subscribe({
260
+ next: event => events.push(event),
261
+ complete: resolve,
262
+ error: reject,
263
+ });
264
+ });
265
+ const signedEvent = events.find(e => e.type === "signed");
266
+ expect(signedEvent.signedOperation.rawData).toBe(mockTransaction);
267
+ });
268
+ it("should handle different transaction types", async () => {
269
+ const tokenTransaction = {
270
+ ...mockTransaction,
271
+ subAccountId: "vechain:1:0x123:+vtho",
272
+ body: {
273
+ ...mockTransaction.body,
274
+ clauses: [
275
+ {
276
+ to: "0x0000000000000000000000000000456e65726779",
277
+ value: "0",
278
+ data: "0xa9059cbb000000000000000000000000456789012345678901234567890123456789abcd0000000000000000000000000000000000000000000000000de0b6b3a7640000",
279
+ },
280
+ ],
281
+ },
282
+ };
283
+ const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
284
+ const observable = signOperation({
285
+ account: mockAccount,
286
+ transaction: tokenTransaction,
287
+ deviceId: mockDeviceId,
288
+ });
289
+ await new Promise((resolve, reject) => {
290
+ observable.subscribe({ complete: resolve, error: reject });
291
+ });
292
+ expect(mockedVechainSDKTransaction.of).toHaveBeenCalledWith(tokenTransaction.body);
293
+ });
294
+ });
295
+ //# sourceMappingURL=signOperation.test.js.map