@aptos-labs/ts-sdk 1.14.0-zeta.0 → 1.14.0-zeta.1

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 (482) hide show
  1. package/dist/common/{accountAddress-NPQwRmxn.d.ts → accountAddress-u9wEan9p.d.ts} +32 -4
  2. package/dist/common/chunk-QRI7EC4T.js +24 -0
  3. package/dist/common/chunk-QRI7EC4T.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +1 -1
  5. package/dist/common/cli/index.js +245 -1
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +290 -171
  8. package/dist/common/index.js +11786 -374
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/account/Account.mjs +55 -1
  11. package/dist/esm/account/Ed25519Account.mjs +53 -1
  12. package/dist/esm/account/EphemeralKeyPair.d.mts +38 -5
  13. package/dist/esm/account/EphemeralKeyPair.mjs +36 -1
  14. package/dist/esm/account/KeylessAccount.d.mts +75 -37
  15. package/dist/esm/account/KeylessAccount.mjs +56 -1
  16. package/dist/esm/account/MultiKeyAccount.d.mts +4 -0
  17. package/dist/esm/account/MultiKeyAccount.mjs +55 -1
  18. package/dist/esm/account/SingleKeyAccount.mjs +53 -1
  19. package/dist/esm/account/index.d.mts +2 -1
  20. package/dist/esm/account/index.mjs +76 -1
  21. package/dist/esm/api/account.mjs +76 -1
  22. package/dist/esm/api/ans.mjs +87 -1
  23. package/dist/esm/api/aptos.d.mts +1 -0
  24. package/dist/esm/api/aptos.mjs +116 -1
  25. package/dist/esm/api/aptosConfig.mjs +9 -1
  26. package/dist/esm/api/coin.mjs +86 -1
  27. package/dist/esm/api/digitalAsset.mjs +87 -1
  28. package/dist/esm/api/event.mjs +54 -1
  29. package/dist/esm/api/faucet.mjs +53 -1
  30. package/dist/esm/api/fungibleAsset.mjs +87 -1
  31. package/dist/esm/api/general.mjs +84 -1
  32. package/dist/esm/api/index.d.mts +1 -0
  33. package/dist/esm/api/index.mjs +120 -1
  34. package/dist/esm/api/keyless.d.mts +19 -5
  35. package/dist/esm/api/keyless.mjs +70 -1
  36. package/dist/esm/api/staking.mjs +54 -1
  37. package/dist/esm/api/transaction.mjs +94 -1
  38. package/dist/esm/api/transactionSubmission/build.mjs +85 -1
  39. package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
  40. package/dist/esm/api/transactionSubmission/management.mjs +89 -1
  41. package/dist/esm/api/transactionSubmission/sign.mjs +109 -1
  42. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  43. package/dist/esm/api/transactionSubmission/simulate.mjs +86 -1
  44. package/dist/esm/api/transactionSubmission/submit.mjs +86 -1
  45. package/dist/esm/api/utils.mjs +34 -1
  46. package/dist/esm/bcs/consts.mjs +17 -1
  47. package/dist/esm/bcs/deserializer.d.mts +26 -0
  48. package/dist/esm/bcs/deserializer.mjs +8 -1
  49. package/dist/esm/bcs/index.mjs +57 -1
  50. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
  51. package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
  52. package/dist/esm/bcs/serializable/movePrimitives.mjs +25 -1
  53. package/dist/esm/bcs/serializable/moveStructs.mjs +18 -1
  54. package/dist/esm/bcs/serializer.mjs +18 -1
  55. package/dist/esm/chunk-2JOCR2VL.mjs +32 -0
  56. package/dist/esm/chunk-2JOCR2VL.mjs.map +1 -0
  57. package/dist/esm/chunk-2OQW7BMN.mjs +129 -0
  58. package/dist/esm/{chunk-7WJTKYRG.mjs.map → chunk-2OQW7BMN.mjs.map} +1 -1
  59. package/dist/esm/chunk-2TJJWII2.mjs +23 -0
  60. package/dist/esm/{chunk-MGOHPDX4.mjs.map → chunk-2TJJWII2.mjs.map} +1 -1
  61. package/dist/esm/chunk-2ZEGJU43.mjs +252 -0
  62. package/dist/esm/{chunk-KWNBC5MF.mjs.map → chunk-2ZEGJU43.mjs.map} +1 -1
  63. package/dist/esm/chunk-4OYYOYSO.mjs +336 -0
  64. package/dist/esm/chunk-4OYYOYSO.mjs.map +1 -0
  65. package/dist/esm/{chunk-S4SEFF4K.mjs → chunk-4PJ5FYGQ.mjs} +302 -27
  66. package/dist/esm/{chunk-S4SEFF4K.mjs.map → chunk-4PJ5FYGQ.mjs.map} +1 -1
  67. package/dist/esm/chunk-55NODGHC.mjs +135 -0
  68. package/dist/esm/{chunk-G4XSNSOT.mjs.map → chunk-55NODGHC.mjs.map} +1 -1
  69. package/dist/esm/chunk-6LRQSBRH.mjs +130 -0
  70. package/dist/esm/{chunk-C5UVSNZW.mjs.map → chunk-6LRQSBRH.mjs.map} +1 -1
  71. package/dist/esm/chunk-6MSZMIFW.mjs +23 -0
  72. package/dist/esm/{chunk-MWUJCP27.mjs.map → chunk-6MSZMIFW.mjs.map} +1 -1
  73. package/dist/esm/chunk-76TSTAU4.mjs +120 -0
  74. package/dist/esm/{chunk-FLYEALDB.mjs.map → chunk-76TSTAU4.mjs.map} +1 -1
  75. package/dist/esm/chunk-7FO3S6IZ.mjs +324 -0
  76. package/dist/esm/{chunk-3VGX3TXH.mjs.map → chunk-7FO3S6IZ.mjs.map} +1 -1
  77. package/dist/esm/chunk-7FUHWL6A.mjs +42 -0
  78. package/dist/esm/{chunk-SRPTQ4VV.mjs.map → chunk-7FUHWL6A.mjs.map} +1 -1
  79. package/dist/esm/chunk-7IDBB4J4.mjs +33 -0
  80. package/dist/esm/{chunk-PINF6ZWP.mjs.map → chunk-7IDBB4J4.mjs.map} +1 -1
  81. package/dist/esm/chunk-7JRMOHBP.mjs +247 -0
  82. package/dist/esm/chunk-7JRMOHBP.mjs.map +1 -0
  83. package/dist/esm/chunk-7REUIYF4.mjs +63 -0
  84. package/dist/esm/chunk-7REUIYF4.mjs.map +1 -0
  85. package/dist/esm/chunk-AC3OGAL6.mjs +87 -0
  86. package/dist/esm/{chunk-U6Z4FNB7.mjs.map → chunk-AC3OGAL6.mjs.map} +1 -1
  87. package/dist/esm/chunk-AR7X6GWQ.mjs +356 -0
  88. package/dist/esm/{chunk-EB7AI4B4.mjs.map → chunk-AR7X6GWQ.mjs.map} +1 -1
  89. package/dist/esm/chunk-ASF2VWOX.mjs +142 -0
  90. package/dist/esm/{chunk-O34EOOVF.mjs.map → chunk-ASF2VWOX.mjs.map} +1 -1
  91. package/dist/esm/chunk-ATVFVXR6.mjs +43 -0
  92. package/dist/esm/{chunk-IXYXFDJZ.mjs.map → chunk-ATVFVXR6.mjs.map} +1 -1
  93. package/dist/esm/chunk-B5S6DDUD.mjs +120 -0
  94. package/dist/esm/chunk-B5S6DDUD.mjs.map +1 -0
  95. package/dist/esm/chunk-BXMHDQHW.mjs +512 -0
  96. package/dist/esm/{chunk-DLTC6PJP.mjs.map → chunk-BXMHDQHW.mjs.map} +1 -1
  97. package/dist/esm/chunk-CC4DQ6NH.mjs +19 -0
  98. package/dist/esm/{chunk-H3TFQ7K4.mjs.map → chunk-CC4DQ6NH.mjs.map} +1 -1
  99. package/dist/esm/chunk-CMNJG4NN.mjs +345 -0
  100. package/dist/esm/{chunk-T23OVRNF.mjs.map → chunk-CMNJG4NN.mjs.map} +1 -1
  101. package/dist/esm/chunk-CTJSZT5V.mjs +87 -0
  102. package/dist/esm/{chunk-J7J7ZTBF.mjs.map → chunk-CTJSZT5V.mjs.map} +1 -1
  103. package/dist/esm/chunk-CX3NAVRD.mjs +205 -0
  104. package/dist/esm/chunk-CX3NAVRD.mjs.map +1 -0
  105. package/dist/esm/chunk-CXUGZXED.mjs +307 -0
  106. package/dist/esm/{chunk-EKABTHUZ.mjs.map → chunk-CXUGZXED.mjs.map} +1 -1
  107. package/dist/esm/chunk-D2BVBXWO.mjs +7 -0
  108. package/dist/esm/{chunk-7PSX4LCV.mjs.map → chunk-D2BVBXWO.mjs.map} +1 -1
  109. package/dist/esm/chunk-DGV7DYU4.mjs +413 -0
  110. package/dist/esm/{chunk-7Q2NVO5M.mjs.map → chunk-DGV7DYU4.mjs.map} +1 -1
  111. package/dist/esm/chunk-DIYZRGR6.mjs +242 -0
  112. package/dist/esm/{chunk-UVOU6BW2.mjs.map → chunk-DIYZRGR6.mjs.map} +1 -1
  113. package/dist/esm/chunk-DNPMS2OF.mjs +236 -0
  114. package/dist/esm/{chunk-PFFAQZHT.mjs.map → chunk-DNPMS2OF.mjs.map} +1 -1
  115. package/dist/esm/chunk-DVPQGCFT.mjs +74 -0
  116. package/dist/esm/{chunk-RBPGL6YB.mjs.map → chunk-DVPQGCFT.mjs.map} +1 -1
  117. package/dist/esm/chunk-EYHRMZPO.mjs +34 -0
  118. package/dist/esm/{chunk-AH44UPM4.mjs.map → chunk-EYHRMZPO.mjs.map} +1 -1
  119. package/dist/esm/chunk-F2ZWA7B7.mjs +412 -0
  120. package/dist/esm/{chunk-RTSEMQCK.mjs.map → chunk-F2ZWA7B7.mjs.map} +1 -1
  121. package/dist/esm/chunk-FDWJNY4U.mjs +22 -0
  122. package/dist/esm/{chunk-STYDBDYL.mjs.map → chunk-FDWJNY4U.mjs.map} +1 -1
  123. package/dist/esm/chunk-FF4JPDKD.mjs +315 -0
  124. package/dist/esm/{chunk-5DW2AJPI.mjs.map → chunk-FF4JPDKD.mjs.map} +1 -1
  125. package/dist/esm/chunk-FQQW55X7.mjs +288 -0
  126. package/dist/esm/{chunk-TVRJ3M7B.mjs.map → chunk-FQQW55X7.mjs.map} +1 -1
  127. package/dist/esm/chunk-FXKSE3ZP.mjs +25 -0
  128. package/dist/esm/{chunk-COW5IGYC.mjs.map → chunk-FXKSE3ZP.mjs.map} +1 -1
  129. package/dist/esm/chunk-GBEVD2VM.mjs +99 -0
  130. package/dist/esm/chunk-GBEVD2VM.mjs.map +1 -0
  131. package/dist/esm/chunk-GGMTQAQP.mjs +11 -0
  132. package/dist/esm/{chunk-3JPVQHOR.mjs.map → chunk-GGMTQAQP.mjs.map} +1 -1
  133. package/dist/esm/chunk-GSVQ6EUD.mjs +649 -0
  134. package/dist/esm/{chunk-WOLIXKOK.mjs.map → chunk-GSVQ6EUD.mjs.map} +1 -1
  135. package/dist/esm/chunk-HBNSRCZN.mjs +100 -0
  136. package/dist/esm/{chunk-FKSACFCB.mjs.map → chunk-HBNSRCZN.mjs.map} +1 -1
  137. package/dist/esm/chunk-IC56GQFJ.mjs +127 -0
  138. package/dist/esm/{chunk-XN4SQWI5.mjs.map → chunk-IC56GQFJ.mjs.map} +1 -1
  139. package/dist/esm/chunk-IHNPN5CQ.mjs +256 -0
  140. package/dist/esm/chunk-IHNPN5CQ.mjs.map +1 -0
  141. package/dist/esm/chunk-JHDHNGJ3.mjs +126 -0
  142. package/dist/esm/{chunk-JVKMQ64G.mjs.map → chunk-JHDHNGJ3.mjs.map} +1 -1
  143. package/dist/esm/chunk-JL2JHVS4.mjs +49 -0
  144. package/dist/esm/{chunk-ZNEBMSNC.mjs.map → chunk-JL2JHVS4.mjs.map} +1 -1
  145. package/dist/esm/chunk-JV3GSIJW.mjs +268 -0
  146. package/dist/esm/chunk-JV3GSIJW.mjs.map +1 -0
  147. package/dist/esm/chunk-KK2BSALW.mjs +32 -0
  148. package/dist/esm/{chunk-3FVRXELT.mjs.map → chunk-KK2BSALW.mjs.map} +1 -1
  149. package/dist/esm/chunk-KMXSRHJ6.mjs +93 -0
  150. package/dist/esm/{chunk-NMECYE3D.mjs.map → chunk-KMXSRHJ6.mjs.map} +1 -1
  151. package/dist/esm/chunk-KVSQ57HU.mjs +45 -0
  152. package/dist/esm/{chunk-NNW6HWIO.mjs.map → chunk-KVSQ57HU.mjs.map} +1 -1
  153. package/dist/esm/chunk-LI2QV6RU.mjs +129 -0
  154. package/dist/esm/chunk-LI2QV6RU.mjs.map +1 -0
  155. package/dist/esm/chunk-LLLQJWRZ.mjs +35 -0
  156. package/dist/esm/{chunk-QNHDS64I.mjs.map → chunk-LLLQJWRZ.mjs.map} +1 -1
  157. package/dist/esm/chunk-LYK4TQZO.mjs +70 -0
  158. package/dist/esm/{chunk-OZC3FCJP.mjs.map → chunk-LYK4TQZO.mjs.map} +1 -1
  159. package/dist/esm/chunk-LYMY63SO.mjs +124 -0
  160. package/dist/esm/{chunk-UGIJHLL3.mjs.map → chunk-LYMY63SO.mjs.map} +1 -1
  161. package/dist/esm/chunk-MZZLEY6O.mjs +92 -0
  162. package/dist/esm/{chunk-NKCZ4KGO.mjs.map → chunk-MZZLEY6O.mjs.map} +1 -1
  163. package/dist/esm/chunk-N4WKFNQ6.mjs +156 -0
  164. package/dist/esm/{chunk-LDQ6JFEF.mjs.map → chunk-N4WKFNQ6.mjs.map} +1 -1
  165. package/dist/esm/chunk-NFJCQRVK.mjs +37 -0
  166. package/dist/esm/{chunk-YE5B2S5L.mjs.map → chunk-NFJCQRVK.mjs.map} +1 -1
  167. package/dist/esm/chunk-NMKCJNQM.mjs +20 -0
  168. package/dist/esm/{chunk-TJDC5PWD.mjs.map → chunk-NMKCJNQM.mjs.map} +1 -1
  169. package/dist/esm/chunk-NW45SCPY.mjs +36 -0
  170. package/dist/esm/{chunk-V7P6MLSY.mjs.map → chunk-NW45SCPY.mjs.map} +1 -1
  171. package/dist/esm/chunk-NXFO2W4G.mjs +84 -0
  172. package/dist/esm/{chunk-D22EMNIY.mjs.map → chunk-NXFO2W4G.mjs.map} +1 -1
  173. package/dist/esm/chunk-NYL77J4X.mjs +97 -0
  174. package/dist/esm/{chunk-43WARVT3.mjs.map → chunk-NYL77J4X.mjs.map} +1 -1
  175. package/dist/esm/chunk-O6PSHSN3.mjs +53 -0
  176. package/dist/esm/{chunk-6LOTZ4GY.mjs.map → chunk-O6PSHSN3.mjs.map} +1 -1
  177. package/dist/esm/chunk-OR7TEZ25.mjs +16 -0
  178. package/dist/esm/chunk-PCLNX6FS.mjs +17 -0
  179. package/dist/esm/{chunk-6FBKUTGF.mjs.map → chunk-PCLNX6FS.mjs.map} +1 -1
  180. package/dist/esm/chunk-PIMQHG2J.mjs +49 -0
  181. package/dist/esm/{chunk-C3L4ETUF.mjs.map → chunk-PIMQHG2J.mjs.map} +1 -1
  182. package/dist/esm/chunk-PU5AFUX3.mjs +52 -0
  183. package/dist/esm/chunk-PU5AFUX3.mjs.map +1 -0
  184. package/dist/esm/chunk-PYLOAMR2.mjs +29 -0
  185. package/dist/esm/{chunk-HGZGTBA4.mjs.map → chunk-PYLOAMR2.mjs.map} +1 -1
  186. package/dist/esm/chunk-QBBTUC66.mjs +15 -0
  187. package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-QBBTUC66.mjs.map} +1 -1
  188. package/dist/esm/chunk-QFOG4LIN.mjs +319 -0
  189. package/dist/esm/{chunk-RJ4PSGZ4.mjs.map → chunk-QFOG4LIN.mjs.map} +1 -1
  190. package/dist/esm/chunk-QMM2KL6C.mjs +12 -0
  191. package/dist/esm/{chunk-FBPNHF54.mjs.map → chunk-QMM2KL6C.mjs.map} +1 -1
  192. package/dist/esm/chunk-RCQMWXEW.mjs +35 -0
  193. package/dist/esm/{chunk-TXMPXZBG.mjs.map → chunk-RCQMWXEW.mjs.map} +1 -1
  194. package/dist/esm/chunk-RX4VG2AT.mjs +314 -0
  195. package/dist/esm/chunk-RX4VG2AT.mjs.map +1 -0
  196. package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
  197. package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
  198. package/dist/esm/chunk-SIJELMDP.mjs +29 -0
  199. package/dist/esm/{chunk-6EMN3BOV.mjs.map → chunk-SIJELMDP.mjs.map} +1 -1
  200. package/dist/esm/chunk-SS3NUM5L.mjs +94 -0
  201. package/dist/esm/{chunk-L54P6EGN.mjs.map → chunk-SS3NUM5L.mjs.map} +1 -1
  202. package/dist/esm/chunk-ST4QXIMI.mjs +37 -0
  203. package/dist/esm/{chunk-XMFPKHB5.mjs.map → chunk-ST4QXIMI.mjs.map} +1 -1
  204. package/dist/esm/chunk-TBHU6ZW6.mjs +215 -0
  205. package/dist/esm/{chunk-QHVZL3LZ.mjs.map → chunk-TBHU6ZW6.mjs.map} +1 -1
  206. package/dist/esm/chunk-TLNHRJB2.mjs +155 -0
  207. package/dist/esm/{chunk-H6LYW7HG.mjs.map → chunk-TLNHRJB2.mjs.map} +1 -1
  208. package/dist/esm/chunk-U3IUCR2G.mjs +54 -0
  209. package/dist/esm/{chunk-52ECIIIH.mjs.map → chunk-U3IUCR2G.mjs.map} +1 -1
  210. package/dist/esm/chunk-U7QBZ6PP.mjs +400 -0
  211. package/dist/esm/{chunk-ZM436N3W.mjs.map → chunk-U7QBZ6PP.mjs.map} +1 -1
  212. package/dist/esm/chunk-UEBBLQJ5.mjs +94 -0
  213. package/dist/esm/{chunk-7STYQ5ZE.mjs.map → chunk-UEBBLQJ5.mjs.map} +1 -1
  214. package/dist/esm/chunk-UKU6A2W2.mjs +232 -0
  215. package/dist/esm/{chunk-HXSW6X7K.mjs.map → chunk-UKU6A2W2.mjs.map} +1 -1
  216. package/dist/esm/chunk-UX5NSZEN.mjs +134 -0
  217. package/dist/esm/{chunk-WVIPPU2C.mjs.map → chunk-UX5NSZEN.mjs.map} +1 -1
  218. package/dist/esm/chunk-VDJBDX3A.mjs +79 -0
  219. package/dist/esm/{chunk-25N7RLBW.mjs.map → chunk-VDJBDX3A.mjs.map} +1 -1
  220. package/dist/esm/chunk-VJP2VWMF.mjs +58 -0
  221. package/dist/esm/{chunk-56NB52W6.mjs.map → chunk-VJP2VWMF.mjs.map} +1 -1
  222. package/dist/esm/chunk-VKJQORON.mjs +93 -0
  223. package/dist/esm/{chunk-3OELNIC6.mjs.map → chunk-VKJQORON.mjs.map} +1 -1
  224. package/dist/esm/chunk-VPWUODU4.mjs +51 -0
  225. package/dist/esm/{chunk-NNIHTVLA.mjs.map → chunk-VPWUODU4.mjs.map} +1 -1
  226. package/dist/esm/chunk-VZQXLVEP.mjs +197 -0
  227. package/dist/esm/{chunk-VJJN3GFD.mjs.map → chunk-VZQXLVEP.mjs.map} +1 -1
  228. package/dist/esm/chunk-W76MGKZB.mjs +33 -0
  229. package/dist/esm/{chunk-CLVAGDXO.mjs.map → chunk-W76MGKZB.mjs.map} +1 -1
  230. package/dist/esm/chunk-WDRH2URB.mjs +91 -0
  231. package/dist/esm/{chunk-65UZZNN2.mjs.map → chunk-WDRH2URB.mjs.map} +1 -1
  232. package/dist/esm/chunk-WHBWEN6N.mjs +206 -0
  233. package/dist/esm/{chunk-NGNETNK2.mjs.map → chunk-WHBWEN6N.mjs.map} +1 -1
  234. package/dist/esm/chunk-WK5ZSNE2.mjs +173 -0
  235. package/dist/esm/{chunk-6RBUXB5I.mjs.map → chunk-WK5ZSNE2.mjs.map} +1 -1
  236. package/dist/esm/chunk-WLTBF4DF.mjs +22 -0
  237. package/dist/esm/chunk-WLTBF4DF.mjs.map +1 -0
  238. package/dist/esm/chunk-WVGO4D7K.mjs +254 -0
  239. package/dist/esm/{chunk-OLGSIKFB.mjs.map → chunk-WVGO4D7K.mjs.map} +1 -1
  240. package/dist/esm/chunk-XANFAUBD.mjs +44 -0
  241. package/dist/esm/{chunk-NC5HHEEM.mjs.map → chunk-XANFAUBD.mjs.map} +1 -1
  242. package/dist/esm/chunk-Y2LV3S5W.mjs +410 -0
  243. package/dist/esm/{chunk-6SHLLRJA.mjs.map → chunk-Y2LV3S5W.mjs.map} +1 -1
  244. package/dist/esm/chunk-YV7M4CFP.mjs +137 -0
  245. package/dist/esm/{chunk-AOCNYMMX.mjs.map → chunk-YV7M4CFP.mjs.map} +1 -1
  246. package/dist/esm/chunk-YYOPNUX5.mjs +41 -0
  247. package/dist/esm/chunk-YYOPNUX5.mjs.map +1 -0
  248. package/dist/esm/chunk-ZAHJ7KXB.mjs +81 -0
  249. package/dist/esm/{chunk-Z5KKUXYI.mjs.map → chunk-ZAHJ7KXB.mjs.map} +1 -1
  250. package/dist/esm/chunk-ZMFKQUHL.mjs +117 -0
  251. package/dist/esm/{chunk-TICM455H.mjs.map → chunk-ZMFKQUHL.mjs.map} +1 -1
  252. package/dist/esm/cli/index.mjs +12 -1
  253. package/dist/esm/cli/localNode.mjs +8 -1
  254. package/dist/esm/cli/move.mjs +7 -1
  255. package/dist/esm/client/core.mjs +27 -1
  256. package/dist/esm/client/get.mjs +32 -1
  257. package/dist/esm/client/index.mjs +55 -1
  258. package/dist/esm/client/post.mjs +36 -1
  259. package/dist/esm/client/types.d.mts +5 -1
  260. package/dist/esm/client/types.mjs +7 -1
  261. package/dist/esm/core/account/index.mjs +19 -1
  262. package/dist/esm/core/account/utils/address.mjs +18 -1
  263. package/dist/esm/core/account/utils/index.mjs +19 -1
  264. package/dist/esm/core/accountAddress.mjs +15 -1
  265. package/dist/esm/core/authenticationKey.mjs +14 -1
  266. package/dist/esm/core/common.mjs +7 -1
  267. package/dist/esm/core/crypto/ed25519.d.mts +10 -0
  268. package/dist/esm/core/crypto/ed25519.mjs +29 -1
  269. package/dist/esm/core/crypto/ephemeral.d.mts +16 -20
  270. package/dist/esm/core/crypto/ephemeral.mjs +28 -1
  271. package/dist/esm/core/crypto/hdKey.d.mts +1 -15
  272. package/dist/esm/core/crypto/hdKey.mjs +25 -1
  273. package/dist/esm/core/crypto/index.d.mts +3 -2
  274. package/dist/esm/core/crypto/index.mjs +124 -1
  275. package/dist/esm/core/crypto/keyless.d.mts +121 -106
  276. package/dist/esm/core/crypto/keyless.mjs +55 -1
  277. package/dist/esm/core/crypto/multiEd25519.mjs +28 -1
  278. package/dist/esm/core/crypto/multiKey.mjs +34 -1
  279. package/dist/esm/core/crypto/poseidon.mjs +15 -1
  280. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  281. package/dist/esm/core/crypto/proof.d.mts +21 -0
  282. package/dist/esm/core/crypto/proof.mjs +20 -0
  283. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  284. package/dist/esm/core/crypto/publicKey.mjs +21 -1
  285. package/dist/esm/core/crypto/secp256k1.mjs +27 -1
  286. package/dist/esm/core/crypto/signature.mjs +19 -1
  287. package/dist/esm/core/crypto/singleKey.mjs +33 -1
  288. package/dist/esm/core/crypto/utils.mjs +9 -1
  289. package/dist/esm/core/hex.mjs +10 -1
  290. package/dist/esm/core/index.d.mts +3 -2
  291. package/dist/esm/core/index.mjs +141 -1
  292. package/dist/esm/index.d.mts +5 -4
  293. package/dist/esm/index.mjs +635 -1
  294. package/dist/esm/internal/account.mjs +106 -1
  295. package/dist/esm/internal/ans.mjs +120 -1
  296. package/dist/esm/internal/coin.mjs +85 -1
  297. package/dist/esm/internal/digitalAsset.mjs +127 -1
  298. package/dist/esm/internal/event.mjs +55 -1
  299. package/dist/esm/internal/faucet.mjs +52 -1
  300. package/dist/esm/internal/fungibleAsset.mjs +91 -1
  301. package/dist/esm/internal/general.mjs +46 -1
  302. package/dist/esm/internal/keyless.d.mts +4 -3
  303. package/dist/esm/internal/keyless.mjs +73 -1
  304. package/dist/esm/internal/staking.mjs +53 -1
  305. package/dist/esm/internal/transaction.mjs +51 -1
  306. package/dist/esm/internal/transactionSubmission.mjs +102 -1
  307. package/dist/esm/internal/view.mjs +83 -1
  308. package/dist/esm/transactions/authenticator/account.mjs +44 -1
  309. package/dist/esm/transactions/authenticator/index.mjs +60 -1
  310. package/dist/esm/transactions/authenticator/transaction.mjs +48 -1
  311. package/dist/esm/transactions/index.mjs +284 -1
  312. package/dist/esm/transactions/instances/chainId.mjs +11 -1
  313. package/dist/esm/transactions/instances/identifier.mjs +11 -1
  314. package/dist/esm/transactions/instances/index.mjs +96 -1
  315. package/dist/esm/transactions/instances/moduleId.mjs +38 -1
  316. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +43 -1
  317. package/dist/esm/transactions/instances/rawTransaction.mjs +48 -1
  318. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +20 -1
  319. package/dist/esm/transactions/instances/signedTransaction.mjs +45 -1
  320. package/dist/esm/transactions/instances/simpleTransaction.mjs +43 -1
  321. package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
  322. package/dist/esm/transactions/instances/transactionPayload.mjs +56 -1
  323. package/dist/esm/transactions/management/accountSequenceNumber.mjs +74 -1
  324. package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
  325. package/dist/esm/transactions/management/index.mjs +95 -1
  326. package/dist/esm/transactions/management/transactionWorker.mjs +91 -1
  327. package/dist/esm/transactions/transactionBuilder/helpers.mjs +75 -1
  328. package/dist/esm/transactions/transactionBuilder/index.mjs +162 -1
  329. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +85 -1
  330. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +58 -1
  331. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +98 -1
  332. package/dist/esm/transactions/typeTag/index.mjs +74 -1
  333. package/dist/esm/transactions/typeTag/parser.mjs +43 -1
  334. package/dist/esm/transactions/types.mjs +1 -1
  335. package/dist/esm/types/generated/queries.mjs +57 -1
  336. package/dist/esm/types/generated/types.mjs +809 -1
  337. package/dist/esm/types/generated/types.mjs.map +1 -1
  338. package/dist/esm/types/index.d.mts +6 -4
  339. package/dist/esm/types/index.mjs +68 -1
  340. package/dist/esm/types/indexer.mjs +1 -1
  341. package/dist/esm/types/keyless.d.mts +54 -1
  342. package/dist/esm/types/keyless.mjs +9 -0
  343. package/dist/esm/utils/apiEndpoints.mjs +21 -1
  344. package/dist/esm/utils/const.mjs +21 -1
  345. package/dist/esm/utils/helpers.mjs +7 -1
  346. package/dist/esm/utils/index.mjs +56 -1
  347. package/dist/esm/utils/memoize.mjs +9 -1
  348. package/dist/esm/utils/normalizeBundle.mjs +19 -1
  349. package/dist/esm/version.d.mts +1 -1
  350. package/dist/esm/version.mjs +7 -1
  351. package/package.json +5 -2
  352. package/src/account/EphemeralKeyPair.ts +45 -7
  353. package/src/account/KeylessAccount.ts +152 -113
  354. package/src/account/MultiKeyAccount.ts +4 -0
  355. package/src/api/keyless.ts +17 -4
  356. package/src/bcs/deserializer.ts +40 -0
  357. package/src/client/core.ts +1 -1
  358. package/src/client/types.ts +1 -1
  359. package/src/core/account/index.ts +0 -1
  360. package/src/core/crypto/ed25519.ts +24 -4
  361. package/src/core/crypto/ephemeral.ts +17 -28
  362. package/src/core/crypto/hdKey.ts +0 -31
  363. package/src/core/crypto/keyless.ts +231 -286
  364. package/src/core/crypto/proof.ts +16 -0
  365. package/src/internal/keyless.ts +16 -15
  366. package/src/internal/transactionSubmission.ts +16 -6
  367. package/src/transactions/management/transactionWorker.ts +1 -7
  368. package/src/types/index.ts +5 -2
  369. package/src/types/keyless.ts +31 -0
  370. package/src/utils/apiEndpoints.ts +6 -6
  371. package/src/version.ts +1 -1
  372. package/dist/common/chunk-KSEUZTKY.js +0 -2
  373. package/dist/common/chunk-KSEUZTKY.js.map +0 -1
  374. package/dist/esm/chunk-25N7RLBW.mjs +0 -2
  375. package/dist/esm/chunk-32355KGV.mjs +0 -2
  376. package/dist/esm/chunk-32355KGV.mjs.map +0 -1
  377. package/dist/esm/chunk-3FVRXELT.mjs +0 -2
  378. package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
  379. package/dist/esm/chunk-3OELNIC6.mjs +0 -2
  380. package/dist/esm/chunk-3U5VRZLS.mjs +0 -2
  381. package/dist/esm/chunk-3U5VRZLS.mjs.map +0 -1
  382. package/dist/esm/chunk-3VGX3TXH.mjs +0 -2
  383. package/dist/esm/chunk-43WARVT3.mjs +0 -2
  384. package/dist/esm/chunk-52ECIIIH.mjs +0 -2
  385. package/dist/esm/chunk-56CNRT2K.mjs +0 -2
  386. package/dist/esm/chunk-56NB52W6.mjs +0 -2
  387. package/dist/esm/chunk-5DW2AJPI.mjs +0 -2
  388. package/dist/esm/chunk-5QWUIVAQ.mjs +0 -2
  389. package/dist/esm/chunk-5QWUIVAQ.mjs.map +0 -1
  390. package/dist/esm/chunk-6456EI2E.mjs +0 -2
  391. package/dist/esm/chunk-6456EI2E.mjs.map +0 -1
  392. package/dist/esm/chunk-65UZZNN2.mjs +0 -2
  393. package/dist/esm/chunk-6EMN3BOV.mjs +0 -2
  394. package/dist/esm/chunk-6FBKUTGF.mjs +0 -2
  395. package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
  396. package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
  397. package/dist/esm/chunk-6LOTZ4GY.mjs +0 -2
  398. package/dist/esm/chunk-6RBUXB5I.mjs +0 -2
  399. package/dist/esm/chunk-6SHLLRJA.mjs +0 -2
  400. package/dist/esm/chunk-73Y4NTDU.mjs +0 -2
  401. package/dist/esm/chunk-73Y4NTDU.mjs.map +0 -1
  402. package/dist/esm/chunk-7PSX4LCV.mjs +0 -2
  403. package/dist/esm/chunk-7Q2NVO5M.mjs +0 -2
  404. package/dist/esm/chunk-7STYQ5ZE.mjs +0 -2
  405. package/dist/esm/chunk-7WJTKYRG.mjs +0 -2
  406. package/dist/esm/chunk-AH44UPM4.mjs +0 -2
  407. package/dist/esm/chunk-AOCNYMMX.mjs +0 -2
  408. package/dist/esm/chunk-C3L4ETUF.mjs +0 -2
  409. package/dist/esm/chunk-C5UVSNZW.mjs +0 -2
  410. package/dist/esm/chunk-CLVAGDXO.mjs +0 -2
  411. package/dist/esm/chunk-COW5IGYC.mjs +0 -2
  412. package/dist/esm/chunk-D22EMNIY.mjs +0 -2
  413. package/dist/esm/chunk-DLTC6PJP.mjs +0 -2
  414. package/dist/esm/chunk-EB7AI4B4.mjs +0 -2
  415. package/dist/esm/chunk-EKABTHUZ.mjs +0 -2
  416. package/dist/esm/chunk-EOMDZYSJ.mjs +0 -2
  417. package/dist/esm/chunk-EOMDZYSJ.mjs.map +0 -1
  418. package/dist/esm/chunk-FBPNHF54.mjs +0 -2
  419. package/dist/esm/chunk-FKSACFCB.mjs +0 -2
  420. package/dist/esm/chunk-FLYEALDB.mjs +0 -2
  421. package/dist/esm/chunk-FVA2OPG4.mjs +0 -2
  422. package/dist/esm/chunk-G4XSNSOT.mjs +0 -2
  423. package/dist/esm/chunk-H3TFQ7K4.mjs +0 -2
  424. package/dist/esm/chunk-H6LYW7HG.mjs +0 -2
  425. package/dist/esm/chunk-HCGWCB5E.mjs +0 -2
  426. package/dist/esm/chunk-HCGWCB5E.mjs.map +0 -1
  427. package/dist/esm/chunk-HGZGTBA4.mjs +0 -2
  428. package/dist/esm/chunk-HXSW6X7K.mjs +0 -2
  429. package/dist/esm/chunk-IXYXFDJZ.mjs +0 -2
  430. package/dist/esm/chunk-J7J7ZTBF.mjs +0 -2
  431. package/dist/esm/chunk-JVKMQ64G.mjs +0 -2
  432. package/dist/esm/chunk-KWNBC5MF.mjs +0 -2
  433. package/dist/esm/chunk-L54P6EGN.mjs +0 -2
  434. package/dist/esm/chunk-LDQ6JFEF.mjs +0 -2
  435. package/dist/esm/chunk-MGOHPDX4.mjs +0 -2
  436. package/dist/esm/chunk-MWUJCP27.mjs +0 -2
  437. package/dist/esm/chunk-NC5HHEEM.mjs +0 -2
  438. package/dist/esm/chunk-NGNETNK2.mjs +0 -2
  439. package/dist/esm/chunk-NKCZ4KGO.mjs +0 -2
  440. package/dist/esm/chunk-NMECYE3D.mjs +0 -2
  441. package/dist/esm/chunk-NNIHTVLA.mjs +0 -2
  442. package/dist/esm/chunk-NNW6HWIO.mjs +0 -2
  443. package/dist/esm/chunk-O34EOOVF.mjs +0 -2
  444. package/dist/esm/chunk-OBEVVLF7.mjs +0 -2
  445. package/dist/esm/chunk-OBEVVLF7.mjs.map +0 -1
  446. package/dist/esm/chunk-OKRUEVF3.mjs +0 -2
  447. package/dist/esm/chunk-OKRUEVF3.mjs.map +0 -1
  448. package/dist/esm/chunk-OLGSIKFB.mjs +0 -2
  449. package/dist/esm/chunk-OZC3FCJP.mjs +0 -2
  450. package/dist/esm/chunk-PFFAQZHT.mjs +0 -2
  451. package/dist/esm/chunk-PINF6ZWP.mjs +0 -2
  452. package/dist/esm/chunk-PJXRQBF6.mjs +0 -2
  453. package/dist/esm/chunk-PJXRQBF6.mjs.map +0 -1
  454. package/dist/esm/chunk-QHVZL3LZ.mjs +0 -2
  455. package/dist/esm/chunk-QNHDS64I.mjs +0 -2
  456. package/dist/esm/chunk-RBPGL6YB.mjs +0 -2
  457. package/dist/esm/chunk-RJ4PSGZ4.mjs +0 -2
  458. package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
  459. package/dist/esm/chunk-RTSEMQCK.mjs +0 -2
  460. package/dist/esm/chunk-SRPTQ4VV.mjs +0 -2
  461. package/dist/esm/chunk-STYDBDYL.mjs +0 -2
  462. package/dist/esm/chunk-T23OVRNF.mjs +0 -2
  463. package/dist/esm/chunk-TICM455H.mjs +0 -2
  464. package/dist/esm/chunk-TJDC5PWD.mjs +0 -2
  465. package/dist/esm/chunk-TVRJ3M7B.mjs +0 -2
  466. package/dist/esm/chunk-TXMPXZBG.mjs +0 -2
  467. package/dist/esm/chunk-U6Z4FNB7.mjs +0 -2
  468. package/dist/esm/chunk-UGIJHLL3.mjs +0 -2
  469. package/dist/esm/chunk-UVOU6BW2.mjs +0 -2
  470. package/dist/esm/chunk-V7P6MLSY.mjs +0 -2
  471. package/dist/esm/chunk-VJJN3GFD.mjs +0 -2
  472. package/dist/esm/chunk-WOLIXKOK.mjs +0 -2
  473. package/dist/esm/chunk-WVIPPU2C.mjs +0 -2
  474. package/dist/esm/chunk-XCR3YNHW.mjs +0 -2
  475. package/dist/esm/chunk-XCR3YNHW.mjs.map +0 -1
  476. package/dist/esm/chunk-XMFPKHB5.mjs +0 -2
  477. package/dist/esm/chunk-XN4SQWI5.mjs +0 -2
  478. package/dist/esm/chunk-YE5B2S5L.mjs +0 -2
  479. package/dist/esm/chunk-Z5KKUXYI.mjs +0 -2
  480. package/dist/esm/chunk-ZM436N3W.mjs +0 -2
  481. package/dist/esm/chunk-ZNEBMSNC.mjs +0 -2
  482. /package/dist/esm/{chunk-FVA2OPG4.mjs.map → chunk-OR7TEZ25.mjs.map} +0 -0
