@aptos-labs/ts-sdk 1.35.0-zeta.1 → 1.35.0-zeta.2

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 (277) hide show
  1. package/dist/common/index.d.ts +31 -17
  2. package/dist/common/index.js +1044 -1026
  3. package/dist/common/index.js.map +1 -1
  4. package/dist/esm/account/AbstractKeylessAccount.mjs +19 -19
  5. package/dist/esm/account/AbstractedAccount.mjs +21 -21
  6. package/dist/esm/account/Account.mjs +20 -20
  7. package/dist/esm/account/AccountUtils.mjs +25 -25
  8. package/dist/esm/account/Ed25519Account.mjs +18 -18
  9. package/dist/esm/account/EphemeralKeyPair.mjs +12 -12
  10. package/dist/esm/account/FederatedKeylessAccount.mjs +20 -20
  11. package/dist/esm/account/KeylessAccount.mjs +20 -20
  12. package/dist/esm/account/MultiEd25519Account.mjs +18 -18
  13. package/dist/esm/account/MultiKeyAccount.d.mts +1 -0
  14. package/dist/esm/account/MultiKeyAccount.mjs +22 -22
  15. package/dist/esm/account/SingleKeyAccount.mjs +18 -18
  16. package/dist/esm/account/index.mjs +28 -28
  17. package/dist/esm/account/utils.mjs +11 -11
  18. package/dist/esm/api/account/abstraction.mjs +39 -39
  19. package/dist/esm/api/account.mjs +43 -41
  20. package/dist/esm/api/ans.mjs +39 -39
  21. package/dist/esm/api/aptos.d.mts +0 -1
  22. package/dist/esm/api/aptos.mjs +73 -70
  23. package/dist/esm/api/coin.mjs +38 -37
  24. package/dist/esm/api/digitalAsset.mjs +39 -39
  25. package/dist/esm/api/event.mjs +16 -16
  26. package/dist/esm/api/experimental.mjs +26 -40
  27. package/dist/esm/api/faucet.mjs +15 -15
  28. package/dist/esm/api/fungibleAsset.mjs +39 -39
  29. package/dist/esm/api/general.d.mts +2 -2
  30. package/dist/esm/api/general.mjs +26 -40
  31. package/dist/esm/api/index.d.mts +0 -1
  32. package/dist/esm/api/index.mjs +73 -70
  33. package/dist/esm/api/keyless.mjs +40 -38
  34. package/dist/esm/api/object.mjs +16 -16
  35. package/dist/esm/api/staking.mjs +16 -16
  36. package/dist/esm/api/table.mjs +7 -7
  37. package/dist/esm/api/transaction.d.mts +30 -18
  38. package/dist/esm/api/transaction.mjs +45 -43
  39. package/dist/esm/api/transactionSubmission/build.mjs +37 -37
  40. package/dist/esm/api/transactionSubmission/management.mjs +41 -39
  41. package/dist/esm/api/transactionSubmission/sign.mjs +36 -36
  42. package/dist/esm/api/transactionSubmission/simulate.mjs +37 -37
  43. package/dist/esm/api/transactionSubmission/submit.mjs +37 -37
  44. package/dist/esm/api/utils.mjs +5 -5
  45. package/dist/esm/bcs/index.mjs +1 -1
  46. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  47. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  48. package/dist/esm/{chunk-JJ6MU2DV.mjs → chunk-2FTF6J7F.mjs} +3 -3
  49. package/dist/esm/{chunk-54XJAHWK.mjs → chunk-2HL7JEFC.mjs} +9 -9
  50. package/dist/esm/{chunk-TZZZNGQI.mjs → chunk-2WBJAKBO.mjs} +2 -2
  51. package/dist/esm/{chunk-3E2SXJXZ.mjs → chunk-3DAVHDK4.mjs} +2 -2
  52. package/dist/esm/{chunk-F65QGYVD.mjs → chunk-3TUV6YMI.mjs} +3 -3
  53. package/dist/esm/{chunk-KZFQOE4N.mjs → chunk-5ORUQZAR.mjs} +3 -3
  54. package/dist/esm/{chunk-RTNVJKNX.mjs → chunk-62LC4PPC.mjs} +3 -3
  55. package/dist/esm/{chunk-OOQS6BEP.mjs → chunk-6OFCIXWS.mjs} +2 -2
  56. package/dist/esm/chunk-6OFCIXWS.mjs.map +1 -0
  57. package/dist/esm/{chunk-YD3KHXBD.mjs → chunk-6SNGKTWE.mjs} +2 -2
  58. package/dist/esm/{chunk-2SIDNRJH.mjs → chunk-7F32C225.mjs} +4 -4
  59. package/dist/esm/{chunk-TFDBSPIQ.mjs → chunk-7WW735TU.mjs} +3 -3
  60. package/dist/esm/{chunk-SFF4FJUD.mjs → chunk-A33OBGVN.mjs} +3 -3
  61. package/dist/esm/{chunk-J32AERDF.mjs → chunk-A7LYGPFL.mjs} +3 -3
  62. package/dist/esm/{chunk-BADWWRLN.mjs → chunk-AGKEC2IM.mjs} +5 -5
  63. package/dist/esm/{chunk-GUEJH55K.mjs → chunk-BU43ZFDJ.mjs} +2 -2
  64. package/dist/esm/{chunk-PP2U5UMC.mjs → chunk-C7EEG6SW.mjs} +4 -4
  65. package/dist/esm/{chunk-HTC3Q5JN.mjs → chunk-D4MW64RH.mjs} +4 -4
  66. package/dist/esm/{chunk-YMHFUSKX.mjs → chunk-D6RXVCE3.mjs} +3 -3
  67. package/dist/esm/{chunk-7J37IHNP.mjs → chunk-DGDZNHUJ.mjs} +5 -3
  68. package/dist/esm/{chunk-7J37IHNP.mjs.map → chunk-DGDZNHUJ.mjs.map} +1 -1
  69. package/dist/esm/{chunk-NFBLI3BS.mjs → chunk-DMFRIING.mjs} +2 -2
  70. package/dist/esm/{chunk-CPZPXG7O.mjs → chunk-ECTX2FGD.mjs} +4 -4
  71. package/dist/esm/{chunk-CDJNQ7CS.mjs → chunk-FDMI4BUL.mjs} +29 -22
  72. package/dist/esm/chunk-FDMI4BUL.mjs.map +1 -0
  73. package/dist/esm/chunk-FRLS4GRM.mjs +62 -0
  74. package/dist/esm/chunk-FRLS4GRM.mjs.map +1 -0
  75. package/dist/esm/chunk-G3MHXDYA.mjs +1 -0
  76. package/dist/esm/chunk-G3MHXDYA.mjs.map +1 -0
  77. package/dist/esm/{chunk-OVZOE4GS.mjs → chunk-G6R77JKO.mjs} +16 -16
  78. package/dist/esm/{chunk-XHQMSKZP.mjs → chunk-G7BB6K4B.mjs} +5 -5
  79. package/dist/esm/{chunk-XB4SVKZP.mjs → chunk-GCQK2S5Q.mjs} +2 -2
  80. package/dist/esm/{chunk-2WTIMHGC.mjs → chunk-HBXBODME.mjs} +3 -3
  81. package/dist/esm/{chunk-D3IWXA33.mjs → chunk-HKQY5GXT.mjs} +7 -191
  82. package/dist/esm/chunk-HKQY5GXT.mjs.map +1 -0
  83. package/dist/esm/{chunk-WSI6NVQD.mjs → chunk-HL337SEM.mjs} +3 -3
  84. package/dist/esm/{chunk-V66UC6YI.mjs → chunk-HQDHSKVS.mjs} +2 -2
  85. package/dist/esm/{chunk-ZATMRCFV.mjs → chunk-I5G7XFGT.mjs} +3 -3
  86. package/dist/esm/{chunk-MC4OOX6X.mjs → chunk-IJ7XCPP3.mjs} +36 -31
  87. package/dist/esm/chunk-IJ7XCPP3.mjs.map +1 -0
  88. package/dist/esm/{chunk-SW4ASQPY.mjs → chunk-ILTEOGFF.mjs} +6 -6
  89. package/dist/esm/{chunk-KK7SBRDQ.mjs → chunk-IP7GATDH.mjs} +6 -6
  90. package/dist/esm/{chunk-KK7SBRDQ.mjs.map → chunk-IP7GATDH.mjs.map} +1 -1
  91. package/dist/esm/{chunk-RGHKUKOX.mjs → chunk-IPUAVRGL.mjs} +5 -5
  92. package/dist/esm/{chunk-MLGROHE6.mjs → chunk-IQVHXOD3.mjs} +10 -10
  93. package/dist/esm/{chunk-IEM26R5Q.mjs → chunk-JAZJE3OR.mjs} +2 -2
  94. package/dist/esm/{chunk-VJ2Z7GO3.mjs → chunk-JEVGHYEP.mjs} +2 -2
  95. package/dist/esm/{chunk-WPJUSJJQ.mjs → chunk-JFMFZ2IL.mjs} +3 -3
  96. package/dist/esm/{chunk-IORAMQ2Y.mjs → chunk-K5OCDM3W.mjs} +8 -8
  97. package/dist/esm/{chunk-IORAMQ2Y.mjs.map → chunk-K5OCDM3W.mjs.map} +1 -1
  98. package/dist/esm/{chunk-ESGBNVCA.mjs → chunk-ORCQEMJL.mjs} +2 -2
  99. package/dist/esm/{chunk-PYLTV3KI.mjs → chunk-QYNYDQE3.mjs} +4 -4
  100. package/dist/esm/{chunk-F2EFNUWD.mjs → chunk-R45SPK6Q.mjs} +4 -4
  101. package/dist/esm/{chunk-UKYATVYK.mjs → chunk-RCXGTN36.mjs} +2 -2
  102. package/dist/esm/{chunk-6DJZITWL.mjs → chunk-SPI2HO3E.mjs} +2 -2
  103. package/dist/esm/{chunk-YGFWUFZY.mjs → chunk-SPVJXZL5.mjs} +186 -62
  104. package/dist/esm/chunk-SPVJXZL5.mjs.map +1 -0
  105. package/dist/esm/{chunk-BVBIBMAE.mjs → chunk-SRXIHVZE.mjs} +2 -2
  106. package/dist/esm/{chunk-ZAPXD4FC.mjs → chunk-T4BFWV46.mjs} +2 -2
  107. package/dist/esm/{chunk-ZZWD23YW.mjs → chunk-T573PCIR.mjs} +3 -3
  108. package/dist/esm/{chunk-AEMQUDMU.mjs → chunk-TDLL7QX5.mjs} +11 -11
  109. package/dist/esm/{chunk-HRUI6AWF.mjs → chunk-TFW6N66T.mjs} +4 -4
  110. package/dist/esm/{chunk-LK4HGGAJ.mjs → chunk-TJDF4CXI.mjs} +2 -2
  111. package/dist/esm/{chunk-U7K7AJMC.mjs → chunk-TL4Z4KHK.mjs} +2 -2
  112. package/dist/esm/{chunk-IARAGRKO.mjs → chunk-UGFIWCJQ.mjs} +4 -4
  113. package/dist/esm/{chunk-Y25NJOOO.mjs → chunk-UK7SPHIE.mjs} +4 -4
  114. package/dist/esm/{chunk-MX2R6BBJ.mjs → chunk-UOHCJOXI.mjs} +2 -2
  115. package/dist/esm/{chunk-S5JIXUS6.mjs → chunk-WHSS6I7T.mjs} +4 -4
  116. package/dist/esm/{chunk-2ZX5PHCY.mjs → chunk-WLTQHGIJ.mjs} +5 -5
  117. package/dist/esm/{chunk-MD4TZ4HA.mjs → chunk-WUM247HF.mjs} +3 -3
  118. package/dist/esm/{chunk-IY2ASLSP.mjs → chunk-WXQUBQK4.mjs} +2 -2
  119. package/dist/esm/{chunk-3T7G4OUL.mjs → chunk-X4N5BN3S.mjs} +2 -2
  120. package/dist/esm/{chunk-TQLOZKH4.mjs → chunk-XIBOO3WF.mjs} +3 -3
  121. package/dist/esm/{chunk-2JLHWA2G.mjs → chunk-Y3M32DIB.mjs} +2 -2
  122. package/dist/esm/{chunk-IKEPH7D2.mjs → chunk-YK66QBML.mjs} +4 -4
  123. package/dist/esm/{chunk-PITSYZA7.mjs → chunk-YT7V6AVJ.mjs} +2 -2
  124. package/dist/esm/chunk-ZRBUAZZD.mjs +36 -0
  125. package/dist/esm/chunk-ZRBUAZZD.mjs.map +1 -0
  126. package/dist/esm/cli/index.mjs +1 -1
  127. package/dist/esm/cli/localNode.mjs +1 -1
  128. package/dist/esm/client/core.mjs +1 -1
  129. package/dist/esm/client/get.mjs +1 -1
  130. package/dist/esm/client/index.mjs +10 -10
  131. package/dist/esm/client/post.mjs +1 -1
  132. package/dist/esm/core/account/index.mjs +1 -1
  133. package/dist/esm/core/account/utils/address.mjs +1 -1
  134. package/dist/esm/core/account/utils/index.mjs +1 -1
  135. package/dist/esm/core/accountAddress.mjs +1 -1
  136. package/dist/esm/core/authenticationKey.mjs +1 -1
  137. package/dist/esm/core/crypto/abstraction.mjs +1 -1
  138. package/dist/esm/core/crypto/ed25519.mjs +3 -3
  139. package/dist/esm/core/crypto/ephemeral.mjs +4 -4
  140. package/dist/esm/core/crypto/federatedKeyless.mjs +7 -7
  141. package/dist/esm/core/crypto/index.mjs +13 -13
  142. package/dist/esm/core/crypto/keyless.mjs +6 -6
  143. package/dist/esm/core/crypto/multiEd25519.mjs +11 -11
  144. package/dist/esm/core/crypto/multiKey.mjs +10 -10
  145. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  146. package/dist/esm/core/crypto/proof.mjs +1 -1
  147. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  148. package/dist/esm/core/crypto/secp256k1.mjs +3 -3
  149. package/dist/esm/core/crypto/signature.mjs +1 -1
  150. package/dist/esm/core/crypto/singleKey.mjs +9 -9
  151. package/dist/esm/core/index.mjs +13 -13
  152. package/dist/esm/errors/index.mjs +1 -1
  153. package/dist/esm/index.mjs +102 -99
  154. package/dist/esm/internal/abstraction.mjs +37 -37
  155. package/dist/esm/internal/account.d.mts +45 -5
  156. package/dist/esm/internal/account.mjs +48 -34
  157. package/dist/esm/internal/ans.mjs +38 -38
  158. package/dist/esm/internal/coin.mjs +37 -36
  159. package/dist/esm/internal/digitalAsset.mjs +37 -37
  160. package/dist/esm/internal/event.mjs +13 -13
  161. package/dist/esm/internal/experimental.mjs +25 -39
  162. package/dist/esm/internal/faucet.mjs +14 -14
  163. package/dist/esm/internal/fungibleAsset.mjs +37 -37
  164. package/dist/esm/internal/general.mjs +3 -3
  165. package/dist/esm/internal/keyless.mjs +39 -37
  166. package/dist/esm/internal/object.mjs +13 -13
  167. package/dist/esm/internal/staking.mjs +13 -13
  168. package/dist/esm/internal/table.mjs +4 -4
  169. package/dist/esm/internal/transaction.mjs +4 -4
  170. package/dist/esm/internal/transactionSubmission.d.mts +6 -36
  171. package/dist/esm/internal/transactionSubmission.mjs +36 -42
  172. package/dist/esm/internal/utils/index.d.mts +15 -0
  173. package/dist/esm/internal/utils/index.mjs +39 -0
  174. package/dist/esm/internal/utils/index.mjs.map +1 -0
  175. package/dist/esm/internal/utils/utils.d.mts +65 -0
  176. package/dist/esm/internal/utils/utils.mjs +38 -0
  177. package/dist/esm/internal/utils/utils.mjs.map +1 -0
  178. package/dist/esm/internal/view.mjs +25 -39
  179. package/dist/esm/transactions/authenticator/account.mjs +12 -12
  180. package/dist/esm/transactions/authenticator/index.mjs +13 -13
  181. package/dist/esm/transactions/authenticator/transaction.mjs +13 -13
  182. package/dist/esm/transactions/index.mjs +43 -57
  183. package/dist/esm/transactions/instances/index.mjs +21 -21
  184. package/dist/esm/transactions/instances/moduleId.mjs +11 -11
  185. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +12 -12
  186. package/dist/esm/transactions/instances/rawTransaction.mjs +12 -12
  187. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  188. package/dist/esm/transactions/instances/signedTransaction.mjs +15 -15
  189. package/dist/esm/transactions/instances/simpleTransaction.mjs +12 -12
  190. package/dist/esm/transactions/instances/transactionPayload.mjs +11 -11
  191. package/dist/esm/transactions/management/accountSequenceNumber.mjs +45 -33
  192. package/dist/esm/transactions/management/index.mjs +40 -38
  193. package/dist/esm/transactions/management/transactionWorker.mjs +40 -38
  194. package/dist/esm/transactions/scriptComposer/index.mjs +24 -38
  195. package/dist/esm/transactions/transactionBuilder/helpers.mjs +11 -11
  196. package/dist/esm/transactions/transactionBuilder/index.mjs +23 -37
  197. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +14 -45
  198. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +17 -17
  199. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +23 -38
  200. package/dist/esm/transactions/typeTag/index.mjs +11 -11
  201. package/dist/esm/transactions/typeTag/parser.mjs +11 -11
  202. package/dist/esm/types/index.mjs +1 -1
  203. package/dist/esm/utils/helpers.mjs +1 -1
  204. package/dist/esm/utils/index.mjs +1 -1
  205. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  206. package/package.json +25 -24
  207. package/src/account/MultiKeyAccount.ts +3 -2
  208. package/src/api/general.ts +2 -2
  209. package/src/api/transaction.ts +30 -29
  210. package/src/internal/account.ts +202 -61
  211. package/src/internal/transactionSubmission.ts +4 -202
  212. package/src/internal/utils/index.ts +4 -0
  213. package/src/internal/utils/utils.ts +116 -0
  214. package/src/transactions/scriptComposer/index.ts +3 -1
  215. package/src/transactions/transactionBuilder/remoteAbi.ts +1 -1
  216. package/src/transactions/transactionBuilder/transactionBuilder.ts +7 -2
  217. package/dist/esm/chunk-CDJNQ7CS.mjs.map +0 -1
  218. package/dist/esm/chunk-D3IWXA33.mjs.map +0 -1
  219. package/dist/esm/chunk-MC4OOX6X.mjs.map +0 -1
  220. package/dist/esm/chunk-OOQS6BEP.mjs.map +0 -1
  221. package/dist/esm/chunk-YGFWUFZY.mjs.map +0 -1
  222. /package/dist/esm/{chunk-JJ6MU2DV.mjs.map → chunk-2FTF6J7F.mjs.map} +0 -0
  223. /package/dist/esm/{chunk-54XJAHWK.mjs.map → chunk-2HL7JEFC.mjs.map} +0 -0
  224. /package/dist/esm/{chunk-TZZZNGQI.mjs.map → chunk-2WBJAKBO.mjs.map} +0 -0
  225. /package/dist/esm/{chunk-3E2SXJXZ.mjs.map → chunk-3DAVHDK4.mjs.map} +0 -0
  226. /package/dist/esm/{chunk-F65QGYVD.mjs.map → chunk-3TUV6YMI.mjs.map} +0 -0
  227. /package/dist/esm/{chunk-KZFQOE4N.mjs.map → chunk-5ORUQZAR.mjs.map} +0 -0
  228. /package/dist/esm/{chunk-RTNVJKNX.mjs.map → chunk-62LC4PPC.mjs.map} +0 -0
  229. /package/dist/esm/{chunk-YD3KHXBD.mjs.map → chunk-6SNGKTWE.mjs.map} +0 -0
  230. /package/dist/esm/{chunk-2SIDNRJH.mjs.map → chunk-7F32C225.mjs.map} +0 -0
  231. /package/dist/esm/{chunk-TFDBSPIQ.mjs.map → chunk-7WW735TU.mjs.map} +0 -0
  232. /package/dist/esm/{chunk-SFF4FJUD.mjs.map → chunk-A33OBGVN.mjs.map} +0 -0
  233. /package/dist/esm/{chunk-J32AERDF.mjs.map → chunk-A7LYGPFL.mjs.map} +0 -0
  234. /package/dist/esm/{chunk-BADWWRLN.mjs.map → chunk-AGKEC2IM.mjs.map} +0 -0
  235. /package/dist/esm/{chunk-GUEJH55K.mjs.map → chunk-BU43ZFDJ.mjs.map} +0 -0
  236. /package/dist/esm/{chunk-PP2U5UMC.mjs.map → chunk-C7EEG6SW.mjs.map} +0 -0
  237. /package/dist/esm/{chunk-HTC3Q5JN.mjs.map → chunk-D4MW64RH.mjs.map} +0 -0
  238. /package/dist/esm/{chunk-YMHFUSKX.mjs.map → chunk-D6RXVCE3.mjs.map} +0 -0
  239. /package/dist/esm/{chunk-NFBLI3BS.mjs.map → chunk-DMFRIING.mjs.map} +0 -0
  240. /package/dist/esm/{chunk-CPZPXG7O.mjs.map → chunk-ECTX2FGD.mjs.map} +0 -0
  241. /package/dist/esm/{chunk-OVZOE4GS.mjs.map → chunk-G6R77JKO.mjs.map} +0 -0
  242. /package/dist/esm/{chunk-XHQMSKZP.mjs.map → chunk-G7BB6K4B.mjs.map} +0 -0
  243. /package/dist/esm/{chunk-XB4SVKZP.mjs.map → chunk-GCQK2S5Q.mjs.map} +0 -0
  244. /package/dist/esm/{chunk-2WTIMHGC.mjs.map → chunk-HBXBODME.mjs.map} +0 -0
  245. /package/dist/esm/{chunk-WSI6NVQD.mjs.map → chunk-HL337SEM.mjs.map} +0 -0
  246. /package/dist/esm/{chunk-V66UC6YI.mjs.map → chunk-HQDHSKVS.mjs.map} +0 -0
  247. /package/dist/esm/{chunk-ZATMRCFV.mjs.map → chunk-I5G7XFGT.mjs.map} +0 -0
  248. /package/dist/esm/{chunk-SW4ASQPY.mjs.map → chunk-ILTEOGFF.mjs.map} +0 -0
  249. /package/dist/esm/{chunk-RGHKUKOX.mjs.map → chunk-IPUAVRGL.mjs.map} +0 -0
  250. /package/dist/esm/{chunk-MLGROHE6.mjs.map → chunk-IQVHXOD3.mjs.map} +0 -0
  251. /package/dist/esm/{chunk-IEM26R5Q.mjs.map → chunk-JAZJE3OR.mjs.map} +0 -0
  252. /package/dist/esm/{chunk-VJ2Z7GO3.mjs.map → chunk-JEVGHYEP.mjs.map} +0 -0
  253. /package/dist/esm/{chunk-WPJUSJJQ.mjs.map → chunk-JFMFZ2IL.mjs.map} +0 -0
  254. /package/dist/esm/{chunk-ESGBNVCA.mjs.map → chunk-ORCQEMJL.mjs.map} +0 -0
  255. /package/dist/esm/{chunk-PYLTV3KI.mjs.map → chunk-QYNYDQE3.mjs.map} +0 -0
  256. /package/dist/esm/{chunk-F2EFNUWD.mjs.map → chunk-R45SPK6Q.mjs.map} +0 -0
  257. /package/dist/esm/{chunk-UKYATVYK.mjs.map → chunk-RCXGTN36.mjs.map} +0 -0
  258. /package/dist/esm/{chunk-6DJZITWL.mjs.map → chunk-SPI2HO3E.mjs.map} +0 -0
  259. /package/dist/esm/{chunk-BVBIBMAE.mjs.map → chunk-SRXIHVZE.mjs.map} +0 -0
  260. /package/dist/esm/{chunk-ZAPXD4FC.mjs.map → chunk-T4BFWV46.mjs.map} +0 -0
  261. /package/dist/esm/{chunk-ZZWD23YW.mjs.map → chunk-T573PCIR.mjs.map} +0 -0
  262. /package/dist/esm/{chunk-AEMQUDMU.mjs.map → chunk-TDLL7QX5.mjs.map} +0 -0
  263. /package/dist/esm/{chunk-HRUI6AWF.mjs.map → chunk-TFW6N66T.mjs.map} +0 -0
  264. /package/dist/esm/{chunk-LK4HGGAJ.mjs.map → chunk-TJDF4CXI.mjs.map} +0 -0
  265. /package/dist/esm/{chunk-U7K7AJMC.mjs.map → chunk-TL4Z4KHK.mjs.map} +0 -0
  266. /package/dist/esm/{chunk-IARAGRKO.mjs.map → chunk-UGFIWCJQ.mjs.map} +0 -0
  267. /package/dist/esm/{chunk-Y25NJOOO.mjs.map → chunk-UK7SPHIE.mjs.map} +0 -0
  268. /package/dist/esm/{chunk-MX2R6BBJ.mjs.map → chunk-UOHCJOXI.mjs.map} +0 -0
  269. /package/dist/esm/{chunk-S5JIXUS6.mjs.map → chunk-WHSS6I7T.mjs.map} +0 -0
  270. /package/dist/esm/{chunk-2ZX5PHCY.mjs.map → chunk-WLTQHGIJ.mjs.map} +0 -0
  271. /package/dist/esm/{chunk-MD4TZ4HA.mjs.map → chunk-WUM247HF.mjs.map} +0 -0
  272. /package/dist/esm/{chunk-IY2ASLSP.mjs.map → chunk-WXQUBQK4.mjs.map} +0 -0
  273. /package/dist/esm/{chunk-3T7G4OUL.mjs.map → chunk-X4N5BN3S.mjs.map} +0 -0
  274. /package/dist/esm/{chunk-TQLOZKH4.mjs.map → chunk-XIBOO3WF.mjs.map} +0 -0
  275. /package/dist/esm/{chunk-2JLHWA2G.mjs.map → chunk-Y3M32DIB.mjs.map} +0 -0
  276. /package/dist/esm/{chunk-IKEPH7D2.mjs.map → chunk-YK66QBML.mjs.map} +0 -0
  277. /package/dist/esm/{chunk-PITSYZA7.mjs.map → chunk-YT7V6AVJ.mjs.map} +0 -0
