@aptos-labs/ts-sdk 1.25.0 → 1.26.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 (237) hide show
  1. package/dist/common/cli/index.d.ts +32 -0
  2. package/dist/common/cli/index.js +1 -1
  3. package/dist/common/cli/index.js.map +1 -1
  4. package/dist/common/index.js +2 -2
  5. package/dist/common/index.js.map +1 -1
  6. package/dist/esm/account/Account.mjs +1 -1
  7. package/dist/esm/account/Ed25519Account.mjs +1 -1
  8. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  9. package/dist/esm/account/KeylessAccount.mjs +1 -1
  10. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  11. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  12. package/dist/esm/account/index.mjs +1 -1
  13. package/dist/esm/api/account.mjs +1 -1
  14. package/dist/esm/api/ans.mjs +1 -1
  15. package/dist/esm/api/aptos.mjs +1 -1
  16. package/dist/esm/api/coin.mjs +1 -1
  17. package/dist/esm/api/digitalAsset.mjs +1 -1
  18. package/dist/esm/api/event.mjs +1 -1
  19. package/dist/esm/api/faucet.mjs +1 -1
  20. package/dist/esm/api/fungibleAsset.mjs +1 -1
  21. package/dist/esm/api/general.mjs +1 -1
  22. package/dist/esm/api/index.mjs +1 -1
  23. package/dist/esm/api/keyless.mjs +1 -1
  24. package/dist/esm/api/object.mjs +1 -1
  25. package/dist/esm/api/staking.mjs +1 -1
  26. package/dist/esm/api/table.mjs +1 -1
  27. package/dist/esm/api/transaction.mjs +1 -1
  28. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  29. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  30. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  31. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  32. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  33. package/dist/esm/api/utils.mjs +1 -1
  34. package/dist/esm/bcs/index.mjs +1 -1
  35. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  36. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  37. package/dist/esm/{chunk-WMBECPK5.mjs → chunk-2RCCHNYU.mjs} +2 -2
  38. package/dist/esm/{chunk-PYLB6CAF.mjs → chunk-2RO27Y23.mjs} +2 -2
  39. package/dist/esm/{chunk-34PNYV2Q.mjs → chunk-36KSOGK4.mjs} +2 -2
  40. package/dist/esm/{chunk-5JTED2JJ.mjs → chunk-3NRBTP3S.mjs} +2 -2
  41. package/dist/esm/{chunk-QRN6BG2N.mjs → chunk-3O7OEDTT.mjs} +2 -2
  42. package/dist/esm/{chunk-UEP4UQS5.mjs → chunk-3UV2Z2A4.mjs} +2 -2
  43. package/dist/esm/{chunk-M74WIV66.mjs → chunk-4MDBWSPX.mjs} +2 -2
  44. package/dist/esm/{chunk-NLJ5MHA5.mjs → chunk-5BSAUHMZ.mjs} +2 -2
  45. package/dist/esm/{chunk-UNMUX5HS.mjs → chunk-6MNATRA3.mjs} +2 -2
  46. package/dist/esm/{chunk-ISUHNAU4.mjs → chunk-76HTG7Z7.mjs} +2 -2
  47. package/dist/esm/{chunk-YB5DCDJY.mjs → chunk-A2SMIFMN.mjs} +2 -2
  48. package/dist/esm/{chunk-5OODQH42.mjs → chunk-AW2ARPK4.mjs} +2 -2
  49. package/dist/esm/{chunk-7JWCIWJ3.mjs → chunk-BTUJC43M.mjs} +2 -2
  50. package/dist/esm/{chunk-EMVWSYK5.mjs → chunk-C3DUPBSO.mjs} +2 -2
  51. package/dist/esm/{chunk-P2TDGITN.mjs → chunk-C7HIUK23.mjs} +2 -2
  52. package/dist/esm/{chunk-DPZO54DD.mjs → chunk-CTRLWMAG.mjs} +2 -2
  53. package/dist/esm/{chunk-HWX6AJJ2.mjs → chunk-D3M72WFO.mjs} +2 -2
  54. package/dist/esm/{chunk-GFUP6W3X.mjs → chunk-D7RK6FAB.mjs} +2 -2
  55. package/dist/esm/chunk-DDKAXJOY.mjs +2 -0
  56. package/dist/esm/{chunk-AZRXSMC2.mjs.map → chunk-DDKAXJOY.mjs.map} +1 -1
  57. package/dist/esm/{chunk-76IW7XM5.mjs → chunk-DLLNBXLZ.mjs} +2 -2
  58. package/dist/esm/{chunk-NAHOALKG.mjs → chunk-EC3JEZIB.mjs} +2 -2
  59. package/dist/esm/{chunk-NSEC2KVP.mjs → chunk-FETZGNB3.mjs} +2 -2
  60. package/dist/esm/{chunk-V3OYNKY5.mjs → chunk-G7UNU5GI.mjs} +2 -2
  61. package/dist/esm/{chunk-METR6A53.mjs → chunk-GG2DBDJT.mjs} +2 -2
  62. package/dist/esm/chunk-GIKRKT5B.mjs +2 -0
  63. package/dist/esm/{chunk-WLLWOD5T.mjs.map → chunk-GIKRKT5B.mjs.map} +1 -1
  64. package/dist/esm/{chunk-VL6JZUYX.mjs → chunk-GP4FRPJQ.mjs} +2 -2
  65. package/dist/esm/{chunk-6R3ZHOGL.mjs → chunk-GTFAH6VB.mjs} +2 -2
  66. package/dist/esm/{chunk-WMHYIP3S.mjs → chunk-GXTEJ7NO.mjs} +2 -2
  67. package/dist/esm/{chunk-EAWQ4SD3.mjs → chunk-H2QJOKSW.mjs} +2 -2
  68. package/dist/esm/{chunk-TDCS6MMG.mjs → chunk-IEGY7WEL.mjs} +2 -2
  69. package/dist/esm/{chunk-LKA54RAP.mjs → chunk-ITADRWJI.mjs} +2 -2
  70. package/dist/esm/{chunk-GY7ARJNT.mjs → chunk-ITMW7GWH.mjs} +2 -2
  71. package/dist/esm/{chunk-XSNOPUMC.mjs → chunk-IWBYKVXH.mjs} +2 -2
  72. package/dist/esm/{chunk-IDYCJIHI.mjs → chunk-JCPI7D7I.mjs} +2 -2
  73. package/dist/esm/{chunk-OGOWKEMD.mjs → chunk-KZY3TZVR.mjs} +2 -2
  74. package/dist/esm/{chunk-INZXND6M.mjs → chunk-LDTF3ABK.mjs} +2 -2
  75. package/dist/esm/{chunk-JCQYD2ZQ.mjs → chunk-LHJBQVU4.mjs} +2 -2
  76. package/dist/esm/{chunk-HKLJ6JKE.mjs → chunk-LN2AM5IU.mjs} +2 -2
  77. package/dist/esm/chunk-MLL54PYO.mjs +2 -0
  78. package/dist/esm/chunk-MLL54PYO.mjs.map +1 -0
  79. package/dist/esm/{chunk-HXYBTLQT.mjs → chunk-MRT63YLE.mjs} +2 -2
  80. package/dist/esm/{chunk-CZ6UX5WZ.mjs → chunk-N3PNKHCQ.mjs} +2 -2
  81. package/dist/esm/{chunk-FDFE5GY2.mjs → chunk-OMIBMVDW.mjs} +2 -2
  82. package/dist/esm/{chunk-KLD5S3J2.mjs → chunk-QEIKAT6S.mjs} +2 -2
  83. package/dist/esm/{chunk-EV5QBTUM.mjs → chunk-R3IDASOF.mjs} +2 -2
  84. package/dist/esm/{chunk-V75UHXGZ.mjs → chunk-R5Y36IYW.mjs} +2 -2
  85. package/dist/esm/{chunk-7VIABVKU.mjs → chunk-RXK5BSD6.mjs} +2 -2
  86. package/dist/esm/{chunk-XNSOEUH7.mjs → chunk-T4BJCVCN.mjs} +2 -2
  87. package/dist/esm/{chunk-7WPECE2S.mjs → chunk-T6VJAACM.mjs} +2 -2
  88. package/dist/esm/{chunk-2BJ23DXY.mjs → chunk-THRXIXIO.mjs} +1 -1
  89. package/dist/esm/{chunk-2BJ23DXY.mjs.map → chunk-THRXIXIO.mjs.map} +1 -1
  90. package/dist/esm/{chunk-35L6ZK2X.mjs → chunk-VHKT63N7.mjs} +2 -2
  91. package/dist/esm/{chunk-2CXQK6CH.mjs → chunk-VWGU7IB6.mjs} +2 -2
  92. package/dist/esm/{chunk-EFJCV23R.mjs → chunk-WGZZQQDK.mjs} +2 -2
  93. package/dist/esm/{chunk-BP7JPCSW.mjs → chunk-WS2XAD7R.mjs} +2 -2
  94. package/dist/esm/{chunk-F3RBTS5V.mjs → chunk-WYG7CP3N.mjs} +2 -2
  95. package/dist/esm/chunk-XCBLFSY5.mjs +2 -0
  96. package/dist/esm/chunk-XCBLFSY5.mjs.map +1 -0
  97. package/dist/esm/{chunk-E67RGLPK.mjs → chunk-XDDQWRYI.mjs} +2 -2
  98. package/dist/esm/{chunk-W7MX6GBC.mjs → chunk-YY7NLCQK.mjs} +2 -2
  99. package/dist/esm/{chunk-JBCUGFGG.mjs → chunk-ZBOD65DP.mjs} +2 -2
  100. package/dist/esm/{chunk-XJI57J4Q.mjs → chunk-ZDRXYQEE.mjs} +2 -2
  101. package/dist/esm/{chunk-MULJ2GLJ.mjs → chunk-ZXPBRVOA.mjs} +2 -2
  102. package/dist/esm/{chunk-3GGG4R4C.mjs → chunk-ZXSNAEPE.mjs} +2 -2
  103. package/dist/esm/cli/index.mjs +1 -1
  104. package/dist/esm/cli/move.d.mts +32 -0
  105. package/dist/esm/cli/move.mjs +1 -1
  106. package/dist/esm/client/core.mjs +1 -1
  107. package/dist/esm/client/get.mjs +1 -1
  108. package/dist/esm/client/index.mjs +1 -1
  109. package/dist/esm/client/post.mjs +1 -1
  110. package/dist/esm/core/account/index.mjs +1 -1
  111. package/dist/esm/core/account/utils/address.mjs +1 -1
  112. package/dist/esm/core/account/utils/index.mjs +1 -1
  113. package/dist/esm/core/accountAddress.mjs +1 -1
  114. package/dist/esm/core/authenticationKey.mjs +1 -1
  115. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  116. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  117. package/dist/esm/core/crypto/index.mjs +1 -1
  118. package/dist/esm/core/crypto/keyless.mjs +1 -1
  119. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  120. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  121. package/dist/esm/core/crypto/proof.mjs +1 -1
  122. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  123. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  124. package/dist/esm/core/crypto/signature.mjs +1 -1
  125. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  126. package/dist/esm/core/index.mjs +1 -1
  127. package/dist/esm/index.mjs +1 -1
  128. package/dist/esm/internal/account.mjs +1 -1
  129. package/dist/esm/internal/ans.mjs +1 -1
  130. package/dist/esm/internal/coin.mjs +1 -1
  131. package/dist/esm/internal/digitalAsset.mjs +1 -1
  132. package/dist/esm/internal/event.mjs +1 -1
  133. package/dist/esm/internal/faucet.mjs +1 -1
  134. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  135. package/dist/esm/internal/general.mjs +1 -1
  136. package/dist/esm/internal/keyless.mjs +1 -1
  137. package/dist/esm/internal/object.mjs +1 -1
  138. package/dist/esm/internal/staking.mjs +1 -1
  139. package/dist/esm/internal/table.mjs +1 -1
  140. package/dist/esm/internal/transaction.mjs +1 -1
  141. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  142. package/dist/esm/internal/view.mjs +1 -1
  143. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  144. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  145. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  146. package/dist/esm/transactions/index.mjs +1 -1
  147. package/dist/esm/transactions/instances/index.mjs +1 -1
  148. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  149. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  150. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  151. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  152. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  153. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  154. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  155. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  156. package/dist/esm/transactions/management/index.mjs +1 -1
  157. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  158. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  159. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  160. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  161. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  162. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  163. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  164. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  165. package/dist/esm/types/index.mjs +1 -1
  166. package/dist/esm/utils/index.mjs +1 -1
  167. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  168. package/dist/esm/version.d.mts +1 -1
  169. package/dist/esm/version.mjs +1 -1
  170. package/package.json +1 -1
  171. package/src/api/faucet.ts +3 -1
  172. package/src/cli/move.ts +80 -10
  173. package/src/transactions/transactionBuilder/transactionBuilder.ts +4 -1
  174. package/src/types/index.ts +1 -0
  175. package/src/version.ts +1 -1
  176. package/dist/esm/chunk-AZRXSMC2.mjs +0 -2
  177. package/dist/esm/chunk-C4RTKCIA.mjs +0 -2
  178. package/dist/esm/chunk-C4RTKCIA.mjs.map +0 -1
  179. package/dist/esm/chunk-NWLLWPBG.mjs +0 -2
  180. package/dist/esm/chunk-NWLLWPBG.mjs.map +0 -1
  181. package/dist/esm/chunk-WLLWOD5T.mjs +0 -2
  182. /package/dist/esm/{chunk-WMBECPK5.mjs.map → chunk-2RCCHNYU.mjs.map} +0 -0
  183. /package/dist/esm/{chunk-PYLB6CAF.mjs.map → chunk-2RO27Y23.mjs.map} +0 -0
  184. /package/dist/esm/{chunk-34PNYV2Q.mjs.map → chunk-36KSOGK4.mjs.map} +0 -0
  185. /package/dist/esm/{chunk-5JTED2JJ.mjs.map → chunk-3NRBTP3S.mjs.map} +0 -0
  186. /package/dist/esm/{chunk-QRN6BG2N.mjs.map → chunk-3O7OEDTT.mjs.map} +0 -0
  187. /package/dist/esm/{chunk-UEP4UQS5.mjs.map → chunk-3UV2Z2A4.mjs.map} +0 -0
  188. /package/dist/esm/{chunk-M74WIV66.mjs.map → chunk-4MDBWSPX.mjs.map} +0 -0
  189. /package/dist/esm/{chunk-NLJ5MHA5.mjs.map → chunk-5BSAUHMZ.mjs.map} +0 -0
  190. /package/dist/esm/{chunk-UNMUX5HS.mjs.map → chunk-6MNATRA3.mjs.map} +0 -0
  191. /package/dist/esm/{chunk-ISUHNAU4.mjs.map → chunk-76HTG7Z7.mjs.map} +0 -0
  192. /package/dist/esm/{chunk-YB5DCDJY.mjs.map → chunk-A2SMIFMN.mjs.map} +0 -0
  193. /package/dist/esm/{chunk-5OODQH42.mjs.map → chunk-AW2ARPK4.mjs.map} +0 -0
  194. /package/dist/esm/{chunk-7JWCIWJ3.mjs.map → chunk-BTUJC43M.mjs.map} +0 -0
  195. /package/dist/esm/{chunk-EMVWSYK5.mjs.map → chunk-C3DUPBSO.mjs.map} +0 -0
  196. /package/dist/esm/{chunk-P2TDGITN.mjs.map → chunk-C7HIUK23.mjs.map} +0 -0
  197. /package/dist/esm/{chunk-DPZO54DD.mjs.map → chunk-CTRLWMAG.mjs.map} +0 -0
  198. /package/dist/esm/{chunk-HWX6AJJ2.mjs.map → chunk-D3M72WFO.mjs.map} +0 -0
  199. /package/dist/esm/{chunk-GFUP6W3X.mjs.map → chunk-D7RK6FAB.mjs.map} +0 -0
  200. /package/dist/esm/{chunk-76IW7XM5.mjs.map → chunk-DLLNBXLZ.mjs.map} +0 -0
  201. /package/dist/esm/{chunk-NAHOALKG.mjs.map → chunk-EC3JEZIB.mjs.map} +0 -0
  202. /package/dist/esm/{chunk-NSEC2KVP.mjs.map → chunk-FETZGNB3.mjs.map} +0 -0
  203. /package/dist/esm/{chunk-V3OYNKY5.mjs.map → chunk-G7UNU5GI.mjs.map} +0 -0
  204. /package/dist/esm/{chunk-METR6A53.mjs.map → chunk-GG2DBDJT.mjs.map} +0 -0
  205. /package/dist/esm/{chunk-VL6JZUYX.mjs.map → chunk-GP4FRPJQ.mjs.map} +0 -0
  206. /package/dist/esm/{chunk-6R3ZHOGL.mjs.map → chunk-GTFAH6VB.mjs.map} +0 -0
  207. /package/dist/esm/{chunk-WMHYIP3S.mjs.map → chunk-GXTEJ7NO.mjs.map} +0 -0
  208. /package/dist/esm/{chunk-EAWQ4SD3.mjs.map → chunk-H2QJOKSW.mjs.map} +0 -0
  209. /package/dist/esm/{chunk-TDCS6MMG.mjs.map → chunk-IEGY7WEL.mjs.map} +0 -0
  210. /package/dist/esm/{chunk-LKA54RAP.mjs.map → chunk-ITADRWJI.mjs.map} +0 -0
  211. /package/dist/esm/{chunk-GY7ARJNT.mjs.map → chunk-ITMW7GWH.mjs.map} +0 -0
  212. /package/dist/esm/{chunk-XSNOPUMC.mjs.map → chunk-IWBYKVXH.mjs.map} +0 -0
  213. /package/dist/esm/{chunk-IDYCJIHI.mjs.map → chunk-JCPI7D7I.mjs.map} +0 -0
  214. /package/dist/esm/{chunk-OGOWKEMD.mjs.map → chunk-KZY3TZVR.mjs.map} +0 -0
  215. /package/dist/esm/{chunk-INZXND6M.mjs.map → chunk-LDTF3ABK.mjs.map} +0 -0
  216. /package/dist/esm/{chunk-JCQYD2ZQ.mjs.map → chunk-LHJBQVU4.mjs.map} +0 -0
  217. /package/dist/esm/{chunk-HKLJ6JKE.mjs.map → chunk-LN2AM5IU.mjs.map} +0 -0
  218. /package/dist/esm/{chunk-HXYBTLQT.mjs.map → chunk-MRT63YLE.mjs.map} +0 -0
  219. /package/dist/esm/{chunk-CZ6UX5WZ.mjs.map → chunk-N3PNKHCQ.mjs.map} +0 -0
  220. /package/dist/esm/{chunk-FDFE5GY2.mjs.map → chunk-OMIBMVDW.mjs.map} +0 -0
  221. /package/dist/esm/{chunk-KLD5S3J2.mjs.map → chunk-QEIKAT6S.mjs.map} +0 -0
  222. /package/dist/esm/{chunk-EV5QBTUM.mjs.map → chunk-R3IDASOF.mjs.map} +0 -0
  223. /package/dist/esm/{chunk-V75UHXGZ.mjs.map → chunk-R5Y36IYW.mjs.map} +0 -0
  224. /package/dist/esm/{chunk-7VIABVKU.mjs.map → chunk-RXK5BSD6.mjs.map} +0 -0
  225. /package/dist/esm/{chunk-XNSOEUH7.mjs.map → chunk-T4BJCVCN.mjs.map} +0 -0
  226. /package/dist/esm/{chunk-7WPECE2S.mjs.map → chunk-T6VJAACM.mjs.map} +0 -0
  227. /package/dist/esm/{chunk-35L6ZK2X.mjs.map → chunk-VHKT63N7.mjs.map} +0 -0
  228. /package/dist/esm/{chunk-2CXQK6CH.mjs.map → chunk-VWGU7IB6.mjs.map} +0 -0
  229. /package/dist/esm/{chunk-EFJCV23R.mjs.map → chunk-WGZZQQDK.mjs.map} +0 -0
  230. /package/dist/esm/{chunk-BP7JPCSW.mjs.map → chunk-WS2XAD7R.mjs.map} +0 -0
  231. /package/dist/esm/{chunk-F3RBTS5V.mjs.map → chunk-WYG7CP3N.mjs.map} +0 -0
  232. /package/dist/esm/{chunk-E67RGLPK.mjs.map → chunk-XDDQWRYI.mjs.map} +0 -0
  233. /package/dist/esm/{chunk-W7MX6GBC.mjs.map → chunk-YY7NLCQK.mjs.map} +0 -0
  234. /package/dist/esm/{chunk-JBCUGFGG.mjs.map → chunk-ZBOD65DP.mjs.map} +0 -0
  235. /package/dist/esm/{chunk-XJI57J4Q.mjs.map → chunk-ZDRXYQEE.mjs.map} +0 -0
  236. /package/dist/esm/{chunk-MULJ2GLJ.mjs.map → chunk-ZXPBRVOA.mjs.map} +0 -0
  237. /package/dist/esm/{chunk-3GGG4R4C.mjs.map → chunk-ZXSNAEPE.mjs.map} +0 -0