@@ -0,0 +1,54 @@
1
+ import {
2
+ RawTransaction
3
+ } from "./chunk-2OQW7BMN.mjs";
4
+ import {
5
+ AccountAddress
6
+ } from "./chunk-CMNJG4NN.mjs";
7
+ import {
8
+ Serializable
9
+ } from "./chunk-FQQW55X7.mjs";
10
+
11
+ // src/transactions/instances/multiAgentTransaction.ts
12
+ var MultiAgentTransaction = class _MultiAgentTransaction extends Serializable {
13
+ /**
14
+ * SimpleTransaction represents a simple transaction type of a single signer that
15
+ * can be submitted to Aptos chain for execution.
16
+ *
17
+ * SimpleTransaction metadata contains the Raw Transaction and an optional
18
+ * sponsor Account Address to pay the gas fees.
19
+ *
20
+ * @param rawTransaction The Raw Tranasaction
21
+ * @param feePayerAddress The sponsor Account Address
22
+ */
23
+ constructor(rawTransaction, secondarySignerAddresses, feePayerAddress) {
24
+ super();
25
+ this.rawTransaction = rawTransaction;
26
+ this.feePayerAddress = feePayerAddress;
27
+ this.secondarySignerAddresses = secondarySignerAddresses;
28
+ }
29
+ serialize(serializer) {
30
+ this.rawTransaction.serialize(serializer);
31
+ serializer.serializeVector(this.secondarySignerAddresses);
32
+ if (this.feePayerAddress === void 0) {
33
+ serializer.serializeBool(false);
34
+ } else {
35
+ serializer.serializeBool(true);
36
+ this.feePayerAddress.serialize(serializer);
37
+ }
38
+ }
39
+ static deserialize(deserializer) {
40
+ const rawTransaction = RawTransaction.deserialize(deserializer);
41
+ const secondarySignerAddresses = deserializer.deserializeVector(AccountAddress);
42
+ const feepayerPresent = deserializer.deserializeBool();
43
+ let feePayerAddress;
44
+ if (feepayerPresent) {
45
+ feePayerAddress = AccountAddress.deserialize(deserializer);
46
+ }
47
+ return new _MultiAgentTransaction(rawTransaction, secondarySignerAddresses, feePayerAddress);
48
+ }
49
+ };
50
+
51
+ export {
52
+ MultiAgentTransaction
53
+ };
54
+ //# sourceMappingURL=chunk-U3IUCR2G.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transactions/instances/multiAgentTransaction.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { AccountAddress } from \"../../core\";\nimport { RawTransaction } from \"./rawTransaction\";\n\n/**\n * Representation of a Raw Transaction that can serialized and deserialized\n */\nexport class MultiAgentTransaction extends Serializable {\n public rawTransaction: RawTransaction;\n\n public feePayerAddress?: AccountAddress | undefined;\n\n public secondarySignerAddresses: AccountAddress[];\n\n /**\n * SimpleTransaction represents a simple transaction type of a single signer that\n * can be submitted to Aptos chain for execution.\n *\n * SimpleTransaction metadata contains the Raw Transaction and an optional\n * sponsor Account Address to pay the gas fees.\n *\n * @param rawTransaction The Raw Tranasaction\n * @param feePayerAddress The sponsor Account Address\n */\n constructor(\n rawTransaction: RawTransaction,\n secondarySignerAddresses: AccountAddress[],\n feePayerAddress?: AccountAddress,\n ) {\n super();\n this.rawTransaction = rawTransaction;\n this.feePayerAddress = feePayerAddress;\n this.secondarySignerAddresses = secondarySignerAddresses;\n }\n\n serialize(serializer: Serializer): void {\n this.rawTransaction.serialize(serializer);\n\n serializer.serializeVector<AccountAddress>(this.secondarySignerAddresses);\n\n if (this.feePayerAddress === undefined) {\n serializer.serializeBool(false);\n } else {\n serializer.serializeBool(true);\n this.feePayerAddress.serialize(serializer);\n }\n }\n\n static deserialize(deserializer: Deserializer): MultiAgentTransaction {\n const rawTransaction = RawTransaction.deserialize(deserializer);\n\n const secondarySignerAddresses = deserializer.deserializeVector(AccountAddress);\n\n const feepayerPresent = deserializer.deserializeBool();\n let feePayerAddress;\n if (feepayerPresent) {\n feePayerAddress = AccountAddress.deserialize(deserializer);\n }\n\n return new MultiAgentTransaction(rawTransaction, secondarySignerAddresses, feePayerAddress);\n }\n}\n"],"mappings":"2HAaO,IAAMA,EAAN,MAAMC,UAA8BC,CAAa,CAiBtD,YACEC,EACAC,EACAC,EACA,CACA,MAAM,EACN,KAAK,eAAiBF,EACtB,KAAK,gBAAkBE,EACvB,KAAK,yBAA2BD,CAClC,CAEA,UAAUE,EAA8B,CACtC,KAAK,eAAe,UAAUA,CAAU,EAExCA,EAAW,gBAAgC,KAAK,wBAAwB,EAEpE,KAAK,kBAAoB,OAC3BA,EAAW,cAAc,EAAK,GAE9BA,EAAW,cAAc,EAAI,EAC7B,KAAK,gBAAgB,UAAUA,CAAU,EAE7C,CAEA,OAAO,YAAYC,EAAmD,CACpE,IAAMJ,EAAiBK,EAAe,YAAYD,CAAY,EAExDH,EAA2BG,EAAa,kBAAkBE,CAAc,EAExEC,EAAkBH,EAAa,gBAAgB,EACjDF,EACJ,OAAIK,IACFL,EAAkBI,EAAe,YAAYF,CAAY,GAGpD,IAAIN,EAAsBE,EAAgBC,EAA0BC,CAAe,CAC5F,CACF","names":["MultiAgentTransaction","_MultiAgentTransaction","Serializable","rawTransaction","secondarySignerAddresses","feePayerAddress","serializer","deserializer","RawTransaction","AccountAddress","feepayerPresent"]}
1
+ {"version":3,"sources":["../../src/transactions/instances/multiAgentTransaction.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { AccountAddress } from \"../../core\";\nimport { RawTransaction } from \"./rawTransaction\";\n\n/**\n * Representation of a Raw Transaction that can serialized and deserialized\n */\nexport class MultiAgentTransaction extends Serializable {\n public rawTransaction: RawTransaction;\n\n public feePayerAddress?: AccountAddress | undefined;\n\n public secondarySignerAddresses: AccountAddress[];\n\n /**\n * SimpleTransaction represents a simple transaction type of a single signer that\n * can be submitted to Aptos chain for execution.\n *\n * SimpleTransaction metadata contains the Raw Transaction and an optional\n * sponsor Account Address to pay the gas fees.\n *\n * @param rawTransaction The Raw Tranasaction\n * @param feePayerAddress The sponsor Account Address\n */\n constructor(\n rawTransaction: RawTransaction,\n secondarySignerAddresses: AccountAddress[],\n feePayerAddress?: AccountAddress,\n ) {\n super();\n this.rawTransaction = rawTransaction;\n this.feePayerAddress = feePayerAddress;\n this.secondarySignerAddresses = secondarySignerAddresses;\n }\n\n serialize(serializer: Serializer): void {\n this.rawTransaction.serialize(serializer);\n\n serializer.serializeVector<AccountAddress>(this.secondarySignerAddresses);\n\n if (this.feePayerAddress === undefined) {\n serializer.serializeBool(false);\n } else {\n serializer.serializeBool(true);\n this.feePayerAddress.serialize(serializer);\n }\n }\n\n static deserialize(deserializer: Deserializer): MultiAgentTransaction {\n const rawTransaction = RawTransaction.deserialize(deserializer);\n\n const secondarySignerAddresses = deserializer.deserializeVector(AccountAddress);\n\n const feepayerPresent = deserializer.deserializeBool();\n let feePayerAddress;\n if (feepayerPresent) {\n feePayerAddress = AccountAddress.deserialize(deserializer);\n }\n\n return new MultiAgentTransaction(rawTransaction, secondarySignerAddresses, feePayerAddress);\n }\n}\n"],"mappings":";;;;;;;;;;;AAaO,IAAM,wBAAN,MAAM,+BAA8B,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBtD,YACE,gBACA,0BACA,iBACA;AACA,UAAM;AACN,SAAK,iBAAiB;AACtB,SAAK,kBAAkB;AACvB,SAAK,2BAA2B;AAAA,EAClC;AAAA,EAEA,UAAU,YAA8B;AACtC,SAAK,eAAe,UAAU,UAAU;AAExC,eAAW,gBAAgC,KAAK,wBAAwB;AAExE,QAAI,KAAK,oBAAoB,QAAW;AACtC,iBAAW,cAAc,KAAK;AAAA,IAChC,OAAO;AACL,iBAAW,cAAc,IAAI;AAC7B,WAAK,gBAAgB,UAAU,UAAU;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,OAAO,YAAY,cAAmD;AACpE,UAAM,iBAAiB,eAAe,YAAY,YAAY;AAE9D,UAAM,2BAA2B,aAAa,kBAAkB,cAAc;AAE9E,UAAM,kBAAkB,aAAa,gBAAgB;AACrD,QAAI;AACJ,QAAI,iBAAiB;AACnB,wBAAkB,eAAe,YAAY,YAAY;AAAA,IAC3D;AAEA,WAAO,IAAI,uBAAsB,gBAAgB,0BAA0B,eAAe;AAAA,EAC5F;AACF;","names":[]}
@@ -0,0 +1,400 @@
1
+ import {
2
+ convertArgument,
3
+ fetchEntryFunctionAbi,
4
+ fetchViewFunctionAbi,
5
+ standardizeTypeTags
6
+ } from "./chunk-CXUGZXED.mjs";
7
+ import {
8
+ getFunctionParts,
9
+ isScriptDataInput
10
+ } from "./chunk-ZMFKQUHL.mjs";
11
+ import {
12
+ getInfo
13
+ } from "./chunk-Y2LV3S5W.mjs";
14
+ import {
15
+ getGasPriceEstimation
16
+ } from "./chunk-TBHU6ZW6.mjs";
17
+ import {
18
+ memoizeAsync
19
+ } from "./chunk-EYHRMZPO.mjs";
20
+ import {
21
+ getLedgerInfo
22
+ } from "./chunk-LYMY63SO.mjs";
23
+ import {
24
+ normalizeBundle
25
+ } from "./chunk-QBBTUC66.mjs";
26
+ import {
27
+ NetworkToChainId
28
+ } from "./chunk-7REUIYF4.mjs";
29
+ import {
30
+ MultiAgentTransaction
31
+ } from "./chunk-U3IUCR2G.mjs";
32
+ import {
33
+ SignedTransaction
34
+ } from "./chunk-ATVFVXR6.mjs";
35
+ import {
36
+ SimpleTransaction
37
+ } from "./chunk-VPWUODU4.mjs";
38
+ import {
39
+ FeePayerRawTransaction,
40
+ MultiAgentRawTransaction,
41
+ RawTransaction
42
+ } from "./chunk-2OQW7BMN.mjs";
43
+ import {
44
+ EntryFunction,
45
+ MultiSig,
46
+ MultiSigTransactionPayload,
47
+ Script,
48
+ TransactionPayloadEntryFunction,
49
+ TransactionPayloadMultiSig,
50
+ TransactionPayloadScript
51
+ } from "./chunk-QFOG4LIN.mjs";
52
+ import {
53
+ TransactionAuthenticatorEd25519,
54
+ TransactionAuthenticatorFeePayer,
55
+ TransactionAuthenticatorMultiAgent,
56
+ TransactionAuthenticatorSingleSender
57
+ } from "./chunk-ASF2VWOX.mjs";
58
+ import {
59
+ AccountAuthenticator,
60
+ AccountAuthenticatorEd25519,
61
+ AccountAuthenticatorSingleKey
62
+ } from "./chunk-IC56GQFJ.mjs";
63
+ import {
64
+ ChainId
65
+ } from "./chunk-6MSZMIFW.mjs";
66
+ import {
67
+ DEFAULT_MAX_GAS_AMOUNT,
68
+ DEFAULT_TXN_EXP_SEC_FROM_NOW
69
+ } from "./chunk-NFJCQRVK.mjs";
70
+ import {
71
+ AnyPublicKey,
72
+ AnySignature
73
+ } from "./chunk-TLNHRJB2.mjs";
74
+ import {
75
+ Secp256k1PublicKey,
76
+ Secp256k1Signature
77
+ } from "./chunk-DIYZRGR6.mjs";
78
+ import {
79
+ Ed25519PublicKey,
80
+ Ed25519Signature
81
+ } from "./chunk-RX4VG2AT.mjs";
82
+ import {
83
+ AccountAddress
84
+ } from "./chunk-CMNJG4NN.mjs";
85
+ import {
86
+ Hex
87
+ } from "./chunk-YV7M4CFP.mjs";
88
+
89
+ // src/transactions/transactionBuilder/transactionBuilder.ts
90
+ import { sha3_256 as sha3Hash } from "@noble/hashes/sha3";
91
+ async function generateTransactionPayload(args) {
92
+ if (isScriptDataInput(args)) {
93
+ return generateTransactionPayloadScript(args);
94
+ }
95
+ const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);
96
+ const functionAbi = await fetchAbi({
97
+ key: "entry-function",
98
+ moduleAddress,
99
+ moduleName,
100
+ functionName,
101
+ aptosConfig: args.aptosConfig,
102
+ abi: args.abi,
103
+ fetch: fetchEntryFunctionAbi
104
+ });
105
+ return generateTransactionPayloadWithABI({ ...args, abi: functionAbi });
106
+ }
107
+ function generateTransactionPayloadWithABI(args) {
108
+ const functionAbi = args.abi;
109
+ const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);
110
+ const typeArguments = standardizeTypeTags(args.typeArguments);
111
+ if (typeArguments.length !== functionAbi.typeParameters.length) {
112
+ throw new Error(
113
+ `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`
114
+ );
115
+ }
116
+ const functionArguments = args.functionArguments.map(
117
+ (arg, i) => convertArgument(args.function, functionAbi, arg, i, typeArguments)
118
+ );
119
+ if (functionArguments.length !== functionAbi.parameters.length) {
120
+ throw new Error(
121
+ // eslint-disable-next-line max-len
122
+ `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`
123
+ );
124
+ }
125
+ const entryFunctionPayload = EntryFunction.build(
126
+ `${moduleAddress}::${moduleName}`,
127
+ functionName,
128
+ typeArguments,
129
+ functionArguments
130
+ );
131
+ if ("multisigAddress" in args) {
132
+ const multisigAddress = AccountAddress.from(args.multisigAddress);
133
+ return new TransactionPayloadMultiSig(
134
+ new MultiSig(multisigAddress, new MultiSigTransactionPayload(entryFunctionPayload))
135
+ );
136
+ }
137
+ return new TransactionPayloadEntryFunction(entryFunctionPayload);
138
+ }
139
+ async function generateViewFunctionPayload(args) {
140
+ const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);
141
+ const functionAbi = await fetchAbi({
142
+ key: "view-function",
143
+ moduleAddress,
144
+ moduleName,
145
+ functionName,
146
+ aptosConfig: args.aptosConfig,
147
+ abi: args.abi,
148
+ fetch: fetchViewFunctionAbi
149
+ });
150
+ return generateViewFunctionPayloadWithABI({ abi: functionAbi, ...args });
151
+ }
152
+ function generateViewFunctionPayloadWithABI(args) {
153
+ const functionAbi = args.abi;
154
+ const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);
155
+ const typeArguments = standardizeTypeTags(args.typeArguments);
156
+ if (typeArguments.length !== functionAbi.typeParameters.length) {
157
+ throw new Error(
158
+ `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`
159
+ );
160
+ }
161
+ const functionArguments = args?.functionArguments?.map((arg, i) => convertArgument(args.function, functionAbi, arg, i, typeArguments)) ?? [];
162
+ if (functionArguments.length !== functionAbi.parameters.length) {
163
+ throw new Error(
164
+ // eslint-disable-next-line max-len
165
+ `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`
166
+ );
167
+ }
168
+ return EntryFunction.build(`${moduleAddress}::${moduleName}`, functionName, typeArguments, functionArguments);
169
+ }
170
+ function generateTransactionPayloadScript(args) {
171
+ return new TransactionPayloadScript(
172
+ new Script(Hex.fromHexInput(args.bytecode).toUint8Array(), args.typeArguments ?? [], args.functionArguments)
173
+ );
174
+ }
175
+ async function generateRawTransaction(args) {
176
+ const { aptosConfig, sender, payload, options, feePayerAddress } = args;
177
+ const getChainId = async () => {
178
+ if (NetworkToChainId[aptosConfig.network]) {
179
+ return { chainId: NetworkToChainId[aptosConfig.network] };
180
+ }
181
+ const info = await getLedgerInfo({ aptosConfig });
182
+ return { chainId: info.chain_id };
183
+ };
184
+ const getGasUnitPrice = async () => {
185
+ if (options?.gasUnitPrice) {
186
+ return { gasEstimate: options.gasUnitPrice };
187
+ }
188
+ const estimation = await getGasPriceEstimation({ aptosConfig });
189
+ return { gasEstimate: estimation.gas_estimate };
190
+ };
191
+ const getSequenceNumberForAny = async () => {
192
+ const getSequenceNumber = async () => {
193
+ if (options?.accountSequenceNumber !== void 0) {
194
+ return options.accountSequenceNumber;
195
+ }
196
+ return (await getInfo({ aptosConfig, accountAddress: sender })).sequence_number;
197
+ };
198
+ if (feePayerAddress && AccountAddress.from(feePayerAddress).equals(AccountAddress.ZERO)) {
199
+ try {
200
+ return await getSequenceNumber();
201
+ } catch (e) {
202
+ return 0;
203
+ }
204
+ } else {
205
+ return getSequenceNumber();
206
+ }
207
+ };
208
+ const [{ chainId }, { gasEstimate }, sequenceNumber] = await Promise.all([
209
+ getChainId(),
210
+ getGasUnitPrice(),
211
+ getSequenceNumberForAny()
212
+ ]);
213
+ const { maxGasAmount, gasUnitPrice, expireTimestamp } = {
214
+ maxGasAmount: options?.maxGasAmount ? BigInt(options.maxGasAmount) : BigInt(DEFAULT_MAX_GAS_AMOUNT),
215
+ gasUnitPrice: options?.gasUnitPrice ?? BigInt(gasEstimate),
216
+ expireTimestamp: options?.expireTimestamp ?? BigInt(Math.floor(Date.now() / 1e3) + DEFAULT_TXN_EXP_SEC_FROM_NOW)
217
+ };
218
+ return new RawTransaction(
219
+ AccountAddress.from(sender),
220
+ BigInt(sequenceNumber),
221
+ payload,
222
+ BigInt(maxGasAmount),
223
+ BigInt(gasUnitPrice),
224
+ BigInt(expireTimestamp),
225
+ new ChainId(chainId)
226
+ );
227
+ }
228
+ async function buildTransaction(args) {
229
+ const { aptosConfig, sender, payload, options, feePayerAddress } = args;
230
+ const rawTxn = await generateRawTransaction({
231
+ aptosConfig,
232
+ sender,
233
+ payload,
234
+ options,
235
+ feePayerAddress
236
+ });
237
+ if ("secondarySignerAddresses" in args) {
238
+ const signers = args.secondarySignerAddresses?.map((signer) => AccountAddress.from(signer)) ?? [];
239
+ return new MultiAgentTransaction(
240
+ rawTxn,
241
+ signers,
242
+ args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : void 0
243
+ );
244
+ }
245
+ return new SimpleTransaction(rawTxn, args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : void 0);
246
+ }
247
+ function generateSignedTransactionForSimulation(args) {
248
+ const { signerPublicKey, transaction, secondarySignersPublicKeys, feePayerPublicKey } = args;
249
+ const accountAuthenticator = getAuthenticatorForSimulation(signerPublicKey);
250
+ if (transaction.feePayerAddress) {
251
+ const transactionToSign = new FeePayerRawTransaction(
252
+ transaction.rawTransaction,
253
+ transaction.secondarySignerAddresses ?? [],
254
+ transaction.feePayerAddress
255
+ );
256
+ let secondaryAccountAuthenticators = [];
257
+ if (secondarySignersPublicKeys) {
258
+ secondaryAccountAuthenticators = secondarySignersPublicKeys.map(
259
+ (publicKey) => getAuthenticatorForSimulation(publicKey)
260
+ );
261
+ }
262
+ const feePayerAuthenticator = getAuthenticatorForSimulation(feePayerPublicKey);
263
+ const transactionAuthenticator2 = new TransactionAuthenticatorFeePayer(
264
+ accountAuthenticator,
265
+ transaction.secondarySignerAddresses ?? [],
266
+ secondaryAccountAuthenticators,
267
+ {
268
+ address: transaction.feePayerAddress,
269
+ authenticator: feePayerAuthenticator
270
+ }
271
+ );
272
+ return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator2).bcsToBytes();
273
+ }
274
+ if (transaction.secondarySignerAddresses) {
275
+ const transactionToSign = new MultiAgentRawTransaction(
276
+ transaction.rawTransaction,
277
+ transaction.secondarySignerAddresses
278
+ );
279
+ let secondaryAccountAuthenticators = [];
280
+ secondaryAccountAuthenticators = secondarySignersPublicKeys.map(
281
+ (publicKey) => getAuthenticatorForSimulation(publicKey)
282
+ );
283
+ const transactionAuthenticator2 = new TransactionAuthenticatorMultiAgent(
284
+ accountAuthenticator,
285
+ transaction.secondarySignerAddresses,
286
+ secondaryAccountAuthenticators
287
+ );
288
+ return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator2).bcsToBytes();
289
+ }
290
+ let transactionAuthenticator;
291
+ if (accountAuthenticator instanceof AccountAuthenticatorEd25519) {
292
+ transactionAuthenticator = new TransactionAuthenticatorEd25519(
293
+ accountAuthenticator.public_key,
294
+ accountAuthenticator.signature
295
+ );
296
+ } else if (accountAuthenticator instanceof AccountAuthenticatorSingleKey) {
297
+ transactionAuthenticator = new TransactionAuthenticatorSingleSender(accountAuthenticator);
298
+ } else {
299
+ throw new Error("Invalid public key");
300
+ }
301
+ return new SignedTransaction(transaction.rawTransaction, transactionAuthenticator).bcsToBytes();
302
+ }
303
+ function getAuthenticatorForSimulation(publicKey) {
304
+ if (publicKey instanceof AnyPublicKey) {
305
+ if (publicKey.publicKey instanceof Ed25519PublicKey) {
306
+ return new AccountAuthenticatorSingleKey(publicKey, new AnySignature(new Ed25519Signature(new Uint8Array(64))));
307
+ }
308
+ if (publicKey.publicKey instanceof Secp256k1PublicKey) {
309
+ return new AccountAuthenticatorSingleKey(publicKey, new AnySignature(new Secp256k1Signature(new Uint8Array(64))));
310
+ }
311
+ }
312
+ return new AccountAuthenticatorEd25519(
313
+ new Ed25519PublicKey(publicKey.toUint8Array()),
314
+ new Ed25519Signature(new Uint8Array(64))
315
+ );
316
+ }
317
+ function generateSignedTransaction(args) {
318
+ const { transaction, feePayerAuthenticator, additionalSignersAuthenticators } = args;
319
+ const senderAuthenticator = normalizeBundle(AccountAuthenticator, args.senderAuthenticator);
320
+ let txnAuthenticator;
321
+ if (transaction.feePayerAddress) {
322
+ if (!feePayerAuthenticator) {
323
+ throw new Error("Must provide a feePayerAuthenticator argument to generate a signed fee payer transaction");
324
+ }
325
+ txnAuthenticator = new TransactionAuthenticatorFeePayer(
326
+ senderAuthenticator,
327
+ transaction.secondarySignerAddresses ?? [],
328
+ additionalSignersAuthenticators ?? [],
329
+ {
330
+ address: transaction.feePayerAddress,
331
+ authenticator: feePayerAuthenticator
332
+ }
333
+ );
334
+ } else if (transaction.secondarySignerAddresses) {
335
+ if (!additionalSignersAuthenticators) {
336
+ throw new Error(
337
+ "Must provide a additionalSignersAuthenticators argument to generate a signed multi agent transaction"
338
+ );
339
+ }
340
+ txnAuthenticator = new TransactionAuthenticatorMultiAgent(
341
+ senderAuthenticator,
342
+ transaction.secondarySignerAddresses,
343
+ additionalSignersAuthenticators
344
+ );
345
+ } else if (senderAuthenticator instanceof AccountAuthenticatorEd25519) {
346
+ txnAuthenticator = new TransactionAuthenticatorEd25519(
347
+ senderAuthenticator.public_key,
348
+ senderAuthenticator.signature
349
+ );
350
+ } else {
351
+ txnAuthenticator = new TransactionAuthenticatorSingleSender(senderAuthenticator);
352
+ }
353
+ return new SignedTransaction(transaction.rawTransaction, txnAuthenticator).bcsToBytes();
354
+ }
355
+ function hashValues(input) {
356
+ const hash = sha3Hash.create();
357
+ for (const item of input) {
358
+ hash.update(item);
359
+ }
360
+ return hash.digest();
361
+ }
362
+ var TRANSACTION_PREFIX = hashValues(["APTOS::Transaction"]);
363
+ function generateUserTransactionHash(args) {
364
+ const signedTransaction = generateSignedTransaction(args);
365
+ return new Hex(hashValues([TRANSACTION_PREFIX, new Uint8Array([0]), signedTransaction])).toString();
366
+ }
367
+ async function fetchAbi({
368
+ key,
369
+ moduleAddress,
370
+ moduleName,
371
+ functionName,
372
+ aptosConfig,
373
+ abi,
374
+ fetch
375
+ }) {
376
+ if (abi !== void 0) {
377
+ return abi;
378
+ }
379
+ return memoizeAsync(
380
+ async () => fetch(moduleAddress, moduleName, functionName, aptosConfig),
381
+ `${key}-${aptosConfig.network}-${moduleAddress}-${moduleName}-${functionName}`,
382
+ 1e3 * 60 * 5
383
+ // 5 minutes
384
+ )();
385
+ }
386
+
387
+ export {
388
+ generateTransactionPayload,
389
+ generateTransactionPayloadWithABI,
390
+ generateViewFunctionPayload,
391
+ generateViewFunctionPayloadWithABI,
392
+ generateRawTransaction,
393
+ buildTransaction,
394
+ generateSignedTransactionForSimulation,
395
+ getAuthenticatorForSimulation,
396
+ generateSignedTransaction,
397
+ hashValues,
398
+ generateUserTransactionHash
399
+ };
400
+ //# sourceMappingURL=chunk-U7QBZ6PP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transactions/transactionBuilder/transactionBuilder.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This file handles the transaction creation lifecycle.\n * It holds different operations to generate a transaction payload, a raw transaction,\n * and a signed transaction that can be simulated, signed and submitted to chain.\n */\nimport { sha3_256 as sha3Hash } from \"@noble/hashes/sha3\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport { AccountAddress, AccountAddressInput, Hex, PublicKey } from \"../../core\";\nimport { AnyPublicKey, AnySignature, Secp256k1PublicKey, Secp256k1Signature } from \"../../core/crypto\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"../../core/crypto/ed25519\";\nimport { getInfo } from \"../../internal/account\";\nimport { getLedgerInfo } from \"../../internal/general\";\nimport { getGasPriceEstimation } from \"../../internal/transaction\";\nimport { NetworkToChainId } from \"../../utils/apiEndpoints\";\nimport { DEFAULT_MAX_GAS_AMOUNT, DEFAULT_TXN_EXP_SEC_FROM_NOW } from \"../../utils/const\";\nimport { normalizeBundle } from \"../../utils/normalizeBundle\";\nimport {\n AccountAuthenticator,\n AccountAuthenticatorEd25519,\n AccountAuthenticatorSingleKey,\n} from \"../authenticator/account\";\nimport {\n TransactionAuthenticator,\n TransactionAuthenticatorEd25519,\n TransactionAuthenticatorFeePayer,\n TransactionAuthenticatorMultiAgent,\n TransactionAuthenticatorSingleSender,\n} from \"../authenticator/transaction\";\nimport {\n ChainId,\n EntryFunction,\n FeePayerRawTransaction,\n MultiAgentRawTransaction,\n MultiSig,\n MultiSigTransactionPayload,\n RawTransaction,\n Script,\n TransactionPayloadEntryFunction,\n TransactionPayloadMultiSig,\n TransactionPayloadScript,\n} from \"../instances\";\nimport { SignedTransaction } from \"../instances/signedTransaction\";\nimport {\n AnyRawTransaction,\n AnyTransactionPayloadInstance,\n EntryFunctionArgumentTypes,\n InputGenerateMultiAgentRawTransactionArgs,\n InputGenerateRawTransactionArgs,\n InputGenerateSingleSignerRawTransactionArgs,\n InputGenerateTransactionOptions,\n InputScriptData,\n InputSimulateTransactionData,\n InputMultiSigDataWithRemoteABI,\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadDataWithRemoteABI,\n InputSubmitTransactionData,\n InputGenerateTransactionPayloadDataWithABI,\n InputEntryFunctionDataWithABI,\n InputMultiSigDataWithABI,\n InputViewFunctionDataWithRemoteABI,\n InputViewFunctionDataWithABI,\n FunctionABI,\n} from \"../types\";\nimport { convertArgument, fetchEntryFunctionAbi, fetchViewFunctionAbi, standardizeTypeTags } from \"./remoteAbi\";\nimport { memoizeAsync } from \"../../utils/memoize\";\nimport { getFunctionParts, isScriptDataInput } from \"./helpers\";\nimport { SimpleTransaction } from \"../instances/simpleTransaction\";\nimport { MultiAgentTransaction } from \"../instances/multiAgentTransaction\";\n\n/**\n * We are defining function signatures, each with its specific input and output.\n * These are the possible function signature for our `generateTransactionPayload` function.\n * When we call our `generateTransactionPayload` function with the relevant type properties,\n * Typescript can infer the return type based on the appropriate function overload.\n */\nexport async function generateTransactionPayload(args: InputScriptData): Promise<TransactionPayloadScript>;\nexport async function generateTransactionPayload(\n args: InputEntryFunctionDataWithRemoteABI,\n): Promise<TransactionPayloadEntryFunction>;\nexport async function generateTransactionPayload(\n args: InputMultiSigDataWithRemoteABI,\n): Promise<TransactionPayloadMultiSig>;\n\n/**\n * Builds a transaction payload based on the data argument and returns\n * a transaction payload - TransactionPayloadScript | TransactionPayloadMultiSig | TransactionPayloadEntryFunction\n *\n * This uses the RemoteABI by default, and the remote ABI can be skipped by using generateTransactionPayloadWithABI\n *\n * @param args.data GenerateTransactionPayloadData\n *\n * @return TransactionPayload\n */\nexport async function generateTransactionPayload(\n args: InputGenerateTransactionPayloadDataWithRemoteABI,\n): Promise<AnyTransactionPayloadInstance> {\n if (isScriptDataInput(args)) {\n return generateTransactionPayloadScript(args);\n }\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n const functionAbi = await fetchAbi({\n key: \"entry-function\",\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig: args.aptosConfig,\n abi: args.abi,\n fetch: fetchEntryFunctionAbi,\n });\n\n // Fill in the ABI\n return generateTransactionPayloadWithABI({ ...args, abi: functionAbi });\n}\n\nexport function generateTransactionPayloadWithABI(args: InputEntryFunctionDataWithABI): TransactionPayloadEntryFunction;\nexport function generateTransactionPayloadWithABI(args: InputMultiSigDataWithABI): TransactionPayloadMultiSig;\nexport function generateTransactionPayloadWithABI(\n args: InputGenerateTransactionPayloadDataWithABI,\n): AnyTransactionPayloadInstance {\n const functionAbi = args.abi;\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n // Ensure that all type arguments are typed properly\n const typeArguments = standardizeTypeTags(args.typeArguments);\n\n // Check the type argument count against the ABI\n if (typeArguments.length !== functionAbi.typeParameters.length) {\n throw new Error(\n `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`,\n );\n }\n\n // Check all BCS types, and convert any non-BCS types\n const functionArguments: Array<EntryFunctionArgumentTypes> = args.functionArguments.map((arg, i) =>\n convertArgument(args.function, functionAbi, arg, i, typeArguments),\n );\n\n // Check that all arguments are accounted for\n if (functionArguments.length !== functionAbi.parameters.length) {\n throw new Error(\n // eslint-disable-next-line max-len\n `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`,\n );\n }\n\n // Generate entry function payload\n const entryFunctionPayload = EntryFunction.build(\n `${moduleAddress}::${moduleName}`,\n functionName,\n typeArguments,\n functionArguments,\n );\n\n // Send it as multi sig if it's a multisig payload\n if (\"multisigAddress\" in args) {\n const multisigAddress = AccountAddress.from(args.multisigAddress);\n return new TransactionPayloadMultiSig(\n new MultiSig(multisigAddress, new MultiSigTransactionPayload(entryFunctionPayload)),\n );\n }\n\n // Otherwise send as an entry function\n return new TransactionPayloadEntryFunction(entryFunctionPayload);\n}\n\nexport async function generateViewFunctionPayload(args: InputViewFunctionDataWithRemoteABI): Promise<EntryFunction> {\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n const functionAbi = await fetchAbi({\n key: \"view-function\",\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig: args.aptosConfig,\n abi: args.abi,\n fetch: fetchViewFunctionAbi,\n });\n\n // Fill in the ABI\n return generateViewFunctionPayloadWithABI({ abi: functionAbi, ...args });\n}\n\nexport function generateViewFunctionPayloadWithABI(args: InputViewFunctionDataWithABI): EntryFunction {\n const functionAbi = args.abi;\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n // Ensure that all type arguments are typed properly\n const typeArguments = standardizeTypeTags(args.typeArguments);\n\n // Check the type argument count against the ABI\n if (typeArguments.length !== functionAbi.typeParameters.length) {\n throw new Error(\n `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`,\n );\n }\n\n // Check all BCS types, and convert any non-BCS types\n const functionArguments: Array<EntryFunctionArgumentTypes> =\n args?.functionArguments?.map((arg, i) => convertArgument(args.function, functionAbi, arg, i, typeArguments)) ?? [];\n\n // Check that all arguments are accounted for\n if (functionArguments.length !== functionAbi.parameters.length) {\n throw new Error(\n // eslint-disable-next-line max-len\n `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`,\n );\n }\n\n // Generate entry function payload\n return EntryFunction.build(`${moduleAddress}::${moduleName}`, functionName, typeArguments, functionArguments);\n}\n\nfunction generateTransactionPayloadScript(args: InputScriptData) {\n return new TransactionPayloadScript(\n new Script(Hex.fromHexInput(args.bytecode).toUint8Array(), args.typeArguments ?? [], args.functionArguments),\n );\n}\n\n/**\n * Generates a raw transaction\n *\n * @param args.aptosConfig AptosConfig\n * @param args.sender The transaction's sender account address as a hex input\n * @param args.payload The transaction payload - can create by using generateTransactionPayload()\n *\n * @returns RawTransaction\n */\nexport async function generateRawTransaction(args: {\n aptosConfig: AptosConfig;\n sender: AccountAddressInput;\n payload: AnyTransactionPayloadInstance;\n options?: InputGenerateTransactionOptions;\n feePayerAddress?: AccountAddressInput;\n}): Promise<RawTransaction> {\n const { aptosConfig, sender, payload, options, feePayerAddress } = args;\n\n const getChainId = async () => {\n if (NetworkToChainId[aptosConfig.network]) {\n return { chainId: NetworkToChainId[aptosConfig.network] };\n }\n const info = await getLedgerInfo({ aptosConfig });\n return { chainId: info.chain_id };\n };\n\n const getGasUnitPrice = async () => {\n if (options?.gasUnitPrice) {\n return { gasEstimate: options.gasUnitPrice };\n }\n const estimation = await getGasPriceEstimation({ aptosConfig });\n return { gasEstimate: estimation.gas_estimate };\n };\n\n const getSequenceNumberForAny = async () => {\n const getSequenceNumber = async () => {\n if (options?.accountSequenceNumber !== undefined) {\n return options.accountSequenceNumber;\n }\n\n return (await getInfo({ aptosConfig, accountAddress: sender })).sequence_number;\n };\n\n /**\n * Check if is sponsored transaction to honor AIP-52\n * {@link https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-52.md}\n */\n if (feePayerAddress && AccountAddress.from(feePayerAddress).equals(AccountAddress.ZERO)) {\n // Handle sponsored transaction generation with the option that\n // the main signer has not been created on chain\n try {\n // Check if main signer has been created on chain, if not assign sequence number 0\n return await getSequenceNumber();\n } catch (e: any) {\n return 0;\n }\n } else {\n return getSequenceNumber();\n }\n };\n const [{ chainId }, { gasEstimate }, sequenceNumber] = await Promise.all([\n getChainId(),\n getGasUnitPrice(),\n getSequenceNumberForAny(),\n ]);\n\n const { maxGasAmount, gasUnitPrice, expireTimestamp } = {\n maxGasAmount: options?.maxGasAmount ? BigInt(options.maxGasAmount) : BigInt(DEFAULT_MAX_GAS_AMOUNT),\n gasUnitPrice: options?.gasUnitPrice ?? BigInt(gasEstimate),\n expireTimestamp: options?.expireTimestamp ?? BigInt(Math.floor(Date.now() / 1000) + DEFAULT_TXN_EXP_SEC_FROM_NOW),\n };\n\n return new RawTransaction(\n AccountAddress.from(sender),\n BigInt(sequenceNumber),\n payload,\n BigInt(maxGasAmount),\n BigInt(gasUnitPrice),\n BigInt(expireTimestamp),\n new ChainId(chainId),\n );\n}\n\n/**\n * We are defining function signatures, each with its specific input and output.\n * These are the possible function signature for our `generateTransaction` function.\n * When we call our `generateTransaction` function with the relevant type properties,\n * Typescript can infer the return type based on the appropriate function overload.\n */\nexport async function buildTransaction(args: InputGenerateSingleSignerRawTransactionArgs): Promise<SimpleTransaction>;\nexport async function buildTransaction(args: InputGenerateMultiAgentRawTransactionArgs): Promise<MultiAgentTransaction>;\n\n/**\n * Generates a transaction based on the provided arguments\n *\n * Note: we can start with one function to support all different payload/transaction types,\n * and if to complex to use, we could have function for each type\n *\n * @param args.aptosConfig AptosConfig\n * @param args.sender The transaction's sender account address as a hex input\n * @param args.payload The transaction payload - can create by using generateTransactionPayload()\n * @param args.options optional. Transaction options object\n * @param args.secondarySignerAddresses optional. For when want to create a multi signers transaction\n * @param args.feePayerAddress optional. For when want to create a fee payer (aka sponsored) transaction\n *\n * @return An instance of a RawTransaction, plus optional secondary/fee payer addresses\n * ```\n * {\n * rawTransaction: RawTransaction,\n * secondarySignerAddresses? : Array<AccountAddress>,\n * feePayerAddress?: AccountAddress\n * }\n * ```\n */\nexport async function buildTransaction(args: InputGenerateRawTransactionArgs): Promise<AnyRawTransaction> {\n const { aptosConfig, sender, payload, options, feePayerAddress } = args;\n // generate raw transaction\n const rawTxn = await generateRawTransaction({\n aptosConfig,\n sender,\n payload,\n options,\n feePayerAddress,\n });\n\n // if multi agent transaction\n if (\"secondarySignerAddresses\" in args) {\n const signers: Array<AccountAddress> =\n args.secondarySignerAddresses?.map((signer) => AccountAddress.from(signer)) ?? [];\n\n return new MultiAgentTransaction(\n rawTxn,\n signers,\n args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : undefined,\n );\n }\n // return the raw transaction\n return new SimpleTransaction(rawTxn, args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : undefined);\n}\n\n/**\n * Simulate a transaction before signing and submit to chain\n *\n * @param args.transaction A aptos transaction type to sign\n * @param args.signerPublicKey The signer public key\n * @param args.secondarySignersPublicKeys optional. The secondary signers public keys if multi signers transaction\n * @param args.feePayerPublicKey optional. The fee payer public key is a fee payer (aka sponsored) transaction\n * @param args.options optional. SimulateTransactionOptions\n *\n * @returns A signed serialized transaction that can be simulated\n */\nexport function generateSignedTransactionForSimulation(args: InputSimulateTransactionData): Uint8Array {\n const { signerPublicKey, transaction, secondarySignersPublicKeys, feePayerPublicKey } = args;\n\n const accountAuthenticator = getAuthenticatorForSimulation(signerPublicKey);\n\n // fee payer transaction\n if (transaction.feePayerAddress) {\n const transactionToSign = new FeePayerRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses ?? [],\n transaction.feePayerAddress,\n );\n let secondaryAccountAuthenticators: Array<AccountAuthenticator> = [];\n if (secondarySignersPublicKeys) {\n secondaryAccountAuthenticators = secondarySignersPublicKeys.map((publicKey) =>\n getAuthenticatorForSimulation(publicKey),\n );\n }\n const feePayerAuthenticator = getAuthenticatorForSimulation(feePayerPublicKey!);\n\n const transactionAuthenticator = new TransactionAuthenticatorFeePayer(\n accountAuthenticator,\n transaction.secondarySignerAddresses ?? [],\n secondaryAccountAuthenticators,\n {\n address: transaction.feePayerAddress,\n authenticator: feePayerAuthenticator,\n },\n );\n return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator).bcsToBytes();\n }\n\n // multi agent transaction\n if (transaction.secondarySignerAddresses) {\n const transactionToSign = new MultiAgentRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses,\n );\n\n let secondaryAccountAuthenticators: Array<AccountAuthenticator> = [];\n\n secondaryAccountAuthenticators = secondarySignersPublicKeys!.map((publicKey) =>\n getAuthenticatorForSimulation(publicKey),\n );\n\n const transactionAuthenticator = new TransactionAuthenticatorMultiAgent(\n accountAuthenticator,\n transaction.secondarySignerAddresses,\n secondaryAccountAuthenticators,\n );\n\n return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator).bcsToBytes();\n }\n\n // single signer raw transaction\n let transactionAuthenticator;\n if (accountAuthenticator instanceof AccountAuthenticatorEd25519) {\n transactionAuthenticator = new TransactionAuthenticatorEd25519(\n accountAuthenticator.public_key,\n accountAuthenticator.signature,\n );\n } else if (accountAuthenticator instanceof AccountAuthenticatorSingleKey) {\n transactionAuthenticator = new TransactionAuthenticatorSingleSender(accountAuthenticator);\n } else {\n throw new Error(\"Invalid public key\");\n }\n return new SignedTransaction(transaction.rawTransaction, transactionAuthenticator).bcsToBytes();\n}\n\nexport function getAuthenticatorForSimulation(publicKey: PublicKey) {\n // TODO add support for AnyMultiKey\n if (publicKey instanceof AnyPublicKey) {\n if (publicKey.publicKey instanceof Ed25519PublicKey) {\n return new AccountAuthenticatorSingleKey(publicKey, new AnySignature(new Ed25519Signature(new Uint8Array(64))));\n }\n if (publicKey.publicKey instanceof Secp256k1PublicKey) {\n return new AccountAuthenticatorSingleKey(publicKey, new AnySignature(new Secp256k1Signature(new Uint8Array(64))));\n }\n }\n\n // legacy code\n return new AccountAuthenticatorEd25519(\n new Ed25519PublicKey(publicKey.toUint8Array()),\n new Ed25519Signature(new Uint8Array(64)),\n );\n}\n\n/**\n * Prepare a transaction to be submitted to chain\n *\n * @param args.transaction A aptos transaction type\n * @param args.senderAuthenticator The account authenticator of the transaction sender\n * @param args.secondarySignerAuthenticators optional. For when the transaction is a multi signers transaction\n *\n * @returns A SignedTransaction\n */\nexport function generateSignedTransaction(args: InputSubmitTransactionData): Uint8Array {\n const { transaction, feePayerAuthenticator, additionalSignersAuthenticators } = args;\n const senderAuthenticator = normalizeBundle(AccountAuthenticator, args.senderAuthenticator);\n\n let txnAuthenticator: TransactionAuthenticator;\n if (transaction.feePayerAddress) {\n if (!feePayerAuthenticator) {\n throw new Error(\"Must provide a feePayerAuthenticator argument to generate a signed fee payer transaction\");\n }\n txnAuthenticator = new TransactionAuthenticatorFeePayer(\n senderAuthenticator,\n transaction.secondarySignerAddresses ?? [],\n additionalSignersAuthenticators ?? [],\n {\n address: transaction.feePayerAddress,\n authenticator: feePayerAuthenticator,\n },\n );\n } else if (transaction.secondarySignerAddresses) {\n if (!additionalSignersAuthenticators) {\n throw new Error(\n \"Must provide a additionalSignersAuthenticators argument to generate a signed multi agent transaction\",\n );\n }\n txnAuthenticator = new TransactionAuthenticatorMultiAgent(\n senderAuthenticator,\n transaction.secondarySignerAddresses,\n additionalSignersAuthenticators,\n );\n } else if (senderAuthenticator instanceof AccountAuthenticatorEd25519) {\n txnAuthenticator = new TransactionAuthenticatorEd25519(\n senderAuthenticator.public_key,\n senderAuthenticator.signature,\n );\n } else {\n txnAuthenticator = new TransactionAuthenticatorSingleSender(senderAuthenticator);\n }\n\n return new SignedTransaction(transaction.rawTransaction, txnAuthenticator).bcsToBytes();\n}\n\n/**\n * Hashes the set of values with a SHA-3 256 hash\n * @param input array of UTF-8 strings or Uint8array byte arrays\n */\nexport function hashValues(input: (Uint8Array | string)[]): Uint8Array {\n const hash = sha3Hash.create();\n for (const item of input) {\n hash.update(item);\n }\n return hash.digest();\n}\n\n/**\n * The domain separated prefix for hashing transacitons\n */\nconst TRANSACTION_PREFIX = hashValues([\"APTOS::Transaction\"]);\n\n/**\n * Generates a user transaction hash for the given transaction payload. It must already have an authenticator\n * @param args InputSubmitTransactionData\n */\nexport function generateUserTransactionHash(args: InputSubmitTransactionData): string {\n const signedTransaction = generateSignedTransaction(args);\n\n // Transaction signature is defined as, the domain separated prefix based on struct (Transaction)\n // Then followed by the type of the transaction for the enum, UserTransaction is 0\n // Then followed by BCS encoded bytes of the signed transaction\n return new Hex(hashValues([TRANSACTION_PREFIX, new Uint8Array([0]), signedTransaction])).toString();\n}\n\n/**\n * Fetches and caches ABIs with allowing for pass-through on provided ABIs\n * @param key\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n * @param abi\n * @param fetch\n */\nasync function fetchAbi<T extends FunctionABI>({\n key,\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig,\n abi,\n fetch,\n}: {\n key: string;\n moduleAddress: string;\n moduleName: string;\n functionName: string;\n aptosConfig: AptosConfig;\n abi?: T;\n fetch: (moduleAddress: string, moduleName: string, functionName: string, aptosConfig: AptosConfig) => Promise<T>;\n}): Promise<T> {\n if (abi !== undefined) {\n return abi;\n }\n\n // We fetch the entry function ABI, and then pretend that we already had the ABI\n return memoizeAsync(\n async () => fetch(moduleAddress, moduleName, functionName, aptosConfig),\n `${key}-${aptosConfig.network}-${moduleAddress}-${moduleName}-${functionName}`,\n 1000 * 60 * 5, // 5 minutes\n )();\n}\n"],"mappings":"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","names":["sha3Hash","generateTransactionPayload","args","isScriptDataInput","generateTransactionPayloadScript","moduleAddress","moduleName","functionName","getFunctionParts","functionAbi","fetchAbi","fetchEntryFunctionAbi","generateTransactionPayloadWithABI","typeArguments","standardizeTypeTags","functionArguments","arg","i","convertArgument","entryFunctionPayload","EntryFunction","multisigAddress","AccountAddress","TransactionPayloadMultiSig","MultiSig","MultiSigTransactionPayload","TransactionPayloadEntryFunction","generateViewFunctionPayload","fetchViewFunctionAbi","generateViewFunctionPayloadWithABI","TransactionPayloadScript","Script","Hex","generateRawTransaction","aptosConfig","sender","payload","options","feePayerAddress","getChainId","NetworkToChainId","getLedgerInfo","getGasUnitPrice","getGasPriceEstimation","getSequenceNumberForAny","getSequenceNumber","getInfo","chainId","gasEstimate","sequenceNumber","maxGasAmount","gasUnitPrice","expireTimestamp","RawTransaction","ChainId","buildTransaction","rawTxn","signers","signer","MultiAgentTransaction","SimpleTransaction","generateSignedTransactionForSimulation","signerPublicKey","transaction","secondarySignersPublicKeys","feePayerPublicKey","accountAuthenticator","getAuthenticatorForSimulation","transactionToSign","FeePayerRawTransaction","secondaryAccountAuthenticators","publicKey","feePayerAuthenticator","transactionAuthenticator","TransactionAuthenticatorFeePayer","SignedTransaction","MultiAgentRawTransaction","TransactionAuthenticatorMultiAgent","AccountAuthenticatorEd25519","TransactionAuthenticatorEd25519","AccountAuthenticatorSingleKey","TransactionAuthenticatorSingleSender","AnyPublicKey","Ed25519PublicKey","AnySignature","Ed25519Signature","Secp256k1PublicKey","Secp256k1Signature","generateSignedTransaction","additionalSignersAuthenticators","senderAuthenticator","normalizeBundle","AccountAuthenticator","txnAuthenticator","hashValues","input","hash","sha3Hash","item","TRANSACTION_PREFIX","generateUserTransactionHash","signedTransaction","key","abi","fetch","memoizeAsync"]}
1
+ {"version":3,"sources":["../../src/transactions/transactionBuilder/transactionBuilder.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This file handles the transaction creation lifecycle.\n * It holds different operations to generate a transaction payload, a raw transaction,\n * and a signed transaction that can be simulated, signed and submitted to chain.\n */\nimport { sha3_256 as sha3Hash } from \"@noble/hashes/sha3\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport { AccountAddress, AccountAddressInput, Hex, PublicKey } from \"../../core\";\nimport { AnyPublicKey, AnySignature, Secp256k1PublicKey, Secp256k1Signature } from \"../../core/crypto\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"../../core/crypto/ed25519\";\nimport { getInfo } from \"../../internal/account\";\nimport { getLedgerInfo } from \"../../internal/general\";\nimport { getGasPriceEstimation } from \"../../internal/transaction\";\nimport { NetworkToChainId } from \"../../utils/apiEndpoints\";\nimport { DEFAULT_MAX_GAS_AMOUNT, DEFAULT_TXN_EXP_SEC_FROM_NOW } from \"../../utils/const\";\nimport { normalizeBundle } from \"../../utils/normalizeBundle\";\nimport {\n AccountAuthenticator,\n AccountAuthenticatorEd25519,\n AccountAuthenticatorSingleKey,\n} from \"../authenticator/account\";\nimport {\n TransactionAuthenticator,\n TransactionAuthenticatorEd25519,\n TransactionAuthenticatorFeePayer,\n TransactionAuthenticatorMultiAgent,\n TransactionAuthenticatorSingleSender,\n} from \"../authenticator/transaction\";\nimport {\n ChainId,\n EntryFunction,\n FeePayerRawTransaction,\n MultiAgentRawTransaction,\n MultiSig,\n MultiSigTransactionPayload,\n RawTransaction,\n Script,\n TransactionPayloadEntryFunction,\n TransactionPayloadMultiSig,\n TransactionPayloadScript,\n} from \"../instances\";\nimport { SignedTransaction } from \"../instances/signedTransaction\";\nimport {\n AnyRawTransaction,\n AnyTransactionPayloadInstance,\n EntryFunctionArgumentTypes,\n InputGenerateMultiAgentRawTransactionArgs,\n InputGenerateRawTransactionArgs,\n InputGenerateSingleSignerRawTransactionArgs,\n InputGenerateTransactionOptions,\n InputScriptData,\n InputSimulateTransactionData,\n InputMultiSigDataWithRemoteABI,\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadDataWithRemoteABI,\n InputSubmitTransactionData,\n InputGenerateTransactionPayloadDataWithABI,\n InputEntryFunctionDataWithABI,\n InputMultiSigDataWithABI,\n InputViewFunctionDataWithRemoteABI,\n InputViewFunctionDataWithABI,\n FunctionABI,\n} from \"../types\";\nimport { convertArgument, fetchEntryFunctionAbi, fetchViewFunctionAbi, standardizeTypeTags } from \"./remoteAbi\";\nimport { memoizeAsync } from \"../../utils/memoize\";\nimport { getFunctionParts, isScriptDataInput } from \"./helpers\";\nimport { SimpleTransaction } from \"../instances/simpleTransaction\";\nimport { MultiAgentTransaction } from \"../instances/multiAgentTransaction\";\n\n/**\n * We are defining function signatures, each with its specific input and output.\n * These are the possible function signature for our `generateTransactionPayload` function.\n * When we call our `generateTransactionPayload` function with the relevant type properties,\n * Typescript can infer the return type based on the appropriate function overload.\n */\nexport async function generateTransactionPayload(args: InputScriptData): Promise<TransactionPayloadScript>;\nexport async function generateTransactionPayload(\n args: InputEntryFunctionDataWithRemoteABI,\n): Promise<TransactionPayloadEntryFunction>;\nexport async function generateTransactionPayload(\n args: InputMultiSigDataWithRemoteABI,\n): Promise<TransactionPayloadMultiSig>;\n\n/**\n * Builds a transaction payload based on the data argument and returns\n * a transaction payload - TransactionPayloadScript | TransactionPayloadMultiSig | TransactionPayloadEntryFunction\n *\n * This uses the RemoteABI by default, and the remote ABI can be skipped by using generateTransactionPayloadWithABI\n *\n * @param args.data GenerateTransactionPayloadData\n *\n * @return TransactionPayload\n */\nexport async function generateTransactionPayload(\n args: InputGenerateTransactionPayloadDataWithRemoteABI,\n): Promise<AnyTransactionPayloadInstance> {\n if (isScriptDataInput(args)) {\n return generateTransactionPayloadScript(args);\n }\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n const functionAbi = await fetchAbi({\n key: \"entry-function\",\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig: args.aptosConfig,\n abi: args.abi,\n fetch: fetchEntryFunctionAbi,\n });\n\n // Fill in the ABI\n return generateTransactionPayloadWithABI({ ...args, abi: functionAbi });\n}\n\nexport function generateTransactionPayloadWithABI(args: InputEntryFunctionDataWithABI): TransactionPayloadEntryFunction;\nexport function generateTransactionPayloadWithABI(args: InputMultiSigDataWithABI): TransactionPayloadMultiSig;\nexport function generateTransactionPayloadWithABI(\n args: InputGenerateTransactionPayloadDataWithABI,\n): AnyTransactionPayloadInstance {\n const functionAbi = args.abi;\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n // Ensure that all type arguments are typed properly\n const typeArguments = standardizeTypeTags(args.typeArguments);\n\n // Check the type argument count against the ABI\n if (typeArguments.length !== functionAbi.typeParameters.length) {\n throw new Error(\n `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`,\n );\n }\n\n // Check all BCS types, and convert any non-BCS types\n const functionArguments: Array<EntryFunctionArgumentTypes> = args.functionArguments.map((arg, i) =>\n convertArgument(args.function, functionAbi, arg, i, typeArguments),\n );\n\n // Check that all arguments are accounted for\n if (functionArguments.length !== functionAbi.parameters.length) {\n throw new Error(\n // eslint-disable-next-line max-len\n `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`,\n );\n }\n\n // Generate entry function payload\n const entryFunctionPayload = EntryFunction.build(\n `${moduleAddress}::${moduleName}`,\n functionName,\n typeArguments,\n functionArguments,\n );\n\n // Send it as multi sig if it's a multisig payload\n if (\"multisigAddress\" in args) {\n const multisigAddress = AccountAddress.from(args.multisigAddress);\n return new TransactionPayloadMultiSig(\n new MultiSig(multisigAddress, new MultiSigTransactionPayload(entryFunctionPayload)),\n );\n }\n\n // Otherwise send as an entry function\n return new TransactionPayloadEntryFunction(entryFunctionPayload);\n}\n\nexport async function generateViewFunctionPayload(args: InputViewFunctionDataWithRemoteABI): Promise<EntryFunction> {\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n const functionAbi = await fetchAbi({\n key: \"view-function\",\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig: args.aptosConfig,\n abi: args.abi,\n fetch: fetchViewFunctionAbi,\n });\n\n // Fill in the ABI\n return generateViewFunctionPayloadWithABI({ abi: functionAbi, ...args });\n}\n\nexport function generateViewFunctionPayloadWithABI(args: InputViewFunctionDataWithABI): EntryFunction {\n const functionAbi = args.abi;\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n // Ensure that all type arguments are typed properly\n const typeArguments = standardizeTypeTags(args.typeArguments);\n\n // Check the type argument count against the ABI\n if (typeArguments.length !== functionAbi.typeParameters.length) {\n throw new Error(\n `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`,\n );\n }\n\n // Check all BCS types, and convert any non-BCS types\n const functionArguments: Array<EntryFunctionArgumentTypes> =\n args?.functionArguments?.map((arg, i) => convertArgument(args.function, functionAbi, arg, i, typeArguments)) ?? [];\n\n // Check that all arguments are accounted for\n if (functionArguments.length !== functionAbi.parameters.length) {\n throw new Error(\n // eslint-disable-next-line max-len\n `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`,\n );\n }\n\n // Generate entry function payload\n return EntryFunction.build(`${moduleAddress}::${moduleName}`, functionName, typeArguments, functionArguments);\n}\n\nfunction generateTransactionPayloadScript(args: InputScriptData) {\n return new TransactionPayloadScript(\n new Script(Hex.fromHexInput(args.bytecode).toUint8Array(), args.typeArguments ?? [], args.functionArguments),\n );\n}\n\n/**\n * Generates a raw transaction\n *\n * @param args.aptosConfig AptosConfig\n * @param args.sender The transaction's sender account address as a hex input\n * @param args.payload The transaction payload - can create by using generateTransactionPayload()\n *\n * @returns RawTransaction\n */\nexport async function generateRawTransaction(args: {\n aptosConfig: AptosConfig;\n sender: AccountAddressInput;\n payload: AnyTransactionPayloadInstance;\n options?: InputGenerateTransactionOptions;\n feePayerAddress?: AccountAddressInput;\n}): Promise<RawTransaction> {\n const { aptosConfig, sender, payload, options, feePayerAddress } = args;\n\n const getChainId = async () => {\n if (NetworkToChainId[aptosConfig.network]) {\n return { chainId: NetworkToChainId[aptosConfig.network] };\n }\n const info = await getLedgerInfo({ aptosConfig });\n return { chainId: info.chain_id };\n };\n\n const getGasUnitPrice = async () => {\n if (options?.gasUnitPrice) {\n return { gasEstimate: options.gasUnitPrice };\n }\n const estimation = await getGasPriceEstimation({ aptosConfig });\n return { gasEstimate: estimation.gas_estimate };\n };\n\n const getSequenceNumberForAny = async () => {\n const getSequenceNumber = async () => {\n if (options?.accountSequenceNumber !== undefined) {\n return options.accountSequenceNumber;\n }\n\n return (await getInfo({ aptosConfig, accountAddress: sender })).sequence_number;\n };\n\n /**\n * Check if is sponsored transaction to honor AIP-52\n * {@link https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-52.md}\n */\n if (feePayerAddress && AccountAddress.from(feePayerAddress).equals(AccountAddress.ZERO)) {\n // Handle sponsored transaction generation with the option that\n // the main signer has not been created on chain\n try {\n // Check if main signer has been created on chain, if not assign sequence number 0\n return await getSequenceNumber();\n } catch (e: any) {\n return 0;\n }\n } else {\n return getSequenceNumber();\n }\n };\n const [{ chainId }, { gasEstimate }, sequenceNumber] = await Promise.all([\n getChainId(),\n getGasUnitPrice(),\n getSequenceNumberForAny(),\n ]);\n\n const { maxGasAmount, gasUnitPrice, expireTimestamp } = {\n maxGasAmount: options?.maxGasAmount ? BigInt(options.maxGasAmount) : BigInt(DEFAULT_MAX_GAS_AMOUNT),\n gasUnitPrice: options?.gasUnitPrice ?? BigInt(gasEstimate),\n expireTimestamp: options?.expireTimestamp ?? BigInt(Math.floor(Date.now() / 1000) + DEFAULT_TXN_EXP_SEC_FROM_NOW),\n };\n\n return new RawTransaction(\n AccountAddress.from(sender),\n BigInt(sequenceNumber),\n payload,\n BigInt(maxGasAmount),\n BigInt(gasUnitPrice),\n BigInt(expireTimestamp),\n new ChainId(chainId),\n );\n}\n\n/**\n * We are defining function signatures, each with its specific input and output.\n * These are the possible function signature for our `generateTransaction` function.\n * When we call our `generateTransaction` function with the relevant type properties,\n * Typescript can infer the return type based on the appropriate function overload.\n */\nexport async function buildTransaction(args: InputGenerateSingleSignerRawTransactionArgs): Promise<SimpleTransaction>;\nexport async function buildTransaction(args: InputGenerateMultiAgentRawTransactionArgs): Promise<MultiAgentTransaction>;\n\n/**\n * Generates a transaction based on the provided arguments\n *\n * Note: we can start with one function to support all different payload/transaction types,\n * and if to complex to use, we could have function for each type\n *\n * @param args.aptosConfig AptosConfig\n * @param args.sender The transaction's sender account address as a hex input\n * @param args.payload The transaction payload - can create by using generateTransactionPayload()\n * @param args.options optional. Transaction options object\n * @param args.secondarySignerAddresses optional. For when want to create a multi signers transaction\n * @param args.feePayerAddress optional. For when want to create a fee payer (aka sponsored) transaction\n *\n * @return An instance of a RawTransaction, plus optional secondary/fee payer addresses\n * ```\n * {\n * rawTransaction: RawTransaction,\n * secondarySignerAddresses? : Array<AccountAddress>,\n * feePayerAddress?: AccountAddress\n * }\n * ```\n */\nexport async function buildTransaction(args: InputGenerateRawTransactionArgs): Promise<AnyRawTransaction> {\n const { aptosConfig, sender, payload, options, feePayerAddress } = args;\n // generate raw transaction\n const rawTxn = await generateRawTransaction({\n aptosConfig,\n sender,\n payload,\n options,\n feePayerAddress,\n });\n\n // if multi agent transaction\n if (\"secondarySignerAddresses\" in args) {\n const signers: Array<AccountAddress> =\n args.secondarySignerAddresses?.map((signer) => AccountAddress.from(signer)) ?? [];\n\n return new MultiAgentTransaction(\n rawTxn,\n signers,\n args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : undefined,\n );\n }\n // return the raw transaction\n return new SimpleTransaction(rawTxn, args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : undefined);\n}\n\n/**\n * Simulate a transaction before signing and submit to chain\n *\n * @param args.transaction A aptos transaction type to sign\n * @param args.signerPublicKey The signer public key\n * @param args.secondarySignersPublicKeys optional. The secondary signers public keys if multi signers transaction\n * @param args.feePayerPublicKey optional. The fee payer public key is a fee payer (aka sponsored) transaction\n * @param args.options optional. SimulateTransactionOptions\n *\n * @returns A signed serialized transaction that can be simulated\n */\nexport function generateSignedTransactionForSimulation(args: InputSimulateTransactionData): Uint8Array {\n const { signerPublicKey, transaction, secondarySignersPublicKeys, feePayerPublicKey } = args;\n\n const accountAuthenticator = getAuthenticatorForSimulation(signerPublicKey);\n\n // fee payer transaction\n if (transaction.feePayerAddress) {\n const transactionToSign = new FeePayerRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses ?? [],\n transaction.feePayerAddress,\n );\n let secondaryAccountAuthenticators: Array<AccountAuthenticator> = [];\n if (secondarySignersPublicKeys) {\n secondaryAccountAuthenticators = secondarySignersPublicKeys.map((publicKey) =>\n getAuthenticatorForSimulation(publicKey),\n );\n }\n const feePayerAuthenticator = getAuthenticatorForSimulation(feePayerPublicKey!);\n\n const transactionAuthenticator = new TransactionAuthenticatorFeePayer(\n accountAuthenticator,\n transaction.secondarySignerAddresses ?? [],\n secondaryAccountAuthenticators,\n {\n address: transaction.feePayerAddress,\n authenticator: feePayerAuthenticator,\n },\n );\n return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator).bcsToBytes();\n }\n\n // multi agent transaction\n if (transaction.secondarySignerAddresses) {\n const transactionToSign = new MultiAgentRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses,\n );\n\n let secondaryAccountAuthenticators: Array<AccountAuthenticator> = [];\n\n secondaryAccountAuthenticators = secondarySignersPublicKeys!.map((publicKey) =>\n getAuthenticatorForSimulation(publicKey),\n );\n\n const transactionAuthenticator = new TransactionAuthenticatorMultiAgent(\n accountAuthenticator,\n transaction.secondarySignerAddresses,\n secondaryAccountAuthenticators,\n );\n\n return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator).bcsToBytes();\n }\n\n // single signer raw transaction\n let transactionAuthenticator;\n if (accountAuthenticator instanceof AccountAuthenticatorEd25519) {\n transactionAuthenticator = new TransactionAuthenticatorEd25519(\n accountAuthenticator.public_key,\n accountAuthenticator.signature,\n );\n } else if (accountAuthenticator instanceof AccountAuthenticatorSingleKey) {\n transactionAuthenticator = new TransactionAuthenticatorSingleSender(accountAuthenticator);\n } else {\n throw new Error(\"Invalid public key\");\n }\n return new SignedTransaction(transaction.rawTransaction, transactionAuthenticator).bcsToBytes();\n}\n\nexport function getAuthenticatorForSimulation(publicKey: PublicKey) {\n // TODO add support for AnyMultiKey\n if (publicKey instanceof AnyPublicKey) {\n if (publicKey.publicKey instanceof Ed25519PublicKey) {\n return new AccountAuthenticatorSingleKey(publicKey, new AnySignature(new Ed25519Signature(new Uint8Array(64))));\n }\n if (publicKey.publicKey instanceof Secp256k1PublicKey) {\n return new AccountAuthenticatorSingleKey(publicKey, new AnySignature(new Secp256k1Signature(new Uint8Array(64))));\n }\n }\n\n // legacy code\n return new AccountAuthenticatorEd25519(\n new Ed25519PublicKey(publicKey.toUint8Array()),\n new Ed25519Signature(new Uint8Array(64)),\n );\n}\n\n/**\n * Prepare a transaction to be submitted to chain\n *\n * @param args.transaction A aptos transaction type\n * @param args.senderAuthenticator The account authenticator of the transaction sender\n * @param args.secondarySignerAuthenticators optional. For when the transaction is a multi signers transaction\n *\n * @returns A SignedTransaction\n */\nexport function generateSignedTransaction(args: InputSubmitTransactionData): Uint8Array {\n const { transaction, feePayerAuthenticator, additionalSignersAuthenticators } = args;\n const senderAuthenticator = normalizeBundle(AccountAuthenticator, args.senderAuthenticator);\n\n let txnAuthenticator: TransactionAuthenticator;\n if (transaction.feePayerAddress) {\n if (!feePayerAuthenticator) {\n throw new Error(\"Must provide a feePayerAuthenticator argument to generate a signed fee payer transaction\");\n }\n txnAuthenticator = new TransactionAuthenticatorFeePayer(\n senderAuthenticator,\n transaction.secondarySignerAddresses ?? [],\n additionalSignersAuthenticators ?? [],\n {\n address: transaction.feePayerAddress,\n authenticator: feePayerAuthenticator,\n },\n );\n } else if (transaction.secondarySignerAddresses) {\n if (!additionalSignersAuthenticators) {\n throw new Error(\n \"Must provide a additionalSignersAuthenticators argument to generate a signed multi agent transaction\",\n );\n }\n txnAuthenticator = new TransactionAuthenticatorMultiAgent(\n senderAuthenticator,\n transaction.secondarySignerAddresses,\n additionalSignersAuthenticators,\n );\n } else if (senderAuthenticator instanceof AccountAuthenticatorEd25519) {\n txnAuthenticator = new TransactionAuthenticatorEd25519(\n senderAuthenticator.public_key,\n senderAuthenticator.signature,\n );\n } else {\n txnAuthenticator = new TransactionAuthenticatorSingleSender(senderAuthenticator);\n }\n\n return new SignedTransaction(transaction.rawTransaction, txnAuthenticator).bcsToBytes();\n}\n\n/**\n * Hashes the set of values with a SHA-3 256 hash\n * @param input array of UTF-8 strings or Uint8array byte arrays\n */\nexport function hashValues(input: (Uint8Array | string)[]): Uint8Array {\n const hash = sha3Hash.create();\n for (const item of input) {\n hash.update(item);\n }\n return hash.digest();\n}\n\n/**\n * The domain separated prefix for hashing transacitons\n */\nconst TRANSACTION_PREFIX = hashValues([\"APTOS::Transaction\"]);\n\n/**\n * Generates a user transaction hash for the given transaction payload. It must already have an authenticator\n * @param args InputSubmitTransactionData\n */\nexport function generateUserTransactionHash(args: InputSubmitTransactionData): string {\n const signedTransaction = generateSignedTransaction(args);\n\n // Transaction signature is defined as, the domain separated prefix based on struct (Transaction)\n // Then followed by the type of the transaction for the enum, UserTransaction is 0\n // Then followed by BCS encoded bytes of the signed transaction\n return new Hex(hashValues([TRANSACTION_PREFIX, new Uint8Array([0]), signedTransaction])).toString();\n}\n\n/**\n * Fetches and caches ABIs with allowing for pass-through on provided ABIs\n * @param key\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n * @param abi\n * @param fetch\n */\nasync function fetchAbi<T extends FunctionABI>({\n key,\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig,\n abi,\n fetch,\n}: {\n key: string;\n moduleAddress: string;\n moduleName: string;\n functionName: string;\n aptosConfig: AptosConfig;\n abi?: T;\n fetch: (moduleAddress: string, moduleName: string, functionName: string, aptosConfig: AptosConfig) => Promise<T>;\n}): Promise<T> {\n if (abi !== undefined) {\n return abi;\n }\n\n // We fetch the entry function ABI, and then pretend that we already had the ABI\n return memoizeAsync(\n async () => fetch(moduleAddress, moduleName, functionName, aptosConfig),\n `${key}-${aptosConfig.network}-${moduleAddress}-${moduleName}-${functionName}`,\n 1000 * 60 * 5, // 5 minutes\n )();\n}\n"],"mappings":"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","names":["transactionAuthenticator"]}