@@ -7,19 +7,12 @@
7
7
  */
8
8
 
9
9
  import { AptosConfig } from "../api/aptosConfig";
10
- import { Deserializer, MoveVector, U8 } from "../bcs";
10
+ import { Deserializer, MoveVector } from "../bcs";
11
11
  import { postAptosFullNode } from "../client";
12
12
  import { Account, AbstractKeylessAccount, isKeylessSigner } from "../account";
13
13
  import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
14
- import {
15
- Ed25519PrivateKey,
16
- FederatedKeylessPublicKey,
17
- KeylessPublicKey,
18
- KeylessSignature,
19
- PrivateKeyInput,
20
- } from "../core/crypto";
14
+ import { FederatedKeylessPublicKey, KeylessPublicKey, KeylessSignature } from "../core/crypto";
21
15
  import { AccountAuthenticator } from "../transactions/authenticator/account";
22
- import { RotationProofChallenge } from "../transactions/instances/rotationProofChallenge";
23
16
  import {
24
17
  buildTransaction,
25
18
  generateTransactionPayload,
@@ -38,22 +31,10 @@ import {
38
31
  AnyTransactionPayloadInstance,
39
32
  EntryFunctionABI,
40
33
  } from "../transactions/types";
41
- import { getInfo } from "./account";
42
- import {
43
- UserTransactionResponse,
44
- PendingTransactionResponse,
45
- MimeType,
46
- HexInput,
47
- TransactionResponse,
48
- CommittedTransactionResponse,
49
- } from "../types";
50
- import { SignedTransaction, TypeTagU8, TypeTagVector, generateSigningMessageForTransaction } from "../transactions";
34
+ import { UserTransactionResponse, PendingTransactionResponse, MimeType, HexInput } from "../types";
35
+ import { SignedTransaction, TypeTagVector, generateSigningMessageForTransaction } from "../transactions";
51
36
  import { SimpleTransaction } from "../transactions/instances/simpleTransaction";
52
37
  import { MultiAgentTransaction } from "../transactions/instances/multiAgentTransaction";
53
- import { MultiEd25519Account } from "../account/MultiEd25519Account";
54
- import { AuthenticationKey, Hex } from "../core";
55
- import { waitForTransaction } from "./transaction";
56
- import { transferCoinTransaction } from "./coin";
57
38
 
58
39
  /**
59
40
  * We are defining function signatures, each with its specific input and output.
@@ -461,182 +442,3 @@ export async function publicPackageTransaction(args: {
461
442
  options,
462
443
  });
463
444
  }
464
-
465
- const rotateAuthKeyAbi: EntryFunctionABI = {
466
- typeParameters: [],
467
- parameters: [
468
- new TypeTagU8(),
469
- TypeTagVector.u8(),
470
- new TypeTagU8(),
471
- TypeTagVector.u8(),
472
- TypeTagVector.u8(),
473
- TypeTagVector.u8(),
474
- ],
475
- };
476
-
477
- const rotateAuthKeyUnverifiedAbi: EntryFunctionABI = {
478
- typeParameters: [],
479
- parameters: [TypeTagVector.u8()],
480
- };
481
-
482
- /**
483
- * Rotates the authentication key for a given account, allowing for enhanced security and management of account access.
484
- *
485
- * @param args - The arguments for rotating the authentication key.
486
- * @param args.aptosConfig - The configuration settings for the Aptos network.
487
- * @param args.fromAccount - The account from which the authentication key will be rotated.
488
- * @param args.toNewPrivateKey - The new private key that will be associated with the account.
489
- *
490
- * @remarks
491
- * This function requires the current authentication key and the new private key to sign a challenge that validates the rotation.
492
- *
493
- * TODO: Need to refactor and move this function out of transactionSubmission.
494
- * @group Implementation
495
- */
496
- export async function rotateAuthKey(args: {
497
- aptosConfig: AptosConfig;
498
- fromAccount: Account;
499
- toNewPrivateKey: Ed25519PrivateKey;
500
- }): Promise<PendingTransactionResponse> {
501
- const { aptosConfig, fromAccount, toNewPrivateKey } = args;
502
- const accountInfo = await getInfo({
503
- aptosConfig,
504
- accountAddress: fromAccount.accountAddress,
505
- });
506
-
507
- const newAccount = Account.fromPrivateKey({ privateKey: toNewPrivateKey, legacy: true });
508
-
509
- const challenge = new RotationProofChallenge({
510
- sequenceNumber: BigInt(accountInfo.sequence_number),
511
- originator: fromAccount.accountAddress,
512
- currentAuthKey: AccountAddress.from(accountInfo.authentication_key),
513
- newPublicKey: newAccount.publicKey,
514
- });
515
-
516
- // Sign the challenge
517
- const challengeHex = challenge.bcsToBytes();
518
- const proofSignedByCurrentPrivateKey = fromAccount.sign(challengeHex);
519
- const proofSignedByNewPrivateKey = newAccount.sign(challengeHex);
520
-
521
- // Generate transaction
522
- const rawTxn = await generateTransaction({
523
- aptosConfig,
524
- sender: fromAccount.accountAddress,
525
- data: {
526
- function: "0x1::account::rotate_authentication_key",
527
- functionArguments: [
528
- new U8(fromAccount.signingScheme), // from scheme
529
- MoveVector.U8(fromAccount.publicKey.toUint8Array()),
530
- new U8(newAccount.signingScheme), // to scheme
531
- MoveVector.U8(newAccount.publicKey.toUint8Array()),
532
- MoveVector.U8(proofSignedByCurrentPrivateKey.toUint8Array()),
533
- MoveVector.U8(proofSignedByNewPrivateKey.toUint8Array()),
534
- ],
535
- abi: rotateAuthKeyAbi,
536
- },
537
- });
538
- return signAndSubmitTransaction({
539
- aptosConfig,
540
- signer: fromAccount,
541
- transaction: rawTxn,
542
- });
543
- }
544
-
545
- export async function rotateAuthKeyToMultiEd25519(args: {
546
- aptosConfig: AptosConfig;
547
- fromAccount: Account;
548
- multiEd25519Account: MultiEd25519Account;
549
- }): Promise<PendingTransactionResponse> {
550
- const { aptosConfig, fromAccount, multiEd25519Account } = args;
551
- const accountInfo = await getInfo({
552
- aptosConfig,
553
- accountAddress: fromAccount.accountAddress,
554
- });
555
-
556
- const newAccount = multiEd25519Account;
557
-
558
- const challenge = new RotationProofChallenge({
559
- sequenceNumber: BigInt(accountInfo.sequence_number),
560
- originator: fromAccount.accountAddress,
561
- currentAuthKey: AccountAddress.from(accountInfo.authentication_key),
562
- newPublicKey: newAccount.publicKey,
563
- });
564
-
565
- // Sign the challenge
566
- const challengeHex = challenge.bcsToBytes();
567
- const proofSignedByCurrentPrivateKey = fromAccount.sign(challengeHex);
568
- const proofSignedByNewPrivateKey = newAccount.sign(challengeHex);
569
-
570
- // Generate transaction
571
- const rawTxn = await generateTransaction({
572
- aptosConfig,
573
- sender: fromAccount.accountAddress,
574
- data: {
575
- function: "0x1::account::rotate_authentication_key",
576
- functionArguments: [
577
- new U8(fromAccount.signingScheme), // from scheme
578
- MoveVector.U8(fromAccount.publicKey.toUint8Array()),
579
- new U8(newAccount.signingScheme), // to scheme
580
- MoveVector.U8(newAccount.publicKey.toUint8Array()),
581
- MoveVector.U8(proofSignedByCurrentPrivateKey.toUint8Array()),
582
- MoveVector.U8(proofSignedByNewPrivateKey.toUint8Array()),
583
- ],
584
- abi: rotateAuthKeyAbi,
585
- },
586
- });
587
- return signAndSubmitTransaction({
588
- aptosConfig,
589
- signer: fromAccount,
590
- transaction: rawTxn,
591
- });
592
- }
593
-
594
- export async function rotateAuthKeyWithVerificationTransaction(args: {
595
- aptosConfig: AptosConfig;
596
- fromAccount: Account;
597
- toAccount: Account;
598
- }): Promise<CommittedTransactionResponse> {
599
- const { aptosConfig, fromAccount, toAccount } = args;
600
-
601
- // Generate transaction
602
- const rawTxn = await generateTransaction({
603
- aptosConfig,
604
- sender: fromAccount.accountAddress,
605
- data: {
606
- function: "0x1::account::rotate_authentication_key_call",
607
- functionArguments: [MoveVector.U8(toAccount.publicKey.authKey().toUint8Array())],
608
- abi: rotateAuthKeyUnverifiedAbi,
609
- },
610
- });
611
- const pendingTxn = await signAndSubmitTransaction({
612
- aptosConfig,
613
- signer: fromAccount,
614
- transaction: rawTxn,
615
- });
616
- const txnResponse = await waitForTransaction({
617
- aptosConfig,
618
- transactionHash: pendingTxn.hash,
619
- });
620
- if (!txnResponse.success) {
621
- throw new Error(`Failed to rotate authentication key - ${txnResponse}`);
622
- }
623
- const coinTxn = await transferCoinTransaction({
624
- aptosConfig,
625
- sender: toAccount.accountAddress,
626
- recipient: toAccount.accountAddress,
627
- amount: 1,
628
- });
629
- const pendingCoinTxn = await signAndSubmitTransaction({
630
- aptosConfig,
631
- signer: fromAccount,
632
- transaction: coinTxn,
633
- });
634
- const coinTxnResponse = await waitForTransaction({
635
- aptosConfig,
636
- transactionHash: pendingCoinTxn.hash,
637
- });
638
- if (!coinTxnResponse.success) {
639
- throw new Error(`Failed to verify authentication key - ${coinTxnResponse}`);
640
- }
641
- return coinTxnResponse;
642
- }
@@ -0,0 +1,4 @@
1
+ // Copyright © Aptos Foundation
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./utils";
@@ -0,0 +1,116 @@
1
+ import { AccountAddress, AccountAddressInput } from "../../core/accountAddress";
2
+ import { MoveModuleBytecode, LedgerVersionArg, PaginationArgs, AccountData } from "../../types/types";
3
+ import { AptosConfig } from "../../api/aptosConfig";
4
+ import { getAptosFullNode, paginateWithObfuscatedCursor } from "../../client";
5
+ import { memoizeAsync } from "../../utils/memoize";
6
+
7
+ /**
8
+ * Retrieves the modules associated with a specified account address.
9
+ *
10
+ * @param args - The arguments for retrieving modules.
11
+ * @param args.aptosConfig - The configuration for connecting to the Aptos blockchain.
12
+ * @param args.accountAddress - The address of the account whose modules are to be retrieved.
13
+ * @param args.options - Optional parameters for pagination and ledger version.
14
+ * @param args.options.limit - The maximum number of modules to retrieve (default is 1000).
15
+ * @param args.options.offset - The starting point for pagination. Note, this is obfuscated and is not an index.
16
+ * @param args.options.ledgerVersion - The specific ledger version to query.
17
+ * @group Implementation
18
+ */
19
+ export async function getModules(args: {
20
+ aptosConfig: AptosConfig;
21
+ accountAddress: AccountAddressInput;
22
+ options?: PaginationArgs & LedgerVersionArg;
23
+ }): Promise<MoveModuleBytecode[]> {
24
+ const { aptosConfig, accountAddress, options } = args;
25
+ return paginateWithObfuscatedCursor<{}, MoveModuleBytecode[]>({
26
+ aptosConfig,
27
+ originMethod: "getModules",
28
+ path: `accounts/${AccountAddress.from(accountAddress).toString()}/modules`,
29
+ params: {
30
+ ledger_version: options?.ledgerVersion,
31
+ offset: options?.offset,
32
+ limit: options?.limit ?? 1000,
33
+ },
34
+ });
35
+ }
36
+
37
+ /**
38
+ * Retrieves account information for a specified account address.
39
+ *
40
+ * @param args - The arguments for retrieving account information.
41
+ * @param args.aptosConfig - The configuration object for Aptos.
42
+ * @param args.accountAddress - The address of the account to retrieve information for.
43
+ * @group Implementation
44
+ */
45
+ export async function getInfo(args: {
46
+ aptosConfig: AptosConfig;
47
+ accountAddress: AccountAddressInput;
48
+ }): Promise<AccountData> {
49
+ const { aptosConfig, accountAddress } = args;
50
+ const { data } = await getAptosFullNode<{}, AccountData>({
51
+ aptosConfig,
52
+ originMethod: "getInfo",
53
+ path: `accounts/${AccountAddress.from(accountAddress).toString()}`,
54
+ });
55
+ return data;
56
+ }
57
+
58
+ /**
59
+ * Queries for a move module given an account address and module name.
60
+ * This function can help you retrieve the module's ABI and other relevant information.
61
+ *
62
+ * @param args - The arguments for retrieving the module.
63
+ * @param args.aptosConfig - The configuration for the Aptos client.
64
+ * @param args.accountAddress - The account address in hex-encoded 32 byte format.
65
+ * @param args.moduleName - The name of the module to retrieve.
66
+ * @param args.options - Optional parameters for the request.
67
+ * @param args.options.ledgerVersion - Specifies the ledger version of transactions. By default, the latest version will be used.
68
+ * @returns The move module.
69
+ * @group Implementation
70
+ */
71
+ export async function getModule(args: {
72
+ aptosConfig: AptosConfig;
73
+ accountAddress: AccountAddressInput;
74
+ moduleName: string;
75
+ options?: LedgerVersionArg;
76
+ }): Promise<MoveModuleBytecode> {
77
+ // We don't memoize the account module by ledger version, as it's not a common use case, this would be handled
78
+ // by the developer directly
79
+ if (args.options?.ledgerVersion !== undefined) {
80
+ return getModuleInner(args);
81
+ }
82
+
83
+ return memoizeAsync(
84
+ async () => getModuleInner(args),
85
+ `module-${args.accountAddress}-${args.moduleName}`,
86
+ 1000 * 60 * 5, // 5 minutes
87
+ )();
88
+ }
89
+
90
+ /**
91
+ * Retrieves the bytecode of a specified module from a given account address.
92
+ *
93
+ * @param args - The parameters for retrieving the module bytecode.
94
+ * @param args.aptosConfig - The configuration for connecting to the Aptos network.
95
+ * @param args.accountAddress - The address of the account from which to retrieve the module.
96
+ * @param args.moduleName - The name of the module to retrieve.
97
+ * @param args.options - Optional parameters for specifying the ledger version.
98
+ * @param args.options.ledgerVersion - The specific ledger version to query.
99
+ * @group Implementation
100
+ */
101
+ async function getModuleInner(args: {
102
+ aptosConfig: AptosConfig;
103
+ accountAddress: AccountAddressInput;
104
+ moduleName: string;
105
+ options?: LedgerVersionArg;
106
+ }): Promise<MoveModuleBytecode> {
107
+ const { aptosConfig, accountAddress, moduleName, options } = args;
108
+
109
+ const { data } = await getAptosFullNode<{}, MoveModuleBytecode>({
110
+ aptosConfig,
111
+ originMethod: "getModule",
112
+ path: `accounts/${AccountAddress.from(accountAddress).toString()}/module/${moduleName}`,
113
+ params: { ledger_version: options?.ledgerVersion },
114
+ });
115
+ return data;
116
+ }
@@ -58,7 +58,9 @@ export class AptosScriptComposer {
58
58
 
59
59
  // Load the calling type arguments into the loader.
60
60
  if (input.typeArguments !== undefined) {
61
- await Promise.all(input.typeArguments.map((typeTag) => this.builder.load_type_tag(nodeUrl, typeTag.toString())));
61
+ for (const typeArgument of input.typeArguments) {
62
+ await this.builder.load_type_tag(nodeUrl, typeArgument.toString());
63
+ }
62
64
  }
63
65
  const typeArguments = standardizeTypeTags(input.typeArguments);
64
66
  const functionAbi = await fetchMoveFunctionAbi(moduleAddress, moduleName, functionName, this.config);
@@ -25,7 +25,7 @@ import {
25
25
  } from "../types";
26
26
  import { Bool, MoveOption, MoveString, MoveVector, U128, U16, U256, U32, U64, U8 } from "../../bcs";
27
27
  import { AccountAddress } from "../../core";
28
- import { getModule } from "../../internal/account";
28
+ import { getModule } from "../../internal/utils";
29
29
  import {
30
30
  findFirstNonSignerArg,
31
31
  isBcsAddress,
@@ -20,7 +20,7 @@ import {
20
20
  MultiKeySignature,
21
21
  } from "../../core/crypto";
22
22
  import { Ed25519PublicKey, Ed25519Signature } from "../../core/crypto/ed25519";
23
- import { getInfo } from "../../internal/account";
23
+ import { getInfo } from "../../internal/utils";
24
24
  import { getLedgerInfo } from "../../internal/general";
25
25
  import { getGasPriceEstimation } from "../../internal/transaction";
26
26
  import { NetworkToChainId } from "../../utils/apiEndpoints";
@@ -638,7 +638,12 @@ export function getAuthenticatorForSimulation(publicKey?: PublicKey) {
638
638
  return new AccountAuthenticatorMultiKey(
639
639
  accountPublicKey,
640
640
  new MultiKeySignature({
641
- signatures: accountPublicKey.publicKeys.map(() => new AnySignature(invalidSignature)),
641
+ signatures: accountPublicKey.publicKeys.map((pubKey) => {
642
+ if (KeylessPublicKey.isInstance(pubKey.publicKey) || FederatedKeylessPublicKey.isInstance(pubKey.publicKey)) {
643
+ return new AnySignature(KeylessSignature.getSimulationSignature());
644
+ }
645
+ return new AnySignature(invalidSignature);
646
+ }),
642
647
  bitmap: accountPublicKey.createBitmap({
643
648
  bits: Array(accountPublicKey.publicKeys.length)
644
649
  .fill(0)
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/api/transaction.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AptosConfig } from \"./aptosConfig\";\nimport {\n getGasPriceEstimation,\n getTransactionByHash,\n getTransactionByVersion,\n getTransactions,\n isTransactionPending,\n waitForTransaction,\n} from \"../internal/transaction\";\nimport {\n AnyNumber,\n CommittedTransactionResponse,\n GasEstimation,\n HexInput,\n PaginationArgs,\n PendingTransactionResponse,\n TransactionResponse,\n WaitForTransactionOptions,\n} from \"../types\";\nimport {\n FeePayerOrFeePayerAuthenticatorOrNeither,\n getSigningMessage,\n publicPackageTransaction,\n rotateAuthKey,\n rotateAuthKeyToMultiEd25519,\n rotateAuthKeyWithVerificationTransaction,\n signAndSubmitAsFeePayer,\n signAndSubmitTransaction,\n signAsFeePayer,\n signTransaction,\n} from \"../internal/transactionSubmission\";\nimport {\n AccountAuthenticator,\n AnyRawTransaction,\n InputGenerateTransactionOptions,\n InputGenerateTransactionPayloadData,\n} from \"../transactions\";\nimport { AccountAddressInput, Ed25519PrivateKey } from \"../core\";\nimport { Account } from \"../account\";\nimport { Build } from \"./transactionSubmission/build\";\nimport { Simulate } from \"./transactionSubmission/simulate\";\nimport { Submit } from \"./transactionSubmission/submit\";\nimport { TransactionManagement } from \"./transactionSubmission/management\";\nimport { SimpleTransaction } from \"../transactions/instances/simpleTransaction\";\nimport { MultiEd25519Account } from \"../account/MultiEd25519Account\";\n\n/**\n * Represents a transaction in the Aptos blockchain,\n * providing methods to build, simulate, submit, and manage transactions.\n * This class encapsulates functionalities for querying transaction details,\n * estimating gas prices, signing transactions, and handling transaction states.\n *\n * This class is used as part of the Aptos object, so should be called like so:\n * @example\n * ```typescript\n * import { Account, Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const APTOS_COIN = \"0x1::aptos_coin::AptosCoin\";\n * const COIN_STORE = `0x1::coin::CoinStore<${APTOS_COIN}>`;\n * const ALICE_INITIAL_BALANCE = 100_000_000;\n * const TRANSFER_AMOUNT = 100;\n *\n * async function example() {\n * console.log(\n * \"This example will create two accounts (Alice and Bob), fund them, and transfer between them.\",\n * );\n *\n * // Set up the client\n * const config = new AptosConfig({ network: Network.DEVNET });\n * const aptos = new Aptos(config);\n *\n * // Generate two account credentials\n * // Each account has a private key, a public key, and an address\n * const alice = Account.generate();\n * const bob = Account.generate();\n *\n * console.log(\"=== Addresses ===\\n\");\n * console.log(`Alice's address is: ${alice.accountAddress}`);\n * console.log(`Bob's address is: ${bob.accountAddress}`);\n *\n * // Fund the accounts using a faucet\n * console.log(\"\\n=== Funding accounts ===\\n\");\n *\n * await aptos.fundAccount({\n * accountAddress: alice.accountAddress,\n * amount: ALICE_INITIAL_BALANCE,\n * });\n *\n * // Send a transaction from Alice's account to Bob's account\n * const txn = await aptos.transaction.build.simple({\n * sender: alice.accountAddress,\n * data: {\n * // All transactions on Aptos are implemented via smart contracts.\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [bob.accountAddress, 100],\n * },\n * });\n *\n * console.log(\"\\n=== Transfer transaction ===\\n\");\n * // Both signs and submits\n * const committedTxn = await aptos.signAndSubmitTransaction({\n * signer: alice,\n * transaction: txn,\n * });\n * // Waits for Aptos to verify and execute the transaction\n * const executedTransaction = await aptos.waitForTransaction({\n * transactionHash: committedTxn.hash,\n * });\n * console.log(\"Transaction hash:\", executedTransaction.hash);\n *\n * console.log(\"\\n=== Balances after transfer ===\\n\");\n * const newAliceAccountBalance = await aptos.getAccountResource({\n * accountAddress: alice.accountAddress,\n * resourceType: COIN_STORE,\n * });\n * const newAliceBalance = Number(newAliceAccountBalance.coin.value);\n * console.log(`Alice's balance is: ${newAliceBalance}`);\n *\n * const newBobAccountBalance = await aptos.getAccountResource({\n * accountAddress: bob.accountAddress,\n * resourceType: COIN_STORE,\n * });\n * const newBobBalance = Number(newBobAccountBalance.coin.value);\n * console.log(`Bob's balance is: ${newBobBalance}`);\n * }\n *\n * example();\n * ```\n * @group Transaction\n */\nexport class Transaction {\n readonly config: AptosConfig;\n\n readonly build: Build;\n\n readonly simulate: Simulate;\n\n readonly submit: Submit;\n\n readonly batch: TransactionManagement;\n\n /**\n * Creates an instance of the Aptos client with the specified configuration.\n * This allows you to interact with the Aptos blockchain using the provided settings.\n *\n * @param config - The configuration settings for the Aptos client.\n * @param config.network - The network to connect to (e.g., Testnet, Mainnet).\n * @param config.nodeUrl - The URL of the Aptos node to connect to.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * async function runExample() {\n * // Create a new Aptos client instance\n * const config = new AptosConfig({ network: Network.TESTNET }); // Specify the network\n * const aptos = new Aptos(config);\n *\n * console.log(\"Aptos client created successfully:\", aptos);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n constructor(config: AptosConfig) {\n this.config = config;\n this.build = new Build(this.config);\n this.simulate = new Simulate(this.config);\n this.submit = new Submit(this.config);\n this.batch = new TransactionManagement(this.config);\n }\n\n /**\n * Queries on-chain transactions, excluding pending transactions.\n * Use this function to retrieve historical transactions from the blockchain.\n *\n * @param args Optional parameters for pagination.\n * @param args.options Optional pagination options.\n * @param args.options.offset The number of the transaction to start with.\n * @param args.options.limit The number of results to return.\n *\n * @returns An array of on-chain transactions.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Fetch transactions with pagination\n * const transactions = await aptos.getTransactions({\n * options: {\n * offset: 0, // Start from the first transaction\n * limit: 10, // Limit to 10 results\n * },\n * });\n *\n * console.log(transactions);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async getTransactions(args?: { options?: PaginationArgs }): Promise<TransactionResponse[]> {\n return getTransactions({\n aptosConfig: this.config,\n ...args,\n });\n }\n\n /**\n * Queries on-chain transaction by version. This function will not return pending transactions.\n *\n * @param args - The arguments for querying the transaction.\n * @param args.ledgerVersion - Transaction version is an unsigned 64-bit number.\n * @returns On-chain transaction. Only on-chain transactions have versions, so this\n * function cannot be used to query pending transactions.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Fetching a transaction by its version\n * const transaction = await aptos.getTransactionByVersion({ ledgerVersion: 1 }); // replace 1 with a real version\n * console.log(transaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async getTransactionByVersion(args: { ledgerVersion: AnyNumber }): Promise<TransactionResponse> {\n return getTransactionByVersion({\n aptosConfig: this.config,\n ...args,\n });\n }\n\n /**\n * Queries on-chain transactions by their transaction hash, returning both pending and committed transactions.\n *\n * @param args - The arguments for querying the transaction.\n * @param args.transactionHash - The transaction hash should be a hex-encoded bytes string with a 0x prefix.\n * @returns The transaction from the mempool (pending) or the on-chain (committed) transaction.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Fetch a transaction by its hash\n * const transaction = await aptos.getTransactionByHash({ transactionHash: \"0x123\" }); // replace with a real transaction hash\n *\n * console.log(transaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async getTransactionByHash(args: { transactionHash: HexInput }): Promise<TransactionResponse> {\n return getTransactionByHash({\n aptosConfig: this.config,\n ...args,\n });\n }\n\n /**\n * Defines if the specified transaction is currently in a pending state.\n * This function helps you determine the status of a transaction using its hash.\n *\n * @param args - The arguments for the function.\n * @param args.transactionHash - A hash of the transaction in hexadecimal format.\n * @returns `true` if the transaction is in a pending state and `false` otherwise.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Check if the transaction is pending using its hash\n * const isPendingTransaction = await aptos.isPendingTransaction({ transactionHash: \"0x123\" }); // replace with a real transaction hash\n * console.log(\"Is the transaction pending?\", isPendingTransaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async isPendingTransaction(args: { transactionHash: HexInput }): Promise<boolean> {\n return isTransactionPending({\n aptosConfig: this.config,\n ...args,\n });\n }\n\n /**\n * Waits for a transaction to move past the pending state and provides the transaction response.\n * There are 4 cases.\n * 1. Transaction is successfully processed and committed to the chain.\n * - The function will resolve with the transaction response from the API.\n * 2. Transaction is rejected for some reason, and is therefore not committed to the blockchain.\n * - The function will throw an AptosApiError with an HTTP status code indicating some problem with the request.\n * 3. Transaction is committed but execution failed, meaning no changes were\n * written to the blockchain state.\n * - If `checkSuccess` is true, the function will throw a FailedTransactionError\n * If `checkSuccess` is false, the function will resolve with the transaction response where the `success` field is false.\n * 4. Transaction does not move past the pending state within `args.options.timeoutSecs` seconds.\n * - The function will throw a WaitForTransactionError\n *\n * @param args.transactionHash - The hash of a transaction previously submitted to the blockchain.\n * @param args.options - Optional parameters for waiting behavior.\n * @param args.options.timeoutSecs - Timeout in seconds. Defaults to 20 seconds.\n * @param args.options.checkSuccess - A boolean which controls whether the function will error if the transaction failed.\n * Defaults to true.\n * @returns The transaction on-chain response.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Wait for a transaction to complete using its hash\n * const transactionHash = \"0x123\"; // replace with a real transaction hash\n * const transactionResponse = await aptos.waitForTransaction({\n * transactionHash,\n * options: {\n * timeoutSecs: 30, // specify your own timeout if needed\n * checkSuccess: true,\n * },\n * });\n *\n * console.log(transactionResponse);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async waitForTransaction(args: {\n transactionHash: HexInput;\n options?: WaitForTransactionOptions;\n }): Promise<CommittedTransactionResponse> {\n return waitForTransaction({\n aptosConfig: this.config,\n ...args,\n });\n }\n\n /**\n * Estimates the gas unit price required to process a transaction on the Aptos blockchain in a timely manner.\n * This helps users to understand the cost associated with their transactions.\n * {@link https://api.mainnet.aptoslabs.com/v1/spec#/operations/estimate_gas_price}\n *\n * @returns An object containing the estimated gas price.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET }); // Specify your network\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Getting the gas price estimation\n * const gasPriceEstimation = await aptos.getGasPriceEstimation();\n *\n * console.log(\"Estimated Gas Price:\", gasPriceEstimation);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async getGasPriceEstimation(): Promise<GasEstimation> {\n return getGasPriceEstimation({\n aptosConfig: this.config,\n });\n }\n\n /**\n * Returns a signing message for a transaction, allowing a user to sign it using their preferred method before submission to the network.\n *\n * @param args - The arguments for obtaining the signing message.\n * @param args.transaction - A raw transaction for signing elsewhere.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * const transaction = await aptos.transaction.build.simple({\n * sender: \"0x1\", // replace with a real sender address\n * data: {\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [\"0x2\", 100], // replace with a real destination address\n * },\n * });\n *\n * const message = await aptos.getSigningMessage({ transaction });\n * console.log(message);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n // eslint-disable-next-line class-methods-use-this\n getSigningMessage(args: { transaction: AnyRawTransaction }): Uint8Array {\n return getSigningMessage(args);\n }\n\n /**\n * Generates a transaction to publish a Move package to the blockchain.\n * This function helps you create a transaction that can be simulated or submitted to the chain for publishing a package.\n *\n * To get the `metadataBytes` and `byteCode`, can compile using Aptos CLI with command\n * `aptos move compile --save-metadata ...`,\n *\n * {@link https://aptos.dev/tutorials/your-first-dapp/#step-4-publish-a-move-module}\n *\n * @param args The arguments for publishing the package.\n * @param args.account The publisher account.\n * @param args.metadataBytes The package metadata bytes.\n * @param args.moduleBytecode An array of the bytecode of each module in the package in compiler output order.\n * @param args.options Optional settings for generating the transaction.\n *\n * @returns A SimpleTransaction that can be simulated or submitted to the chain.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Replace with a real account address\n * const account = \"0x1\";\n * const metadataBytes = \"0x...\"; // replace with real metadata bytes\n * const byteCode = \"0x...\"; // replace with real module bytecode\n *\n * const transaction = await aptos.publishPackageTransaction({\n * account,\n * metadataBytes,\n * moduleBytecode: [byteCode],\n * });\n *\n * console.log(transaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async publishPackageTransaction(args: {\n account: AccountAddressInput;\n metadataBytes: HexInput;\n moduleBytecode: Array<HexInput>;\n options?: InputGenerateTransactionOptions;\n }): Promise<SimpleTransaction> {\n return publicPackageTransaction({ aptosConfig: this.config, ...args });\n }\n\n /**\n * Rotate an account's authentication key. After rotation, only the new private key can be used to sign transactions for the account.\n * Note: Only legacy Ed25519 scheme is supported for now.\n * More info: {@link https://aptos.dev/guides/account-management/key-rotation/}\n *\n * @param args The arguments for rotating the auth key.\n * @param args.fromAccount The account to rotate the auth key for.\n * @param args.toNewPrivateKey The new private key to rotate to.\n *\n * @returns PendingTransactionResponse\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network, Account, PrivateKey } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Rotate the authentication key for an account\n * const response = await aptos.rotateAuthKey({\n * // replace with a real account\n * fromAccount: Account.generate(),\n * // replace with a real private key\n * toNewPrivateKey: new PrivateKey(\"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\"),\n * });\n *\n * console.log(response);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async rotateAuthKey(args: {\n fromAccount: Account;\n toNewPrivateKey: Ed25519PrivateKey;\n }): Promise<PendingTransactionResponse> {\n return rotateAuthKey({ aptosConfig: this.config, ...args });\n }\n\n async rotateAuthKeyToMultiEd25519(args: {\n fromAccount: Account;\n multiEd25519Account: MultiEd25519Account;\n }): Promise<PendingTransactionResponse> {\n return rotateAuthKeyToMultiEd25519({ aptosConfig: this.config, ...args });\n }\n\n async rotateAuthKeyWithVerificationTransaction(args: {\n fromAccount: Account;\n toAccount: Account;\n }): Promise<CommittedTransactionResponse> {\n return rotateAuthKeyWithVerificationTransaction({ aptosConfig: this.config, ...args });\n }\n\n /**\n * Sign a transaction that can later be submitted to the chain.\n * This function is essential for ensuring the authenticity of the transaction by using the provided account's signing capabilities.\n *\n * @param args - The arguments for signing the transaction.\n * @param args.signer - The account that will sign the transaction.\n * @param args.transaction - A raw transaction to sign.\n *\n * @returns AccountAuthenticator - The authenticator for the signed transaction.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * const sender = Account.generate(); // Generate a new account for signing\n * const transaction = await aptos.transaction.build.simple({\n * sender: sender.accountAddress,\n * data: {\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [ \"0x1\", 100 ], // replace with a real account address and amount\n * },\n * });\n *\n * const signedTransaction = await aptos.transaction.sign({\n * signer: sender,\n * transaction,\n * }); // Sign the transaction\n *\n * console.log(\"Signed Transaction:\", signedTransaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n // eslint-disable-next-line class-methods-use-this\n sign(args: { signer: Account; transaction: AnyRawTransaction }): AccountAuthenticator {\n return signTransaction({\n ...args,\n });\n }\n\n /**\n * Sign a transaction as a fee payer that can later be submitted to the chain.\n * This function ensures that the transaction is marked with the fee payer's address, allowing it to be processed correctly.\n *\n * @param args - The arguments for signing the transaction.\n * @param args.signer - The fee payer signer account.\n * @param args.transaction - A raw transaction to sign on. This transaction must include a `feePayerAddress` property.\n *\n * @returns AccountAuthenticator - The authenticator for the signed transaction.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * const sender = Account.generate(); // Generate a new account for the fee payer\n * const transaction = await aptos.transaction.build.simple({\n * // All transactions on Aptos are implemented via smart contracts.\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [sender.accountAddress, 100],\n * feePayerAddress: sender.accountAddress, // Set the fee payer address\n * });\n *\n * const signedTransaction = await aptos.transaction.signAsFeePayer({\n * signer: sender,\n * transaction,\n * });\n *\n * console.log(\"Signed transaction as fee payer:\", signedTransaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n // eslint-disable-next-line class-methods-use-this\n signAsFeePayer(args: { signer: Account; transaction: AnyRawTransaction }): AccountAuthenticator {\n return signAsFeePayer({\n ...args,\n });\n }\n\n // TRANSACTION SUBMISSION //\n\n /**\n * @deprecated Prefer to use `aptos.transaction.batch.forSingleAccount()`\n *\n * Batch transactions for a single account by submitting multiple transaction payloads.\n * This function is useful for efficiently processing and submitting transactions that do not depend on each other, such as\n * batch funding or batch token minting.\n *\n * @param args - The arguments for batching transactions.\n * @param args.sender - The sender account to sign and submit the transactions.\n * @param args.data - An array of transaction payloads to be processed.\n * @param args.options - Optional. Transaction generation configurations (excluding accountSequenceNumber).\n *\n * @throws Error if any worker failure occurs during submission.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network, Account } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n * const sender = Account.generate(); // Generate a new account for sending transactions\n *\n * async function runExample() {\n * const transactions = [\n * { }, // Build your first transaction payload\n * { }, // Build your second transaction payload\n * ];\n *\n * // Batch transactions for the single account\n * await aptos.batchTransactionsForSingleAccount({\n * sender,\n * data: transactions,\n * });\n *\n * console.log(\"Batch transactions submitted successfully.\");\n * }\n * runExample().catch(console.error);\n * ```\n * @group Transaction\n */\n async batchTransactionsForSingleAccount(args: {\n sender: Account;\n data: InputGenerateTransactionPayloadData[];\n options?: Omit<InputGenerateTransactionOptions, \"accountSequenceNumber\">;\n }): Promise<void> {\n try {\n const { sender, data, options } = args;\n this.batch.forSingleAccount({ sender, data, options });\n } catch (error: any) {\n throw new Error(`failed to submit transactions with error: ${error}`);\n }\n }\n\n /**\n * Sign and submit a single signer transaction to the blockchain.\n * This function allows you to execute a transaction after signing it with the specified account.\n *\n * @param args The arguments for signing and submitting the transaction.\n * @param args.signer The signer account to sign the transaction.\n * @param args.transaction An instance of a RawTransaction, plus optional secondary/fee payer addresses.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * const sender = Account.generate(); // Generate a new account for sending the transaction\n * const transaction = await aptos.transaction.build.simple({\n * sender: sender.accountAddress,\n * data: {\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [ \"0x1\", 100 ], // replace with a real account address\n * },\n * });\n *\n * // Sign and submit the transaction\n * const pendingTransaction = await aptos.signAndSubmitTransaction({\n * signer: sender,\n * transaction,\n * });\n *\n * console.log(pendingTransaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @return PendingTransactionResponse\n * @group Transaction\n */\n async signAndSubmitTransaction(\n args: FeePayerOrFeePayerAuthenticatorOrNeither & {\n signer: Account;\n transaction: AnyRawTransaction;\n },\n ): Promise<PendingTransactionResponse> {\n return signAndSubmitTransaction({\n aptosConfig: this.config,\n ...args,\n });\n }\n\n /**\n * Sign and submit a single signer transaction as the fee payer to chain given an authenticator by the sender of the transaction.\n *\n * @param args.feePayer The fee payer account to sign the transaction\n * @param args.senderAuthenticator The AccountAuthenticator signed by the sender of the transaction\n * @param args.transaction An instance of a RawTransaction, plus optional secondary/fee payer addresses\n *\n * @example\n * const transaction = await aptos.transaction.build.simple({sender: alice.accountAddress, feePayer: true ...})\n * const senderAuthenticator = alice.signTransactionWithAuthenticator(transaction)\n * const pendingTransaction = await aptos.signAndSubmitAsFeePayer({\n * senderAuthenticator,\n * feePayer: bob,\n * transaction,\n * })\n *\n * @return PendingTransactionResponse\n * @group Transaction\n */\n async signAndSubmitAsFeePayer(args: {\n feePayer: Account;\n senderAuthenticator: AccountAuthenticator;\n transaction: AnyRawTransaction;\n }): Promise<PendingTransactionResponse> {\n return signAndSubmitAsFeePayer({\n aptosConfig: this.config,\n ...args,\n });\n }\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/internal/transactionSubmission.ts","../../src/internal/coin.ts"],"sourcesContent":["/**\n * This file contains the underlying implementations for exposed submission API surface in\n * the {@link api/transaction}. By moving the methods out into a separate file,\n * other namespaces and processes can access these methods without depending on the entire\n * transaction namespace and without having a dependency cycle error.\n * @group Implementation\n */\n\nimport { AptosConfig } from \"../api/aptosConfig\";\nimport { Deserializer, MoveVector, U8 } from \"../bcs\";\nimport { postAptosFullNode } from \"../client\";\nimport { Account, AbstractKeylessAccount, isKeylessSigner } from \"../account\";\nimport { AccountAddress, AccountAddressInput } from \"../core/accountAddress\";\nimport {\n Ed25519PrivateKey,\n FederatedKeylessPublicKey,\n KeylessPublicKey,\n KeylessSignature,\n PrivateKeyInput,\n} from \"../core/crypto\";\nimport { AccountAuthenticator } from \"../transactions/authenticator/account\";\nimport { RotationProofChallenge } from \"../transactions/instances/rotationProofChallenge\";\nimport {\n buildTransaction,\n generateTransactionPayload,\n generateSignedTransactionForSimulation,\n generateSignedTransaction,\n} from \"../transactions/transactionBuilder/transactionBuilder\";\nimport {\n InputGenerateTransactionData,\n AnyRawTransaction,\n InputSimulateTransactionData,\n InputGenerateTransactionOptions,\n InputGenerateTransactionPayloadDataWithRemoteABI,\n InputSubmitTransactionData,\n InputGenerateMultiAgentRawTransactionData,\n InputGenerateSingleSignerRawTransactionData,\n AnyTransactionPayloadInstance,\n EntryFunctionABI,\n} from \"../transactions/types\";\nimport { getInfo } from \"./account\";\nimport {\n UserTransactionResponse,\n PendingTransactionResponse,\n MimeType,\n HexInput,\n TransactionResponse,\n CommittedTransactionResponse,\n} from \"../types\";\nimport { SignedTransaction, TypeTagU8, TypeTagVector, generateSigningMessageForTransaction } from \"../transactions\";\nimport { SimpleTransaction } from \"../transactions/instances/simpleTransaction\";\nimport { MultiAgentTransaction } from \"../transactions/instances/multiAgentTransaction\";\nimport { MultiEd25519Account } from \"../account/MultiEd25519Account\";\nimport { AuthenticationKey, Hex } from \"../core\";\nimport { waitForTransaction } from \"./transaction\";\nimport { transferCoinTransaction } from \"./coin\";\n\n/**\n * We are defining function signatures, each with its specific input and output.\n * These are the possible function signature for `generateTransaction` function.\n * When we call `generateTransaction` function with the relevant type properties,\n * Typescript can infer the return type based on the appropriate function overload.\n * @group Implementation\n */\nexport async function generateTransaction(\n args: { aptosConfig: AptosConfig } & InputGenerateSingleSignerRawTransactionData,\n): Promise<SimpleTransaction>;\nexport async function generateTransaction(\n args: { aptosConfig: AptosConfig } & InputGenerateMultiAgentRawTransactionData,\n): Promise<MultiAgentTransaction>;\n/**\n * Generates any transaction by passing in the required arguments\n *\n * @param args.sender The transaction sender's account address as a AccountAddressInput\n * @param args.data EntryFunctionData | ScriptData | MultiSigData\n * @param args.feePayerAddress optional. For a fee payer (aka sponsored) transaction\n * @param args.secondarySignerAddresses optional. For a multi-agent or fee payer (aka sponsored) transactions\n * @param args.options optional. GenerateTransactionOptions type\n *\n * @example\n * For a single signer entry function\n * move function name, move function type arguments, move function arguments\n * `\n * data: {\n * function:\"0x1::aptos_account::transfer\",\n * typeArguments:[]\n * functionArguments :[receiverAddress,10]\n * }\n * `\n *\n * @example\n * For a single signer script function\n * module bytecode, move function type arguments, move function arguments\n * ```\n * data: {\n * bytecode:\"0x001234567\",\n * typeArguments:[],\n * functionArguments :[receiverAddress,10]\n * }\n * ```\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 * @group Implementation\n */\nexport async function generateTransaction(\n args: { aptosConfig: AptosConfig } & InputGenerateTransactionData,\n): Promise<AnyRawTransaction> {\n const payload = await buildTransactionPayload(args);\n return buildRawTransaction(args, payload);\n}\n\n/**\n * Builds a transaction payload based on the provided configuration and input data.\n * This function is essential for preparing transaction data for execution on the Aptos blockchain.\n *\n * @param args - The arguments for building the transaction payload.\n * @param args.aptosConfig - Configuration settings for the Aptos network.\n * @param args.data - Input data required to generate the transaction payload, which may include bytecode, multisig address,\n * function name, function arguments, type arguments, and ABI.\n * @returns A promise that resolves to the generated transaction payload instance.\n * @group Implementation\n */\nexport async function buildTransactionPayload(\n args: { aptosConfig: AptosConfig } & InputGenerateTransactionData,\n): Promise<AnyTransactionPayloadInstance> {\n const { aptosConfig, data } = args;\n // Merge in aptosConfig for remote ABI on non-script payloads\n let generateTransactionPayloadData: InputGenerateTransactionPayloadDataWithRemoteABI;\n let payload: AnyTransactionPayloadInstance;\n\n if (\"bytecode\" in data) {\n // TODO: Add ABI checking later\n payload = await generateTransactionPayload(data);\n } else if (\"multisigAddress\" in data) {\n generateTransactionPayloadData = {\n aptosConfig,\n multisigAddress: data.multisigAddress,\n function: data.function,\n functionArguments: data.functionArguments,\n typeArguments: data.typeArguments,\n abi: data.abi,\n };\n payload = await generateTransactionPayload(generateTransactionPayloadData);\n } else {\n generateTransactionPayloadData = {\n aptosConfig,\n function: data.function,\n functionArguments: data.functionArguments,\n typeArguments: data.typeArguments,\n abi: data.abi,\n };\n payload = await generateTransactionPayload(generateTransactionPayloadData);\n }\n return payload;\n}\n\n/**\n * Builds a raw transaction based on the provided configuration and payload.\n * This function helps in creating a transaction that can be sent to the Aptos blockchain.\n *\n * @param args - The arguments for generating the transaction.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param args.sender - The address of the sender of the transaction.\n * @param args.options - Additional options for the transaction.\n * @param payload - The payload of the transaction, which defines the action to be performed.\n * @group Implementation\n */\nexport async function buildRawTransaction(\n args: { aptosConfig: AptosConfig } & InputGenerateTransactionData,\n payload: AnyTransactionPayloadInstance,\n): Promise<AnyRawTransaction> {\n const { aptosConfig, sender, options } = args;\n\n let feePayerAddress;\n if (isFeePayerTransactionInput(args)) {\n feePayerAddress = AccountAddress.ZERO.toString();\n }\n\n if (isMultiAgentTransactionInput(args)) {\n const { secondarySignerAddresses } = args;\n return buildTransaction({\n aptosConfig,\n sender,\n payload,\n options,\n secondarySignerAddresses,\n feePayerAddress,\n });\n }\n\n return buildTransaction({\n aptosConfig,\n sender,\n payload,\n options,\n feePayerAddress,\n });\n}\n\n/**\n * Determine if the transaction input includes a fee payer.\n *\n * @param data - The input data for generating a transaction.\n * @param data.withFeePayer - Indicates whether a fee payer is included in the transaction input.\n * @returns A boolean value indicating if the transaction input has a fee payer.\n * @group Implementation\n */\nfunction isFeePayerTransactionInput(data: InputGenerateTransactionData): boolean {\n return data.withFeePayer === true;\n}\n\n/**\n * Determines whether the provided transaction input data includes multiple agent signatures.\n *\n * @param data - The transaction input data to evaluate.\n * @param data.secondarySignerAddresses - An array of secondary signer addresses, indicating multiple agents.\n * @group Implementation\n */\nfunction isMultiAgentTransactionInput(\n data: InputGenerateTransactionData,\n): data is InputGenerateMultiAgentRawTransactionData {\n return \"secondarySignerAddresses\" in data;\n}\n\n/**\n * Builds a signing message that can be signed by external signers.\n *\n * Note: Please prefer using `signTransaction` unless signing outside the SDK.\n *\n * @param args - The arguments for generating the signing message.\n * @param args.transaction - AnyRawTransaction, as generated by `generateTransaction()`.\n *\n * @returns The message to be signed.\n * @group Implementation\n */\nexport function getSigningMessage(args: { transaction: AnyRawTransaction }): Uint8Array {\n const { transaction } = args;\n return generateSigningMessageForTransaction(transaction);\n}\n\n/**\n * Sign a transaction that can later be submitted to the chain.\n *\n * @param args The arguments for signing the transaction.\n * @param args.signer The signer account to sign the transaction.\n * @param args.transaction An instance of a RawTransaction, plus optional secondary/fee payer addresses.\n *\n * @return The signer AccountAuthenticator.\n * @group Implementation\n */\nexport function signTransaction(args: { signer: Account; transaction: AnyRawTransaction }): AccountAuthenticator {\n const { signer, transaction } = args;\n return signer.signTransactionWithAuthenticator(transaction);\n}\n\nexport function signAsFeePayer(args: { signer: Account; transaction: AnyRawTransaction }): AccountAuthenticator {\n const { signer, transaction } = args;\n\n // if transaction doesn't hold a \"feePayerAddress\" prop it means\n // this is not a fee payer transaction\n if (!transaction.feePayerAddress) {\n throw new Error(`Transaction ${transaction} is not a Fee Payer transaction`);\n }\n\n // Set the feePayerAddress to the signer account address\n transaction.feePayerAddress = signer.accountAddress;\n\n return signTransaction({\n signer,\n transaction,\n });\n}\n\n/**\n * Simulates a transaction before signing it to evaluate its potential outcome.\n *\n * @param args The arguments for simulating the transaction.\n * @param args.aptosConfig The configuration for the Aptos network.\n * @param args.transaction The raw transaction to simulate.\n * @param args.signerPublicKey Optional. The signer public key.\n * @param args.secondarySignersPublicKeys Optional. For when the transaction involves multiple signers.\n * @param args.feePayerPublicKey Optional. For when the transaction is sponsored by a fee payer.\n * @param args.options Optional. A configuration object to customize the simulation process.\n * @param args.options.estimateGasUnitPrice Optional. Indicates whether to estimate the gas unit price.\n * @param args.options.estimateMaxGasAmount Optional. Indicates whether to estimate the maximum gas amount.\n * @param args.options.estimatePrioritizedGasUnitPrice Optional. Indicates whether to estimate the prioritized gas unit price.\n * @group Implementation\n */\nexport async function simulateTransaction(\n args: { aptosConfig: AptosConfig } & InputSimulateTransactionData,\n): Promise<Array<UserTransactionResponse>> {\n const { aptosConfig, transaction, signerPublicKey, secondarySignersPublicKeys, feePayerPublicKey, options } = args;\n\n const signedTransaction = generateSignedTransactionForSimulation({\n transaction,\n signerPublicKey,\n secondarySignersPublicKeys,\n feePayerPublicKey,\n options,\n });\n\n const { data } = await postAptosFullNode<Uint8Array, Array<UserTransactionResponse>>({\n aptosConfig,\n body: signedTransaction,\n path: \"transactions/simulate\",\n params: {\n estimate_gas_unit_price: args.options?.estimateGasUnitPrice ?? false,\n estimate_max_gas_amount: args.options?.estimateMaxGasAmount ?? false,\n estimate_prioritized_gas_unit_price: args.options?.estimatePrioritizedGasUnitPrice ?? false,\n },\n originMethod: \"simulateTransaction\",\n contentType: MimeType.BCS_SIGNED_TRANSACTION,\n });\n return data;\n}\n\n/**\n * Submit a transaction to the Aptos blockchain.\n *\n * @param args - The arguments for submitting the transaction.\n * @param args.aptosConfig - The configuration for connecting to the Aptos network.\n * @param args.transaction - The Aptos transaction data to be submitted.\n * @param args.senderAuthenticator - The account authenticator of the transaction sender.\n * @param args.secondarySignerAuthenticators - Optional. Authenticators for additional signers in a multi-signer transaction.\n *\n * @returns PendingTransactionResponse - The response containing the status of the submitted transaction.\n * @group Implementation\n */\nexport async function submitTransaction(\n args: {\n aptosConfig: AptosConfig;\n } & InputSubmitTransactionData,\n): Promise<PendingTransactionResponse> {\n const { aptosConfig } = args;\n const signedTransaction = generateSignedTransaction({ ...args });\n try {\n const { data } = await postAptosFullNode<Uint8Array, PendingTransactionResponse>({\n aptosConfig,\n body: signedTransaction,\n path: \"transactions\",\n originMethod: \"submitTransaction\",\n contentType: MimeType.BCS_SIGNED_TRANSACTION,\n });\n return data;\n } catch (e) {\n const signedTxn = SignedTransaction.deserialize(new Deserializer(signedTransaction));\n if (\n signedTxn.authenticator.isSingleSender() &&\n signedTxn.authenticator.sender.isSingleKey() &&\n (signedTxn.authenticator.sender.public_key.publicKey instanceof KeylessPublicKey ||\n signedTxn.authenticator.sender.public_key.publicKey instanceof FederatedKeylessPublicKey)\n ) {\n await AbstractKeylessAccount.fetchJWK({\n aptosConfig,\n publicKey: signedTxn.authenticator.sender.public_key.publicKey,\n kid: (signedTxn.authenticator.sender.signature.signature as KeylessSignature).getJwkKid(),\n });\n }\n throw e;\n }\n}\n\nexport type FeePayerOrFeePayerAuthenticatorOrNeither =\n | { feePayer: Account; feePayerAuthenticator?: never }\n | { feePayer?: never; feePayerAuthenticator: AccountAuthenticator }\n | { feePayer?: never; feePayerAuthenticator?: never };\n\nexport async function signAndSubmitTransaction(\n args: FeePayerOrFeePayerAuthenticatorOrNeither & {\n aptosConfig: AptosConfig;\n signer: Account;\n transaction: AnyRawTransaction;\n },\n): Promise<PendingTransactionResponse> {\n const { aptosConfig, signer, feePayer, transaction } = args;\n // If the signer contains a KeylessAccount, await proof fetching in case the proof\n // was fetched asynchronously.\n if (isKeylessSigner(signer)) {\n await signer.checkKeylessAccountValidity(aptosConfig);\n }\n if (isKeylessSigner(feePayer)) {\n await feePayer.checkKeylessAccountValidity(aptosConfig);\n }\n const feePayerAuthenticator =\n args.feePayerAuthenticator || (feePayer && signAsFeePayer({ signer: feePayer, transaction }));\n\n const senderAuthenticator = signTransaction({ signer, transaction });\n return submitTransaction({\n aptosConfig,\n transaction,\n senderAuthenticator,\n feePayerAuthenticator,\n });\n}\n\nexport async function signAndSubmitAsFeePayer(args: {\n aptosConfig: AptosConfig;\n feePayer: Account;\n senderAuthenticator: AccountAuthenticator;\n transaction: AnyRawTransaction;\n}): Promise<PendingTransactionResponse> {\n const { aptosConfig, senderAuthenticator, feePayer, transaction } = args;\n\n if (isKeylessSigner(feePayer)) {\n await feePayer.checkKeylessAccountValidity(aptosConfig);\n }\n\n const feePayerAuthenticator = signAsFeePayer({ signer: feePayer, transaction });\n\n return submitTransaction({\n aptosConfig,\n transaction,\n senderAuthenticator,\n feePayerAuthenticator,\n });\n}\n\nconst packagePublishAbi: EntryFunctionABI = {\n typeParameters: [],\n parameters: [TypeTagVector.u8(), new TypeTagVector(TypeTagVector.u8())],\n};\n\n/**\n * Publishes a package transaction to the Aptos blockchain.\n * This function allows you to create and send a transaction that publishes a package with the specified metadata and bytecode.\n *\n * @param args - The arguments for the package transaction.\n * @param args.aptosConfig - The configuration settings for the Aptos client.\n * @param args.account - The address of the account sending the transaction.\n * @param args.metadataBytes - The metadata associated with the package, represented as hexadecimal input.\n * @param args.moduleBytecode - An array of module bytecode, each represented as hexadecimal input.\n * @param args.options - Optional parameters for generating the transaction.\n * @group Implementation\n */\nexport async function publicPackageTransaction(args: {\n aptosConfig: AptosConfig;\n account: AccountAddressInput;\n metadataBytes: HexInput;\n moduleBytecode: Array<HexInput>;\n options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n const { aptosConfig, account, metadataBytes, moduleBytecode, options } = args;\n\n const totalByteCode = moduleBytecode.map((bytecode) => MoveVector.U8(bytecode));\n\n return generateTransaction({\n aptosConfig,\n sender: AccountAddress.from(account),\n data: {\n function: \"0x1::code::publish_package_txn\",\n functionArguments: [MoveVector.U8(metadataBytes), new MoveVector(totalByteCode)],\n abi: packagePublishAbi,\n },\n options,\n });\n}\n\nconst rotateAuthKeyAbi: EntryFunctionABI = {\n typeParameters: [],\n parameters: [\n new TypeTagU8(),\n TypeTagVector.u8(),\n new TypeTagU8(),\n TypeTagVector.u8(),\n TypeTagVector.u8(),\n TypeTagVector.u8(),\n ],\n};\n\nconst rotateAuthKeyUnverifiedAbi: EntryFunctionABI = {\n typeParameters: [],\n parameters: [TypeTagVector.u8()],\n};\n\n/**\n * Rotates the authentication key for a given account, allowing for enhanced security and management of account access.\n *\n * @param args - The arguments for rotating the authentication key.\n * @param args.aptosConfig - The configuration settings for the Aptos network.\n * @param args.fromAccount - The account from which the authentication key will be rotated.\n * @param args.toNewPrivateKey - The new private key that will be associated with the account.\n *\n * @remarks\n * This function requires the current authentication key and the new private key to sign a challenge that validates the rotation.\n *\n * TODO: Need to refactor and move this function out of transactionSubmission.\n * @group Implementation\n */\nexport async function rotateAuthKey(args: {\n aptosConfig: AptosConfig;\n fromAccount: Account;\n toNewPrivateKey: Ed25519PrivateKey;\n}): Promise<PendingTransactionResponse> {\n const { aptosConfig, fromAccount, toNewPrivateKey } = args;\n const accountInfo = await getInfo({\n aptosConfig,\n accountAddress: fromAccount.accountAddress,\n });\n\n const newAccount = Account.fromPrivateKey({ privateKey: toNewPrivateKey, legacy: true });\n\n const challenge = new RotationProofChallenge({\n sequenceNumber: BigInt(accountInfo.sequence_number),\n originator: fromAccount.accountAddress,\n currentAuthKey: AccountAddress.from(accountInfo.authentication_key),\n newPublicKey: newAccount.publicKey,\n });\n\n // Sign the challenge\n const challengeHex = challenge.bcsToBytes();\n const proofSignedByCurrentPrivateKey = fromAccount.sign(challengeHex);\n const proofSignedByNewPrivateKey = newAccount.sign(challengeHex);\n\n // Generate transaction\n const rawTxn = await generateTransaction({\n aptosConfig,\n sender: fromAccount.accountAddress,\n data: {\n function: \"0x1::account::rotate_authentication_key\",\n functionArguments: [\n new U8(fromAccount.signingScheme), // from scheme\n MoveVector.U8(fromAccount.publicKey.toUint8Array()),\n new U8(newAccount.signingScheme), // to scheme\n MoveVector.U8(newAccount.publicKey.toUint8Array()),\n MoveVector.U8(proofSignedByCurrentPrivateKey.toUint8Array()),\n MoveVector.U8(proofSignedByNewPrivateKey.toUint8Array()),\n ],\n abi: rotateAuthKeyAbi,\n },\n });\n return signAndSubmitTransaction({\n aptosConfig,\n signer: fromAccount,\n transaction: rawTxn,\n });\n}\n\nexport async function rotateAuthKeyToMultiEd25519(args: {\n aptosConfig: AptosConfig;\n fromAccount: Account;\n multiEd25519Account: MultiEd25519Account;\n}): Promise<PendingTransactionResponse> {\n const { aptosConfig, fromAccount, multiEd25519Account } = args;\n const accountInfo = await getInfo({\n aptosConfig,\n accountAddress: fromAccount.accountAddress,\n });\n\n const newAccount = multiEd25519Account;\n\n const challenge = new RotationProofChallenge({\n sequenceNumber: BigInt(accountInfo.sequence_number),\n originator: fromAccount.accountAddress,\n currentAuthKey: AccountAddress.from(accountInfo.authentication_key),\n newPublicKey: newAccount.publicKey,\n });\n\n // Sign the challenge\n const challengeHex = challenge.bcsToBytes();\n const proofSignedByCurrentPrivateKey = fromAccount.sign(challengeHex);\n const proofSignedByNewPrivateKey = newAccount.sign(challengeHex);\n\n // Generate transaction\n const rawTxn = await generateTransaction({\n aptosConfig,\n sender: fromAccount.accountAddress,\n data: {\n function: \"0x1::account::rotate_authentication_key\",\n functionArguments: [\n new U8(fromAccount.signingScheme), // from scheme\n MoveVector.U8(fromAccount.publicKey.toUint8Array()),\n new U8(newAccount.signingScheme), // to scheme\n MoveVector.U8(newAccount.publicKey.toUint8Array()),\n MoveVector.U8(proofSignedByCurrentPrivateKey.toUint8Array()),\n MoveVector.U8(proofSignedByNewPrivateKey.toUint8Array()),\n ],\n abi: rotateAuthKeyAbi,\n },\n });\n return signAndSubmitTransaction({\n aptosConfig,\n signer: fromAccount,\n transaction: rawTxn,\n });\n}\n\nexport async function rotateAuthKeyWithVerificationTransaction(args: {\n aptosConfig: AptosConfig;\n fromAccount: Account;\n toAccount: Account;\n}): Promise<CommittedTransactionResponse> {\n const { aptosConfig, fromAccount, toAccount } = args;\n\n // Generate transaction\n const rawTxn = await generateTransaction({\n aptosConfig,\n sender: fromAccount.accountAddress,\n data: {\n function: \"0x1::account::rotate_authentication_key_call\",\n functionArguments: [MoveVector.U8(toAccount.publicKey.authKey().toUint8Array())],\n abi: rotateAuthKeyUnverifiedAbi,\n },\n });\n const pendingTxn = await signAndSubmitTransaction({\n aptosConfig,\n signer: fromAccount,\n transaction: rawTxn,\n });\n const txnResponse = await waitForTransaction({\n aptosConfig,\n transactionHash: pendingTxn.hash,\n });\n if (!txnResponse.success) {\n throw new Error(`Failed to rotate authentication key - ${txnResponse}`);\n }\n const coinTxn = await transferCoinTransaction({\n aptosConfig,\n sender: toAccount.accountAddress,\n recipient: toAccount.accountAddress,\n amount: 1,\n });\n const pendingCoinTxn = await signAndSubmitTransaction({\n aptosConfig,\n signer: fromAccount,\n transaction: coinTxn,\n });\n const coinTxnResponse = await waitForTransaction({\n aptosConfig,\n transactionHash: pendingCoinTxn.hash,\n });\n if (!coinTxnResponse.success) {\n throw new Error(`Failed to verify authentication key - ${coinTxnResponse}`);\n }\n return coinTxnResponse;\n}\n","import { AptosConfig } from \"../api/aptosConfig\";\nimport { AccountAddressInput } from \"../core\";\nimport { EntryFunctionABI, InputGenerateTransactionOptions } from \"../transactions/types\";\nimport { AnyNumber, MoveStructId } from \"../types\";\nimport { APTOS_COIN } from \"../utils/const\";\nimport { generateTransaction } from \"./transactionSubmission\";\nimport { TypeTagAddress, TypeTagU64 } from \"../transactions\";\nimport { SimpleTransaction } from \"../transactions/instances/simpleTransaction\";\n\nconst coinTransferAbi: EntryFunctionABI = {\n typeParameters: [{ constraints: [] }],\n parameters: [new TypeTagAddress(), new TypeTagU64()],\n};\n\n/**\n * Generates a transaction to transfer coins from one account to another.\n * This function allows you to specify the sender, recipient, amount, and coin type for the transaction.\n *\n * @param args - The parameters for the transaction.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.sender - The address of the account sending the coins.\n * @param args.recipient - The address of the account receiving the coins.\n * @param args.amount - The amount of coins to transfer.\n * @param args.coinType - (Optional) The type of coin to transfer, defaults to Aptos Coin if not specified.\n * @param args.options - (Optional) Options for generating the transaction.\n * @group Implementation\n */\nexport async function transferCoinTransaction(args: {\n aptosConfig: AptosConfig;\n sender: AccountAddressInput;\n recipient: AccountAddressInput;\n amount: AnyNumber;\n coinType?: MoveStructId;\n options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n const { aptosConfig, sender, recipient, amount, coinType, options } = args;\n const coinStructType = coinType ?? APTOS_COIN;\n return generateTransaction({\n aptosConfig,\n sender,\n data: {\n function: \"0x1::aptos_account::transfer_coins\",\n typeArguments: [coinStructType],\n functionArguments: [recipient, amount],\n abi: coinTransferAbi,\n },\n options,\n });\n}\n"],"mappings":"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","names":[]}