@aptos-labs/ts-sdk 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/common/{account-CmEgDBH6.d.ts → account-BDwBREvt.d.ts} +29 -3
  2. package/dist/common/chunk-6MMUUJHX.js.map +1 -1
  3. package/dist/common/cli/index.d.ts +1 -1
  4. package/dist/common/cli/index.js.map +1 -1
  5. package/dist/common/index.d.ts +55 -39
  6. package/dist/common/index.js +30 -32
  7. package/dist/common/index.js.map +1 -1
  8. package/dist/esm/{Ed25519Account-ndmdpFe9.d.mts → Ed25519Account-8ETkcAk_.d.mts} +1 -1
  9. package/dist/esm/account/AbstractKeylessAccount.d.mts +3 -3
  10. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
  11. package/dist/esm/account/AbstractedAccount.d.mts +3 -2
  12. package/dist/esm/account/AbstractedAccount.mjs +1 -1
  13. package/dist/esm/account/Account.d.mts +2 -2
  14. package/dist/esm/account/Account.mjs +1 -1
  15. package/dist/esm/account/AccountUtils.d.mts +3 -3
  16. package/dist/esm/account/AccountUtils.mjs +1 -1
  17. package/dist/esm/account/DerivableAbstractedAccount.d.mts +2 -2
  18. package/dist/esm/account/DerivableAbstractedAccount.mjs +1 -1
  19. package/dist/esm/account/Ed25519Account.d.mts +2 -2
  20. package/dist/esm/account/Ed25519Account.mjs +1 -1
  21. package/dist/esm/account/EphemeralKeyPair.d.mts +1 -1
  22. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  23. package/dist/esm/account/FederatedKeylessAccount.d.mts +3 -3
  24. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
  25. package/dist/esm/account/KeylessAccount.d.mts +3 -3
  26. package/dist/esm/account/KeylessAccount.mjs +1 -1
  27. package/dist/esm/account/MultiEd25519Account.d.mts +2 -2
  28. package/dist/esm/account/MultiEd25519Account.mjs +1 -1
  29. package/dist/esm/account/MultiKeyAccount.d.mts +3 -3
  30. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  31. package/dist/esm/account/SingleKeyAccount.d.mts +2 -2
  32. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  33. package/dist/esm/account/index.d.mts +3 -3
  34. package/dist/esm/account/index.mjs +1 -1
  35. package/dist/esm/account/utils.d.mts +1 -1
  36. package/dist/esm/account/utils.mjs +1 -1
  37. package/dist/esm/{account--Q9z_xMN.d.mts → account-ClxOwjdh.d.mts} +28 -3
  38. package/dist/esm/api/account/abstraction.d.mts +1 -1
  39. package/dist/esm/api/account/abstraction.mjs +1 -1
  40. package/dist/esm/api/account.d.mts +3 -6
  41. package/dist/esm/api/account.mjs +1 -1
  42. package/dist/esm/api/ans.d.mts +2 -2
  43. package/dist/esm/api/ans.mjs +1 -1
  44. package/dist/esm/api/aptos.d.mts +4 -3
  45. package/dist/esm/api/aptos.mjs +1 -1
  46. package/dist/esm/api/aptosConfig.d.mts +1 -1
  47. package/dist/esm/api/aptosConfig.mjs +1 -1
  48. package/dist/esm/api/coin.d.mts +1 -1
  49. package/dist/esm/api/coin.mjs +1 -1
  50. package/dist/esm/api/digitalAsset.d.mts +2 -2
  51. package/dist/esm/api/digitalAsset.mjs +1 -1
  52. package/dist/esm/api/faucet.d.mts +1 -1
  53. package/dist/esm/api/faucet.mjs +1 -1
  54. package/dist/esm/api/fungibleAsset.d.mts +2 -2
  55. package/dist/esm/api/fungibleAsset.mjs +1 -1
  56. package/dist/esm/api/general.d.mts +1 -1
  57. package/dist/esm/api/general.mjs +1 -1
  58. package/dist/esm/api/index.d.mts +4 -3
  59. package/dist/esm/api/index.mjs +1 -1
  60. package/dist/esm/api/keyless.d.mts +3 -3
  61. package/dist/esm/api/keyless.mjs +1 -1
  62. package/dist/esm/api/object.d.mts +1 -1
  63. package/dist/esm/api/object.mjs +1 -1
  64. package/dist/esm/api/staking.d.mts +1 -1
  65. package/dist/esm/api/staking.mjs +1 -1
  66. package/dist/esm/api/table.d.mts +1 -1
  67. package/dist/esm/api/table.mjs +1 -1
  68. package/dist/esm/api/transaction.d.mts +56 -36
  69. package/dist/esm/api/transaction.mjs +1 -1
  70. package/dist/esm/api/transactionSubmission/build.d.mts +1 -1
  71. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  72. package/dist/esm/api/transactionSubmission/helpers.d.mts +1 -1
  73. package/dist/esm/api/transactionSubmission/management.d.mts +2 -2
  74. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  75. package/dist/esm/api/transactionSubmission/sign.d.mts +2 -2
  76. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  77. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  78. package/dist/esm/api/transactionSubmission/simulate.d.mts +1 -1
  79. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  80. package/dist/esm/api/transactionSubmission/submit.d.mts +1 -1
  81. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  82. package/dist/esm/api/utils.d.mts +1 -1
  83. package/dist/esm/api/utils.mjs +1 -1
  84. package/dist/esm/bcs/consts.d.mts +1 -1
  85. package/dist/esm/bcs/deserializer.d.mts +1 -1
  86. package/dist/esm/bcs/index.d.mts +1 -1
  87. package/dist/esm/bcs/index.mjs +1 -1
  88. package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +1 -1
  89. package/dist/esm/bcs/serializable/fixedBytes.d.mts +1 -1
  90. package/dist/esm/bcs/serializable/movePrimitives.d.mts +1 -1
  91. package/dist/esm/bcs/serializable/moveStructs.d.mts +1 -1
  92. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  93. package/dist/esm/bcs/serializer.d.mts +1 -1
  94. package/dist/esm/chunk-5FI4545P.mjs +2 -0
  95. package/dist/esm/{chunk-6SLY7UV2.mjs.map → chunk-5FI4545P.mjs.map} +1 -1
  96. package/dist/esm/chunk-DIGP2ALY.mjs +4 -0
  97. package/dist/esm/chunk-DIGP2ALY.mjs.map +1 -0
  98. package/dist/esm/{chunk-BPWSOC2Y.mjs → chunk-DNRUDMMV.mjs} +2 -2
  99. package/dist/esm/{chunk-3BMZKCLH.mjs → chunk-EM52Z7T7.mjs} +2 -2
  100. package/dist/esm/{chunk-HZVN4JSO.mjs → chunk-ES2KP6BS.mjs} +2 -2
  101. package/dist/esm/{chunk-6JYQ5P36.mjs → chunk-GFFKEZ56.mjs} +2 -2
  102. package/dist/esm/{chunk-XYXBAU4J.mjs → chunk-GMQCQDW4.mjs} +2 -2
  103. package/dist/esm/{chunk-UQZTHVWC.mjs → chunk-HNBKTJPN.mjs} +2 -2
  104. package/dist/esm/{chunk-NF73V673.mjs → chunk-LWL57YFU.mjs} +2 -2
  105. package/dist/esm/{chunk-PLI53ZU6.mjs → chunk-N3O3ULF7.mjs} +2 -2
  106. package/dist/esm/chunk-OLILO7VD.mjs +2 -0
  107. package/dist/esm/{chunk-JCFTAG5Z.mjs.map → chunk-OLILO7VD.mjs.map} +1 -1
  108. package/dist/esm/{chunk-Y7ZQTLH4.mjs → chunk-RCSJFTST.mjs} +2 -2
  109. package/dist/esm/{chunk-EF4FA5I6.mjs → chunk-RQX6JOEN.mjs} +2 -2
  110. package/dist/esm/{chunk-V6C6NWFU.mjs → chunk-TGRLDWXV.mjs} +2 -2
  111. package/dist/esm/{chunk-2XQKGWHQ.mjs → chunk-V74WPKSY.mjs} +2 -2
  112. package/dist/esm/chunk-ZP4DWSQA.mjs +2 -0
  113. package/dist/esm/chunk-ZP4DWSQA.mjs.map +1 -0
  114. package/dist/esm/cli/index.d.mts +1 -1
  115. package/dist/esm/cli/move.d.mts +1 -1
  116. package/dist/esm/client/core.d.mts +1 -1
  117. package/dist/esm/client/core.mjs +1 -1
  118. package/dist/esm/client/get.d.mts +1 -1
  119. package/dist/esm/client/get.mjs +1 -1
  120. package/dist/esm/client/index.d.mts +1 -1
  121. package/dist/esm/client/index.mjs +1 -1
  122. package/dist/esm/client/post.d.mts +1 -1
  123. package/dist/esm/client/post.mjs +1 -1
  124. package/dist/esm/core/account/index.d.mts +1 -1
  125. package/dist/esm/core/account/utils/address.d.mts +1 -1
  126. package/dist/esm/core/account/utils/index.d.mts +1 -1
  127. package/dist/esm/core/accountAddress.d.mts +1 -1
  128. package/dist/esm/core/authenticationKey.d.mts +1 -1
  129. package/dist/esm/core/crypto/abstraction.d.mts +1 -1
  130. package/dist/esm/core/crypto/abstraction.mjs +1 -1
  131. package/dist/esm/core/crypto/deserializationUtils.d.mts +1 -1
  132. package/dist/esm/core/crypto/deserializationUtils.mjs +1 -1
  133. package/dist/esm/core/crypto/ed25519.d.mts +1 -1
  134. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  135. package/dist/esm/core/crypto/ephemeral.d.mts +1 -1
  136. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  137. package/dist/esm/core/crypto/federatedKeyless.d.mts +2 -2
  138. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
  139. package/dist/esm/core/crypto/index.d.mts +2 -2
  140. package/dist/esm/core/crypto/index.mjs +1 -1
  141. package/dist/esm/core/crypto/keyless.d.mts +2 -2
  142. package/dist/esm/core/crypto/keyless.mjs +1 -1
  143. package/dist/esm/core/crypto/multiEd25519.d.mts +1 -1
  144. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  145. package/dist/esm/core/crypto/multiKey.d.mts +1 -1
  146. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  147. package/dist/esm/core/crypto/privateKey.d.mts +1 -1
  148. package/dist/esm/core/crypto/proof.d.mts +1 -1
  149. package/dist/esm/core/crypto/proof.mjs +1 -1
  150. package/dist/esm/core/crypto/publicKey.d.mts +1 -1
  151. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  152. package/dist/esm/core/crypto/secp256k1.d.mts +1 -1
  153. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  154. package/dist/esm/core/crypto/signature.d.mts +1 -1
  155. package/dist/esm/core/crypto/signature.mjs +1 -1
  156. package/dist/esm/core/crypto/singleKey.d.mts +1 -1
  157. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  158. package/dist/esm/core/crypto/types.d.mts +1 -1
  159. package/dist/esm/core/crypto/utils.d.mts +5 -2
  160. package/dist/esm/core/crypto/utils.mjs +1 -1
  161. package/dist/esm/core/hex.d.mts +1 -1
  162. package/dist/esm/core/index.d.mts +2 -2
  163. package/dist/esm/core/index.mjs +1 -1
  164. package/dist/esm/errors/index.d.mts +1 -1
  165. package/dist/esm/errors/index.mjs +1 -1
  166. package/dist/esm/{federatedKeyless-CiyplsOB.d.mts → federatedKeyless-CUPEnP-W.d.mts} +1 -1
  167. package/dist/esm/index.d.mts +4 -4
  168. package/dist/esm/index.mjs +1 -1
  169. package/dist/esm/internal/abstraction.d.mts +1 -1
  170. package/dist/esm/internal/abstraction.mjs +1 -1
  171. package/dist/esm/internal/account.d.mts +27 -21
  172. package/dist/esm/internal/account.mjs +1 -1
  173. package/dist/esm/internal/ans.d.mts +2 -2
  174. package/dist/esm/internal/ans.mjs +1 -1
  175. package/dist/esm/internal/coin.d.mts +1 -1
  176. package/dist/esm/internal/coin.mjs +1 -1
  177. package/dist/esm/internal/digitalAsset.d.mts +2 -2
  178. package/dist/esm/internal/digitalAsset.mjs +1 -1
  179. package/dist/esm/internal/faucet.d.mts +1 -1
  180. package/dist/esm/internal/faucet.mjs +1 -1
  181. package/dist/esm/internal/fungibleAsset.d.mts +2 -2
  182. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  183. package/dist/esm/internal/general.d.mts +1 -1
  184. package/dist/esm/internal/general.mjs +1 -1
  185. package/dist/esm/internal/keyless.d.mts +3 -3
  186. package/dist/esm/internal/keyless.mjs +1 -1
  187. package/dist/esm/internal/object.d.mts +1 -1
  188. package/dist/esm/internal/object.mjs +1 -1
  189. package/dist/esm/internal/staking.d.mts +1 -1
  190. package/dist/esm/internal/staking.mjs +1 -1
  191. package/dist/esm/internal/table.d.mts +1 -1
  192. package/dist/esm/internal/table.mjs +1 -1
  193. package/dist/esm/internal/transaction.d.mts +1 -1
  194. package/dist/esm/internal/transaction.mjs +1 -1
  195. package/dist/esm/internal/transactionSubmission.d.mts +2 -2
  196. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  197. package/dist/esm/internal/utils/index.d.mts +1 -1
  198. package/dist/esm/internal/utils/index.mjs +1 -1
  199. package/dist/esm/internal/utils/utils.d.mts +1 -1
  200. package/dist/esm/internal/utils/utils.mjs +1 -1
  201. package/dist/esm/internal/view.d.mts +1 -1
  202. package/dist/esm/internal/view.mjs +1 -1
  203. package/dist/esm/transactions/authenticator/account.d.mts +1 -1
  204. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  205. package/dist/esm/transactions/authenticator/index.d.mts +1 -1
  206. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  207. package/dist/esm/transactions/authenticator/transaction.d.mts +1 -1
  208. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  209. package/dist/esm/transactions/index.d.mts +1 -1
  210. package/dist/esm/transactions/index.mjs +1 -1
  211. package/dist/esm/transactions/instances/chainId.d.mts +1 -1
  212. package/dist/esm/transactions/instances/identifier.d.mts +1 -1
  213. package/dist/esm/transactions/instances/index.d.mts +1 -1
  214. package/dist/esm/transactions/instances/index.mjs +1 -1
  215. package/dist/esm/transactions/instances/moduleId.d.mts +1 -1
  216. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  217. package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +1 -1
  218. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  219. package/dist/esm/transactions/instances/rawTransaction.d.mts +1 -1
  220. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  221. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +1 -1
  222. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  223. package/dist/esm/transactions/instances/signedTransaction.d.mts +1 -1
  224. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  225. package/dist/esm/transactions/instances/simpleTransaction.d.mts +1 -1
  226. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  227. package/dist/esm/transactions/instances/transactionArgument.d.mts +1 -1
  228. package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
  229. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  230. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
  231. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  232. package/dist/esm/transactions/management/index.d.mts +2 -2
  233. package/dist/esm/transactions/management/index.mjs +1 -1
  234. package/dist/esm/transactions/management/transactionWorker.d.mts +2 -2
  235. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  236. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +1 -1
  237. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  238. package/dist/esm/transactions/transactionBuilder/index.d.mts +1 -1
  239. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  240. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +1 -1
  241. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  242. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +1 -1
  243. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  244. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +2 -2
  245. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  246. package/dist/esm/transactions/typeTag/index.d.mts +1 -1
  247. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  248. package/dist/esm/transactions/typeTag/parser.d.mts +1 -1
  249. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  250. package/dist/esm/transactions/types.d.mts +1 -1
  251. package/dist/esm/types/abstraction.d.mts +9 -3
  252. package/dist/esm/types/abstraction.mjs +1 -1
  253. package/dist/esm/types/index.d.mts +1 -1
  254. package/dist/esm/types/types.d.mts +1 -1
  255. package/dist/esm/utils/const.d.mts +2 -1
  256. package/dist/esm/utils/const.mjs +1 -1
  257. package/dist/esm/utils/helpers.d.mts +1 -1
  258. package/dist/esm/utils/index.d.mts +2 -2
  259. package/dist/esm/utils/index.mjs +1 -1
  260. package/dist/esm/utils/normalizeBundle.d.mts +1 -1
  261. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  262. package/dist/esm/version.d.mts +1 -1
  263. package/dist/esm/version.mjs +1 -1
  264. package/package.json +26 -26
  265. package/src/account/AbstractedAccount.ts +16 -3
  266. package/src/account/DerivableAbstractedAccount.ts +3 -1
  267. package/src/api/account.ts +4 -16
  268. package/src/api/transaction.ts +59 -36
  269. package/src/core/crypto/utils.ts +38 -1
  270. package/src/internal/account.ts +36 -83
  271. package/src/transactions/authenticator/account.ts +71 -17
  272. package/src/types/abstraction.ts +9 -2
  273. package/src/utils/const.ts +2 -0
  274. package/src/version.ts +1 -1
  275. package/dist/esm/chunk-4JT5AESZ.mjs +0 -2
  276. package/dist/esm/chunk-4JT5AESZ.mjs.map +0 -1
  277. package/dist/esm/chunk-55Q7BSZT.mjs +0 -6
  278. package/dist/esm/chunk-55Q7BSZT.mjs.map +0 -1
  279. package/dist/esm/chunk-6SLY7UV2.mjs +0 -2
  280. package/dist/esm/chunk-DPW6ELCQ.mjs +0 -2
  281. package/dist/esm/chunk-DPW6ELCQ.mjs.map +0 -1
  282. package/dist/esm/chunk-JCFTAG5Z.mjs +0 -2
  283. package/dist/esm/chunk-K43K3YG7.mjs +0 -2
  284. package/dist/esm/chunk-K43K3YG7.mjs.map +0 -1
  285. package/dist/esm/chunk-KJH4KKG6.mjs +0 -2
  286. package/dist/esm/chunk-KJH4KKG6.mjs.map +0 -1
  287. package/dist/esm/chunk-MSMFHPDT.mjs +0 -2
  288. package/dist/esm/chunk-MSMFHPDT.mjs.map +0 -1
  289. /package/dist/esm/{chunk-BPWSOC2Y.mjs.map → chunk-DNRUDMMV.mjs.map} +0 -0
  290. /package/dist/esm/{chunk-3BMZKCLH.mjs.map → chunk-EM52Z7T7.mjs.map} +0 -0
  291. /package/dist/esm/{chunk-HZVN4JSO.mjs.map → chunk-ES2KP6BS.mjs.map} +0 -0
  292. /package/dist/esm/{chunk-6JYQ5P36.mjs.map → chunk-GFFKEZ56.mjs.map} +0 -0
  293. /package/dist/esm/{chunk-XYXBAU4J.mjs.map → chunk-GMQCQDW4.mjs.map} +0 -0
  294. /package/dist/esm/{chunk-UQZTHVWC.mjs.map → chunk-HNBKTJPN.mjs.map} +0 -0
  295. /package/dist/esm/{chunk-NF73V673.mjs.map → chunk-LWL57YFU.mjs.map} +0 -0
  296. /package/dist/esm/{chunk-PLI53ZU6.mjs.map → chunk-N3O3ULF7.mjs.map} +0 -0
  297. /package/dist/esm/{chunk-Y7ZQTLH4.mjs.map → chunk-RCSJFTST.mjs.map} +0 -0
  298. /package/dist/esm/{chunk-EF4FA5I6.mjs.map → chunk-RQX6JOEN.mjs.map} +0 -0
  299. /package/dist/esm/{chunk-V6C6NWFU.mjs.map → chunk-TGRLDWXV.mjs.map} +0 -0
  300. /package/dist/esm/{chunk-2XQKGWHQ.mjs.map → chunk-V74WPKSY.mjs.map} +0 -0
@@ -2087,6 +2087,7 @@ declare const RAW_TRANSACTION_SALT = "APTOS::RawTransaction";
2087
2087
  * @category Utils
2088
2088
  */
2089
2089
  declare const RAW_TRANSACTION_WITH_DATA_SALT = "APTOS::RawTransactionWithData";
2090
+ declare const ACCOUNT_ABSTRACTION_SIGNING_DATA_SALT = "APTOS::AASigningData";
2090
2091
  /**
2091
2092
  * Supported processor types for the indexer API, sourced from the processor_status table in the indexer database.
2092
2093
  * {@link https://cloud.hasura.io/public/graphiql?endpoint=https://api.mainnet.aptoslabs.com/v1/graphql}
@@ -7396,17 +7397,42 @@ declare class AccountAuthenticatorNoAccountAuthenticator extends AccountAuthenti
7396
7397
  serialize(serializer: Serializer): void;
7397
7398
  static load(deserializer: Deserializer): AccountAuthenticatorNoAccountAuthenticator;
7398
7399
  }
7400
+ /**
7401
+ * Represents an account authenticator that supports abstract authentication.
7402
+ *
7403
+ * @param functionInfo - The function info of the authentication function.
7404
+ * @param signingMessageDigest - The digest of the signing message.
7405
+ * @param abstractionSignature - The signature of the authentication function.
7406
+ * @param accountIdentity - optional. The account identity for DAA.
7407
+ * @group Implementation
7408
+ * @category Transactions
7409
+ */
7399
7410
  declare class AccountAuthenticatorAbstraction extends AccountAuthenticator {
7400
7411
  readonly functionInfo: string;
7401
7412
  readonly signingMessageDigest: Hex;
7402
- readonly authenticator: Uint8Array;
7413
+ readonly abstractionSignature: Uint8Array;
7403
7414
  /**
7404
7415
  * DAA, which is extended of the AA module, requires an account identity
7405
7416
  */
7406
7417
  readonly accountIdentity?: Uint8Array;
7407
- constructor(functionInfo: string, signingMessageDigest: HexInput, authenticator: Uint8Array, accountIdentity?: Uint8Array);
7418
+ constructor(functionInfo: string, signingMessageDigest: HexInput, abstractionSignature: Uint8Array, accountIdentity?: Uint8Array);
7408
7419
  serialize(serializer: Serializer): void;
7409
7420
  static load(deserializer: Deserializer): AccountAuthenticatorAbstraction;
7410
7421
  }