@@ -43,12 +43,16 @@ declare class Move {
43
43
  * @param args.network optional Network type argument to use for default settings, default is local
44
44
  * @param args.profile optional Profile to use from the config file, default is 'default'
45
45
  * This will be used to override associated settings such as the REST URL, the Faucet URL, and the private key arguments.
46
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
47
+ * @example
48
+ * ["--assume-yes","--gas-unit-price=10"]
46
49
  *
47
50
  * @returns stdout
48
51
  */
49
52
  init(args: {
50
53
  network?: Network;
51
54
  profile?: string;
55
+ extraArguments?: Array<string>;
52
56
  }): Promise<{
53
57
  output: string;
54
58
  }>;
@@ -57,6 +61,9 @@ declare class Move {
57
61
  *
58
62
  * @param args.packageDirectoryPath Path to a move package (the folder with a Move.toml file)
59
63
  * @param args.namedAddresses Named addresses for the move binary
64
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
65
+ * @example
66
+ * ["--assume-yes","--gas-unit-price=10"]
60
67
  * @example
61
68
  * {
62
69
  * alice:0x1234, bob:0x5678
@@ -67,6 +74,7 @@ declare class Move {
67
74
  compile(args: {
68
75
  packageDirectoryPath: string;
69
76
  namedAddresses: Record<string, AccountAddress>;
77
+ extraArguments?: Array<string>;
70
78
  }): Promise<{
71
79
  output: string;
72
80
  }>;
@@ -79,12 +87,16 @@ declare class Move {
79
87
  * {
80
88
  * alice:0x1234, bob:0x5678
81
89
  * }
90
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
91
+ * @example
92
+ * ["--assume-yes","--gas-unit-price=10"]
82
93
  *
83
94
  * @returns stdout
84
95
  */
85
96
  test(args: {
86
97
  packageDirectoryPath: string;
87
98
  namedAddresses: Record<string, AccountAddress>;
99
+ extraArguments?: Array<string>;
88
100
  }): Promise<{
89
101
  output: string;
90
102
  }>;
@@ -98,6 +110,9 @@ declare class Move {
98
110
  * alice:0x1234, bob:0x5678
99
111
  * }
100
112
  * @param args.profile optional Profile to use from the config file.
113
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
114
+ * @example
115
+ * ["--assume-yes","--gas-unit-price=10"]
101
116
  *
102
117
  * @returns stdout
103
118
  */
@@ -105,6 +120,7 @@ declare class Move {
105
120
  packageDirectoryPath: string;
106
121
  namedAddresses: Record<string, AccountAddress>;
107
122
  profile?: string;
123
+ extraArguments?: Array<string>;
108
124
  }): Promise<{
109
125
  output: string;
110
126
  }>;
@@ -121,6 +137,9 @@ declare class Move {
121
137
  * alice:0x1234, bob:0x5678
122
138
  * }
123
139
  * @param args.profile optional Profile to use from the config file.
140
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
141
+ * @example
142
+ * ["--assume-yes","--gas-unit-price=10"]
124
143
  *
125
144
  * A complete example in cli
126
145
  * aptos move create-object-and-publish-package \
@@ -136,6 +155,7 @@ declare class Move {
136
155
  addressName: string;
137
156
  namedAddresses: Record<string, AccountAddress>;
138
157
  profile?: string;
158
+ extraArguments?: Array<string>;
139
159
  }): Promise<{
140
160
  objectAddress: string;
141
161
  }>;
@@ -153,6 +173,9 @@ declare class Move {
153
173
  * alice:0x1234, bob:0x5678
154
174
  * }
155
175
  * @param args.profile optional Profile to use from the config file.
176
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
177
+ * @example
178
+ * ["--assume-yes","--gas-unit-price=10"]
156
179
  *
157
180
  * @returns stdout
158
181
  */
@@ -161,6 +184,7 @@ declare class Move {
161
184
  objectAddress: string;
162
185
  namedAddresses: Record<string, AccountAddress>;
163
186
  profile?: string;
187
+ extraArguments?: Array<string>;
164
188
  }): Promise<{
165
189
  output: string;
166
190
  }>;
@@ -174,6 +198,9 @@ declare class Move {
174
198
  * {
175
199
  * alice:0x1234, bob:0x5678
176
200
  * }
201
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
202
+ * @example
203
+ * ["--assume-yes","--gas-unit-price=10"]
177
204
  *
178
205
  * @returns stdout
179
206
  */
@@ -181,6 +208,7 @@ declare class Move {
181
208
  packageDirectoryPath: string;
182
209
  outputFile: string;
183
210
  namedAddresses: Record<string, AccountAddress>;
211
+ extraArguments?: Array<string>;
184
212
  }): Promise<{
185
213
  output: string;
186
214
  }>;
@@ -192,12 +220,16 @@ declare class Move {
192
220
  * @example
193
221
  * build/my_package/bytecode_scripts/my_move_script.mv
194
222
  * @param args.profile optional Profile to use from the config file.
223
+ * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings
224
+ * @example
225
+ * ["--assume-yes","--gas-unit-price=10"]
195
226
  *
196
227
  * @returns stdout
197
228
  */
198
229
  runScript(args: {
199
230
  compiledScriptPath: string;
200
231
  profile?: string;
232
+ extraArguments?: Array<string>;
201
233
  }): Promise<{
202
234
  output: string;
203
235
  }>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkBHKSQXUZjs = require('../chunk-BHKSQXUZ.js');var _child_process = require('child_process');var _treekill = require('tree-kill'); var _treekill2 = _interopRequireDefault(_treekill);var _os = require('os');var c=class{constructor(){this.MAXIMUM_WAIT_TIME_SEC=75;this.READINESS_ENDPOINT="http://127.0.0.1:8070/";this.process=null}async stop(){await new Promise((s,e)=>{_optionalChain([this, 'access', _ => _.process, 'optionalAccess', _2 => _2.pid])&&_treekill2.default.call(void 0, this.process.pid,r=>{r?e(r):s(!0)})})}async run(){await this.checkIfProcessIsUp()||(this.start(),await this.waitUntilProcessIsUp())}start(){let s="npx",e=["aptos","node","run-localnet","--force-restart","--assume-yes","--with-indexer-api"],r=_os.platform.call(void 0, ),t;r==="win32"?t=_child_process.spawn.call(void 0, s,e,{shell:!0}):t=_child_process.spawn.call(void 0, s,e),this.process=t,_optionalChain([t, 'access', _3 => _3.stderr, 'optionalAccess', _4 => _4.on, 'call', _5 => _5("data",a=>{let o=a.toString();console.log(o)})]),_optionalChain([t, 'access', _6 => _6.stdout, 'optionalAccess', _7 => _7.on, 'call', _8 => _8("data",a=>{let o=a.toString();console.log(o)})])}async waitUntilProcessIsUp(){let s=await this.checkIfProcessIsUp(),e=Date.now()/1e3,r=e;for(;!s&&e+this.MAXIMUM_WAIT_TIME_SEC>r;)await _chunkBHKSQXUZjs.b.call(void 0, 1e3),s=await this.checkIfProcessIsUp(),r=Date.now()/1e3;if(!s)throw new Error("Process failed to start");return!0}async checkIfProcessIsUp(){try{return(await fetch(this.READINESS_ENDPOINT)).status===200}catch (e2){return!1}}};var u=class{async init(s){let{network:e,profile:r}=s,t=["aptos","init",`--network=${_nullishCoalesce(e, () => ("local"))}`,`--profile=${_nullishCoalesce(r, () => ("default"))}`];return this.runCommand(t)}async compile(s){let{packageDirectoryPath:e,namedAddresses:r}=s,t=["aptos","move","compile","--package-dir",e],a=this.parseNamedAddresses(r);return t.push(...this.prepareNamedAddresses(a)),this.runCommand(t)}async test(s){let{packageDirectoryPath:e,namedAddresses:r}=s,t=["aptos","move","test","--package-dir",e],a=this.parseNamedAddresses(r);return t.push(...this.prepareNamedAddresses(a)),this.runCommand(t)}async publish(s){let{packageDirectoryPath:e,namedAddresses:r,profile:t}=s,a=["aptos","move","publish","--package-dir",e,`--profile=${_nullishCoalesce(t, () => ("default"))}`],o=this.parseNamedAddresses(r);return a.push(...this.prepareNamedAddresses(o)),this.runCommand(a)}async createObjectAndPublishPackage(s){let{packageDirectoryPath:e,addressName:r,namedAddresses:t,profile:a}=s,o=["aptos","move","create-object-and-publish-package","--package-dir",e,"--address-name",r,`--profile=${_nullishCoalesce(a, () => ("default"))}`],i=this.parseNamedAddresses(t);o.push(...this.prepareNamedAddresses(i));let m=await this.runCommand(o);return{objectAddress:this.extractAddressFromOutput(m.output)}}async upgradeObjectPackage(s){let{packageDirectoryPath:e,objectAddress:r,namedAddresses:t,profile:a}=s,o=["aptos","move","upgrade-object-package","--package-dir",e,"--object-address",r,`--profile=${_nullishCoalesce(a, () => ("default"))}`],i=this.parseNamedAddresses(t);return o.push(...this.prepareNamedAddresses(i)),this.runCommand(o)}async buildPublishPayload(s){let{outputFile:e,packageDirectoryPath:r,namedAddresses:t}=s,a=["aptos","move","build-publish-payload","--json-output-file",e,"--package-dir",r],o=this.parseNamedAddresses(t);return a.push(...this.prepareNamedAddresses(o)),this.runCommand(a)}async runScript(s){let{compiledScriptPath:e,profile:r}=s,t=["aptos","move","run-script","--compiled-script-path",e,`--profile=${_nullishCoalesce(r, () => ("default"))}`];return this.runCommand(t)}async runCommand(s){return new Promise((e,r)=>{let t=_os.platform.call(void 0, ),a,o="";t==="win32"?a=_child_process.spawn.call(void 0, "npx",s,{shell:!0}):a=_child_process.spawn.call(void 0, "npx",s),a.stdout.on("data",i=>{o+=i.toString()}),a.stdout.pipe(process.stdout),a.stderr.pipe(process.stderr),process.stdin.pipe(a.stdin),a.on("close",i=>{i===0?e({output:o}):r(new Error(`Child process exited with code ${i}`))})})}prepareNamedAddresses(s){let e=s.size,r=[];if(e===0)return r;r.push("--named-addresses");let t=[];return s.forEach((a,o)=>{let i=`${o}=${a.toString()}`;t.push(i)}),r.push(t.join(",")),r}parseNamedAddresses(s){let e=new Map;return Object.keys(s).forEach(r=>{let t=s[r];e.set(r,t)}),e}extractAddressFromOutput(s){let e=s.match("Code was successfully deployed to object address (0x[0-9a-fA-F]+)\\.");if(e)return e[1];throw new Error("Failed to extract object address from output")}};exports.LocalNode = c; exports.Move = u;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkBHKSQXUZjs = require('../chunk-BHKSQXUZ.js');var _child_process = require('child_process');var _treekill = require('tree-kill'); var _treekill2 = _interopRequireDefault(_treekill);var _os = require('os');var p=class{constructor(){this.MAXIMUM_WAIT_TIME_SEC=75;this.READINESS_ENDPOINT="http://127.0.0.1:8070/";this.process=null}async stop(){await new Promise((s,e)=>{_optionalChain([this, 'access', _ => _.process, 'optionalAccess', _2 => _2.pid])&&_treekill2.default.call(void 0, this.process.pid,t=>{t?e(t):s(!0)})})}async run(){await this.checkIfProcessIsUp()||(this.start(),await this.waitUntilProcessIsUp())}start(){let s="npx",e=["aptos","node","run-localnet","--force-restart","--assume-yes","--with-indexer-api"],t=_os.platform.call(void 0, ),a;t==="win32"?a=_child_process.spawn.call(void 0, s,e,{shell:!0}):a=_child_process.spawn.call(void 0, s,e),this.process=a,_optionalChain([a, 'access', _3 => _3.stderr, 'optionalAccess', _4 => _4.on, 'call', _5 => _5("data",r=>{let o=r.toString();console.log(o)})]),_optionalChain([a, 'access', _6 => _6.stdout, 'optionalAccess', _7 => _7.on, 'call', _8 => _8("data",r=>{let o=r.toString();console.log(o)})])}async waitUntilProcessIsUp(){let s=await this.checkIfProcessIsUp(),e=Date.now()/1e3,t=e;for(;!s&&e+this.MAXIMUM_WAIT_TIME_SEC>t;)await _chunkBHKSQXUZjs.b.call(void 0, 1e3),s=await this.checkIfProcessIsUp(),t=Date.now()/1e3;if(!s)throw new Error("Process failed to start");return!0}async checkIfProcessIsUp(){try{return(await fetch(this.READINESS_ENDPOINT)).status===200}catch (e2){return!1}}};var m=class{async init(s){let{network:e,profile:t,extraArguments:a}=s,r=["aptos","init",`--network=${_nullishCoalesce(e, () => ("local"))}`,`--profile=${_nullishCoalesce(t, () => ("default"))}`];return a&&r.push(...a),this.runCommand(r)}async compile(s){let{packageDirectoryPath:e,namedAddresses:t,extraArguments:a}=s,r=["aptos","move","compile","--package-dir",e],o=this.parseNamedAddresses(t);return r.push(...this.prepareNamedAddresses(o)),a&&r.push(...a),this.runCommand(r)}async test(s){let{packageDirectoryPath:e,namedAddresses:t,extraArguments:a}=s,r=["aptos","move","test","--package-dir",e],o=this.parseNamedAddresses(t);return r.push(...this.prepareNamedAddresses(o)),a&&r.push(...a),this.runCommand(r)}async publish(s){let{packageDirectoryPath:e,namedAddresses:t,profile:a,extraArguments:r}=s,o=["aptos","move","publish","--package-dir",e,`--profile=${_nullishCoalesce(a, () => ("default"))}`],n=this.parseNamedAddresses(t);return o.push(...this.prepareNamedAddresses(n)),r&&o.push(...r),this.runCommand(o)}async createObjectAndPublishPackage(s){let{packageDirectoryPath:e,addressName:t,namedAddresses:a,profile:r,extraArguments:o}=s,n=["aptos","move","create-object-and-publish-package","--package-dir",e,"--address-name",t,`--profile=${_nullishCoalesce(r, () => ("default"))}`],i=this.parseNamedAddresses(a);n.push(...this.prepareNamedAddresses(i)),o&&n.push(...o);let g=await this.runCommand(n);return{objectAddress:this.extractAddressFromOutput(g.output)}}async upgradeObjectPackage(s){let{packageDirectoryPath:e,objectAddress:t,namedAddresses:a,profile:r,extraArguments:o}=s,n=["aptos","move","upgrade-object-package","--package-dir",e,"--object-address",t,`--profile=${_nullishCoalesce(r, () => ("default"))}`],i=this.parseNamedAddresses(a);return n.push(...this.prepareNamedAddresses(i)),o&&n.push(...o),this.runCommand(n)}async buildPublishPayload(s){let{outputFile:e,packageDirectoryPath:t,namedAddresses:a,extraArguments:r}=s,o=["aptos","move","build-publish-payload","--json-output-file",e,"--package-dir",t],n=this.parseNamedAddresses(a);return o.push(...this.prepareNamedAddresses(n)),r&&o.push(...r),this.runCommand(o)}async runScript(s){let{compiledScriptPath:e,profile:t,extraArguments:a}=s,r=["aptos","move","run-script","--compiled-script-path",e,`--profile=${_nullishCoalesce(t, () => ("default"))}`];return a&&r.push(...a),this.runCommand(r)}async runCommand(s){return new Promise((e,t)=>{let a=_os.platform.call(void 0, ),r,o="";a==="win32"?r=_child_process.spawn.call(void 0, "npx",s,{shell:!0}):r=_child_process.spawn.call(void 0, "npx",s),r.stdout.on("data",n=>{o+=n.toString()}),r.stdout.pipe(process.stdout),r.stderr.pipe(process.stderr),process.stdin.pipe(r.stdin),r.on("close",n=>{n===0?e({output:o}):t(new Error(`Child process exited with code ${n}`))})})}prepareNamedAddresses(s){let e=s.size,t=[];if(e===0)return t;t.push("--named-addresses");let a=[];return s.forEach((r,o)=>{let n=`${o}=${r.toString()}`;a.push(n)}),t.push(a.join(",")),t}parseNamedAddresses(s){let e=new Map;return Object.keys(s).forEach(t=>{let a=s[t];e.set(t,a)}),e}extractAddressFromOutput(s){let e=s.match("Code was successfully deployed to object address (0x[0-9a-fA-F]+)\\.");if(e)return e[1];throw new Error("Failed to extract object address from output")}};exports.LocalNode = p; exports.Move = m;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/localNode.ts","../../../src/cli/move.ts"],"names":["spawn","kill","platform","LocalNode","resolve","reject","err","cliCommand","cliArgs","currentPlatform","childProcess","data","str","operational","start","last","sleep","Move","args","network","profile","packageDirectoryPath","namedAddresses","addressesMap","addressName","result","objectAddress","outputFile","compiledScriptPath","stdout","code","totalNames","newArgs","names","value","key","toAppend","address","output","match"],"mappings":"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","sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from \"child_process\";\nimport kill from \"tree-kill\";\nimport { platform } from \"os\";\n\nimport { sleep } from \"../utils/helpers\";\n\nexport class LocalNode {\n readonly MAXIMUM_WAIT_TIME_SEC = 75;\n\n readonly READINESS_ENDPOINT = \"http://127.0.0.1:8070/\";\n\n process: ChildProcessWithoutNullStreams | null = null;\n\n /**\n * kills all the descendent processes\n * of the node process, including the node process itself\n */\n async stop() {\n await new Promise((resolve, reject) => {\n if (!this.process?.pid) return;\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 local testnet and waits for process to be up.\n *\n * If local node process is already up it returns and does\n * not start the process\n */\n async run() {\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 local testnet by running the aptos node run-local-testnet command\n */\n start() {\n const cliCommand = \"npx\";\n const cliArgs = [\"aptos\", \"node\", \"run-localnet\", \"--force-restart\", \"--assume-yes\", \"--with-indexer-api\"];\n\n const currentPlatform = platform();\n let childProcess;\n // Check if current OS is windows\n if (currentPlatform === \"win32\") {\n childProcess = spawn(cliCommand, cliArgs, { shell: true });\n } else {\n childProcess = spawn(cliCommand, cliArgs);\n }\n\n this.process = childProcess;\n\n childProcess.stderr?.on(\"data\", (data: any) => {\n const str = data.toString();\n // Print local node output log\n // eslint-disable-next-line no-console\n console.log(str);\n });\n\n childProcess.stdout?.on(\"data\", (data: any) => {\n const str = data.toString();\n // Print local node output log\n // eslint-disable-next-line no-console\n console.log(str);\n });\n }\n\n /**\n * Waits for the local testnet process to be up\n *\n * @returns Promise<boolean>\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 local testnet is up\n *\n * @returns Promise<boolean>\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\nexport class Move {\n /**\n * Function to initialize current directory for Aptos\n *\n * Configuration will be pushed into .aptos/config.yaml\n * @param args.network optional Network type argument to use for default settings, default is local\n * @param args.profile optional Profile to use from the config file, default is 'default'\n * This will be used to override associated settings such as the REST URL, the Faucet URL, and the private key arguments.\n *\n * @returns stdout\n */\n async init(args: { network?: Network; profile?: string }): Promise<{ output: string }> {\n const { network, profile } = args;\n const cliArgs = [\"aptos\", \"init\", `--network=${network ?? \"local\"}`, `--profile=${profile ?? \"default\"}`];\n\n return this.runCommand(cliArgs);\n }\n\n /**\n * Function to compile a package\n *\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\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n *\n * @returns stdout\n */\n async compile(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses } = 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 return this.runCommand(cliArgs);\n }\n\n /**\n * Function to run Move unit tests for a package\n *\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\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n *\n * @returns stdout\n */\n async test(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses } = 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 return this.runCommand(cliArgs);\n }\n\n /**\n * Function to publish the modules to the publisher account on the Aptos blockchain\n *\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\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.profile optional Profile to use from the config file.\n *\n * @returns stdout\n */\n async publish(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, profile } = 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 return this.runCommand(cliArgs);\n }\n\n /**\n * Function to create a new object and publish the Move package to it on the Aptos blockchain\n *\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 * @example\n * MoonCoin, please find the actual address name in Move.toml\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.profile optional Profile to use from the config file.\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 * @returns object address\n */\n async createObjectAndPublishPackage(args: {\n packageDirectoryPath: string;\n addressName: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n }): Promise<{ objectAddress: string }> {\n const { packageDirectoryPath, addressName, namedAddresses, profile } = 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 const result = await this.runCommand(cliArgs);\n return { objectAddress: this.extractAddressFromOutput(result.output) };\n }\n\n /**\n * Function to upgrade a Move package previously published to an object on the Aptos blockchain\n * Caller must be the object owner to call this function\n *\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\n * @example\n * 0x1000\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.profile optional Profile to use from the config file.\n *\n * @returns stdout\n */\n async upgradeObjectPackage(args: {\n packageDirectoryPath: string;\n objectAddress: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, objectAddress, namedAddresses, profile } = 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 return this.runCommand(cliArgs);\n }\n\n /**\n * Build a publication transaction payload and store it in a JSON output file\n *\n * @param args.packageDirectoryPath Path to a move package (the folder with a Move.toml file)\n * @param args.outputFile Output file to write publication transaction to\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n *\n * @returns stdout\n */\n async buildPublishPayload(args: {\n packageDirectoryPath: string;\n outputFile: string;\n namedAddresses: Record<string, AccountAddress>;\n }) {\n const { outputFile, packageDirectoryPath, namedAddresses } = 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 return this.runCommand(cliArgs);\n }\n\n /**\n * Function to run a Move script, please run compile before running this\n *\n * @param args.compiledScriptPath Path to a compiled Move script bytecode file\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * build/my_package/bytecode_scripts/my_move_script.mv\n * @param args.profile optional Profile to use from the config file.\n *\n * @returns stdout\n */\n async runScript(args: { compiledScriptPath: string; profile?: string }): Promise<{ output: string }> {\n const { compiledScriptPath, profile } = args;\n const cliArgs = [\n \"aptos\",\n \"move\",\n \"run-script\",\n \"--compiled-script-path\",\n compiledScriptPath,\n `--profile=${profile ?? \"default\"}`,\n ];\n\n return this.runCommand(cliArgs);\n }\n\n /**\n * Run a move command\n *\n * @param args\n * @returns stdout\n */\n // eslint-disable-next-line class-methods-use-this\n private async runCommand(args: Array<string>): Promise<{ output: string }> {\n return new Promise((resolve, reject) => {\n const currentPlatform = platform();\n let childProcess;\n let stdout = \"\";\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 stdout += data.toString();\n });\n\n childProcess.stdout.pipe(process.stdout);\n childProcess.stderr.pipe(process.stderr);\n process.stdin.pipe(childProcess.stdin);\n\n childProcess.on(\"close\", (code) => {\n if (code === 0) {\n resolve({ output: stdout }); // Resolve with stdout if the child process exits successfully\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 seperated by a comma\n *\n * @example\n * input: {'alice' => '0x123', 'bob' => '0x456'}\n * output: \"alice=0x123,bob=0x456\"\n *\n * @param namedAddresses\n * @returns An array of names addresses seperated by a comma\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 * @param namedAddresses\n * @returns Map<name,address>\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 * Extract object address from the output\n *\n * @param output\n * @returns object address\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":["../../../src/cli/localNode.ts","../../../src/cli/move.ts"],"names":["spawn","kill","platform","LocalNode","resolve","reject","err","cliCommand","cliArgs","currentPlatform","childProcess","data","str","operational","start","last","sleep","Move","args","network","profile","extraArguments","packageDirectoryPath","namedAddresses","addressesMap","addressName","result","objectAddress","outputFile","compiledScriptPath","stdout","code","totalNames","newArgs","names","value","key","toAppend","address","output","match"],"mappings":"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","sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from \"child_process\";\nimport kill from \"tree-kill\";\nimport { platform } from \"os\";\n\nimport { sleep } from \"../utils/helpers\";\n\nexport class LocalNode {\n readonly MAXIMUM_WAIT_TIME_SEC = 75;\n\n readonly READINESS_ENDPOINT = \"http://127.0.0.1:8070/\";\n\n process: ChildProcessWithoutNullStreams | null = null;\n\n /**\n * kills all the descendent processes\n * of the node process, including the node process itself\n */\n async stop() {\n await new Promise((resolve, reject) => {\n if (!this.process?.pid) return;\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 local testnet and waits for process to be up.\n *\n * If local node process is already up it returns and does\n * not start the process\n */\n async run() {\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 local testnet by running the aptos node run-local-testnet command\n */\n start() {\n const cliCommand = \"npx\";\n const cliArgs = [\"aptos\", \"node\", \"run-localnet\", \"--force-restart\", \"--assume-yes\", \"--with-indexer-api\"];\n\n const currentPlatform = platform();\n let childProcess;\n // Check if current OS is windows\n if (currentPlatform === \"win32\") {\n childProcess = spawn(cliCommand, cliArgs, { shell: true });\n } else {\n childProcess = spawn(cliCommand, cliArgs);\n }\n\n this.process = childProcess;\n\n childProcess.stderr?.on(\"data\", (data: any) => {\n const str = data.toString();\n // Print local node output log\n // eslint-disable-next-line no-console\n console.log(str);\n });\n\n childProcess.stdout?.on(\"data\", (data: any) => {\n const str = data.toString();\n // Print local node output log\n // eslint-disable-next-line no-console\n console.log(str);\n });\n }\n\n /**\n * Waits for the local testnet process to be up\n *\n * @returns Promise<boolean>\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 local testnet is up\n *\n * @returns Promise<boolean>\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\nexport class Move {\n /**\n * Function to initialize current directory for Aptos\n *\n * Configuration will be pushed into .aptos/config.yaml\n * @param args.network optional Network type argument to use for default settings, default is local\n * @param args.profile optional Profile to use from the config file, default is 'default'\n * This will be used to override associated settings such as the REST URL, the Faucet URL, and the private key arguments.\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns stdout\n */\n async init(args: {\n network?: Network;\n profile?: string;\n extraArguments?: Array<string>;\n }): Promise<{ output: string }> {\n const { network, profile, extraArguments } = 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);\n }\n\n /**\n * Function to compile a package\n *\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\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n *\n * @returns stdout\n */\n async compile(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, extraArguments } = 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);\n }\n\n /**\n * Function to run Move unit tests for a package\n *\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\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns stdout\n */\n async test(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, extraArguments } = 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);\n }\n\n /**\n * Function to publish the modules to the publisher account on the Aptos blockchain\n *\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\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.profile optional Profile to use from the config file.\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns stdout\n */\n async publish(args: {\n packageDirectoryPath: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, namedAddresses, profile, extraArguments } = 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);\n }\n\n /**\n * Function to create a new object and publish the Move package to it on the Aptos blockchain\n *\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 * @example\n * MoonCoin, please find the actual address name in Move.toml\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.profile optional Profile to use from the config file.\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\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 * @returns object address\n */\n async createObjectAndPublishPackage(args: {\n packageDirectoryPath: string;\n addressName: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n }): Promise<{ objectAddress: string }> {\n const { packageDirectoryPath, addressName, namedAddresses, profile, extraArguments } = 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 result = await this.runCommand(cliArgs);\n return { objectAddress: this.extractAddressFromOutput(result.output) };\n }\n\n /**\n * Function to upgrade a Move package previously published to an object on the Aptos blockchain\n * Caller must be the object owner to call this function\n *\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\n * @example\n * 0x1000\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.profile optional Profile to use from the config file.\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns stdout\n */\n async upgradeObjectPackage(args: {\n packageDirectoryPath: string;\n objectAddress: string;\n namedAddresses: Record<string, AccountAddress>;\n profile?: string;\n extraArguments?: Array<string>;\n }): Promise<{ output: string }> {\n const { packageDirectoryPath, objectAddress, namedAddresses, profile, extraArguments } = 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);\n }\n\n /**\n * Build a publication transaction payload and store it in a JSON output file\n *\n * @param args.packageDirectoryPath Path to a move package (the folder with a Move.toml file)\n * @param args.outputFile Output file to write publication transaction to\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * {\n * alice:0x1234, bob:0x5678\n * }\n * @param args.extraArguments (optional) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns stdout\n */\n async buildPublishPayload(args: {\n packageDirectoryPath: string;\n outputFile: string;\n namedAddresses: Record<string, AccountAddress>;\n extraArguments?: Array<string>;\n }) {\n const { outputFile, packageDirectoryPath, namedAddresses, extraArguments } = 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);\n }\n\n /**\n * Function to run a Move script, please run compile before running this\n *\n * @param args.compiledScriptPath Path to a compiled Move script bytecode file\n * @param args.namedAddresses Named addresses for the move binary\n * @example\n * 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) Any extra arguments to include in the form of an array of strings\n * @example\n * [\"--assume-yes\",\"--gas-unit-price=10\"]\n *\n * @returns stdout\n */\n async runScript(args: {\n compiledScriptPath: string;\n profile?: string;\n extraArguments?: Array<string>;\n }): Promise<{ output: string }> {\n const { compiledScriptPath, profile, extraArguments } = 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);\n }\n\n /**\n * Run a move command\n *\n * @param args\n * @returns stdout\n */\n // eslint-disable-next-line class-methods-use-this\n private async runCommand(args: Array<string>): Promise<{ output: string }> {\n return new Promise((resolve, reject) => {\n const currentPlatform = platform();\n let childProcess;\n let stdout = \"\";\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 stdout += data.toString();\n });\n\n childProcess.stdout.pipe(process.stdout);\n childProcess.stderr.pipe(process.stderr);\n process.stdin.pipe(childProcess.stdin);\n\n childProcess.on(\"close\", (code) => {\n if (code === 0) {\n resolve({ output: stdout }); // Resolve with stdout if the child process exits successfully\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 seperated by a comma\n *\n * @example\n * input: {'alice' => '0x123', 'bob' => '0x456'}\n * output: \"alice=0x123,bob=0x456\"\n *\n * @param namedAddresses\n * @returns An array of names addresses seperated by a comma\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 * @param namedAddresses\n * @returns Map<name,address>\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 * Extract object address from the output\n *\n * @param output\n * @returns object address\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"]}