7422
+ /**
7423
+ * Represents an account abstraction message that contains the original signing message and the function info.
7424
+ *
7425
+ * @param originalSigningMessage - The original signing message.
7426
+ * @param functionInfo - The function info of the authentication function.
7427
+ * @group Implementation
7428
+ * @category Transactions
7429
+ */
7430
+ declare class AccountAbstractionMessage extends Serializable {
7431
+ readonly originalSigningMessage: Hex;
7432
+ readonly functionInfo: string;
7433
+ constructor(originalSigningMessage: HexInput, functionInfo: string);
7434
+ serialize(serializer: Serializer): void;
7435
+ static deserialize(deserializer: Deserializer): AccountAbstractionMessage;
7436
+ }
7411
7437
 
7412
- export { type InputGenerateTransactionOptions as $, AccountAddress as A, Bool as B, type MoveFunction as C, Deserializer as D, EphemeralPublicKeyVariant as E, FixedBytes as F, type InputEntryFunctionDataWithRemoteABI as G, type HexInput as H, type InputGenerateTransactionPayloadDataWithRemoteABI as I, TransactionPayloadEntryFunction as J, type InputMultiSigDataWithRemoteABI as K, type LedgerVersionArg as L, MultiKey as M, TransactionPayloadMultiSig as N, type InputEntryFunctionDataWithABI as O, PublicKey as P, type InputMultiSigDataWithABI as Q, RawTransaction as R, Serializer as S, TransactionPayloadScript as T, U8 as U, type VerifySignatureArgs as V, type InputViewFunctionDataWithRemoteABI as W, EntryFunction as X, type InputViewFunctionDataWithABI as Y, ZkpVariant as Z, type AnyTransactionPayloadInstance as _, AccountPublicKey as a, type TableItemRequest as a$, TransactionInnerPayload as a0, type InputGenerateSingleSignerRawTransactionArgs as a1, SimpleTransaction as a2, type InputGenerateMultiAgentRawTransactionArgs as a3, MultiAgentTransaction as a4, type InputSimulateTransactionData as a5, AccountAuthenticatorNoAccountAuthenticator as a6, AccountAuthenticatorEd25519 as a7, AccountAuthenticatorSingleKey as a8, AccountAuthenticatorMultiKey as a9, type GetTokenDataResponse as aA, type GetCurrentTokenOwnershipResponse as aB, type GetOwnedTokensResponse as aC, type GetTokenActivityResponse as aD, type WaitForTransactionOptions as aE, type UserTransactionResponse as aF, type GetFungibleAssetMetadataResponse as aG, type GetFungibleAssetActivitiesResponse as aH, type GetCurrentFungibleAssetBalancesResponse as aI, type LedgerInfo as aJ, type Block as aK, type MoveValue as aL, type InputViewFunctionData as aM, type InputViewFunctionJsonData as aN, type GetChainTopUserTransactionsResponse as aO, type GraphqlQuery as aP, ProcessorType as aQ, type GetProcessorStatusResponse as aR, type GetANSNameResponse as aS, type GetNumberOfDelegatorsResponse as aT, type GetDelegatedStakingActivitiesResponse as aU, type InputSimulateTransactionOptions as aV, type InputTransactionPluginData as aW, type PendingTransactionResponse as aX, type CommittedTransactionResponse as aY, type GasEstimation as aZ, Ed25519PrivateKey as a_, type InputSubmitTransactionData as aa, type TypeArgument as ab, TypeTag as ac, type MoveModule as ad, type FunctionABI as ae, type EntryFunctionABI as af, type ViewFunctionABI as ag, type AnyRawTransaction as ah, type AnyRawTransactionInstance as ai, type AccountData as aj, type MoveModuleBytecode as ak, type CursorPaginationArgs as al, type PaginationArgs as am, type TransactionResponse as an, type MoveResource as ao, type MoveStructId as ap, type TokenStandardArg as aq, type OrderByArg as ar, type GetAccountOwnedTokensQueryResponse as as, type GetAccountOwnedTokensFromCollectionResponse as at, type GetAccountCollectionsWithOwnedTokenResponse as au, type GetAccountCoinsDataResponse as av, type WhereArg as aw, type GetObjectDataQueryResponse as ax, type PrivateKeyInput as ay, type GetCollectionDataResponse as az, AuthenticationKey as b, TypeTagAddress as b$, type GetTableItemsDataResponse as b0, type GetTableItemsMetadataResponse as b1, PrivateKey as b2, SigningScheme as b3, SigningSchemeInput as b4, AnySignature as b5, type EntryFunctionArgument as b6, MultiKeySignature as b7, AccountAuthenticatorMultiEd25519 as b8, AccountAuthenticatorAbstraction as b9, ChainId as bA, Identifier as bB, ModuleId as bC, RawTransactionWithData as bD, MultiAgentRawTransaction as bE, FeePayerRawTransaction as bF, type TransactionArgument as bG, type ScriptFunctionArgument as bH, deserializeFromScriptArgument as bI, TransactionPayload as bJ, Script as bK, MultiSig as bL, MultiSigTransactionPayload as bM, TransactionInnerPayloadV1 as bN, TransactionExecutable as bO, TransactionExecutableScript as bP, TransactionExecutableEntryFunction as bQ, TransactionExecutableEmpty as bR, TransactionExtraConfig as bS, TransactionExtraConfigV1 as bT, TypeTagBool as bU, TypeTagU8 as bV, TypeTagU16 as bW, TypeTagU32 as bX, TypeTagU64 as bY, TypeTagU128 as bZ, TypeTagU256 as b_, type MoveFunctionId as ba, type ClientRequest as bb, type Client as bc, type ClientResponse as bd, type AptosRequest as be, AptosApiType as bf, type AptosResponse as bg, MimeType as bh, type ClientConfig as bi, type Deserializable as bj, ensureBoolean as bk, outOfRangeErrorMessage as bl, validateNumberInRange as bm, Serialized as bn, MoveOption as bo, AddressInvalidReason as bp, ParsingError as bq, type ParsingResult as br, isCanonicalEd25519Signature as bs, AbstractMultiKey as bt, Secp256k1PublicKey as bu, Secp256k1PrivateKey as bv, Secp256k1Signature as bw, HexInvalidReason as bx, Hex as by, hexToAsciiString as bz, type VerifySignatureAsyncArgs as c, type GenesisTransactionResponse as c$, TypeTagSigner as c0, TypeTagReference as c1, TypeTagGeneric as c2, TypeTagVector as c3, TypeTagStruct as c4, StructTag as c5, aptosCoinStructTag as c6, stringStructTag as c7, optionStructTag as c8, objectStructTag as c9, AnyPublicKeyVariant as cA, anyPublicKeyVariantToString as cB, AnySignatureVariant as cC, EphemeralSignatureVariant as cD, type Uint8 as cE, type Uint16 as cF, type Uint32 as cG, type Uint64 as cH, type Uint128 as cI, type Uint256 as cJ, type AptosSettings as cK, type FullNodeConfig as cL, type IndexerConfig as cM, type FaucetConfig as cN, type TransactionGenerationConfig as cO, type ClientHeadersType as cP, type PluginConfig as cQ, type PluginSettings as cR, type TransactionSubmitter as cS, TransactionResponseType as cT, isPendingTransactionResponse as cU, isUserTransactionResponse as cV, isGenesisTransactionResponse as cW, isBlockMetadataTransactionResponse as cX, isStateCheckpointTransactionResponse as cY, isValidatorTransactionResponse as cZ, isBlockEpilogueTransactionResponse as c_, type ScriptFunctionArgumentTypes as ca, type InputGenerateSequenceNumberTransactionOptions as cb, type InputGenerateOrderlessTransactionOptions as cc, type InputEntryFunctionData as cd, type InputGenerateTransactionPayloadDataWithABI as ce, type InputMultiSigData as cf, type ViewFunctionJsonPayload as cg, type InputGenerateRawTransactionArgs as ch, type InputGenerateSingleSignerRawTransactionData as ci, type InputGenerateMultiAgentRawTransactionData as cj, type InputGenerateTransactionData as ck, type GetAccountAddressesForAuthKeyResponse as cl, type GetEventsResponse as cm, type OrderBy as cn, type OrderByValue as co, type TokenStandard as cp, TypeTagVariants as cq, ScriptTransactionArgumentVariants as cr, TransactionPayloadVariants as cs, TransactionInnerPayloadVariants as ct, TransactionExecutableVariants as cu, TransactionExtraConfigVariants as cv, TransactionVariants as cw, TransactionAuthenticatorVariant as cx, AccountAuthenticatorVariant as cy, PrivateKeyVariants as cz, Signature as d, NetworkToIndexerAPI as d$, type BlockMetadataTransactionResponse as d0, type StateCheckpointTransactionResponse as d1, type ValidatorTransactionResponse as d2, type BlockEndInfo as d3, type BlockEpilogueTransactionResponse as d4, type WriteSetChange as d5, type WriteSetChangeDeleteModule as d6, type WriteSetChangeDeleteResource as d7, type WriteSetChangeDeleteTableItem as d8, type WriteSetChangeWriteModule as d9, type ScriptWriteSet as dA, type DirectWriteSet as dB, type EventGuid as dC, type Event as dD, type MoveUint8Type as dE, type MoveUint16Type as dF, type MoveUint32Type as dG, type MoveUint64Type as dH, type MoveUint128Type as dI, type MoveUint256Type as dJ, type MoveAddressType as dK, type MoveObjectType as dL, type MoveOptionType as dM, type MoveStructType as dN, type MoveType as dO, type MoveModuleId as dP, MoveFunctionVisibility as dQ, MoveAbility as dR, type MoveFunctionGenericTypeParam as dS, type MoveStructField as dT, type MoveStruct as dU, RoleType as dV, type AuthenticationKeyScheme as dW, DeriveScheme as dX, type GenerateAccountWithEd25519 as dY, type GenerateAccountWithSingleSignerSecp256k1Key as dZ, type GenerateAccount as d_, type WriteSetChangeWriteResource as da, type WriteSetChangeWriteTableItem as db, type DecodedTableData as dc, type DeletedTableData as dd, type TransactionPayloadResponse as de, type EntryFunctionPayloadResponse as df, type ScriptPayloadResponse as dg, type MultisigPayloadResponse as dh, type GenesisPayload as di, type MoveScriptBytecode as dj, type TransactionSignature as dk, isEd25519Signature as dl, isSecp256k1Signature as dm, isMultiAgentSignature as dn, isFeePayerSignature as dp, isMultiEd25519Signature as dq, isSingleSenderSignature as dr, type TransactionEd25519Signature as ds, type TransactionSecp256k1Signature as dt, type TransactionSingleSenderSignature as du, type TransactionMultiEd25519Signature as dv, type TransactionMultiAgentSignature as dw, type TransactionFeePayerSignature as dx, type AccountSignature as dy, type WriteSet as dz, AptosConfig as e, NetworkToNodeAPI as e0, NetworkToFaucetAPI as e1, NetworkToPepperAPI as e2, NetworkToProverAPI as e3, Network as e4, NetworkToChainId as e5, NetworkToNetworkName as e6, DEFAULT_MAX_GAS_AMOUNT as e7, DEFAULT_TXN_EXP_SEC_FROM_NOW as e8, DEFAULT_TXN_TIMEOUT_SEC as e9, APTOS_COIN as ea, APTOS_FA as eb, RAW_TRANSACTION_SALT as ec, RAW_TRANSACTION_WITH_DATA_SALT as ed, FIREBASE_AUTH_ISS_PATTERN as ee, Serializable as f, EphemeralCertificateVariant as g, type AccountAddressInput as h, Ed25519PublicKey as i, AnyPublicKey as j, MultiEd25519PublicKey as k, Ed25519Signature as l, MultiEd25519Signature as m, AccountAuthenticator as n, MoveString as o, MoveVector as p, U64 as q, type AnyNumber as r, type SimpleEntryFunctionArgumentTypes as s, type EntryFunctionArgumentTypes as t, U16 as u, U32 as v, U128 as w, U256 as x, type InputGenerateTransactionPayloadData as y, type InputScriptData as z };
7438
+ export { type InputGenerateTransactionOptions as $, AccountAddress as A, Bool as B, type MoveFunction as C, Deserializer as D, EphemeralPublicKeyVariant as E, FixedBytes as F, type InputEntryFunctionDataWithRemoteABI as G, type HexInput as H, type InputGenerateTransactionPayloadDataWithRemoteABI as I, TransactionPayloadEntryFunction as J, type InputMultiSigDataWithRemoteABI as K, type LedgerVersionArg as L, MultiKey as M, TransactionPayloadMultiSig as N, type InputEntryFunctionDataWithABI as O, PublicKey as P, type InputMultiSigDataWithABI as Q, RawTransaction as R, Serializer as S, TransactionPayloadScript as T, U8 as U, type VerifySignatureArgs as V, type InputViewFunctionDataWithRemoteABI as W, EntryFunction as X, type InputViewFunctionDataWithABI as Y, ZkpVariant as Z, type AnyTransactionPayloadInstance as _, AccountPublicKey as a, type TableItemRequest as a$, TransactionInnerPayload as a0, type InputGenerateSingleSignerRawTransactionArgs as a1, SimpleTransaction as a2, type InputGenerateMultiAgentRawTransactionArgs as a3, MultiAgentTransaction as a4, type InputSimulateTransactionData as a5, AccountAuthenticatorNoAccountAuthenticator as a6, AccountAuthenticatorEd25519 as a7, AccountAuthenticatorSingleKey as a8, AccountAuthenticatorMultiKey as a9, type GetTokenDataResponse as aA, type GetCurrentTokenOwnershipResponse as aB, type GetOwnedTokensResponse as aC, type GetTokenActivityResponse as aD, type WaitForTransactionOptions as aE, type UserTransactionResponse as aF, type GetFungibleAssetMetadataResponse as aG, type GetFungibleAssetActivitiesResponse as aH, type GetCurrentFungibleAssetBalancesResponse as aI, type LedgerInfo as aJ, type Block as aK, type MoveValue as aL, type InputViewFunctionData as aM, type InputViewFunctionJsonData as aN, type GetChainTopUserTransactionsResponse as aO, type GraphqlQuery as aP, ProcessorType as aQ, type GetProcessorStatusResponse as aR, type GetANSNameResponse as aS, type GetNumberOfDelegatorsResponse as aT, type GetDelegatedStakingActivitiesResponse as aU, type InputSimulateTransactionOptions as aV, type InputTransactionPluginData as aW, type PendingTransactionResponse as aX, type CommittedTransactionResponse as aY, type GasEstimation as aZ, Ed25519PrivateKey as a_, type InputSubmitTransactionData as aa, type TypeArgument as ab, TypeTag as ac, type MoveModule as ad, type FunctionABI as ae, type EntryFunctionABI as af, type ViewFunctionABI as ag, type AnyRawTransaction as ah, type AnyRawTransactionInstance as ai, type AccountData as aj, type MoveModuleBytecode as ak, type CursorPaginationArgs as al, type PaginationArgs as am, type TransactionResponse as an, type MoveResource as ao, type MoveStructId as ap, type TokenStandardArg as aq, type OrderByArg as ar, type GetAccountOwnedTokensQueryResponse as as, type GetAccountOwnedTokensFromCollectionResponse as at, type GetAccountCollectionsWithOwnedTokenResponse as au, type GetAccountCoinsDataResponse as av, type WhereArg as aw, type GetObjectDataQueryResponse as ax, type PrivateKeyInput as ay, type GetCollectionDataResponse as az, AuthenticationKey as b, TypeTagU256 as b$, type GetTableItemsDataResponse as b0, type GetTableItemsMetadataResponse as b1, PrivateKey as b2, SigningScheme as b3, SigningSchemeInput as b4, AnySignature as b5, type EntryFunctionArgument as b6, MultiKeySignature as b7, AccountAuthenticatorMultiEd25519 as b8, AccountAuthenticatorAbstraction as b9, AccountAbstractionMessage as bA, ChainId as bB, Identifier as bC, ModuleId as bD, RawTransactionWithData as bE, MultiAgentRawTransaction as bF, FeePayerRawTransaction as bG, type TransactionArgument as bH, type ScriptFunctionArgument as bI, deserializeFromScriptArgument as bJ, TransactionPayload as bK, Script as bL, MultiSig as bM, MultiSigTransactionPayload as bN, TransactionInnerPayloadV1 as bO, TransactionExecutable as bP, TransactionExecutableScript as bQ, TransactionExecutableEntryFunction as bR, TransactionExecutableEmpty as bS, TransactionExtraConfig as bT, TransactionExtraConfigV1 as bU, TypeTagBool as bV, TypeTagU8 as bW, TypeTagU16 as bX, TypeTagU32 as bY, TypeTagU64 as bZ, TypeTagU128 as b_, type MoveFunctionId as ba, type ClientRequest as bb, type Client as bc, type ClientResponse as bd, type AptosRequest as be, AptosApiType as bf, type AptosResponse as bg, MimeType as bh, type ClientConfig as bi, type Deserializable as bj, ensureBoolean as bk, outOfRangeErrorMessage as bl, validateNumberInRange as bm, Serialized as bn, MoveOption as bo, AddressInvalidReason as bp, ParsingError as bq, type ParsingResult as br, isCanonicalEd25519Signature as bs, AbstractMultiKey as bt, Secp256k1PublicKey as bu, Secp256k1PrivateKey as bv, Secp256k1Signature as bw, HexInvalidReason as bx, Hex as by, hexToAsciiString as bz, type VerifySignatureAsyncArgs as c, isBlockEpilogueTransactionResponse as c$, TypeTagAddress as c0, TypeTagSigner as c1, TypeTagReference as c2, TypeTagGeneric as c3, TypeTagVector as c4, TypeTagStruct as c5, StructTag as c6, aptosCoinStructTag as c7, stringStructTag as c8, optionStructTag as c9, PrivateKeyVariants as cA, AnyPublicKeyVariant as cB, anyPublicKeyVariantToString as cC, AnySignatureVariant as cD, EphemeralSignatureVariant as cE, type Uint8 as cF, type Uint16 as cG, type Uint32 as cH, type Uint64 as cI, type Uint128 as cJ, type Uint256 as cK, type AptosSettings as cL, type FullNodeConfig as cM, type IndexerConfig as cN, type FaucetConfig as cO, type TransactionGenerationConfig as cP, type ClientHeadersType as cQ, type PluginConfig as cR, type PluginSettings as cS, type TransactionSubmitter as cT, TransactionResponseType as cU, isPendingTransactionResponse as cV, isUserTransactionResponse as cW, isGenesisTransactionResponse as cX, isBlockMetadataTransactionResponse as cY, isStateCheckpointTransactionResponse as cZ, isValidatorTransactionResponse as c_, objectStructTag as ca, type ScriptFunctionArgumentTypes as cb, type InputGenerateSequenceNumberTransactionOptions as cc, type InputGenerateOrderlessTransactionOptions as cd, type InputEntryFunctionData as ce, type InputGenerateTransactionPayloadDataWithABI as cf, type InputMultiSigData as cg, type ViewFunctionJsonPayload as ch, type InputGenerateRawTransactionArgs as ci, type InputGenerateSingleSignerRawTransactionData as cj, type InputGenerateMultiAgentRawTransactionData as ck, type InputGenerateTransactionData as cl, type GetAccountAddressesForAuthKeyResponse as cm, type GetEventsResponse as cn, type OrderBy as co, type OrderByValue as cp, type TokenStandard as cq, TypeTagVariants as cr, ScriptTransactionArgumentVariants as cs, TransactionPayloadVariants as ct, TransactionInnerPayloadVariants as cu, TransactionExecutableVariants as cv, TransactionExtraConfigVariants as cw, TransactionVariants as cx, TransactionAuthenticatorVariant as cy, AccountAuthenticatorVariant as cz, Signature as d, type GenerateAccount as d$, type GenesisTransactionResponse as d0, type BlockMetadataTransactionResponse as d1, type StateCheckpointTransactionResponse as d2, type ValidatorTransactionResponse as d3, type BlockEndInfo as d4, type BlockEpilogueTransactionResponse as d5, type WriteSetChange as d6, type WriteSetChangeDeleteModule as d7, type WriteSetChangeDeleteResource as d8, type WriteSetChangeDeleteTableItem as d9, type WriteSet as dA, type ScriptWriteSet as dB, type DirectWriteSet as dC, type EventGuid as dD, type Event as dE, type MoveUint8Type as dF, type MoveUint16Type as dG, type MoveUint32Type as dH, type MoveUint64Type as dI, type MoveUint128Type as dJ, type MoveUint256Type as dK, type MoveAddressType as dL, type MoveObjectType as dM, type MoveOptionType as dN, type MoveStructType as dO, type MoveType as dP, type MoveModuleId as dQ, MoveFunctionVisibility as dR, MoveAbility as dS, type MoveFunctionGenericTypeParam as dT, type MoveStructField as dU, type MoveStruct as dV, RoleType as dW, type AuthenticationKeyScheme as dX, DeriveScheme as dY, type GenerateAccountWithEd25519 as dZ, type GenerateAccountWithSingleSignerSecp256k1Key as d_, type WriteSetChangeWriteModule as da, type WriteSetChangeWriteResource as db, type WriteSetChangeWriteTableItem as dc, type DecodedTableData as dd, type DeletedTableData as de, type TransactionPayloadResponse as df, type EntryFunctionPayloadResponse as dg, type ScriptPayloadResponse as dh, type MultisigPayloadResponse as di, type GenesisPayload as dj, type MoveScriptBytecode as dk, type TransactionSignature as dl, isEd25519Signature as dm, isSecp256k1Signature as dn, isMultiAgentSignature as dp, isFeePayerSignature as dq, isMultiEd25519Signature as dr, isSingleSenderSignature as ds, type TransactionEd25519Signature as dt, type TransactionSecp256k1Signature as du, type TransactionSingleSenderSignature as dv, type TransactionMultiEd25519Signature as dw, type TransactionMultiAgentSignature as dx, type TransactionFeePayerSignature as dy, type AccountSignature as dz, AptosConfig as e, NetworkToIndexerAPI as e0, NetworkToNodeAPI as e1, NetworkToFaucetAPI as e2, NetworkToPepperAPI as e3, NetworkToProverAPI as e4, Network as e5, NetworkToChainId as e6, NetworkToNetworkName as e7, DEFAULT_MAX_GAS_AMOUNT as e8, DEFAULT_TXN_EXP_SEC_FROM_NOW as e9, DEFAULT_TXN_TIMEOUT_SEC as ea, APTOS_COIN as eb, APTOS_FA as ec, RAW_TRANSACTION_SALT as ed, RAW_TRANSACTION_WITH_DATA_SALT as ee, ACCOUNT_ABSTRACTION_SIGNING_DATA_SALT as ef, FIREBASE_AUTH_ISS_PATTERN as eg, Serializable as f, EphemeralCertificateVariant as g, type AccountAddressInput as h, Ed25519PublicKey as i, AnyPublicKey as j, MultiEd25519PublicKey as k, Ed25519Signature as l, MultiEd25519Signature as m, AccountAuthenticator as n, MoveString as o, MoveVector as p, U64 as q, type AnyNumber as r, type SimpleEntryFunctionArgumentTypes as s, type EntryFunctionArgumentTypes as t, U16 as u, U32 as v, U128 as w, U256 as x, type InputGenerateTransactionPayloadData as y, type InputScriptData as z };
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/reneetso/aptos-ts-sdk/dist/common/chunk-6MMUUJHX.js","../../src/core/common.ts","../../src/core/hex.ts","../../src/core/accountAddress.ts"],"names":["ParsingError","message","invalidReason","HexInvalidReason","Hex","_Hex","data","bytesToHex"],"mappings":"AAAA,ilBAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCQhM,IAAMA,CAAAA,CAAN,MAAA,QAA8B,KAAM,CAkBzC,WAAA,CAAYC,CAAAA,CAAiBC,CAAAA,CAAkB,CAC7C,KAAA,CAAMD,CAAO,CAAA,CACb,IAAA,CAAK,aAAA,CAAgBC,CACvB,CACF,CAAA,CC3BA,4CAAuC,IAS3BC,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CACVA,CAAAA,CAAA,SAAA,CAAY,WAAA,CACZA,CAAAA,CAAA,cAAA,CAAiB,gBAAA,CACjBA,CAAAA,CAAA,iBAAA,CAAoB,mBAAA,CAHVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,CAgCCC,CAAAA,aAAN,MAAMC,CAAI,CAUf,WAAA,CAAYC,CAAAA,CAAkB,CAC5B,IAAA,CAAK,IAAA,CAAOA,CACd,CAaA,YAAA,CAAA,CAA2B,CACzB,OAAO,IAAA,CAAK,IACd,CASA,qBAAA,CAAA,CAAgC,CAC9B,OAAOC,+BAAAA,IAAW,CAAK,IAAI,CAC7B,CASA,QAAA,CAAA,CAAmB,CACjB,MAAO,CAAA,EAAA,EAAK,IAAA,CAAK,qBAAA,CAAsB,CAAC,CAAA,CAAA;ACkVsB;AAnWV,SAAA","file":"/Users/reneetso/aptos-ts-sdk/dist/common/chunk-6MMUUJHX.js","sourcesContent":[null,"// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This error is used to explain why parsing failed.\n * @group Implementation\n * @category Serialization\n */\nexport class ParsingError<T> extends Error {\n /**\n * This provides a programmatic way to access why parsing failed. Downstream devs\n * might want to use this to build their own error messages if the default error\n * messages are not suitable for their use case. This should be an enum.\n * @group Implementation\n * @category Serialization\n */\n public invalidReason: T;\n\n /**\n * Creates an instance of the error with a specified message and invalid reason.\n *\n * @param message The error message that describes the issue.\n * @param invalidReason The reason why the input is considered invalid.\n * @group Implementation\n * @category Serialization\n */\n constructor(message: string, invalidReason: T) {\n super(message);\n this.invalidReason = invalidReason;\n }\n}\n\n/**\n * Whereas ParsingError is thrown when parsing fails, e.g. in a fromString function,\n * this type is returned from \"defensive\" functions like isValid.\n * @group Implementation\n * @category Serialization\n */\nexport type ParsingResult<T> = {\n /**\n * True if valid, false otherwise.\n * @group Implementation\n * @category Serialization\n */\n valid: boolean;\n\n /**\n * If valid is false, this will be a code explaining why parsing failed.\n * @group Implementation\n * @category Serialization\n */\n invalidReason?: T;\n\n /**\n * If valid is false, this will be a string explaining why parsing failed.\n * @group Implementation\n * @category Serialization\n */\n invalidReasonMessage?: string;\n};\n","// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bytesToHex, hexToBytes } from \"@noble/hashes/utils\";\nimport { ParsingError, ParsingResult } from \"./common\";\nimport { HexInput } from \"../types\";\n\n/**\n * Provides reasons for parsing failures related to hexadecimal values.\n * @group Implementation\n * @category Serialization\n */\nexport enum HexInvalidReason {\n TOO_SHORT = \"too_short\",\n INVALID_LENGTH = \"invalid_length\",\n INVALID_HEX_CHARS = \"invalid_hex_chars\",\n}\n\n/**\n * NOTE: Do not use this class when working with account addresses; use AccountAddress instead.\n * When accepting hex data as input to a function, prefer to accept HexInput and\n *\n * A helper class for working with hex data. Hex data, when represented as a string,\n * generally looks like this, for example: 0xaabbcc, 45cd32, etc.\n *\n * then use the static helper methods of this class to convert it into the desired\n * format. This enables the greatest flexibility for the developer.\n *\n * Example usage:\n * ```typescript\n * getTransactionByHash(txnHash: HexInput): Promise<Transaction> {\n * const txnHashString = Hex.fromHexInput(txnHash).toString();\n * return await getTransactionByHashInner(txnHashString);\n * }\n * ```\n * This call to `Hex.fromHexInput().toString()` converts the HexInput to a hex string\n * with a leading 0x prefix, regardless of what the input format was.\n *\n * Other ways to chain the functions together:\n * - `Hex.fromHexString({ hexInput: \"0x1f\" }).toUint8Array()`\n * - `new Hex([1, 3]).toStringWithoutPrefix()`\n * @group Implementation\n * @category Serialization\n */\nexport class Hex {\n private readonly data: Uint8Array;\n\n /**\n * Create a new Hex instance from a Uint8Array.\n *\n * @param data - The Uint8Array containing the data to initialize the Hex instance.\n * @group Implementation\n * @category Serialization\n */\n constructor(data: Uint8Array) {\n this.data = data;\n }\n\n // ===\n // Methods for representing an instance of Hex as other types.\n // ===\n\n /**\n * Get the inner hex data as a Uint8Array. The inner data is already a Uint8Array, so no conversion takes place.\n *\n * @returns Hex data as Uint8Array\n * @group Implementation\n * @category Serialization\n */\n toUint8Array(): Uint8Array {\n return this.data;\n }\n\n /**\n * Get the hex data as a string without the 0x prefix.\n *\n * @returns Hex string without 0x prefix\n * @group Implementation\n * @category Serialization\n */\n toStringWithoutPrefix(): string {\n return bytesToHex(this.data);\n }\n\n /**\n * Get the hex data as a string with the 0x prefix.\n *\n * @returns Hex string with 0x prefix\n * @group Implementation\n * @category Serialization\n */\n toString(): string {\n return `0x${this.toStringWithoutPrefix()}`;\n }\n\n // ===\n // Methods for creating an instance of Hex from other types.\n // ===\n\n /**\n * Converts a hex string into a Hex instance, allowing for both prefixed and non-prefixed formats.\n *\n * @param str - A hex string, with or without the 0x prefix.\n *\n * @throws ParsingError - If the hex string is too short, has an odd number of characters, or contains invalid hex characters.\n *\n * @returns Hex - The resulting Hex instance created from the provided string.\n * @group Implementation\n * @category Serialization\n */\n static fromHexString(str: string): Hex {\n let input = str;\n\n if (input.startsWith(\"0x\")) {\n input = input.slice(2);\n }\n\n if (input.length === 0) {\n throw new ParsingError(\n \"Hex string is too short, must be at least 1 char long, excluding the optional leading 0x.\",\n HexInvalidReason.TOO_SHORT,\n );\n }\n\n if (input.length % 2 !== 0) {\n throw new ParsingError(\"Hex string must be an even number of hex characters.\", HexInvalidReason.INVALID_LENGTH);\n }\n\n try {\n return new Hex(hexToBytes(input));\n } catch (error: any) {\n throw new ParsingError(\n `Hex string contains invalid hex characters: ${error?.message}`,\n HexInvalidReason.INVALID_HEX_CHARS,\n );\n }\n }\n\n /**\n * Converts an instance of HexInput, which can be a string or a Uint8Array, into a Hex instance.\n * This function is useful for transforming hexadecimal representations into a structured Hex object for further manipulation.\n *\n * @param hexInput - A HexInput which can be a string or Uint8Array.\n * @returns A Hex instance created from the provided hexInput.\n * @group Implementation\n * @category Serialization\n */\n static fromHexInput(hexInput: HexInput): Hex {\n if (hexInput instanceof Uint8Array) return new Hex(hexInput);\n return Hex.fromHexString(hexInput);\n }\n\n /**\n * Converts an instance of HexInput, which can be a string or a Uint8Array, into a Uint8Array.\n *\n * @param hexInput - A HexInput which can be a string or Uint8Array.\n * @returns A Uint8Array created from the provided hexInput.\n */\n static hexInputToUint8Array(hexInput: HexInput): Uint8Array {\n if (hexInput instanceof Uint8Array) return hexInput;\n return Hex.fromHexString(hexInput).toUint8Array();\n }\n\n /**\n * Converts a HexInput (string or Uint8Array) to a hex string with '0x' prefix.\n *\n * @param hexInput - The input to convert, either a hex string (with/without '0x' prefix) or Uint8Array\n * @returns A hex string with '0x' prefix (e.g., \"0x1234\")\n *\n * @example\n * ```typescript\n * Hex.hexInputToString(\"1234\") // returns \"0x1234\"\n * Hex.hexInputToString(\"0x1234\") // returns \"0x1234\"\n * Hex.hexInputToString(new Uint8Array([0x12, 0x34])) // returns \"0x1234\"\n * ```\n */\n static hexInputToString(hexInput: HexInput): string {\n return Hex.fromHexInput(hexInput).toString();\n }\n\n /**\n * Converts a HexInput (string or Uint8Array) to a hex string without '0x' prefix.\n *\n * @param hexInput - The input to convert, either a hex string (with/without '0x' prefix) or Uint8Array\n * @returns A hex string without '0x' prefix (e.g., \"1234\")\n *\n * @example\n * ```typescript\n * Hex.hexInputToStringWithoutPrefix(\"1234\") // returns \"1234\"\n * Hex.hexInputToStringWithoutPrefix(\"0x1234\") // returns \"1234\"\n * Hex.hexInputToStringWithoutPrefix(new Uint8Array([0x12, 0x34])) // returns \"1234\"\n * ```\n */\n static hexInputToStringWithoutPrefix(hexInput: HexInput): string {\n return Hex.fromHexInput(hexInput).toStringWithoutPrefix();\n }\n\n // ===\n // Methods for checking validity.\n // ===\n\n /**\n * Check if the provided string is a valid hexadecimal representation.\n *\n * @param str - A hex string representing byte data.\n *\n * @returns An object containing:\n * - valid: A boolean indicating whether the string is valid.\n * - invalidReason: The reason for invalidity if the string is not valid.\n * - invalidReasonMessage: A message explaining why the string is invalid.\n * @group Implementation\n * @category Serialization\n */\n static isValid(str: string): ParsingResult<HexInvalidReason> {\n try {\n Hex.fromHexString(str);\n return { valid: true };\n } catch (error: any) {\n return {\n valid: false,\n invalidReason: error?.invalidReason,\n invalidReasonMessage: error?.message,\n };\n }\n }\n\n /**\n * Determine if two Hex instances are equal by comparing their underlying byte data.\n *\n * @param other The Hex instance to compare to.\n * @returns true if the Hex instances are equal, false if not.\n * @group Implementation\n * @category Serialization\n */\n equals(other: Hex): boolean {\n if (this.data.length !== other.data.length) return false;\n return this.data.every((value, index) => value === other.data[index]);\n }\n}\n\nexport const hexToAsciiString = (hex: string) => new TextDecoder().decode(Hex.fromHexInput(hex).toUint8Array());\n","// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bytesToHex, hexToBytes } from \"@noble/hashes/utils\";\nimport { Serializable, Serializer } from \"../bcs/serializer\";\nimport { Deserializer } from \"../bcs/deserializer\";\nimport { ParsingError, ParsingResult } from \"./common\";\nimport { TransactionArgument } from \"../transactions/instances/transactionArgument\";\nimport { HexInput, ScriptTransactionArgumentVariants } from \"../types\";\n\n/**\n * Provides reasons for an address was invalid.\n * @group Implementation\n * @category Serialization\n */\nexport enum AddressInvalidReason {\n INCORRECT_NUMBER_OF_BYTES = \"incorrect_number_of_bytes\",\n INVALID_HEX_CHARS = \"invalid_hex_chars\",\n TOO_SHORT = \"too_short\",\n TOO_LONG = \"too_long\",\n LEADING_ZERO_X_REQUIRED = \"leading_zero_x_required\",\n LONG_FORM_REQUIRED_UNLESS_SPECIAL = \"long_form_required_unless_special\",\n INVALID_PADDING_ZEROES = \"INVALID_PADDING_ZEROES\",\n INVALID_PADDING_STRICTNESS = \"INVALID_PADDING_STRICTNESS\",\n}\n\n/**\n * The input for an account address, which can be either a hexadecimal string or a standard account address.\n * @group Implementation\n * @category Serialization\n */\nexport type AccountAddressInput = HexInput | AccountAddress;\n\n/**\n * NOTE: Only use this class for account addresses. For other hex data, e.g. transaction\n * hashes, use the Hex class.\n *\n * AccountAddress is used for working with account addresses. Account addresses, when\n * represented as a string, generally look like these examples:\n * - 0x1\n * - 0xaa86fe99004361f747f91342ca13c426ca0cccb0c1217677180c9493bad6ef0c\n *\n * Proper formatting and parsing of account addresses is defined by AIP-40.\n * To learn more about the standard, read the AIP here:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * The comments in this class make frequent reference to the LONG and SHORT formats,\n * as well as \"special\" addresses. To learn what these refer to see AIP-40.\n * @group Implementation\n * @category Serialization\n */\nexport class AccountAddress extends Serializable implements TransactionArgument {\n /**\n * This is the internal representation of an account address.\n * @group Implementation\n * @category Serialization\n */\n readonly data: Uint8Array;\n\n /**\n * The number of bytes that make up an account address.\n * @group Implementation\n * @category Serialization\n */\n static readonly LENGTH: number = 32;\n\n /**\n * The length of an address string in LONG form without a leading 0x.\n * @group Implementation\n * @category Serialization\n */\n static readonly LONG_STRING_LENGTH: number = 64;\n\n static ZERO: AccountAddress = AccountAddress.from(\"0x0\");\n\n static ONE: AccountAddress = AccountAddress.from(\"0x1\");\n\n static TWO: AccountAddress = AccountAddress.from(\"0x2\");\n\n static THREE: AccountAddress = AccountAddress.from(\"0x3\");\n\n static FOUR: AccountAddress = AccountAddress.from(\"0x4\");\n\n static A: AccountAddress = AccountAddress.from(\"0xA\");\n\n /**\n * Creates an instance of AccountAddress from a Uint8Array.\n *\n * This function ensures that the input data is exactly 32 bytes long, which is required for a valid account address.\n *\n * @param input A Uint8Array representing an account address.\n * @throws ParsingError if the input length is not equal to 32 bytes.\n * @group Implementation\n * @category Serialization\n */\n constructor(input: Uint8Array) {\n super();\n if (input.length !== AccountAddress.LENGTH) {\n throw new ParsingError(\n \"AccountAddress data should be exactly 32 bytes long\",\n AddressInvalidReason.INCORRECT_NUMBER_OF_BYTES,\n );\n }\n this.data = input;\n }\n\n /**\n * Determines if the address is classified as special, which is defined as 0x0 to 0xf inclusive.\n * In other words, the last byte of the address must be < 0b10000 (16)\n * and every other byte must be zero.\n *\n * For more information on how special addresses are defined, see AIP-40:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * @returns true if the address is special, false otherwise.\n * @group Implementation\n * @category Serialization\n */\n isSpecial(): boolean {\n return (\n this.data.slice(0, this.data.length - 1).every((byte) => byte === 0) && this.data[this.data.length - 1] < 0b10000\n );\n }\n // ===\n // Methods for representing an instance of AccountAddress as other types.\n // ===\n\n /**\n * Return the AccountAddress as a string as per AIP-40.\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n * This representation returns special addresses in SHORT form (0xf)\n * and other addresses in LONG form (0x + 64 characters).\n *\n * @returns AccountAddress as a string conforming to AIP-40.\n * @group Implementation\n * @category Serialization\n */\n toString(): `0x${string}` {\n return `0x${this.toStringWithoutPrefix()}`;\n }\n\n /**\n * Return the AccountAddress as a string conforming to AIP-40 but without the leading 0x.\n *\n * NOTE: Prefer to use `toString` where possible.\n *\n * @returns AccountAddress as a string without the leading 0x.\n * @group Implementation\n * @category Serialization\n */\n toStringWithoutPrefix(): string {\n let hex = bytesToHex(this.data);\n if (this.isSpecial()) {\n hex = hex[hex.length - 1];\n }\n return hex;\n }\n\n /**\n * Convert the account address to a string in LONG format, which is always 0x followed by 64 hex characters.\n *\n * NOTE: Prefer to use `toString` where possible, as it formats special addresses using the SHORT form (no leading 0s).\n *\n * @returns AccountAddress as a string in LONG form.\n * @group Implementation\n * @category Serialization\n */\n toStringLong(): `0x${string}` {\n return `0x${this.toStringLongWithoutPrefix()}`;\n }\n\n /**\n * Returns the account address as a string in LONG form without a leading 0x.\n * This function will include leading zeroes and will produce a string of 64 hex characters.\n *\n * NOTE: Prefer to use `toString` where possible, as it formats special addresses using the SHORT form (no leading 0s).\n *\n * @returns {string} The account address in LONG form.\n * @group Implementation\n * @category Serialization\n */\n toStringLongWithoutPrefix(): string {\n return bytesToHex(this.data);\n }\n\n /**\n * Convert the account address to a string in SHORT format, which is 0x followed by the shortest\n * possible representation (no leading zeros).\n *\n * @returns AccountAddress as a string in SHORT form.\n * @group Implementation\n * @category Serialization\n */\n toStringShort(): `0x${string}` {\n return `0x${this.toStringShortWithoutPrefix()}`;\n }\n\n /**\n * Returns a lossless short string representation of the address by trimming leading zeros.\n * If the address consists of all zeros, returns \"0\".\n *\n * @returns A string representation of the address without leading zeros\n * @group Implementation\n * @category Serialization\n */\n toStringShortWithoutPrefix(): string {\n const hex = bytesToHex(this.data).replace(/^0+/, \"\");\n return hex === \"\" ? \"0\" : hex;\n }\n\n /**\n * Get the inner data as a Uint8Array.\n * The inner data is already a Uint8Array, so no conversion takes place.\n *\n * @returns Hex data as Uint8Array\n * @group Implementation\n * @category Serialization\n */\n toUint8Array(): Uint8Array {\n return this.data;\n }\n\n /**\n * Serialize the AccountAddress to a Serializer instance's data buffer.\n * @param serializer The serializer to serialize the AccountAddress to.\n * @returns void\n * @example\n * const serializer = new Serializer();\n * const address = AccountAddress.fromString(\"0x1\");\n * address.serialize(serializer);\n * const bytes = serializer.toUint8Array();\n * // `bytes` is now the BCS-serialized address.\n * @group Implementation\n * @category Serialization\n */\n serialize(serializer: Serializer): void {\n serializer.serializeFixedBytes(this.data);\n }\n\n /**\n * Serializes the current instance into a byte sequence suitable for entry functions.\n * This allows for the proper encoding of data when interacting with entry functions in the blockchain.\n *\n * @param serializer - The serializer instance used to convert the data into bytes.\n * @group Implementation\n * @category Serialization\n */\n serializeForEntryFunction(serializer: Serializer): void {\n const bcsBytes = this.bcsToBytes();\n serializer.serializeBytes(bcsBytes);\n }\n\n /**\n * Serializes the current instance for use in a script function by encoding it into a byte sequence.\n * This process involves serializing the variant index and the instance data, making it suitable for transmission.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @group Implementation\n * @category Serialization\n */\n serializeForScriptFunction(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(ScriptTransactionArgumentVariants.Address);\n serializer.serialize(this);\n }\n\n /**\n * Deserialize an AccountAddress from the byte buffer in a Deserializer instance.\n * This function allows you to convert a byte representation of an AccountAddress into an instance of AccountAddress.\n * @param deserializer The deserializer to deserialize the AccountAddress from.\n * @returns An instance of AccountAddress.\n * @example\n * const bytes = hexToBytes(\"0x0102030405060708091011121314151617181920212223242526272829303132\");\n * const deserializer = new Deserializer(bytes);\n * const address = AccountAddress.deserialize(deserializer);\n * // `address` is now an instance of AccountAddress.\n * @group Implementation\n * @category Serialization\n */\n static deserialize(deserializer: Deserializer): AccountAddress {\n const bytes = deserializer.deserializeFixedBytes(AccountAddress.LENGTH);\n return new AccountAddress(bytes);\n }\n\n // ===\n // Methods for creating an instance of AccountAddress from other types.\n // ===\n\n /**\n * NOTE: This function has strict parsing behavior. For relaxed behavior, please use\n * the `fromString` function.\n *\n * Creates an instance of AccountAddress from a hex string.\n *\n * This function allows only the strictest formats defined by AIP-40. In short this\n * means only the following formats are accepted:\n *\n * - LONG\n * - SHORT for special addresses\n *\n * Where:\n * - LONG is defined as 0x + 64 hex characters.\n * - SHORT for special addresses is 0x0 to 0xf inclusive without padding zeroes.\n *\n * This means the following are not accepted:\n * - SHORT for non-special addresses.\n * - Any address without a leading 0x.\n *\n * @param input - A hex string representing an account address.\n *\n * @throws {ParsingError} If the hex string does not start with 0x or is not in a valid format.\n *\n * @remarks\n *\n * This function has strict parsing behavior. For relaxed behavior, please use the `fromString` function.\n *\n * @see AIP-40 documentation for more details on address formats:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * @returns An instance of AccountAddress.\n * @group Implementation\n * @category Serialization\n */\n static fromStringStrict(input: string): AccountAddress {\n // Assert the string starts with 0x.\n if (!input.startsWith(\"0x\")) {\n throw new ParsingError(\"Hex string must start with a leading 0x.\", AddressInvalidReason.LEADING_ZERO_X_REQUIRED);\n }\n\n const address = AccountAddress.fromString(input);\n\n // Check if the address is in LONG form. If it is not, this is only allowed for\n // special addresses, in which case we check it is in proper SHORT form.\n if (input.length !== AccountAddress.LONG_STRING_LENGTH + 2) {\n if (!address.isSpecial()) {\n throw new ParsingError(\n `The given hex string ${input} is not a special address, it must be represented as 0x + 64 chars.`,\n AddressInvalidReason.LONG_FORM_REQUIRED_UNLESS_SPECIAL,\n );\n } else if (input.length !== 3) {\n // 0x + one hex char is the only valid SHORT form for special addresses.\n throw new ParsingError(\n // eslint-disable-next-line max-len\n `The given hex string ${input} is a special address not in LONG form, it must be 0x0 to 0xf without padding zeroes.`,\n AddressInvalidReason.INVALID_PADDING_ZEROES,\n );\n }\n }\n\n return address;\n }\n\n /**\n * NOTE: This function has relaxed parsing behavior. For strict behavior, please use\n * the `fromStringStrict` function. Where possible use `fromStringStrict` rather than this\n * function, `fromString`.\n *\n * Creates an instance of AccountAddress from a hex string.\n *\n * This function allows all formats defined by AIP-40. In short this means the\n * following formats are accepted:\n *\n * - LONG, with or without leading 0x\n * - SHORT*, with or without leading 0x\n *\n * Where:\n * - LONG is 64 hex characters.\n * - SHORT* is 1 to 63 hex characters inclusive. The address can have missing values up to `maxMissingChars` before it is padded.\n * - Padding zeroes are allowed, e.g. 0x0123 is valid.\n *\n * Learn more about the different address formats by reading AIP-40:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * @param input A hex string representing an account address.\n * @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.\n *\n * @returns An instance of AccountAddress.\n *\n * @throws ParsingError if the hex string is too short, too long, or contains invalid characters.\n * @group Implementation\n * @category Serialization\n */\n static fromString(input: string, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {\n let parsedInput = input;\n // Remove leading 0x for parsing.\n if (input.startsWith(\"0x\")) {\n parsedInput = input.slice(2);\n }\n\n // Ensure the address string is at least 1 character long.\n if (parsedInput.length === 0) {\n throw new ParsingError(\n \"Hex string is too short, must be 1 to 64 chars long, excluding the leading 0x.\",\n AddressInvalidReason.TOO_SHORT,\n );\n }\n\n // Ensure the address string is not longer than 64 characters.\n if (parsedInput.length > 64) {\n throw new ParsingError(\n \"Hex string is too long, must be 1 to 64 chars long, excluding the leading 0x.\",\n AddressInvalidReason.TOO_LONG,\n );\n }\n\n // Ensure that the maxMissingChars is between or equal to 0 and 63.\n if (maxMissingChars > 63 || maxMissingChars < 0) {\n throw new ParsingError(\n `maxMissingChars must be between or equal to 0 and 63. Received ${maxMissingChars}`,\n AddressInvalidReason.INVALID_PADDING_STRICTNESS,\n );\n }\n\n let addressBytes: Uint8Array;\n try {\n // Pad the address with leading zeroes, so it is 64 chars long and then convert\n // the hex string to bytes. Every two characters in a hex string constitutes a\n // single byte. So a 64 length hex string becomes a 32 byte array.\n addressBytes = hexToBytes(parsedInput.padStart(64, \"0\"));\n } catch (error: any) {\n // At this point the only way this can fail is if the hex string contains\n // invalid characters.\n throw new ParsingError(`Hex characters are invalid: ${error?.message}`, AddressInvalidReason.INVALID_HEX_CHARS);\n }\n\n const address = new AccountAddress(addressBytes);\n\n // Cannot pad the address if it has more than maxMissingChars missing.\n if (parsedInput.length < 64 - maxMissingChars) {\n if (!address.isSpecial()) {\n throw new ParsingError(\n `Hex string is too short, must be ${64 - maxMissingChars} to 64 chars long, excluding the leading 0x. You may need to fix \nthe addresss by padding it with 0s before passing it to \\`fromString\\` (e.g. <addressString>.padStart(64, '0')). \nReceived ${input}`,\n AddressInvalidReason.TOO_SHORT,\n );\n }\n }\n\n return address;\n }\n\n /**\n * Convenience method for creating an AccountAddress from various input types.\n * This function accepts a string, Uint8Array, or an existing AccountAddress instance and returns the corresponding\n * AccountAddress.\n *\n * @param input - The input to convert into an AccountAddress. This can be a string representation of an address, a Uint8Array,\n * or an existing AccountAddress.\n * @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.\n * @group Implementation\n * @category Serialization\n */\n static from(input: AccountAddressInput, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {\n if (typeof input === \"string\") {\n return AccountAddress.fromString(input, { maxMissingChars });\n }\n if (input instanceof Uint8Array) {\n return new AccountAddress(input);\n }\n return input;\n }\n\n /**\n * Create an AccountAddress from various input types, including strings, Uint8Array, and AccountAddress instances.\n *\n * @param input - The input to convert into an AccountAddress, which can be a string, a Uint8Array, or an AccountAddress.\n * @group Implementation\n * @category Serialization\n */\n static fromStrict(input: AccountAddressInput): AccountAddress {\n if (typeof input === \"string\") {\n return AccountAddress.fromStringStrict(input);\n }\n if (input instanceof Uint8Array) {\n return new AccountAddress(input);\n }\n return input;\n }\n // ===\n // Methods for checking validity.\n // ===\n\n /**\n * Check if the provided input is a valid AccountAddress.\n *\n * @param args - The arguments for validation.\n * @param args.input - A hex string representing an account address.\n * @param args.strict - If true, use strict parsing behavior; if false, use relaxed parsing behavior.\n *\n * @returns An object indicating whether the address is valid. If valid, valid = true; if not, valid = false with additional details.\n * If the address is invalid, invalidReason will explain why it is invalid, and invalidReasonMessage will provide the error message.\n * @group Implementation\n * @category Serialization\n */\n static isValid(args: { input: AccountAddressInput; strict?: boolean }): ParsingResult<AddressInvalidReason> {\n try {\n if (args.strict) {\n AccountAddress.fromStrict(args.input);\n } else {\n AccountAddress.from(args.input);\n }\n return { valid: true };\n } catch (error: any) {\n return {\n valid: false,\n invalidReason: error?.invalidReason,\n invalidReasonMessage: error?.message,\n };\n }\n }\n\n /**\n * Determine if two AccountAddresses are equal based on their underlying byte data.\n *\n * @param other - The AccountAddress to compare to.\n * @returns true if the AccountAddresses are equal, false if not.\n * @group Implementation\n * @category Serialization\n */\n equals(other: AccountAddress): boolean {\n if (this.data.length !== other.data.length) return false;\n return this.data.every((value, index) => value === other.data[index]);\n }\n}\n"]}
1
+ {"version":3,"sources":["/Users/maayansavir/work/aptos_repos/aptos-ts-sdk/dist/common/chunk-6MMUUJHX.js","../../src/core/common.ts","../../src/core/hex.ts","../../src/core/accountAddress.ts"],"names":["ParsingError","message","invalidReason","HexInvalidReason","Hex","_Hex","data","bytesToHex"],"mappings":"AAAA,ilBAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCQhM,IAAMA,CAAAA,CAAN,MAAA,QAA8B,KAAM,CAkBzC,WAAA,CAAYC,CAAAA,CAAiBC,CAAAA,CAAkB,CAC7C,KAAA,CAAMD,CAAO,CAAA,CACb,IAAA,CAAK,aAAA,CAAgBC,CACvB,CACF,CAAA,CC3BA,4CAAuC,IAS3BC,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CACVA,CAAAA,CAAA,SAAA,CAAY,WAAA,CACZA,CAAAA,CAAA,cAAA,CAAiB,gBAAA,CACjBA,CAAAA,CAAA,iBAAA,CAAoB,mBAAA,CAHVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,CAgCCC,CAAAA,aAAN,MAAMC,CAAI,CAUf,WAAA,CAAYC,CAAAA,CAAkB,CAC5B,IAAA,CAAK,IAAA,CAAOA,CACd,CAaA,YAAA,CAAA,CAA2B,CACzB,OAAO,IAAA,CAAK,IACd,CASA,qBAAA,CAAA,CAAgC,CAC9B,OAAOC,+BAAAA,IAAW,CAAK,IAAI,CAC7B,CASA,QAAA,CAAA,CAAmB,CACjB,MAAO,CAAA,EAAA,EAAK,IAAA,CAAK,qBAAA,CAAsB,CAAC,CAAA,CAAA;ACkVsB;AAnWV,SAAA","file":"/Users/maayansavir/work/aptos_repos/aptos-ts-sdk/dist/common/chunk-6MMUUJHX.js","sourcesContent":[null,"// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This error is used to explain why parsing failed.\n * @group Implementation\n * @category Serialization\n */\nexport class ParsingError<T> extends Error {\n /**\n * This provides a programmatic way to access why parsing failed. Downstream devs\n * might want to use this to build their own error messages if the default error\n * messages are not suitable for their use case. This should be an enum.\n * @group Implementation\n * @category Serialization\n */\n public invalidReason: T;\n\n /**\n * Creates an instance of the error with a specified message and invalid reason.\n *\n * @param message The error message that describes the issue.\n * @param invalidReason The reason why the input is considered invalid.\n * @group Implementation\n * @category Serialization\n */\n constructor(message: string, invalidReason: T) {\n super(message);\n this.invalidReason = invalidReason;\n }\n}\n\n/**\n * Whereas ParsingError is thrown when parsing fails, e.g. in a fromString function,\n * this type is returned from \"defensive\" functions like isValid.\n * @group Implementation\n * @category Serialization\n */\nexport type ParsingResult<T> = {\n /**\n * True if valid, false otherwise.\n * @group Implementation\n * @category Serialization\n */\n valid: boolean;\n\n /**\n * If valid is false, this will be a code explaining why parsing failed.\n * @group Implementation\n * @category Serialization\n */\n invalidReason?: T;\n\n /**\n * If valid is false, this will be a string explaining why parsing failed.\n * @group Implementation\n * @category Serialization\n */\n invalidReasonMessage?: string;\n};\n","// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bytesToHex, hexToBytes } from \"@noble/hashes/utils\";\nimport { ParsingError, ParsingResult } from \"./common\";\nimport { HexInput } from \"../types\";\n\n/**\n * Provides reasons for parsing failures related to hexadecimal values.\n * @group Implementation\n * @category Serialization\n */\nexport enum HexInvalidReason {\n TOO_SHORT = \"too_short\",\n INVALID_LENGTH = \"invalid_length\",\n INVALID_HEX_CHARS = \"invalid_hex_chars\",\n}\n\n/**\n * NOTE: Do not use this class when working with account addresses; use AccountAddress instead.\n * When accepting hex data as input to a function, prefer to accept HexInput and\n *\n * A helper class for working with hex data. Hex data, when represented as a string,\n * generally looks like this, for example: 0xaabbcc, 45cd32, etc.\n *\n * then use the static helper methods of this class to convert it into the desired\n * format. This enables the greatest flexibility for the developer.\n *\n * Example usage:\n * ```typescript\n * getTransactionByHash(txnHash: HexInput): Promise<Transaction> {\n * const txnHashString = Hex.fromHexInput(txnHash).toString();\n * return await getTransactionByHashInner(txnHashString);\n * }\n * ```\n * This call to `Hex.fromHexInput().toString()` converts the HexInput to a hex string\n * with a leading 0x prefix, regardless of what the input format was.\n *\n * Other ways to chain the functions together:\n * - `Hex.fromHexString({ hexInput: \"0x1f\" }).toUint8Array()`\n * - `new Hex([1, 3]).toStringWithoutPrefix()`\n * @group Implementation\n * @category Serialization\n */\nexport class Hex {\n private readonly data: Uint8Array;\n\n /**\n * Create a new Hex instance from a Uint8Array.\n *\n * @param data - The Uint8Array containing the data to initialize the Hex instance.\n * @group Implementation\n * @category Serialization\n */\n constructor(data: Uint8Array) {\n this.data = data;\n }\n\n // ===\n // Methods for representing an instance of Hex as other types.\n // ===\n\n /**\n * Get the inner hex data as a Uint8Array. The inner data is already a Uint8Array, so no conversion takes place.\n *\n * @returns Hex data as Uint8Array\n * @group Implementation\n * @category Serialization\n */\n toUint8Array(): Uint8Array {\n return this.data;\n }\n\n /**\n * Get the hex data as a string without the 0x prefix.\n *\n * @returns Hex string without 0x prefix\n * @group Implementation\n * @category Serialization\n */\n toStringWithoutPrefix(): string {\n return bytesToHex(this.data);\n }\n\n /**\n * Get the hex data as a string with the 0x prefix.\n *\n * @returns Hex string with 0x prefix\n * @group Implementation\n * @category Serialization\n */\n toString(): string {\n return `0x${this.toStringWithoutPrefix()}`;\n }\n\n // ===\n // Methods for creating an instance of Hex from other types.\n // ===\n\n /**\n * Converts a hex string into a Hex instance, allowing for both prefixed and non-prefixed formats.\n *\n * @param str - A hex string, with or without the 0x prefix.\n *\n * @throws ParsingError - If the hex string is too short, has an odd number of characters, or contains invalid hex characters.\n *\n * @returns Hex - The resulting Hex instance created from the provided string.\n * @group Implementation\n * @category Serialization\n */\n static fromHexString(str: string): Hex {\n let input = str;\n\n if (input.startsWith(\"0x\")) {\n input = input.slice(2);\n }\n\n if (input.length === 0) {\n throw new ParsingError(\n \"Hex string is too short, must be at least 1 char long, excluding the optional leading 0x.\",\n HexInvalidReason.TOO_SHORT,\n );\n }\n\n if (input.length % 2 !== 0) {\n throw new ParsingError(\"Hex string must be an even number of hex characters.\", HexInvalidReason.INVALID_LENGTH);\n }\n\n try {\n return new Hex(hexToBytes(input));\n } catch (error: any) {\n throw new ParsingError(\n `Hex string contains invalid hex characters: ${error?.message}`,\n HexInvalidReason.INVALID_HEX_CHARS,\n );\n }\n }\n\n /**\n * Converts an instance of HexInput, which can be a string or a Uint8Array, into a Hex instance.\n * This function is useful for transforming hexadecimal representations into a structured Hex object for further manipulation.\n *\n * @param hexInput - A HexInput which can be a string or Uint8Array.\n * @returns A Hex instance created from the provided hexInput.\n * @group Implementation\n * @category Serialization\n */\n static fromHexInput(hexInput: HexInput): Hex {\n if (hexInput instanceof Uint8Array) return new Hex(hexInput);\n return Hex.fromHexString(hexInput);\n }\n\n /**\n * Converts an instance of HexInput, which can be a string or a Uint8Array, into a Uint8Array.\n *\n * @param hexInput - A HexInput which can be a string or Uint8Array.\n * @returns A Uint8Array created from the provided hexInput.\n */\n static hexInputToUint8Array(hexInput: HexInput): Uint8Array {\n if (hexInput instanceof Uint8Array) return hexInput;\n return Hex.fromHexString(hexInput).toUint8Array();\n }\n\n /**\n * Converts a HexInput (string or Uint8Array) to a hex string with '0x' prefix.\n *\n * @param hexInput - The input to convert, either a hex string (with/without '0x' prefix) or Uint8Array\n * @returns A hex string with '0x' prefix (e.g., \"0x1234\")\n *\n * @example\n * ```typescript\n * Hex.hexInputToString(\"1234\") // returns \"0x1234\"\n * Hex.hexInputToString(\"0x1234\") // returns \"0x1234\"\n * Hex.hexInputToString(new Uint8Array([0x12, 0x34])) // returns \"0x1234\"\n * ```\n */\n static hexInputToString(hexInput: HexInput): string {\n return Hex.fromHexInput(hexInput).toString();\n }\n\n /**\n * Converts a HexInput (string or Uint8Array) to a hex string without '0x' prefix.\n *\n * @param hexInput - The input to convert, either a hex string (with/without '0x' prefix) or Uint8Array\n * @returns A hex string without '0x' prefix (e.g., \"1234\")\n *\n * @example\n * ```typescript\n * Hex.hexInputToStringWithoutPrefix(\"1234\") // returns \"1234\"\n * Hex.hexInputToStringWithoutPrefix(\"0x1234\") // returns \"1234\"\n * Hex.hexInputToStringWithoutPrefix(new Uint8Array([0x12, 0x34])) // returns \"1234\"\n * ```\n */\n static hexInputToStringWithoutPrefix(hexInput: HexInput): string {\n return Hex.fromHexInput(hexInput).toStringWithoutPrefix();\n }\n\n // ===\n // Methods for checking validity.\n // ===\n\n /**\n * Check if the provided string is a valid hexadecimal representation.\n *\n * @param str - A hex string representing byte data.\n *\n * @returns An object containing:\n * - valid: A boolean indicating whether the string is valid.\n * - invalidReason: The reason for invalidity if the string is not valid.\n * - invalidReasonMessage: A message explaining why the string is invalid.\n * @group Implementation\n * @category Serialization\n */\n static isValid(str: string): ParsingResult<HexInvalidReason> {\n try {\n Hex.fromHexString(str);\n return { valid: true };\n } catch (error: any) {\n return {\n valid: false,\n invalidReason: error?.invalidReason,\n invalidReasonMessage: error?.message,\n };\n }\n }\n\n /**\n * Determine if two Hex instances are equal by comparing their underlying byte data.\n *\n * @param other The Hex instance to compare to.\n * @returns true if the Hex instances are equal, false if not.\n * @group Implementation\n * @category Serialization\n */\n equals(other: Hex): boolean {\n if (this.data.length !== other.data.length) return false;\n return this.data.every((value, index) => value === other.data[index]);\n }\n}\n\nexport const hexToAsciiString = (hex: string) => new TextDecoder().decode(Hex.fromHexInput(hex).toUint8Array());\n","// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bytesToHex, hexToBytes } from \"@noble/hashes/utils\";\nimport { Serializable, Serializer } from \"../bcs/serializer\";\nimport { Deserializer } from \"../bcs/deserializer\";\nimport { ParsingError, ParsingResult } from \"./common\";\nimport { TransactionArgument } from \"../transactions/instances/transactionArgument\";\nimport { HexInput, ScriptTransactionArgumentVariants } from \"../types\";\n\n/**\n * Provides reasons for an address was invalid.\n * @group Implementation\n * @category Serialization\n */\nexport enum AddressInvalidReason {\n INCORRECT_NUMBER_OF_BYTES = \"incorrect_number_of_bytes\",\n INVALID_HEX_CHARS = \"invalid_hex_chars\",\n TOO_SHORT = \"too_short\",\n TOO_LONG = \"too_long\",\n LEADING_ZERO_X_REQUIRED = \"leading_zero_x_required\",\n LONG_FORM_REQUIRED_UNLESS_SPECIAL = \"long_form_required_unless_special\",\n INVALID_PADDING_ZEROES = \"INVALID_PADDING_ZEROES\",\n INVALID_PADDING_STRICTNESS = \"INVALID_PADDING_STRICTNESS\",\n}\n\n/**\n * The input for an account address, which can be either a hexadecimal string or a standard account address.\n * @group Implementation\n * @category Serialization\n */\nexport type AccountAddressInput = HexInput | AccountAddress;\n\n/**\n * NOTE: Only use this class for account addresses. For other hex data, e.g. transaction\n * hashes, use the Hex class.\n *\n * AccountAddress is used for working with account addresses. Account addresses, when\n * represented as a string, generally look like these examples:\n * - 0x1\n * - 0xaa86fe99004361f747f91342ca13c426ca0cccb0c1217677180c9493bad6ef0c\n *\n * Proper formatting and parsing of account addresses is defined by AIP-40.\n * To learn more about the standard, read the AIP here:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * The comments in this class make frequent reference to the LONG and SHORT formats,\n * as well as \"special\" addresses. To learn what these refer to see AIP-40.\n * @group Implementation\n * @category Serialization\n */\nexport class AccountAddress extends Serializable implements TransactionArgument {\n /**\n * This is the internal representation of an account address.\n * @group Implementation\n * @category Serialization\n */\n readonly data: Uint8Array;\n\n /**\n * The number of bytes that make up an account address.\n * @group Implementation\n * @category Serialization\n */\n static readonly LENGTH: number = 32;\n\n /**\n * The length of an address string in LONG form without a leading 0x.\n * @group Implementation\n * @category Serialization\n */\n static readonly LONG_STRING_LENGTH: number = 64;\n\n static ZERO: AccountAddress = AccountAddress.from(\"0x0\");\n\n static ONE: AccountAddress = AccountAddress.from(\"0x1\");\n\n static TWO: AccountAddress = AccountAddress.from(\"0x2\");\n\n static THREE: AccountAddress = AccountAddress.from(\"0x3\");\n\n static FOUR: AccountAddress = AccountAddress.from(\"0x4\");\n\n static A: AccountAddress = AccountAddress.from(\"0xA\");\n\n /**\n * Creates an instance of AccountAddress from a Uint8Array.\n *\n * This function ensures that the input data is exactly 32 bytes long, which is required for a valid account address.\n *\n * @param input A Uint8Array representing an account address.\n * @throws ParsingError if the input length is not equal to 32 bytes.\n * @group Implementation\n * @category Serialization\n */\n constructor(input: Uint8Array) {\n super();\n if (input.length !== AccountAddress.LENGTH) {\n throw new ParsingError(\n \"AccountAddress data should be exactly 32 bytes long\",\n AddressInvalidReason.INCORRECT_NUMBER_OF_BYTES,\n );\n }\n this.data = input;\n }\n\n /**\n * Determines if the address is classified as special, which is defined as 0x0 to 0xf inclusive.\n * In other words, the last byte of the address must be < 0b10000 (16)\n * and every other byte must be zero.\n *\n * For more information on how special addresses are defined, see AIP-40:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * @returns true if the address is special, false otherwise.\n * @group Implementation\n * @category Serialization\n */\n isSpecial(): boolean {\n return (\n this.data.slice(0, this.data.length - 1).every((byte) => byte === 0) && this.data[this.data.length - 1] < 0b10000\n );\n }\n // ===\n // Methods for representing an instance of AccountAddress as other types.\n // ===\n\n /**\n * Return the AccountAddress as a string as per AIP-40.\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n * This representation returns special addresses in SHORT form (0xf)\n * and other addresses in LONG form (0x + 64 characters).\n *\n * @returns AccountAddress as a string conforming to AIP-40.\n * @group Implementation\n * @category Serialization\n */\n toString(): `0x${string}` {\n return `0x${this.toStringWithoutPrefix()}`;\n }\n\n /**\n * Return the AccountAddress as a string conforming to AIP-40 but without the leading 0x.\n *\n * NOTE: Prefer to use `toString` where possible.\n *\n * @returns AccountAddress as a string without the leading 0x.\n * @group Implementation\n * @category Serialization\n */\n toStringWithoutPrefix(): string {\n let hex = bytesToHex(this.data);\n if (this.isSpecial()) {\n hex = hex[hex.length - 1];\n }\n return hex;\n }\n\n /**\n * Convert the account address to a string in LONG format, which is always 0x followed by 64 hex characters.\n *\n * NOTE: Prefer to use `toString` where possible, as it formats special addresses using the SHORT form (no leading 0s).\n *\n * @returns AccountAddress as a string in LONG form.\n * @group Implementation\n * @category Serialization\n */\n toStringLong(): `0x${string}` {\n return `0x${this.toStringLongWithoutPrefix()}`;\n }\n\n /**\n * Returns the account address as a string in LONG form without a leading 0x.\n * This function will include leading zeroes and will produce a string of 64 hex characters.\n *\n * NOTE: Prefer to use `toString` where possible, as it formats special addresses using the SHORT form (no leading 0s).\n *\n * @returns {string} The account address in LONG form.\n * @group Implementation\n * @category Serialization\n */\n toStringLongWithoutPrefix(): string {\n return bytesToHex(this.data);\n }\n\n /**\n * Convert the account address to a string in SHORT format, which is 0x followed by the shortest\n * possible representation (no leading zeros).\n *\n * @returns AccountAddress as a string in SHORT form.\n * @group Implementation\n * @category Serialization\n */\n toStringShort(): `0x${string}` {\n return `0x${this.toStringShortWithoutPrefix()}`;\n }\n\n /**\n * Returns a lossless short string representation of the address by trimming leading zeros.\n * If the address consists of all zeros, returns \"0\".\n *\n * @returns A string representation of the address without leading zeros\n * @group Implementation\n * @category Serialization\n */\n toStringShortWithoutPrefix(): string {\n const hex = bytesToHex(this.data).replace(/^0+/, \"\");\n return hex === \"\" ? \"0\" : hex;\n }\n\n /**\n * Get the inner data as a Uint8Array.\n * The inner data is already a Uint8Array, so no conversion takes place.\n *\n * @returns Hex data as Uint8Array\n * @group Implementation\n * @category Serialization\n */\n toUint8Array(): Uint8Array {\n return this.data;\n }\n\n /**\n * Serialize the AccountAddress to a Serializer instance's data buffer.\n * @param serializer The serializer to serialize the AccountAddress to.\n * @returns void\n * @example\n * const serializer = new Serializer();\n * const address = AccountAddress.fromString(\"0x1\");\n * address.serialize(serializer);\n * const bytes = serializer.toUint8Array();\n * // `bytes` is now the BCS-serialized address.\n * @group Implementation\n * @category Serialization\n */\n serialize(serializer: Serializer): void {\n serializer.serializeFixedBytes(this.data);\n }\n\n /**\n * Serializes the current instance into a byte sequence suitable for entry functions.\n * This allows for the proper encoding of data when interacting with entry functions in the blockchain.\n *\n * @param serializer - The serializer instance used to convert the data into bytes.\n * @group Implementation\n * @category Serialization\n */\n serializeForEntryFunction(serializer: Serializer): void {\n const bcsBytes = this.bcsToBytes();\n serializer.serializeBytes(bcsBytes);\n }\n\n /**\n * Serializes the current instance for use in a script function by encoding it into a byte sequence.\n * This process involves serializing the variant index and the instance data, making it suitable for transmission.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @group Implementation\n * @category Serialization\n */\n serializeForScriptFunction(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(ScriptTransactionArgumentVariants.Address);\n serializer.serialize(this);\n }\n\n /**\n * Deserialize an AccountAddress from the byte buffer in a Deserializer instance.\n * This function allows you to convert a byte representation of an AccountAddress into an instance of AccountAddress.\n * @param deserializer The deserializer to deserialize the AccountAddress from.\n * @returns An instance of AccountAddress.\n * @example\n * const bytes = hexToBytes(\"0x0102030405060708091011121314151617181920212223242526272829303132\");\n * const deserializer = new Deserializer(bytes);\n * const address = AccountAddress.deserialize(deserializer);\n * // `address` is now an instance of AccountAddress.\n * @group Implementation\n * @category Serialization\n */\n static deserialize(deserializer: Deserializer): AccountAddress {\n const bytes = deserializer.deserializeFixedBytes(AccountAddress.LENGTH);\n return new AccountAddress(bytes);\n }\n\n // ===\n // Methods for creating an instance of AccountAddress from other types.\n // ===\n\n /**\n * NOTE: This function has strict parsing behavior. For relaxed behavior, please use\n * the `fromString` function.\n *\n * Creates an instance of AccountAddress from a hex string.\n *\n * This function allows only the strictest formats defined by AIP-40. In short this\n * means only the following formats are accepted:\n *\n * - LONG\n * - SHORT for special addresses\n *\n * Where:\n * - LONG is defined as 0x + 64 hex characters.\n * - SHORT for special addresses is 0x0 to 0xf inclusive without padding zeroes.\n *\n * This means the following are not accepted:\n * - SHORT for non-special addresses.\n * - Any address without a leading 0x.\n *\n * @param input - A hex string representing an account address.\n *\n * @throws {ParsingError} If the hex string does not start with 0x or is not in a valid format.\n *\n * @remarks\n *\n * This function has strict parsing behavior. For relaxed behavior, please use the `fromString` function.\n *\n * @see AIP-40 documentation for more details on address formats:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * @returns An instance of AccountAddress.\n * @group Implementation\n * @category Serialization\n */\n static fromStringStrict(input: string): AccountAddress {\n // Assert the string starts with 0x.\n if (!input.startsWith(\"0x\")) {\n throw new ParsingError(\"Hex string must start with a leading 0x.\", AddressInvalidReason.LEADING_ZERO_X_REQUIRED);\n }\n\n const address = AccountAddress.fromString(input);\n\n // Check if the address is in LONG form. If it is not, this is only allowed for\n // special addresses, in which case we check it is in proper SHORT form.\n if (input.length !== AccountAddress.LONG_STRING_LENGTH + 2) {\n if (!address.isSpecial()) {\n throw new ParsingError(\n `The given hex string ${input} is not a special address, it must be represented as 0x + 64 chars.`,\n AddressInvalidReason.LONG_FORM_REQUIRED_UNLESS_SPECIAL,\n );\n } else if (input.length !== 3) {\n // 0x + one hex char is the only valid SHORT form for special addresses.\n throw new ParsingError(\n // eslint-disable-next-line max-len\n `The given hex string ${input} is a special address not in LONG form, it must be 0x0 to 0xf without padding zeroes.`,\n AddressInvalidReason.INVALID_PADDING_ZEROES,\n );\n }\n }\n\n return address;\n }\n\n /**\n * NOTE: This function has relaxed parsing behavior. For strict behavior, please use\n * the `fromStringStrict` function. Where possible use `fromStringStrict` rather than this\n * function, `fromString`.\n *\n * Creates an instance of AccountAddress from a hex string.\n *\n * This function allows all formats defined by AIP-40. In short this means the\n * following formats are accepted:\n *\n * - LONG, with or without leading 0x\n * - SHORT*, with or without leading 0x\n *\n * Where:\n * - LONG is 64 hex characters.\n * - SHORT* is 1 to 63 hex characters inclusive. The address can have missing values up to `maxMissingChars` before it is padded.\n * - Padding zeroes are allowed, e.g. 0x0123 is valid.\n *\n * Learn more about the different address formats by reading AIP-40:\n * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.\n *\n * @param input A hex string representing an account address.\n * @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.\n *\n * @returns An instance of AccountAddress.\n *\n * @throws ParsingError if the hex string is too short, too long, or contains invalid characters.\n * @group Implementation\n * @category Serialization\n */\n static fromString(input: string, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {\n let parsedInput = input;\n // Remove leading 0x for parsing.\n if (input.startsWith(\"0x\")) {\n parsedInput = input.slice(2);\n }\n\n // Ensure the address string is at least 1 character long.\n if (parsedInput.length === 0) {\n throw new ParsingError(\n \"Hex string is too short, must be 1 to 64 chars long, excluding the leading 0x.\",\n AddressInvalidReason.TOO_SHORT,\n );\n }\n\n // Ensure the address string is not longer than 64 characters.\n if (parsedInput.length > 64) {\n throw new ParsingError(\n \"Hex string is too long, must be 1 to 64 chars long, excluding the leading 0x.\",\n AddressInvalidReason.TOO_LONG,\n );\n }\n\n // Ensure that the maxMissingChars is between or equal to 0 and 63.\n if (maxMissingChars > 63 || maxMissingChars < 0) {\n throw new ParsingError(\n `maxMissingChars must be between or equal to 0 and 63. Received ${maxMissingChars}`,\n AddressInvalidReason.INVALID_PADDING_STRICTNESS,\n );\n }\n\n let addressBytes: Uint8Array;\n try {\n // Pad the address with leading zeroes, so it is 64 chars long and then convert\n // the hex string to bytes. Every two characters in a hex string constitutes a\n // single byte. So a 64 length hex string becomes a 32 byte array.\n addressBytes = hexToBytes(parsedInput.padStart(64, \"0\"));\n } catch (error: any) {\n // At this point the only way this can fail is if the hex string contains\n // invalid characters.\n throw new ParsingError(`Hex characters are invalid: ${error?.message}`, AddressInvalidReason.INVALID_HEX_CHARS);\n }\n\n const address = new AccountAddress(addressBytes);\n\n // Cannot pad the address if it has more than maxMissingChars missing.\n if (parsedInput.length < 64 - maxMissingChars) {\n if (!address.isSpecial()) {\n throw new ParsingError(\n `Hex string is too short, must be ${64 - maxMissingChars} to 64 chars long, excluding the leading 0x. You may need to fix \nthe addresss by padding it with 0s before passing it to \\`fromString\\` (e.g. <addressString>.padStart(64, '0')). \nReceived ${input}`,\n AddressInvalidReason.TOO_SHORT,\n );\n }\n }\n\n return address;\n }\n\n /**\n * Convenience method for creating an AccountAddress from various input types.\n * This function accepts a string, Uint8Array, or an existing AccountAddress instance and returns the corresponding\n * AccountAddress.\n *\n * @param input - The input to convert into an AccountAddress. This can be a string representation of an address, a Uint8Array,\n * or an existing AccountAddress.\n * @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.\n * @group Implementation\n * @category Serialization\n */\n static from(input: AccountAddressInput, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {\n if (typeof input === \"string\") {\n return AccountAddress.fromString(input, { maxMissingChars });\n }\n if (input instanceof Uint8Array) {\n return new AccountAddress(input);\n }\n return input;\n }\n\n /**\n * Create an AccountAddress from various input types, including strings, Uint8Array, and AccountAddress instances.\n *\n * @param input - The input to convert into an AccountAddress, which can be a string, a Uint8Array, or an AccountAddress.\n * @group Implementation\n * @category Serialization\n */\n static fromStrict(input: AccountAddressInput): AccountAddress {\n if (typeof input === \"string\") {\n return AccountAddress.fromStringStrict(input);\n }\n if (input instanceof Uint8Array) {\n return new AccountAddress(input);\n }\n return input;\n }\n // ===\n // Methods for checking validity.\n // ===\n\n /**\n * Check if the provided input is a valid AccountAddress.\n *\n * @param args - The arguments for validation.\n * @param args.input - A hex string representing an account address.\n * @param args.strict - If true, use strict parsing behavior; if false, use relaxed parsing behavior.\n *\n * @returns An object indicating whether the address is valid. If valid, valid = true; if not, valid = false with additional details.\n * If the address is invalid, invalidReason will explain why it is invalid, and invalidReasonMessage will provide the error message.\n * @group Implementation\n * @category Serialization\n */\n static isValid(args: { input: AccountAddressInput; strict?: boolean }): ParsingResult<AddressInvalidReason> {\n try {\n if (args.strict) {\n AccountAddress.fromStrict(args.input);\n } else {\n AccountAddress.from(args.input);\n }\n return { valid: true };\n } catch (error: any) {\n return {\n valid: false,\n invalidReason: error?.invalidReason,\n invalidReasonMessage: error?.message,\n };\n }\n }\n\n /**\n * Determine if two AccountAddresses are equal based on their underlying byte data.\n *\n * @param other - The AccountAddress to compare to.\n * @returns true if the AccountAddresses are equal, false if not.\n * @group Implementation\n * @category Serialization\n */\n equals(other: AccountAddress): boolean {\n if (this.data.length !== other.data.length) return false;\n return this.data.every((value, index) => value === other.data[index]);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { ChildProcessWithoutNullStreams } from 'child_process';
2
- import { e4 as Network, A as AccountAddress } from '../account-CmEgDBH6.js';
2
+ import { e5 as Network, A as AccountAddress } from '../account-BDwBREvt.js';
3
3
 
4
4
  /**
5
5
  * Represents a local node for running a localnet environment.
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/reneetso/aptos-ts-sdk/dist/common/cli/index.js","../../../src/cli/localNode.ts","../../../src/cli/move.ts"],"names":["LocalNode","args","resolve","reject","kill","err","cliCommand","cliArgs","currentPlatform","platform","spawnConfig","spawn","data","str","operational","start","last","sleep","Move","network","profile","extraArguments","showStdout"],"mappings":"AAAA,w0BAAyC,8CCEa,yFACrC,wBACQ,IAWZA,CAAAA,CAAN,KAAgB,CASrB,WAAA,CAAYC,CAAAA,CAAiC,CAR7C,IAAA,CAAS,qBAAA,CAAwB,EAAA,CAEjC,IAAA,CAAS,kBAAA,CAAqB,wBAAA,CAE9B,IAAA,CAAA,UAAA,CAAsB,CAAA,CAAA,CAEtB,IAAA,CAAA,OAAA,CAAiD,IAAA,CAG/C,IAAA,CAAK,UAAA,kCAAaA,CAAAA,2BAAM,YAAA,SAAc,CAAA,GACxC,CAUA,MAAM,IAAA,CAAA,CAAsB,CAC1B,MAAM,IAAI,OAAA,CAAQ,CAACC,CAAAA,CAASC,CAAAA,CAAAA,EAAW,iBAChC,IAAA,qBAAK,OAAA,6BAAS,KAAA,EAYnBC,gCAAAA,IAAK,CAAK,OAAA,CAAQ,GAAA,CAAMC,CAAAA,EAAQ,CAC1BA,CAAAA,CACFF,CAAAA,CAAOE,CAAG,CAAA,CAEVH,CAAAA,CAAQ,CAAA,CAAI,CAEhB,CAAC,CACH,CAAC,CACH,CAUA,MAAM,GAAA,CAAA,CAAqB,CACR,MAAM,IAAA,CAAK,kBAAA,CAAmB,CAAA,EAAA,CAI/C,IAAA,CAAK,KAAA,CAAM,CAAA,CACX,MAAM,IAAA,CAAK,oBAAA,CAAqB,CAAA,CAClC,CAWA,KAAA,CAAA,CAAc,CACZ,IAAMI,CAAAA,CAAa,KAAA,CACbC,CAAAA,CAAU,CAAC,OAAA,CAAS,MAAA,CAAQ,cAAA,CAAgB,iBAAA,CAAmB,cAAA,CAAgB,oBAAoB,CAAA,CAEnGC,CAAAA,CAAkBC,0BAAAA,CAAS,CAC3BC,CAAAA,CAAc,CAClB,GAAA,CAAK,CAAE,GAAG,OAAA,CAAQ,GAAA,CAAK,sBAAA,CAAwB,GAAI,CAAA,CACnD,GAAIF,CAAAA,GAAoB,OAAA,EAAW,CAAE,KAAA,CAAO,CAAA,CAAK,CACnD,CAAA,CAEA,IAAA,CAAK,OAAA,CAAUG,kCAAAA,CAAML,CAAYC,CAAAA,CAASG,CAAW,CAAA,iBAErD,IAAA,qBAAK,OAAA,qBAAQ,MAAA,6BAAQ,EAAA,mBAAG,MAAA,CAASE,CAAAA,EAAc,CAC7C,IAAMC,CAAAA,CAAMD,CAAAA,CAAK,QAAA,CAAS,CAAA,CAEtB,IAAA,CAAK,UAAA,EACP,OAAA,CAAQ,GAAA,CAAIC,CAAG,CAEnB,CAAC,GACH,CAUA,MAAM,oBAAA,CAAA,CAAyC,CAC7C,IAAIC,CAAAA,CAAc,MAAM,IAAA,CAAK,kBAAA,CAAmB,CAAA,CAC1CC,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAA,CACvBC,CAAAA,CAAOD,CAAAA,CAEX,GAAA,CAAA,CAAO,CAACD,CAAAA,EAAeC,CAAAA,CAAQ,IAAA,CAAK,qBAAA,CAAwBC,CAAAA,CAAAA,CAE1D,MAAMC,iCAAAA,GAAU,CAAA,CAEhBH,CAAAA,CAAc,MAAM,IAAA,CAAK,kBAAA,CAAmB,CAAA,CAC5CE,CAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAA,CAKtB,EAAA,CAAI,CAACF,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,yBAAyB,CAAA,CAG3C,MAAO,CAAA,CACT,CASA,MAAM,kBAAA,CAAA,CAAuC,CAC3C,GAAI,CAGF,MAAA,CADa,MAAM,KAAA,CAAM,IAAA,CAAK,kBAAkB,CAAA,CAAA,CACvC,MAAA,GAAW,GAItB,CAAA,UAAmB,CACjB,MAAO,CAAA,CACT,CACF,CACF,CAAA,CC5JA,IAaaI,CAAAA,CAAN,KAAW,CAehB,MAAM,IAAA,CAAKjB,CAAAA,CAKqB,CAC9B,GAAM,CAAE,OAAA,CAAAkB,CAAAA,CAAS,OAAA,CAAAC,CAAAA,CAAS,cAAA,CAAAC,CAAAA,CAAgB,UAAA,CAAAC,CAAW,CAAA,CAAIrB,CAAAA,CACnDM,CAAAA,CAAU,CAAC,OAAA,CAAS,MAAA,CAAQ,CAAA,UAAA,mBAAaY,CAAAA,SAAW,SAAO,CAAA,CAAA","file":"/Users/reneetso/aptos-ts-sdk/dist/common/cli/index.js","sourcesContent":[null,"/* eslint-disable no-console */\n\nimport { ChildProcessWithoutNullStreams, spawn } from \"child_process\";\nimport kill from \"tree-kill\";\nimport { platform } from \"os\";\n\nimport { sleep } from \"../utils/helpers\";\n\n/**\n * Represents a local node for running a localnet environment.\n * This class provides methods to start, stop, and check the status of the localnet process.\n * It manages the lifecycle of the node process and ensures that it is operational before executing tests.\n * @group Implementation\n * @category CLI\n */\nexport class LocalNode {\n readonly MAXIMUM_WAIT_TIME_SEC = 75;\n\n readonly READINESS_ENDPOINT = \"http://127.0.0.1:8070/\";\n\n showStdout: boolean = true;\n\n process: ChildProcessWithoutNullStreams | null = null;\n\n constructor(args?: { showStdout?: boolean }) {\n this.showStdout = args?.showStdout ?? true;\n }\n\n /**\n * Kills the current process and all its descendant processes.\n *\n * @returns {Promise<void>} A promise that resolves to true if the process was successfully killed.\n * @throws {Error} If there is an error while attempting to kill the process.\n * @group Implementation\n * @category CLI\n */\n async stop(): Promise<void> {\n await new Promise((resolve, reject) => {\n if (!this.process?.pid) return;\n\n /**\n * Terminates the process associated with the given process ID.\n *\n * @param pid - The process ID of the process to be terminated.\n * @param callback - A function that is called after the termination attempt is complete.\n * @param callback.err - An error object if the termination failed; otherwise, null.\n * @param callback.resolve - A boolean indicating whether the termination was successful.\n * @group Implementation\n * @category CLI\n */\n kill(this.process.pid, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve(true);\n }\n });\n });\n }\n\n /**\n * Runs a localnet and waits for the process to be up.\n * If the local node process is already running, it returns without starting the process.\n *\n * @returns {Promise<void>} A promise that resolves when the process is up.\n * @group Implementation\n * @category CLI\n */\n async run(): Promise<void> {\n const nodeIsUp = await this.checkIfProcessIsUp();\n if (nodeIsUp) {\n return;\n }\n this.start();\n await this.waitUntilProcessIsUp();\n }\n\n /**\n * Starts the localnet by running the Aptos node with the specified command-line arguments.\n *\n * @returns {void}\n *\n * @throws {Error} If there is an issue starting the localnet.\n * @group Implementation\n * @category CLI\n */\n start(): void {\n const cliCommand = \"npx\";\n const cliArgs = [\"aptos\", \"node\", \"run-localnet\", \"--force-restart\", \"--assume-yes\", \"--with-indexer-api\"];\n\n const currentPlatform = platform();\n const spawnConfig = {\n env: { ...process.env, ENABLE_KEYLESS_DEFAULT: \"1\" },\n ...(currentPlatform === \"win32\" && { shell: true }),\n };\n\n this.process = spawn(cliCommand, cliArgs, spawnConfig);\n\n this.process.stdout?.on(\"data\", (data: any) => {\n const str = data.toString();\n // Print local node output log\n if (this.showStdout) {\n console.log(str);\n }\n });\n }\n\n /**\n * Waits for the localnet process to be operational within a specified maximum wait time.\n * This function continuously checks if the process is up and will throw an error if it fails to start.\n *\n * @returns Promise<boolean> - Resolves to true if the process is up, otherwise throws an error.\n * @group Implementation\n * @category CLI\n */\n async waitUntilProcessIsUp(): Promise<boolean> {\n let operational = await this.checkIfProcessIsUp();\n const start = Date.now() / 1000;\n let last = start;\n\n while (!operational && start + this.MAXIMUM_WAIT_TIME_SEC > last) {\n // eslint-disable-next-line no-await-in-loop\n await sleep(1000);\n // eslint-disable-next-line no-await-in-loop\n operational = await this.checkIfProcessIsUp();\n last = Date.now() / 1000;\n }\n\n // If we are here it means something blocks the process to start.\n // Might worth checking if another process is running on port 8080\n if (!operational) {\n throw new Error(\"Process failed to start\");\n }\n\n return true;\n }\n\n /**\n * Checks if the localnet is up by querying the readiness endpoint.\n *\n * @returns Promise<boolean> - A promise that resolves to true if the localnet is up, otherwise false.\n * @group Implementation\n * @category CLI\n */\n async checkIfProcessIsUp(): Promise<boolean> {\n try {\n // Query readiness endpoint\n const data = await fetch(this.READINESS_ENDPOINT);\n if (data.status === 200) {\n return true;\n }\n return false;\n } catch (err: any) {\n return false;\n }\n }\n}\n","import { spawn } from \"child_process\";\nimport { platform } from \"os\";\n\nimport { AccountAddress } from \"../core\";\nimport { Network } from \"../utils\";\n\n/**\n * Class representing a Move package management utility for the Aptos blockchain.\n * This class provides methods to initialize directories, compile packages, run tests, publish modules, create objects, upgrade\n * packages, build transaction payloads, and run scripts.\n * @group Implementation\n * @category CLI\n */\nexport class Move {\n /**\n * Initialize the current directory for Aptos by configuring the necessary settings.\n * Configuration will be pushed into .aptos/config.yaml.\n *\n * @param args - The arguments for initialization.\n * @param args.network - Optional Network type argument to use for default settings; defaults to local.\n * @param args.profile - Optional Profile to use from the config file; defaults to 'default'. This will override associated\n * settings such as the REST URL, the Faucet URL, and the private key arguments.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async init(args: {\n network?: Network;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { network, profile, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"init\", `--network=${network ?? \"local\"}`, `--profile=${profile ?? \"default\"}`];\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Compile a Move package located at the specified directory path.\n * This function helps in preparing the Move package for deployment or further processing.\n *\n * @param args - The arguments for compiling the package.\n * @param args.packageDirectoryPath - Path to a Move package (the folder with a Move.toml file).\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async compile(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"move\", \"compile\", \"--package-dir\", packageDirectoryPath];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Run Move unit tests for a specified package.\n *\n * @param args - The arguments for running the tests.\n * @param args.packageDirectoryPath - The path to a Move package (the folder containing a Move.toml file).\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns The stdout output from running the tests.\n * @group Implementation\n * @category CLI\n */\n async test(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"move\", \"test\", \"--package-dir\", packageDirectoryPath];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Publishes the modules to the publisher account on the Aptos blockchain.\n *\n * @param args - The arguments for publishing the modules.\n * @param args.packageDirectoryPath - The path to a move package (the folder with a Move.toml file).\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async publish(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"publish\",\n \"--package-dir\",\n packageDirectoryPath,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Create a new object and publish the Move package to it on the Aptos blockchain.\n *\n * @param args - The arguments for creating the object and publishing the package.\n * @param args.packageDirectoryPath - Path to a Move package (the folder with a Move.toml file).\n * @param args.addressName - Address name for the Move package.\n * @param args.namedAddresses - Named addresses for the Move binary.\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns The object address.\n *\n * A complete example in CLI:\n * aptos move create-object-and-publish-package \\\n * --package-dir path_to_directory_that_has_move.toml \\\n * --address-name launchpad_addr \\\n * --named-addresses \"launchpad_addr=0x123,initial_creator_addr=0x456\" \\\n * --profile my_profile \\\n * --assume-yes\n * @group Implementation\n * @category CLI\n */\n async createObjectAndPublishPackage(args: {\n packageDirectoryPath: string;\n addressName: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ objectAddress: string }> {\n const { packageDirectoryPath, addressName, namedAddresses, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"create-object-and-publish-package\",\n \"--package-dir\",\n packageDirectoryPath,\n \"--address-name\",\n addressName,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n const { output } = await this.runCommand(cliArgs, showStdout);\n return { objectAddress: this.extractAddressFromOutput(output) };\n }\n\n /**\n * Upgrade a Move package previously published to an object on the Aptos blockchain.\n * The caller must be the object owner to execute this function.\n *\n * @param args - The arguments for upgrading the object package.\n * @param args.packageDirectoryPath - Path to a Move package (the folder with a Move.toml file).\n * @param args.objectAddress - Address of the object that the Move package published to. Ex. 0x1000\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async upgradeObjectPackage(args: {\n packageDirectoryPath: string;\n objectAddress: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, objectAddress, namedAddresses, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"upgrade-object-package\",\n \"--package-dir\",\n packageDirectoryPath,\n \"--object-address\",\n objectAddress,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Build a publication transaction payload and store it in a JSON output file.\n *\n * @param args - The arguments for building the publishing payload.\n * @param args.packageDirectoryPath - Path to a move package (the folder with a Move.toml file).\n * @param args.outputFile - Output file to write the publication transaction to.\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"] *\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async buildPublishPayload(args: {\n packageDirectoryPath: string;\n outputFile: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { outputFile, packageDirectoryPath, namedAddresses, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"build-publish-payload\",\n \"--json-output-file\",\n outputFile,\n \"--package-dir\",\n packageDirectoryPath,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Runs a Move script using the provided compiled script path and optional parameters. Ensure that the script is compiled\n * before executing this function.\n *\n * @param args - The arguments for running the script.\n * @param args.compiledScriptPath - Path to a compiled Move script bytecode file.\n * Ex. \"build/my_package/bytecode_scripts/my_move_script.mv\"\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns The standard output from running the script.\n * @group Implementation\n * @category CLI\n */\n async runScript(args: {\n compiledScriptPath: string;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { compiledScriptPath, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"run-script\",\n \"--compiled-script-path\",\n compiledScriptPath,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n async gasProfile(args: {\n network: string;\n transactionId: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string; result?: any }> {\n const { network, transactionId, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"move\", \"replay\", \"--profile-gas\", \"--network\", network, \"--txn-id\", transactionId];\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Run a command with the specified arguments and return the output.\n *\n * @param args - An array of strings representing the command-line arguments to be passed to the command.\n * @param showStdout - Show the standard output generated by the command.\n * @returns The standard output generated by the command.\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private async runCommand(args: Array<string>, showStdout: boolean = true): Promise<{ result?: any; output: string }> {\n return new Promise((resolve, reject) => {\n const currentPlatform = platform();\n let childProcess;\n let stdout = \"\";\n // CLI final stdout is the Result/Error JSON string output\n // so we need to keep track of the last stdout\n let lastStdout = \"\";\n\n // Check if current OS is windows\n if (currentPlatform === \"win32\") {\n childProcess = spawn(\"npx\", args, { shell: true });\n } else {\n childProcess = spawn(\"npx\", args);\n }\n\n childProcess.stdout.on(\"data\", (data) => {\n lastStdout = data.toString();\n stdout += data.toString();\n });\n\n if (showStdout) {\n childProcess.stdout.pipe(process.stdout);\n childProcess.stderr.pipe(process.stderr);\n }\n process.stdin.pipe(childProcess.stdin);\n\n childProcess.on(\"close\", (code) => {\n if (code === 0) {\n try {\n // parse the last stdout as it might be the result\n const parsed = JSON.parse(lastStdout);\n if (parsed.Error) {\n reject(new Error(`Error: ${parsed.Error}`)); // Reject if the \"Error\" key exists\n } else if (parsed.Result) {\n resolve({ result: parsed.Result, output: stdout }); // Resolve if the \"Result\" key exists\n }\n } catch (error: any) {\n // resolve the stdout as it might be just a stdout\n resolve({ output: stdout });\n }\n } else {\n reject(new Error(`Child process exited with code ${code}`)); // Reject with an error if the child process exits with an error code\n }\n });\n });\n }\n\n /**\n * Convert named addresses from a Map into an array separated by a comma.\n *\n * @param namedAddresses - A Map where the key is a string representing the name and the value is an AccountAddress.\n * Ex. {'alice' => '0x123', 'bob' => '0x456'}\n * @returns An array of named addresses formatted as strings separated by a comma. Ex. \"alice=0x123,bob=0x456\"\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private prepareNamedAddresses(namedAddresses: Map<string, AccountAddress>): Array<string> {\n const totalNames = namedAddresses.size;\n const newArgs: Array<string> = [];\n\n if (totalNames === 0) {\n return newArgs;\n }\n\n newArgs.push(\"--named-addresses\");\n\n const names: Array<string> = [];\n namedAddresses.forEach((value, key) => {\n const toAppend = `${key}=${value.toString()}`;\n names.push(toAppend);\n });\n newArgs.push(names.join(\",\"));\n return newArgs;\n }\n\n /**\n * Parse named addresses from a Record type into a Map.\n *\n * This function transforms a collection of named addresses into a more accessible format by mapping each name to its\n * corresponding address.\n *\n * @param namedAddresses - A record containing named addresses where the key is the name and the value is the AccountAddress.\n * @returns A Map where each key is a name and each value is the corresponding address.\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private parseNamedAddresses(namedAddresses: Record<string, AccountAddress>): Map<string, AccountAddress> {\n const addressesMap = new Map();\n\n Object.keys(namedAddresses).forEach((key) => {\n const address = namedAddresses[key];\n addressesMap.set(key, address);\n });\n\n return addressesMap;\n }\n\n /**\n * Extracts the object address from the provided output string.\n *\n * @param output - The output string containing the object address.\n * @returns The extracted object address.\n * @throws Error if the object address cannot be extracted from the output.\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private extractAddressFromOutput(output: string): string {\n const match = output.match(\"Code was successfully deployed to object address (0x[0-9a-fA-F]+)\");\n if (match) {\n return match[1];\n }\n throw new Error(\"Failed to extract object address from output\");\n }\n}\n"]}
1
+ {"version":3,"sources":["/Users/maayansavir/work/aptos_repos/aptos-ts-sdk/dist/common/cli/index.js","../../../src/cli/localNode.ts","../../../src/cli/move.ts"],"names":["LocalNode","args","resolve","reject","kill","err","cliCommand","cliArgs","currentPlatform","platform","spawnConfig","spawn","data","str","operational","start","last","sleep","Move","network","profile","extraArguments","showStdout"],"mappings":"AAAA,w0BAAyC,8CCEa,yFACrC,wBACQ,IAWZA,CAAAA,CAAN,KAAgB,CASrB,WAAA,CAAYC,CAAAA,CAAiC,CAR7C,IAAA,CAAS,qBAAA,CAAwB,EAAA,CAEjC,IAAA,CAAS,kBAAA,CAAqB,wBAAA,CAE9B,IAAA,CAAA,UAAA,CAAsB,CAAA,CAAA,CAEtB,IAAA,CAAA,OAAA,CAAiD,IAAA,CAG/C,IAAA,CAAK,UAAA,kCAAaA,CAAAA,2BAAM,YAAA,SAAc,CAAA,GACxC,CAUA,MAAM,IAAA,CAAA,CAAsB,CAC1B,MAAM,IAAI,OAAA,CAAQ,CAACC,CAAAA,CAASC,CAAAA,CAAAA,EAAW,iBAChC,IAAA,qBAAK,OAAA,6BAAS,KAAA,EAYnBC,gCAAAA,IAAK,CAAK,OAAA,CAAQ,GAAA,CAAMC,CAAAA,EAAQ,CAC1BA,CAAAA,CACFF,CAAAA,CAAOE,CAAG,CAAA,CAEVH,CAAAA,CAAQ,CAAA,CAAI,CAEhB,CAAC,CACH,CAAC,CACH,CAUA,MAAM,GAAA,CAAA,CAAqB,CACR,MAAM,IAAA,CAAK,kBAAA,CAAmB,CAAA,EAAA,CAI/C,IAAA,CAAK,KAAA,CAAM,CAAA,CACX,MAAM,IAAA,CAAK,oBAAA,CAAqB,CAAA,CAClC,CAWA,KAAA,CAAA,CAAc,CACZ,IAAMI,CAAAA,CAAa,KAAA,CACbC,CAAAA,CAAU,CAAC,OAAA,CAAS,MAAA,CAAQ,cAAA,CAAgB,iBAAA,CAAmB,cAAA,CAAgB,oBAAoB,CAAA,CAEnGC,CAAAA,CAAkBC,0BAAAA,CAAS,CAC3BC,CAAAA,CAAc,CAClB,GAAA,CAAK,CAAE,GAAG,OAAA,CAAQ,GAAA,CAAK,sBAAA,CAAwB,GAAI,CAAA,CACnD,GAAIF,CAAAA,GAAoB,OAAA,EAAW,CAAE,KAAA,CAAO,CAAA,CAAK,CACnD,CAAA,CAEA,IAAA,CAAK,OAAA,CAAUG,kCAAAA,CAAML,CAAYC,CAAAA,CAASG,CAAW,CAAA,iBAErD,IAAA,qBAAK,OAAA,qBAAQ,MAAA,6BAAQ,EAAA,mBAAG,MAAA,CAASE,CAAAA,EAAc,CAC7C,IAAMC,CAAAA,CAAMD,CAAAA,CAAK,QAAA,CAAS,CAAA,CAEtB,IAAA,CAAK,UAAA,EACP,OAAA,CAAQ,GAAA,CAAIC,CAAG,CAEnB,CAAC,GACH,CAUA,MAAM,oBAAA,CAAA,CAAyC,CAC7C,IAAIC,CAAAA,CAAc,MAAM,IAAA,CAAK,kBAAA,CAAmB,CAAA,CAC1CC,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAA,CACvBC,CAAAA,CAAOD,CAAAA,CAEX,GAAA,CAAA,CAAO,CAACD,CAAAA,EAAeC,CAAAA,CAAQ,IAAA,CAAK,qBAAA,CAAwBC,CAAAA,CAAAA,CAE1D,MAAMC,iCAAAA,GAAU,CAAA,CAEhBH,CAAAA,CAAc,MAAM,IAAA,CAAK,kBAAA,CAAmB,CAAA,CAC5CE,CAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAA,CAKtB,EAAA,CAAI,CAACF,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,yBAAyB,CAAA,CAG3C,MAAO,CAAA,CACT,CASA,MAAM,kBAAA,CAAA,CAAuC,CAC3C,GAAI,CAGF,MAAA,CADa,MAAM,KAAA,CAAM,IAAA,CAAK,kBAAkB,CAAA,CAAA,CACvC,MAAA,GAAW,GAItB,CAAA,UAAmB,CACjB,MAAO,CAAA,CACT,CACF,CACF,CAAA,CC5JA,IAaaI,CAAAA,CAAN,KAAW,CAehB,MAAM,IAAA,CAAKjB,CAAAA,CAKqB,CAC9B,GAAM,CAAE,OAAA,CAAAkB,CAAAA,CAAS,OAAA,CAAAC,CAAAA,CAAS,cAAA,CAAAC,CAAAA,CAAgB,UAAA,CAAAC,CAAW,CAAA,CAAIrB,CAAAA,CACnDM,CAAAA,CAAU,CAAC,OAAA,CAAS,MAAA,CAAQ,CAAA,UAAA,mBAAaY,CAAAA,SAAW,SAAO,CAAA,CAAA","file":"/Users/maayansavir/work/aptos_repos/aptos-ts-sdk/dist/common/cli/index.js","sourcesContent":[null,"/* eslint-disable no-console */\n\nimport { ChildProcessWithoutNullStreams, spawn } from \"child_process\";\nimport kill from \"tree-kill\";\nimport { platform } from \"os\";\n\nimport { sleep } from \"../utils/helpers\";\n\n/**\n * Represents a local node for running a localnet environment.\n * This class provides methods to start, stop, and check the status of the localnet process.\n * It manages the lifecycle of the node process and ensures that it is operational before executing tests.\n * @group Implementation\n * @category CLI\n */\nexport class LocalNode {\n readonly MAXIMUM_WAIT_TIME_SEC = 75;\n\n readonly READINESS_ENDPOINT = \"http://127.0.0.1:8070/\";\n\n showStdout: boolean = true;\n\n process: ChildProcessWithoutNullStreams | null = null;\n\n constructor(args?: { showStdout?: boolean }) {\n this.showStdout = args?.showStdout ?? true;\n }\n\n /**\n * Kills the current process and all its descendant processes.\n *\n * @returns {Promise<void>} A promise that resolves to true if the process was successfully killed.\n * @throws {Error} If there is an error while attempting to kill the process.\n * @group Implementation\n * @category CLI\n */\n async stop(): Promise<void> {\n await new Promise((resolve, reject) => {\n if (!this.process?.pid) return;\n\n /**\n * Terminates the process associated with the given process ID.\n *\n * @param pid - The process ID of the process to be terminated.\n * @param callback - A function that is called after the termination attempt is complete.\n * @param callback.err - An error object if the termination failed; otherwise, null.\n * @param callback.resolve - A boolean indicating whether the termination was successful.\n * @group Implementation\n * @category CLI\n */\n kill(this.process.pid, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve(true);\n }\n });\n });\n }\n\n /**\n * Runs a localnet and waits for the process to be up.\n * If the local node process is already running, it returns without starting the process.\n *\n * @returns {Promise<void>} A promise that resolves when the process is up.\n * @group Implementation\n * @category CLI\n */\n async run(): Promise<void> {\n const nodeIsUp = await this.checkIfProcessIsUp();\n if (nodeIsUp) {\n return;\n }\n this.start();\n await this.waitUntilProcessIsUp();\n }\n\n /**\n * Starts the localnet by running the Aptos node with the specified command-line arguments.\n *\n * @returns {void}\n *\n * @throws {Error} If there is an issue starting the localnet.\n * @group Implementation\n * @category CLI\n */\n start(): void {\n const cliCommand = \"npx\";\n const cliArgs = [\"aptos\", \"node\", \"run-localnet\", \"--force-restart\", \"--assume-yes\", \"--with-indexer-api\"];\n\n const currentPlatform = platform();\n const spawnConfig = {\n env: { ...process.env, ENABLE_KEYLESS_DEFAULT: \"1\" },\n ...(currentPlatform === \"win32\" && { shell: true }),\n };\n\n this.process = spawn(cliCommand, cliArgs, spawnConfig);\n\n this.process.stdout?.on(\"data\", (data: any) => {\n const str = data.toString();\n // Print local node output log\n if (this.showStdout) {\n console.log(str);\n }\n });\n }\n\n /**\n * Waits for the localnet process to be operational within a specified maximum wait time.\n * This function continuously checks if the process is up and will throw an error if it fails to start.\n *\n * @returns Promise<boolean> - Resolves to true if the process is up, otherwise throws an error.\n * @group Implementation\n * @category CLI\n */\n async waitUntilProcessIsUp(): Promise<boolean> {\n let operational = await this.checkIfProcessIsUp();\n const start = Date.now() / 1000;\n let last = start;\n\n while (!operational && start + this.MAXIMUM_WAIT_TIME_SEC > last) {\n // eslint-disable-next-line no-await-in-loop\n await sleep(1000);\n // eslint-disable-next-line no-await-in-loop\n operational = await this.checkIfProcessIsUp();\n last = Date.now() / 1000;\n }\n\n // If we are here it means something blocks the process to start.\n // Might worth checking if another process is running on port 8080\n if (!operational) {\n throw new Error(\"Process failed to start\");\n }\n\n return true;\n }\n\n /**\n * Checks if the localnet is up by querying the readiness endpoint.\n *\n * @returns Promise<boolean> - A promise that resolves to true if the localnet is up, otherwise false.\n * @group Implementation\n * @category CLI\n */\n async checkIfProcessIsUp(): Promise<boolean> {\n try {\n // Query readiness endpoint\n const data = await fetch(this.READINESS_ENDPOINT);\n if (data.status === 200) {\n return true;\n }\n return false;\n } catch (err: any) {\n return false;\n }\n }\n}\n","import { spawn } from \"child_process\";\nimport { platform } from \"os\";\n\nimport { AccountAddress } from \"../core\";\nimport { Network } from \"../utils\";\n\n/**\n * Class representing a Move package management utility for the Aptos blockchain.\n * This class provides methods to initialize directories, compile packages, run tests, publish modules, create objects, upgrade\n * packages, build transaction payloads, and run scripts.\n * @group Implementation\n * @category CLI\n */\nexport class Move {\n /**\n * Initialize the current directory for Aptos by configuring the necessary settings.\n * Configuration will be pushed into .aptos/config.yaml.\n *\n * @param args - The arguments for initialization.\n * @param args.network - Optional Network type argument to use for default settings; defaults to local.\n * @param args.profile - Optional Profile to use from the config file; defaults to 'default'. This will override associated\n * settings such as the REST URL, the Faucet URL, and the private key arguments.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async init(args: {\n network?: Network;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { network, profile, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"init\", `--network=${network ?? \"local\"}`, `--profile=${profile ?? \"default\"}`];\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Compile a Move package located at the specified directory path.\n * This function helps in preparing the Move package for deployment or further processing.\n *\n * @param args - The arguments for compiling the package.\n * @param args.packageDirectoryPath - Path to a Move package (the folder with a Move.toml file).\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async compile(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"move\", \"compile\", \"--package-dir\", packageDirectoryPath];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Run Move unit tests for a specified package.\n *\n * @param args - The arguments for running the tests.\n * @param args.packageDirectoryPath - The path to a Move package (the folder containing a Move.toml file).\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns The stdout output from running the tests.\n * @group Implementation\n * @category CLI\n */\n async test(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"move\", \"test\", \"--package-dir\", packageDirectoryPath];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Publishes the modules to the publisher account on the Aptos blockchain.\n *\n * @param args - The arguments for publishing the modules.\n * @param args.packageDirectoryPath - The path to a move package (the folder with a Move.toml file).\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async publish(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"publish\",\n \"--package-dir\",\n packageDirectoryPath,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Create a new object and publish the Move package to it on the Aptos blockchain.\n *\n * @param args - The arguments for creating the object and publishing the package.\n * @param args.packageDirectoryPath - Path to a Move package (the folder with a Move.toml file).\n * @param args.addressName - Address name for the Move package.\n * @param args.namedAddresses - Named addresses for the Move binary.\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns The object address.\n *\n * A complete example in CLI:\n * aptos move create-object-and-publish-package \\\n * --package-dir path_to_directory_that_has_move.toml \\\n * --address-name launchpad_addr \\\n * --named-addresses \"launchpad_addr=0x123,initial_creator_addr=0x456\" \\\n * --profile my_profile \\\n * --assume-yes\n * @group Implementation\n * @category CLI\n */\n async createObjectAndPublishPackage(args: {\n packageDirectoryPath: string;\n addressName: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ objectAddress: string }> {\n const { packageDirectoryPath, addressName, namedAddresses, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"create-object-and-publish-package\",\n \"--package-dir\",\n packageDirectoryPath,\n \"--address-name\",\n addressName,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n const { output } = await this.runCommand(cliArgs, showStdout);\n return { objectAddress: this.extractAddressFromOutput(output) };\n }\n\n /**\n * Upgrade a Move package previously published to an object on the Aptos blockchain.\n * The caller must be the object owner to execute this function.\n *\n * @param args - The arguments for upgrading the object package.\n * @param args.packageDirectoryPath - Path to a Move package (the folder with a Move.toml file).\n * @param args.objectAddress - Address of the object that the Move package published to. Ex. 0x1000\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async upgradeObjectPackage(args: {\n packageDirectoryPath: string;\n objectAddress: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, objectAddress, namedAddresses, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"upgrade-object-package\",\n \"--package-dir\",\n packageDirectoryPath,\n \"--object-address\",\n objectAddress,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Build a publication transaction payload and store it in a JSON output file.\n *\n * @param args - The arguments for building the publishing payload.\n * @param args.packageDirectoryPath - Path to a move package (the folder with a Move.toml file).\n * @param args.outputFile - Output file to write the publication transaction to.\n * @param args.namedAddresses - Named addresses for the move binary. Ex. { alice: 0x1234, bob: 0x5678 }\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"] *\n * @returns stdout\n * @group Implementation\n * @category CLI\n */\n async buildPublishPayload(args: {\n packageDirectoryPath: string;\n outputFile: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { outputFile, packageDirectoryPath, namedAddresses, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"build-publish-payload\",\n \"--json-output-file\",\n outputFile,\n \"--package-dir\",\n packageDirectoryPath,\n ];\n\n const addressesMap = this.parseNamedAddresses(namedAddresses);\n\n cliArgs.push(...this.prepareNamedAddresses(addressesMap));\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Runs a Move script using the provided compiled script path and optional parameters. Ensure that the script is compiled\n * before executing this function.\n *\n * @param args - The arguments for running the script.\n * @param args.compiledScriptPath - Path to a compiled Move script bytecode file.\n * Ex. \"build/my_package/bytecode_scripts/my_move_script.mv\"\n * @param args.profile - Optional profile to use from the config file.\n * @param args.extraArguments - Optional extra arguments to include in the form of an array of strings.\n * Ex. [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns The standard output from running the script.\n * @group Implementation\n * @category CLI\n */\n async runScript(args: {\n compiledScriptPath: string;\n profile?: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string }> {\n const { compiledScriptPath, profile, extraArguments, showStdout } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"run-script\",\n \"--compiled-script-path\",\n compiledScriptPath,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n async gasProfile(args: {\n network: string;\n transactionId: string;\n extraArguments?: Array<string>;\n showStdout?: boolean;\n }): Promise<{ output: string; result?: any }> {\n const { network, transactionId, extraArguments, showStdout } = args;\n const cliArgs = [\"aptos\", \"move\", \"replay\", \"--profile-gas\", \"--network\", network, \"--txn-id\", transactionId];\n\n if (extraArguments) {\n cliArgs.push(...extraArguments);\n }\n\n return this.runCommand(cliArgs, showStdout);\n }\n\n /**\n * Run a command with the specified arguments and return the output.\n *\n * @param args - An array of strings representing the command-line arguments to be passed to the command.\n * @param showStdout - Show the standard output generated by the command.\n * @returns The standard output generated by the command.\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private async runCommand(args: Array<string>, showStdout: boolean = true): Promise<{ result?: any; output: string }> {\n return new Promise((resolve, reject) => {\n const currentPlatform = platform();\n let childProcess;\n let stdout = \"\";\n // CLI final stdout is the Result/Error JSON string output\n // so we need to keep track of the last stdout\n let lastStdout = \"\";\n\n // Check if current OS is windows\n if (currentPlatform === \"win32\") {\n childProcess = spawn(\"npx\", args, { shell: true });\n } else {\n childProcess = spawn(\"npx\", args);\n }\n\n childProcess.stdout.on(\"data\", (data) => {\n lastStdout = data.toString();\n stdout += data.toString();\n });\n\n if (showStdout) {\n childProcess.stdout.pipe(process.stdout);\n childProcess.stderr.pipe(process.stderr);\n }\n process.stdin.pipe(childProcess.stdin);\n\n childProcess.on(\"close\", (code) => {\n if (code === 0) {\n try {\n // parse the last stdout as it might be the result\n const parsed = JSON.parse(lastStdout);\n if (parsed.Error) {\n reject(new Error(`Error: ${parsed.Error}`)); // Reject if the \"Error\" key exists\n } else if (parsed.Result) {\n resolve({ result: parsed.Result, output: stdout }); // Resolve if the \"Result\" key exists\n }\n } catch (error: any) {\n // resolve the stdout as it might be just a stdout\n resolve({ output: stdout });\n }\n } else {\n reject(new Error(`Child process exited with code ${code}`)); // Reject with an error if the child process exits with an error code\n }\n });\n });\n }\n\n /**\n * Convert named addresses from a Map into an array separated by a comma.\n *\n * @param namedAddresses - A Map where the key is a string representing the name and the value is an AccountAddress.\n * Ex. {'alice' => '0x123', 'bob' => '0x456'}\n * @returns An array of named addresses formatted as strings separated by a comma. Ex. \"alice=0x123,bob=0x456\"\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private prepareNamedAddresses(namedAddresses: Map<string, AccountAddress>): Array<string> {\n const totalNames = namedAddresses.size;\n const newArgs: Array<string> = [];\n\n if (totalNames === 0) {\n return newArgs;\n }\n\n newArgs.push(\"--named-addresses\");\n\n const names: Array<string> = [];\n namedAddresses.forEach((value, key) => {\n const toAppend = `${key}=${value.toString()}`;\n names.push(toAppend);\n });\n newArgs.push(names.join(\",\"));\n return newArgs;\n }\n\n /**\n * Parse named addresses from a Record type into a Map.\n *\n * This function transforms a collection of named addresses into a more accessible format by mapping each name to its\n * corresponding address.\n *\n * @param namedAddresses - A record containing named addresses where the key is the name and the value is the AccountAddress.\n * @returns A Map where each key is a name and each value is the corresponding address.\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private parseNamedAddresses(namedAddresses: Record<string, AccountAddress>): Map<string, AccountAddress> {\n const addressesMap = new Map();\n\n Object.keys(namedAddresses).forEach((key) => {\n const address = namedAddresses[key];\n addressesMap.set(key, address);\n });\n\n return addressesMap;\n }\n\n /**\n * Extracts the object address from the provided output string.\n *\n * @param output - The output string containing the object address.\n * @returns The extracted object address.\n * @throws Error if the object address cannot be extracted from the output.\n * @group Implementation\n * @category CLI\n */\n // eslint-disable-next-line class-methods-use-this\n private extractAddressFromOutput(output: string): string {\n const match = output.match(\"Code was successfully deployed to object address (0x[0-9a-fA-F]+)\");\n if (match) {\n return match[1];\n }\n throw new Error(\"Failed to extract object address from output\");\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { A as AccountAddress, a as AccountPublicKey, b as AuthenticationKey, V as VerifySignatureArgs, c as VerifySignatureAsyncArgs, S as Serializer, d as Signature, H as HexInput, D as Deserializer, P as PublicKey, E as EphemeralPublicKeyVariant, e as AptosConfig, f as Serializable, g as EphemeralCertificateVariant, Z as ZkpVariant, L as LedgerVersionArg, h as AccountAddressInput, i as Ed25519PublicKey, j as AnyPublicKey, M as MultiKey, k as MultiEd25519PublicKey, l as Ed25519Signature, m as MultiEd25519Signature, n as AccountAuthenticator, o as MoveString, p as MoveVector, U as U8, q as U64, r as AnyNumber, R as RawTransaction, s as SimpleEntryFunctionArgumentTypes, t as EntryFunctionArgumentTypes, B as Bool, F as FixedBytes, u as U16, v as U32, w as U128, x as U256, I as InputGenerateTransactionPayloadDataWithRemoteABI, y as InputGenerateTransactionPayloadData, z as InputScriptData, C as MoveFunction, T as TransactionPayloadScript, G as InputEntryFunctionDataWithRemoteABI, J as TransactionPayloadEntryFunction, K as InputMultiSigDataWithRemoteABI, N as TransactionPayloadMultiSig, O as InputEntryFunctionDataWithABI, Q as InputMultiSigDataWithABI, W as InputViewFunctionDataWithRemoteABI, X as EntryFunction, Y as InputViewFunctionDataWithABI, _ as AnyTransactionPayloadInstance, $ as InputGenerateTransactionOptions, a0 as TransactionInnerPayload, a1 as InputGenerateSingleSignerRawTransactionArgs, a2 as SimpleTransaction, a3 as InputGenerateMultiAgentRawTransactionArgs, a4 as MultiAgentTransaction, a5 as InputSimulateTransactionData, a6 as AccountAuthenticatorNoAccountAuthenticator, a7 as AccountAuthenticatorEd25519, a8 as AccountAuthenticatorSingleKey, a9 as AccountAuthenticatorMultiKey, aa as InputSubmitTransactionData, ab as TypeArgument, ac as TypeTag, ad as MoveModule, ae as FunctionABI, af as EntryFunctionABI, ag as ViewFunctionABI, ah as AnyRawTransaction, ai as AnyRawTransactionInstance, aj as AccountData, ak as MoveModuleBytecode, al as CursorPaginationArgs, am as PaginationArgs, an as TransactionResponse, ao as MoveResource, ap as MoveStructId, aq as TokenStandardArg, ar as OrderByArg, as as GetAccountOwnedTokensQueryResponse, at as GetAccountOwnedTokensFromCollectionResponse, au as GetAccountCollectionsWithOwnedTokenResponse, av as GetAccountCoinsDataResponse, aw as WhereArg, ax as GetObjectDataQueryResponse, ay as PrivateKeyInput, az as GetCollectionDataResponse, aA as GetTokenDataResponse, aB as GetCurrentTokenOwnershipResponse, aC as GetOwnedTokensResponse, aD as GetTokenActivityResponse, aE as WaitForTransactionOptions, aF as UserTransactionResponse, aG as GetFungibleAssetMetadataResponse, aH as GetFungibleAssetActivitiesResponse, aI as GetCurrentFungibleAssetBalancesResponse, aJ as LedgerInfo, aK as Block, aL as MoveValue, aM as InputViewFunctionData, aN as InputViewFunctionJsonData, aO as GetChainTopUserTransactionsResponse, aP as GraphqlQuery, aQ as ProcessorType, aR as GetProcessorStatusResponse, aS as GetANSNameResponse, aT as GetNumberOfDelegatorsResponse, aU as GetDelegatedStakingActivitiesResponse, aV as InputSimulateTransactionOptions, aW as InputTransactionPluginData, aX as PendingTransactionResponse, aY as CommittedTransactionResponse, aZ as GasEstimation, a_ as Ed25519PrivateKey, a$ as TableItemRequest, b0 as GetTableItemsDataResponse, b1 as GetTableItemsMetadataResponse, b2 as PrivateKey, b3 as SigningScheme, b4 as SigningSchemeInput, b5 as AnySignature, b6 as EntryFunctionArgument, b7 as MultiKeySignature, b8 as AccountAuthenticatorMultiEd25519, b9 as AccountAuthenticatorAbstraction, ba as MoveFunctionId, bb as ClientRequest, bc as Client, bd as ClientResponse, be as AptosRequest, bf as AptosApiType, bg as AptosResponse, bh as MimeType, bi as ClientConfig } from './account-CmEgDBH6.js';
2
- export { ea as APTOS_COIN, eb as APTOS_FA, bt as AbstractMultiKey, cy as AccountAuthenticatorVariant, dy as AccountSignature, bp as AddressInvalidReason, cA as AnyPublicKeyVariant, cC as AnySignatureVariant, cK as AptosSettings, dW as AuthenticationKeyScheme, d3 as BlockEndInfo, d4 as BlockEpilogueTransactionResponse, d0 as BlockMetadataTransactionResponse, bA as ChainId, cP as ClientHeadersType, e7 as DEFAULT_MAX_GAS_AMOUNT, e8 as DEFAULT_TXN_EXP_SEC_FROM_NOW, e9 as DEFAULT_TXN_TIMEOUT_SEC, dc as DecodedTableData, dd as DeletedTableData, dX as DeriveScheme, bj as Deserializable, dB as DirectWriteSet, df as EntryFunctionPayloadResponse, cD as EphemeralSignatureVariant, dD as Event, dC as EventGuid, ee as FIREBASE_AUTH_ISS_PATTERN, cN as FaucetConfig, bF as FeePayerRawTransaction, cL as FullNodeConfig, d_ as GenerateAccount, dY as GenerateAccountWithEd25519, dZ as GenerateAccountWithSingleSignerSecp256k1Key, di as GenesisPayload, c$ as GenesisTransactionResponse, cl as GetAccountAddressesForAuthKeyResponse, cm as GetEventsResponse, by as Hex, bx as HexInvalidReason, bB as Identifier, cM as IndexerConfig, cd as InputEntryFunctionData, cj as InputGenerateMultiAgentRawTransactionData, cc as InputGenerateOrderlessTransactionOptions, ch as InputGenerateRawTransactionArgs, cb as InputGenerateSequenceNumberTransactionOptions, ci as InputGenerateSingleSignerRawTransactionData, ck as InputGenerateTransactionData, ce as InputGenerateTransactionPayloadDataWithABI, cf as InputMultiSigData, bC as ModuleId, dR as MoveAbility, dK as MoveAddressType, dS as MoveFunctionGenericTypeParam, dQ as MoveFunctionVisibility, dP as MoveModuleId, dL as MoveObjectType, bo as MoveOption, dM as MoveOptionType, dj as MoveScriptBytecode, dU as MoveStruct, dT as MoveStructField, dN as MoveStructType, dO as MoveType, dI as MoveUint128Type, dF as MoveUint16Type, dJ as MoveUint256Type, dG as MoveUint32Type, dH as MoveUint64Type, dE as MoveUint8Type, bE as MultiAgentRawTransaction, bL as MultiSig, bM as MultiSigTransactionPayload, dh as MultisigPayloadResponse, e4 as Network, e5 as NetworkToChainId, e1 as NetworkToFaucetAPI, d$ as NetworkToIndexerAPI, e6 as NetworkToNetworkName, e0 as NetworkToNodeAPI, e2 as NetworkToPepperAPI, e3 as NetworkToProverAPI, cn as OrderBy, co as OrderByValue, bq as ParsingError, br as ParsingResult, cQ as PluginConfig, cR as PluginSettings, cz as PrivateKeyVariants, ec as RAW_TRANSACTION_SALT, ed as RAW_TRANSACTION_WITH_DATA_SALT, bD as RawTransactionWithData, dV as RoleType, bK as Script, bH as ScriptFunctionArgument, ca as ScriptFunctionArgumentTypes, dg as ScriptPayloadResponse, cr as ScriptTransactionArgumentVariants, dA as ScriptWriteSet, bv as Secp256k1PrivateKey, bu as Secp256k1PublicKey, bw as Secp256k1Signature, bn as Serialized, d1 as StateCheckpointTransactionResponse, c5 as StructTag, cp as TokenStandard, bG as TransactionArgument, cx as TransactionAuthenticatorVariant, ds as TransactionEd25519Signature, bO as TransactionExecutable, bR as TransactionExecutableEmpty, bQ as TransactionExecutableEntryFunction, bP as TransactionExecutableScript, cu as TransactionExecutableVariants, bS as TransactionExtraConfig, bT as TransactionExtraConfigV1, cv as TransactionExtraConfigVariants, dx as TransactionFeePayerSignature, cO as TransactionGenerationConfig, bN as TransactionInnerPayloadV1, ct as TransactionInnerPayloadVariants, dw as TransactionMultiAgentSignature, dv as TransactionMultiEd25519Signature, bJ as TransactionPayload, de as TransactionPayloadResponse, cs as TransactionPayloadVariants, cT as TransactionResponseType, dt as TransactionSecp256k1Signature, dk as TransactionSignature, du as TransactionSingleSenderSignature, cS as TransactionSubmitter, cw as TransactionVariants, b$ as TypeTagAddress, bU as TypeTagBool, c2 as TypeTagGeneric, c1 as TypeTagReference, c0 as TypeTagSigner, c4 as TypeTagStruct, bZ as TypeTagU128, bW as TypeTagU16, b_ as TypeTagU256, bX as TypeTagU32, bY as TypeTagU64, bV as TypeTagU8, cq as TypeTagVariants, c3 as TypeTagVector, cI as Uint128, cF as Uint16, cJ as Uint256, cG as Uint32, cH as Uint64, cE as Uint8, d2 as ValidatorTransactionResponse, cg as ViewFunctionJsonPayload, dz as WriteSet, d5 as WriteSetChange, d6 as WriteSetChangeDeleteModule, d7 as WriteSetChangeDeleteResource, d8 as WriteSetChangeDeleteTableItem, d9 as WriteSetChangeWriteModule, da as WriteSetChangeWriteResource, db as WriteSetChangeWriteTableItem, cB as anyPublicKeyVariantToString, c6 as aptosCoinStructTag, bI as deserializeFromScriptArgument, bk as ensureBoolean, bz as hexToAsciiString, c_ as isBlockEpilogueTransactionResponse, cX as isBlockMetadataTransactionResponse, bs as isCanonicalEd25519Signature, dl as isEd25519Signature, dp as isFeePayerSignature, cW as isGenesisTransactionResponse, dn as isMultiAgentSignature, dq as isMultiEd25519Signature, cU as isPendingTransactionResponse, dm as isSecp256k1Signature, dr as isSingleSenderSignature, cY as isStateCheckpointTransactionResponse, cV as isUserTransactionResponse, cZ as isValidatorTransactionResponse, c9 as objectStructTag, c8 as optionStructTag, bl as outOfRangeErrorMessage, c7 as stringStructTag, bm as validateNumberInRange } from './account-CmEgDBH6.js';
1
+ import { A as AccountAddress, a as AccountPublicKey, b as AuthenticationKey, V as VerifySignatureArgs, c as VerifySignatureAsyncArgs, S as Serializer, d as Signature, H as HexInput, D as Deserializer, P as PublicKey, E as EphemeralPublicKeyVariant, e as AptosConfig, f as Serializable, g as EphemeralCertificateVariant, Z as ZkpVariant, L as LedgerVersionArg, h as AccountAddressInput, i as Ed25519PublicKey, j as AnyPublicKey, M as MultiKey, k as MultiEd25519PublicKey, l as Ed25519Signature, m as MultiEd25519Signature, n as AccountAuthenticator, o as MoveString, p as MoveVector, U as U8, q as U64, r as AnyNumber, R as RawTransaction, s as SimpleEntryFunctionArgumentTypes, t as EntryFunctionArgumentTypes, B as Bool, F as FixedBytes, u as U16, v as U32, w as U128, x as U256, I as InputGenerateTransactionPayloadDataWithRemoteABI, y as InputGenerateTransactionPayloadData, z as InputScriptData, C as MoveFunction, T as TransactionPayloadScript, G as InputEntryFunctionDataWithRemoteABI, J as TransactionPayloadEntryFunction, K as InputMultiSigDataWithRemoteABI, N as TransactionPayloadMultiSig, O as InputEntryFunctionDataWithABI, Q as InputMultiSigDataWithABI, W as InputViewFunctionDataWithRemoteABI, X as EntryFunction, Y as InputViewFunctionDataWithABI, _ as AnyTransactionPayloadInstance, $ as InputGenerateTransactionOptions, a0 as TransactionInnerPayload, a1 as InputGenerateSingleSignerRawTransactionArgs, a2 as SimpleTransaction, a3 as InputGenerateMultiAgentRawTransactionArgs, a4 as MultiAgentTransaction, a5 as InputSimulateTransactionData, a6 as AccountAuthenticatorNoAccountAuthenticator, a7 as AccountAuthenticatorEd25519, a8 as AccountAuthenticatorSingleKey, a9 as AccountAuthenticatorMultiKey, aa as InputSubmitTransactionData, ab as TypeArgument, ac as TypeTag, ad as MoveModule, ae as FunctionABI, af as EntryFunctionABI, ag as ViewFunctionABI, ah as AnyRawTransaction, ai as AnyRawTransactionInstance, aj as AccountData, ak as MoveModuleBytecode, al as CursorPaginationArgs, am as PaginationArgs, an as TransactionResponse, ao as MoveResource, ap as MoveStructId, aq as TokenStandardArg, ar as OrderByArg, as as GetAccountOwnedTokensQueryResponse, at as GetAccountOwnedTokensFromCollectionResponse, au as GetAccountCollectionsWithOwnedTokenResponse, av as GetAccountCoinsDataResponse, aw as WhereArg, ax as GetObjectDataQueryResponse, ay as PrivateKeyInput, az as GetCollectionDataResponse, aA as GetTokenDataResponse, aB as GetCurrentTokenOwnershipResponse, aC as GetOwnedTokensResponse, aD as GetTokenActivityResponse, aE as WaitForTransactionOptions, aF as UserTransactionResponse, aG as GetFungibleAssetMetadataResponse, aH as GetFungibleAssetActivitiesResponse, aI as GetCurrentFungibleAssetBalancesResponse, aJ as LedgerInfo, aK as Block, aL as MoveValue, aM as InputViewFunctionData, aN as InputViewFunctionJsonData, aO as GetChainTopUserTransactionsResponse, aP as GraphqlQuery, aQ as ProcessorType, aR as GetProcessorStatusResponse, aS as GetANSNameResponse, aT as GetNumberOfDelegatorsResponse, aU as GetDelegatedStakingActivitiesResponse, aV as InputSimulateTransactionOptions, aW as InputTransactionPluginData, aX as PendingTransactionResponse, aY as CommittedTransactionResponse, aZ as GasEstimation, a_ as Ed25519PrivateKey, a$ as TableItemRequest, b0 as GetTableItemsDataResponse, b1 as GetTableItemsMetadataResponse, b2 as PrivateKey, b3 as SigningScheme, b4 as SigningSchemeInput, b5 as AnySignature, b6 as EntryFunctionArgument, b7 as MultiKeySignature, b8 as AccountAuthenticatorMultiEd25519, b9 as AccountAuthenticatorAbstraction, ba as MoveFunctionId, bb as ClientRequest, bc as Client, bd as ClientResponse, be as AptosRequest, bf as AptosApiType, bg as AptosResponse, bh as MimeType, bi as ClientConfig } from './account-BDwBREvt.js';
2
+ export { ef as ACCOUNT_ABSTRACTION_SIGNING_DATA_SALT, eb as APTOS_COIN, ec as APTOS_FA, bt as AbstractMultiKey, bA as AccountAbstractionMessage, cz as AccountAuthenticatorVariant, dz as AccountSignature, bp as AddressInvalidReason, cB as AnyPublicKeyVariant, cD as AnySignatureVariant, cL as AptosSettings, dX as AuthenticationKeyScheme, d4 as BlockEndInfo, d5 as BlockEpilogueTransactionResponse, d1 as BlockMetadataTransactionResponse, bB as ChainId, cQ as ClientHeadersType, e8 as DEFAULT_MAX_GAS_AMOUNT, e9 as DEFAULT_TXN_EXP_SEC_FROM_NOW, ea as DEFAULT_TXN_TIMEOUT_SEC, dd as DecodedTableData, de as DeletedTableData, dY as DeriveScheme, bj as Deserializable, dC as DirectWriteSet, dg as EntryFunctionPayloadResponse, cE as EphemeralSignatureVariant, dE as Event, dD as EventGuid, eg as FIREBASE_AUTH_ISS_PATTERN, cO as FaucetConfig, bG as FeePayerRawTransaction, cM as FullNodeConfig, d$ as GenerateAccount, dZ as GenerateAccountWithEd25519, d_ as GenerateAccountWithSingleSignerSecp256k1Key, dj as GenesisPayload, d0 as GenesisTransactionResponse, cm as GetAccountAddressesForAuthKeyResponse, cn as GetEventsResponse, by as Hex, bx as HexInvalidReason, bC as Identifier, cN as IndexerConfig, ce as InputEntryFunctionData, ck as InputGenerateMultiAgentRawTransactionData, cd as InputGenerateOrderlessTransactionOptions, ci as InputGenerateRawTransactionArgs, cc as InputGenerateSequenceNumberTransactionOptions, cj as InputGenerateSingleSignerRawTransactionData, cl as InputGenerateTransactionData, cf as InputGenerateTransactionPayloadDataWithABI, cg as InputMultiSigData, bD as ModuleId, dS as MoveAbility, dL as MoveAddressType, dT as MoveFunctionGenericTypeParam, dR as MoveFunctionVisibility, dQ as MoveModuleId, dM as MoveObjectType, bo as MoveOption, dN as MoveOptionType, dk as MoveScriptBytecode, dV as MoveStruct, dU as MoveStructField, dO as MoveStructType, dP as MoveType, dJ as MoveUint128Type, dG as MoveUint16Type, dK as MoveUint256Type, dH as MoveUint32Type, dI as MoveUint64Type, dF as MoveUint8Type, bF as MultiAgentRawTransaction, bM as MultiSig, bN as MultiSigTransactionPayload, di as MultisigPayloadResponse, e5 as Network, e6 as NetworkToChainId, e2 as NetworkToFaucetAPI, e0 as NetworkToIndexerAPI, e7 as NetworkToNetworkName, e1 as NetworkToNodeAPI, e3 as NetworkToPepperAPI, e4 as NetworkToProverAPI, co as OrderBy, cp as OrderByValue, bq as ParsingError, br as ParsingResult, cR as PluginConfig, cS as PluginSettings, cA as PrivateKeyVariants, ed as RAW_TRANSACTION_SALT, ee as RAW_TRANSACTION_WITH_DATA_SALT, bE as RawTransactionWithData, dW as RoleType, bL as Script, bI as ScriptFunctionArgument, cb as ScriptFunctionArgumentTypes, dh as ScriptPayloadResponse, cs as ScriptTransactionArgumentVariants, dB as ScriptWriteSet, bv as Secp256k1PrivateKey, bu as Secp256k1PublicKey, bw as Secp256k1Signature, bn as Serialized, d2 as StateCheckpointTransactionResponse, c6 as StructTag, cq as TokenStandard, bH as TransactionArgument, cy as TransactionAuthenticatorVariant, dt as TransactionEd25519Signature, bP as TransactionExecutable, bS as TransactionExecutableEmpty, bR as TransactionExecutableEntryFunction, bQ as TransactionExecutableScript, cv as TransactionExecutableVariants, bT as TransactionExtraConfig, bU as TransactionExtraConfigV1, cw as TransactionExtraConfigVariants, dy as TransactionFeePayerSignature, cP as TransactionGenerationConfig, bO as TransactionInnerPayloadV1, cu as TransactionInnerPayloadVariants, dx as TransactionMultiAgentSignature, dw as TransactionMultiEd25519Signature, bK as TransactionPayload, df as TransactionPayloadResponse, ct as TransactionPayloadVariants, cU as TransactionResponseType, du as TransactionSecp256k1Signature, dl as TransactionSignature, dv as TransactionSingleSenderSignature, cT as TransactionSubmitter, cx as TransactionVariants, c0 as TypeTagAddress, bV as TypeTagBool, c3 as TypeTagGeneric, c2 as TypeTagReference, c1 as TypeTagSigner, c5 as TypeTagStruct, b_ as TypeTagU128, bX as TypeTagU16, b$ as TypeTagU256, bY as TypeTagU32, bZ as TypeTagU64, bW as TypeTagU8, cr as TypeTagVariants, c4 as TypeTagVector, cJ as Uint128, cG as Uint16, cK as Uint256, cH as Uint32, cI as Uint64, cF as Uint8, d3 as ValidatorTransactionResponse, ch as ViewFunctionJsonPayload, dA as WriteSet, d6 as WriteSetChange, d7 as WriteSetChangeDeleteModule, d8 as WriteSetChangeDeleteResource, d9 as WriteSetChangeDeleteTableItem, da as WriteSetChangeWriteModule, db as WriteSetChangeWriteResource, dc as WriteSetChangeWriteTableItem, cC as anyPublicKeyVariantToString, c7 as aptosCoinStructTag, bJ as deserializeFromScriptArgument, bk as ensureBoolean, bz as hexToAsciiString, c$ as isBlockEpilogueTransactionResponse, cY as isBlockMetadataTransactionResponse, bs as isCanonicalEd25519Signature, dm as isEd25519Signature, dq as isFeePayerSignature, cX as isGenesisTransactionResponse, dp as isMultiAgentSignature, dr as isMultiEd25519Signature, cV as isPendingTransactionResponse, dn as isSecp256k1Signature, ds as isSingleSenderSignature, cZ as isStateCheckpointTransactionResponse, cW as isUserTransactionResponse, c_ as isValidatorTransactionResponse, ca as objectStructTag, c9 as optionStructTag, bl as outOfRangeErrorMessage, c8 as stringStructTag, bm as validateNumberInRange } from './account-BDwBREvt.js';
3
3
  import { ProjPointType } from '@noble/curves/abstract/weierstrass';
4
4
  import { Fp2 } from '@noble/curves/abstract/tower';
5
5
  import EventEmitter from 'eventemitter3';
@@ -3179,9 +3179,6 @@ declare class Account$1 {
3179
3179
  * is specified.
3180
3180
  * @param args.faMetadataAddress The fungible asset metadata address to query. Note: If not provided, it may be automatically
3181
3181
  * populated if `coinType` is specified.
3182
- * @param args.minimumLedgerVersion Not used anymore, here for backward compatibility
3183
- * see https://github.com/aptos-labs/aptos-ts-sdk/pull/519, will be removed in the near future.
3184
- * Optional ledger version to sync up to before querying.
3185
3182
  * @returns The current amount of the specified coin held by the account.
3186
3183
  *
3187
3184
  * @example
@@ -3208,7 +3205,6 @@ declare class Account$1 {
3208
3205
  accountAddress: AccountAddressInput;
3209
3206
  coinType?: MoveStructId;
3210
3207
  faMetadataAddress?: AccountAddressInput;
3211
- minimumLedgerVersion?: AnyNumber;
3212
3208
  }): Promise<number>;
3213
3209
  /**
3214
3210
  * Queries an account's owned objects.
@@ -7255,43 +7251,33 @@ declare class Transaction {
7255
7251
  *
7256
7252
  * @param args - The arguments for rotating the authentication key.
7257
7253
  * @param args.fromAccount - The account from which the authentication key will be rotated.
7258
- * @param args.toAccount - (Optional) The target account to rotate to. Required if not using toNewPrivateKey or toAuthKey.
7259
- * @param args.toNewPrivateKey - (Optional) The new private key to rotate to. Required if not using toAccount or toAuthKey.
7260
- * @param args.toAuthKey - (Optional) The new authentication key to rotate to. Can only be used with dangerouslySkipVerification=true.
7261
- * @param args.dangerouslySkipVerification - (Optional) If true, skips verification steps after rotation. Required when using toAuthKey.
7254
+ * @param args.toAccount - (Optional) The target account to rotate to. Required if not using toNewPrivateKey.
7255
+ * @param args.toNewPrivateKey - (Optional) The new private key to rotate to. Required if not using toAccount.
7262
7256
  *
7263
7257
  * @remarks
7264
7258
  * This function supports three modes of rotation:
7265
7259
  * 1. Using a target Account object (toAccount)
7266
7260
  * 2. Using a new private key (toNewPrivateKey)
7267
- * 3. Using a raw authentication key (toAuthKey) - requires dangerouslySkipVerification=true
7268
- *
7269
- * When not using dangerouslySkipVerification, the function performs additional safety checks and account setup.
7270
7261
  *
7271
- * If the new key is a multi key, skipping verification is dangerous because verification will publish the public key onchain and
7272
- * prevent users from being locked out of the account from loss of knowledge of one of the public keys.
7262
+ * For Ed25519 accounts, the function will use a challenge-based rotation that requires signatures from both the old and new keys.
7263
+ * For multi-key accounts like MultiEd25519Account, the function will use a challenge-based rotation that requires signatures from both keys.
7264
+ * For other account types, the function will use an unverified rotation that only requires the new public key.
7273
7265
  *
7274
- * @returns PendingTransactionResponse
7266
+ * @returns SimpleTransaction that can be submitted to rotate the auth key
7275
7267
  *
7276
7268
  * @example
7277
7269
  * ```typescript
7278
- * import { Aptos, AptosConfig, Network, Account, PrivateKey } from "@aptos-labs/ts-sdk";
7279
- *
7280
- * const config = new AptosConfig({ network: Network.TESTNET });
7281
- * const aptos = new Aptos(config);
7282
- *
7283
- * async function runExample() {
7284
- * // Rotate the authentication key for an account
7285
- * const response = await aptos.rotateAuthKey({
7286
- * // replace with a real account
7287
- * fromAccount: Account.generate(),
7288
- * // replace with a real private key
7289
- * toNewPrivateKey: new PrivateKey("0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"),
7290
- * });
7270
+ * // Create and submit transaction to rotate the auth key
7271
+ * const transaction = await aptos.rotateAuthKey({
7272
+ * fromAccount,
7273
+ * toAccount: toAccount,
7274
+ * });
7291
7275
  *
7292
- * console.log(response);
7293
- * }
7294
- * runExample().catch(console.error);
7276
+ * // Sign and submit the transaction
7277
+ * const pendingTransaction = await aptos.signAndSubmitTransaction({
7278
+ * signer: fromAccount,
7279
+ * transaction,
7280
+ * });
7295
7281
  * ```
7296
7282
  * @group Transaction
7297
7283
  */
@@ -7299,15 +7285,44 @@ declare class Transaction {
7299
7285
  fromAccount: Account;
7300
7286
  options?: InputGenerateTransactionOptions;
7301
7287
  } & ({
7302
- toAccount: Account;
7303
- dangerouslySkipVerification?: never;
7288
+ toAccount: Ed25519Account | MultiEd25519Account;
7304
7289
  } | {
7305
7290
  toNewPrivateKey: Ed25519PrivateKey;
7306
- dangerouslySkipVerification?: never;
7307
- } | {
7308
- toAuthKey: AuthenticationKey;
7309
- dangerouslySkipVerification: true;
7310
- })): Promise<PendingTransactionResponse>;
7291
+ })): Promise<SimpleTransaction>;
7292
+ /**
7293
+ * Rotates the authentication key for a given account without verifying the new key.
7294
+ *
7295
+ * Accounts with their auth key rotated via this function will be derivable via the `getAccountsForPublicKey` and
7296
+ * `deriveOwnedAccountsFromSigner` functions however the public key will be unverified (no proof of ownership). Thus
7297
+ * includeUnverified must be set to true to derive the account until the public key is verified via signing a transaction.
7298
+ *
7299
+ * @param args - The arguments for rotating the authentication key.
7300
+ * @param args.fromAccount - The account from which the authentication key will be rotated.
7301
+ * @param args.toNewPublicKey - The new public key to rotate to.
7302
+ *
7303
+ * @returns A simple transaction object that can be submitted to the network.
7304
+ *
7305
+ * @example
7306
+ * ```typescript
7307
+ * // Create and submit transaction to rotate the auth key
7308
+ * const transaction = await aptos.rotateAuthKeyUnverified({
7309
+ * fromAccount,
7310
+ * toNewPublicKey,
7311
+ * });
7312
+ *
7313
+ * // Sign and submit the transaction
7314
+ * const pendingTransaction = await aptos.signAndSubmitTransaction({
7315
+ * signer: fromAccount,
7316
+ * transaction,
7317
+ * });
7318
+ * ```
7319
+ * @group Transaction
7320
+ */
7321
+ rotateAuthKeyUnverified(args: {
7322
+ fromAccount: Account;
7323
+ options?: InputGenerateTransactionOptions;
7324
+ toNewPublicKey: AccountPublicKey;
7325
+ }): Promise<SimpleTransaction>;
7311
7326
  /**
7312
7327
  * Sign a transaction that can later be submitted to the chain.
7313
7328
  * This function is essential for ensuring the authenticity of the transaction by using the provided account's signing capabilities.
@@ -9624,6 +9639,7 @@ declare class AbstractedAccount extends Account {
9624
9639
  signer: Ed25519Account;
9625
9640
  accountAddress?: AccountAddress;
9626
9641
  }): AbstractedAccount;
9642
+ static generateAccountAbstractionMessage(message: HexInput, functionInfo: string): HexInput;
9627
9643
  signWithAuthenticator(message: HexInput): AccountAuthenticatorAbstraction;
9628
9644
  signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticatorAbstraction;
9629
9645
  sign: (message: HexInput) => AbstractSignature;