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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/dist/common/accountAddress-u9wEan9p.d.ts +2149 -0
  2. package/dist/common/chunk-QRI7EC4T.js +24 -0
  3. package/dist/common/chunk-QRI7EC4T.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +94 -1
  5. package/dist/common/cli/index.js +245 -1
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +2699 -4119
  8. package/dist/common/index.js +11786 -374
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/{Ed25519Account--qjfup2u.d.mts → Ed25519Account-9zBaZEnp.d.mts} +76 -9
  11. package/dist/esm/account/Account.d.mts +34 -0
  12. package/dist/esm/account/Account.mjs +56 -0
  13. package/dist/esm/account/Ed25519Account.d.mts +34 -0
  14. package/dist/esm/account/Ed25519Account.mjs +54 -0
  15. package/dist/esm/account/EphemeralKeyPair.d.mts +80 -0
  16. package/dist/esm/account/EphemeralKeyPair.mjs +37 -0
  17. package/dist/esm/account/KeylessAccount.d.mts +145 -0
  18. package/dist/esm/account/KeylessAccount.mjs +57 -0
  19. package/dist/esm/account/MultiKeyAccount.d.mts +138 -0
  20. package/dist/esm/account/MultiKeyAccount.mjs +56 -0
  21. package/dist/esm/account/SingleKeyAccount.d.mts +34 -0
  22. package/dist/esm/account/SingleKeyAccount.mjs +54 -0
  23. package/dist/esm/account/index.d.mts +41 -0
  24. package/dist/esm/account/index.mjs +77 -0
  25. package/dist/esm/api/account.d.mts +13 -1
  26. package/dist/esm/api/account.mjs +76 -1
  27. package/dist/esm/api/ans.d.mts +2 -2
  28. package/dist/esm/api/ans.mjs +87 -1
  29. package/dist/esm/api/aptos.d.mts +15 -8
  30. package/dist/esm/api/aptos.mjs +116 -1
  31. package/dist/esm/api/aptosConfig.d.mts +20 -0
  32. package/dist/esm/api/aptosConfig.mjs +9 -1
  33. package/dist/esm/api/coin.d.mts +7 -7
  34. package/dist/esm/api/coin.mjs +86 -1
  35. package/dist/esm/api/digitalAsset.d.mts +1 -1
  36. package/dist/esm/api/digitalAsset.mjs +87 -1
  37. package/dist/esm/api/event.mjs +54 -1
  38. package/dist/esm/api/faucet.mjs +53 -1
  39. package/dist/esm/api/fungibleAsset.d.mts +5 -5
  40. package/dist/esm/api/fungibleAsset.mjs +87 -1
  41. package/dist/esm/api/general.d.mts +7 -7
  42. package/dist/esm/api/general.mjs +84 -1
  43. package/dist/esm/api/index.d.mts +14 -8
  44. package/dist/esm/api/index.mjs +120 -1
  45. package/dist/esm/api/keyless.d.mts +81 -0
  46. package/dist/esm/api/keyless.mjs +71 -0
  47. package/dist/esm/api/staking.mjs +54 -1
  48. package/dist/esm/api/transaction.d.mts +1 -1
  49. package/dist/esm/api/transaction.mjs +94 -1
  50. package/dist/esm/api/transactionSubmission/build.d.mts +2 -2
  51. package/dist/esm/api/transactionSubmission/build.mjs +85 -1
  52. package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
  53. package/dist/esm/api/transactionSubmission/management.d.mts +8 -8
  54. package/dist/esm/api/transactionSubmission/management.mjs +89 -1
  55. package/dist/esm/api/transactionSubmission/sign.d.mts +1 -1
  56. package/dist/esm/api/transactionSubmission/sign.mjs +109 -1
  57. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  58. package/dist/esm/api/transactionSubmission/simulate.d.mts +6 -6
  59. package/dist/esm/api/transactionSubmission/simulate.mjs +86 -1
  60. package/dist/esm/api/transactionSubmission/submit.mjs +86 -1
  61. package/dist/esm/api/utils.mjs +34 -1
  62. package/dist/esm/bcs/consts.mjs +17 -1
  63. package/dist/esm/bcs/deserializer.d.mts +26 -0
  64. package/dist/esm/bcs/deserializer.mjs +8 -1
  65. package/dist/esm/bcs/index.mjs +57 -1
  66. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
  67. package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
  68. package/dist/esm/bcs/serializable/movePrimitives.mjs +25 -1
  69. package/dist/esm/bcs/serializable/moveStructs.mjs +18 -1
  70. package/dist/esm/bcs/serializer.d.mts +2 -0
  71. package/dist/esm/bcs/serializer.mjs +18 -1
  72. package/dist/esm/chunk-2JOCR2VL.mjs +32 -0
  73. package/dist/esm/chunk-2JOCR2VL.mjs.map +1 -0
  74. package/dist/esm/chunk-2OQW7BMN.mjs +129 -0
  75. package/dist/esm/{chunk-PZGLV5UQ.mjs.map → chunk-2OQW7BMN.mjs.map} +1 -1
  76. package/dist/esm/chunk-2TJJWII2.mjs +23 -0
  77. package/dist/esm/{chunk-DSTKXJMA.mjs.map → chunk-2TJJWII2.mjs.map} +1 -1
  78. package/dist/esm/chunk-2ZEGJU43.mjs +252 -0
  79. package/dist/esm/chunk-2ZEGJU43.mjs.map +1 -0
  80. package/dist/esm/chunk-4OYYOYSO.mjs +336 -0
  81. package/dist/esm/chunk-4OYYOYSO.mjs.map +1 -0
  82. package/dist/esm/{chunk-S4SEFF4K.mjs → chunk-4PJ5FYGQ.mjs} +302 -27
  83. package/dist/esm/{chunk-S4SEFF4K.mjs.map → chunk-4PJ5FYGQ.mjs.map} +1 -1
  84. package/dist/esm/chunk-55NODGHC.mjs +135 -0
  85. package/dist/esm/chunk-55NODGHC.mjs.map +1 -0
  86. package/dist/esm/chunk-6LRQSBRH.mjs +130 -0
  87. package/dist/esm/chunk-6LRQSBRH.mjs.map +1 -0
  88. package/dist/esm/chunk-6MSZMIFW.mjs +23 -0
  89. package/dist/esm/{chunk-BWFJHFBQ.mjs.map → chunk-6MSZMIFW.mjs.map} +1 -1
  90. package/dist/esm/chunk-76TSTAU4.mjs +120 -0
  91. package/dist/esm/chunk-76TSTAU4.mjs.map +1 -0
  92. package/dist/esm/chunk-7FO3S6IZ.mjs +324 -0
  93. package/dist/esm/{chunk-DMKUAQB7.mjs.map → chunk-7FO3S6IZ.mjs.map} +1 -1
  94. package/dist/esm/chunk-7FUHWL6A.mjs +42 -0
  95. package/dist/esm/{chunk-V3Q2KXJU.mjs.map → chunk-7FUHWL6A.mjs.map} +1 -1
  96. package/dist/esm/chunk-7IDBB4J4.mjs +33 -0
  97. package/dist/esm/{chunk-ZZZZVONX.mjs.map → chunk-7IDBB4J4.mjs.map} +1 -1
  98. package/dist/esm/chunk-7JRMOHBP.mjs +247 -0
  99. package/dist/esm/chunk-7JRMOHBP.mjs.map +1 -0
  100. package/dist/esm/chunk-7REUIYF4.mjs +63 -0
  101. package/dist/esm/chunk-7REUIYF4.mjs.map +1 -0
  102. package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
  103. package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
  104. package/dist/esm/chunk-AC3OGAL6.mjs +87 -0
  105. package/dist/esm/{chunk-U6Z4FNB7.mjs.map → chunk-AC3OGAL6.mjs.map} +1 -1
  106. package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
  107. package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
  108. package/dist/esm/chunk-AR7X6GWQ.mjs +356 -0
  109. package/dist/esm/{chunk-FS3NSGBF.mjs.map → chunk-AR7X6GWQ.mjs.map} +1 -1
  110. package/dist/esm/chunk-ASF2VWOX.mjs +142 -0
  111. package/dist/esm/{chunk-G2O323HP.mjs.map → chunk-ASF2VWOX.mjs.map} +1 -1
  112. package/dist/esm/chunk-ATVFVXR6.mjs +43 -0
  113. package/dist/esm/{chunk-VVIG4E7Q.mjs.map → chunk-ATVFVXR6.mjs.map} +1 -1
  114. package/dist/esm/chunk-B5S6DDUD.mjs +120 -0
  115. package/dist/esm/chunk-B5S6DDUD.mjs.map +1 -0
  116. package/dist/esm/chunk-BXMHDQHW.mjs +512 -0
  117. package/dist/esm/chunk-BXMHDQHW.mjs.map +1 -0
  118. package/dist/esm/chunk-CC4DQ6NH.mjs +19 -0
  119. package/dist/esm/{chunk-MACC2BLE.mjs.map → chunk-CC4DQ6NH.mjs.map} +1 -1
  120. package/dist/esm/chunk-CMNJG4NN.mjs +345 -0
  121. package/dist/esm/{chunk-IOSQVDZI.mjs.map → chunk-CMNJG4NN.mjs.map} +1 -1
  122. package/dist/esm/chunk-CTJSZT5V.mjs +87 -0
  123. package/dist/esm/{chunk-UFT7US42.mjs.map → chunk-CTJSZT5V.mjs.map} +1 -1
  124. package/dist/esm/chunk-CX3NAVRD.mjs +205 -0
  125. package/dist/esm/chunk-CX3NAVRD.mjs.map +1 -0
  126. package/dist/esm/chunk-CXUGZXED.mjs +307 -0
  127. package/dist/esm/{chunk-YU3KB3UV.mjs.map → chunk-CXUGZXED.mjs.map} +1 -1
  128. package/dist/esm/chunk-D2BVBXWO.mjs +7 -0
  129. package/dist/esm/{chunk-B7TQGVGL.mjs.map → chunk-D2BVBXWO.mjs.map} +1 -1
  130. package/dist/esm/chunk-DGV7DYU4.mjs +413 -0
  131. package/dist/esm/chunk-DGV7DYU4.mjs.map +1 -0
  132. package/dist/esm/chunk-DIYZRGR6.mjs +242 -0
  133. package/dist/esm/{chunk-O4JRPZZM.mjs.map → chunk-DIYZRGR6.mjs.map} +1 -1
  134. package/dist/esm/chunk-DNPMS2OF.mjs +236 -0
  135. package/dist/esm/{chunk-U43IJHQN.mjs.map → chunk-DNPMS2OF.mjs.map} +1 -1
  136. package/dist/esm/chunk-DVPQGCFT.mjs +74 -0
  137. package/dist/esm/{chunk-O2F53NKI.mjs.map → chunk-DVPQGCFT.mjs.map} +1 -1
  138. package/dist/esm/chunk-EYHRMZPO.mjs +34 -0
  139. package/dist/esm/{chunk-AH44UPM4.mjs.map → chunk-EYHRMZPO.mjs.map} +1 -1
  140. package/dist/esm/chunk-F2ZWA7B7.mjs +412 -0
  141. package/dist/esm/chunk-F2ZWA7B7.mjs.map +1 -0
  142. package/dist/esm/chunk-FDWJNY4U.mjs +22 -0
  143. package/dist/esm/{chunk-R5QUBEH6.mjs.map → chunk-FDWJNY4U.mjs.map} +1 -1
  144. package/dist/esm/chunk-FF4JPDKD.mjs +315 -0
  145. package/dist/esm/chunk-FF4JPDKD.mjs.map +1 -0
  146. package/dist/esm/chunk-FQQW55X7.mjs +288 -0
  147. package/dist/esm/{chunk-52C73T26.mjs.map → chunk-FQQW55X7.mjs.map} +1 -1
  148. package/dist/esm/chunk-FXKSE3ZP.mjs +25 -0
  149. package/dist/esm/{chunk-WFZDFFBM.mjs.map → chunk-FXKSE3ZP.mjs.map} +1 -1
  150. package/dist/esm/chunk-GBEVD2VM.mjs +99 -0
  151. package/dist/esm/chunk-GBEVD2VM.mjs.map +1 -0
  152. package/dist/esm/chunk-GGMTQAQP.mjs +11 -0
  153. package/dist/esm/{chunk-3JPVQHOR.mjs.map → chunk-GGMTQAQP.mjs.map} +1 -1
  154. package/dist/esm/chunk-GSVQ6EUD.mjs +649 -0
  155. package/dist/esm/chunk-GSVQ6EUD.mjs.map +1 -0
  156. package/dist/esm/chunk-HBNSRCZN.mjs +100 -0
  157. package/dist/esm/{chunk-SG4MAOCF.mjs.map → chunk-HBNSRCZN.mjs.map} +1 -1
  158. package/dist/esm/chunk-IC56GQFJ.mjs +127 -0
  159. package/dist/esm/chunk-IC56GQFJ.mjs.map +1 -0
  160. package/dist/esm/chunk-IHNPN5CQ.mjs +256 -0
  161. package/dist/esm/chunk-IHNPN5CQ.mjs.map +1 -0
  162. package/dist/esm/chunk-JHDHNGJ3.mjs +126 -0
  163. package/dist/esm/chunk-JHDHNGJ3.mjs.map +1 -0
  164. package/dist/esm/chunk-JL2JHVS4.mjs +49 -0
  165. package/dist/esm/{chunk-RHBCVCOS.mjs.map → chunk-JL2JHVS4.mjs.map} +1 -1
  166. package/dist/esm/chunk-JV3GSIJW.mjs +268 -0
  167. package/dist/esm/chunk-JV3GSIJW.mjs.map +1 -0
  168. package/dist/esm/chunk-JXCZTOYC.mjs +1 -0
  169. package/dist/esm/chunk-JXCZTOYC.mjs.map +1 -0
  170. package/dist/esm/chunk-KK2BSALW.mjs +32 -0
  171. package/dist/esm/{chunk-TBMAJ6AW.mjs.map → chunk-KK2BSALW.mjs.map} +1 -1
  172. package/dist/esm/chunk-KMXSRHJ6.mjs +93 -0
  173. package/dist/esm/chunk-KMXSRHJ6.mjs.map +1 -0
  174. package/dist/esm/chunk-KVSQ57HU.mjs +45 -0
  175. package/dist/esm/{chunk-NNQJBFRB.mjs.map → chunk-KVSQ57HU.mjs.map} +1 -1
  176. package/dist/esm/chunk-LI2QV6RU.mjs +129 -0
  177. package/dist/esm/chunk-LI2QV6RU.mjs.map +1 -0
  178. package/dist/esm/chunk-LLLQJWRZ.mjs +35 -0
  179. package/dist/esm/{chunk-DPV25ZKR.mjs.map → chunk-LLLQJWRZ.mjs.map} +1 -1
  180. package/dist/esm/chunk-LYK4TQZO.mjs +70 -0
  181. package/dist/esm/chunk-LYK4TQZO.mjs.map +1 -0
  182. package/dist/esm/chunk-LYMY63SO.mjs +124 -0
  183. package/dist/esm/{chunk-W4ZW7QHA.mjs.map → chunk-LYMY63SO.mjs.map} +1 -1
  184. package/dist/esm/chunk-MZZLEY6O.mjs +92 -0
  185. package/dist/esm/chunk-MZZLEY6O.mjs.map +1 -0
  186. package/dist/esm/chunk-N4WKFNQ6.mjs +156 -0
  187. package/dist/esm/chunk-N4WKFNQ6.mjs.map +1 -0
  188. package/dist/esm/chunk-NFJCQRVK.mjs +37 -0
  189. package/dist/esm/chunk-NFJCQRVK.mjs.map +1 -0
  190. package/dist/esm/chunk-NMKCJNQM.mjs +20 -0
  191. package/dist/esm/{chunk-TJDC5PWD.mjs.map → chunk-NMKCJNQM.mjs.map} +1 -1
  192. package/dist/esm/chunk-NW45SCPY.mjs +36 -0
  193. package/dist/esm/{chunk-GSD4OOM3.mjs.map → chunk-NW45SCPY.mjs.map} +1 -1
  194. package/dist/esm/chunk-NXFO2W4G.mjs +84 -0
  195. package/dist/esm/{chunk-QMURTXFM.mjs.map → chunk-NXFO2W4G.mjs.map} +1 -1
  196. package/dist/esm/chunk-NYL77J4X.mjs +97 -0
  197. package/dist/esm/chunk-NYL77J4X.mjs.map +1 -0
  198. package/dist/esm/chunk-O6PSHSN3.mjs +53 -0
  199. package/dist/esm/{chunk-MFKMAAWA.mjs.map → chunk-O6PSHSN3.mjs.map} +1 -1
  200. package/dist/esm/chunk-OR7TEZ25.mjs +16 -0
  201. package/dist/esm/chunk-OR7TEZ25.mjs.map +1 -0
  202. package/dist/esm/chunk-PCLNX6FS.mjs +17 -0
  203. package/dist/esm/{chunk-6FBKUTGF.mjs.map → chunk-PCLNX6FS.mjs.map} +1 -1
  204. package/dist/esm/chunk-PIMQHG2J.mjs +49 -0
  205. package/dist/esm/{chunk-ZYYK3UXP.mjs.map → chunk-PIMQHG2J.mjs.map} +1 -1
  206. package/dist/esm/chunk-PU5AFUX3.mjs +52 -0
  207. package/dist/esm/{chunk-LR65XHSF.mjs.map → chunk-PU5AFUX3.mjs.map} +1 -1
  208. package/dist/esm/chunk-PYLOAMR2.mjs +29 -0
  209. package/dist/esm/{chunk-UML2VQZT.mjs.map → chunk-PYLOAMR2.mjs.map} +1 -1
  210. package/dist/esm/chunk-QBBTUC66.mjs +15 -0
  211. package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-QBBTUC66.mjs.map} +1 -1
  212. package/dist/esm/chunk-QFOG4LIN.mjs +319 -0
  213. package/dist/esm/{chunk-DM44OGQH.mjs.map → chunk-QFOG4LIN.mjs.map} +1 -1
  214. package/dist/esm/chunk-QMM2KL6C.mjs +12 -0
  215. package/dist/esm/{chunk-FBPNHF54.mjs.map → chunk-QMM2KL6C.mjs.map} +1 -1
  216. package/dist/esm/chunk-RCQMWXEW.mjs +35 -0
  217. package/dist/esm/{chunk-3WUGR46O.mjs.map → chunk-RCQMWXEW.mjs.map} +1 -1
  218. package/dist/esm/chunk-RFSO3JRG.mjs +1 -0
  219. package/dist/esm/chunk-RFSO3JRG.mjs.map +1 -0
  220. package/dist/esm/chunk-RX4VG2AT.mjs +314 -0
  221. package/dist/esm/{chunk-CNMQNPNV.mjs.map → chunk-RX4VG2AT.mjs.map} +1 -1
  222. package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
  223. package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
  224. package/dist/esm/chunk-SIJELMDP.mjs +29 -0
  225. package/dist/esm/{chunk-6EMN3BOV.mjs.map → chunk-SIJELMDP.mjs.map} +1 -1
  226. package/dist/esm/chunk-SS3NUM5L.mjs +94 -0
  227. package/dist/esm/{chunk-L54P6EGN.mjs.map → chunk-SS3NUM5L.mjs.map} +1 -1
  228. package/dist/esm/chunk-ST4QXIMI.mjs +37 -0
  229. package/dist/esm/{chunk-5P2S2SZZ.mjs.map → chunk-ST4QXIMI.mjs.map} +1 -1
  230. package/dist/esm/chunk-TBHU6ZW6.mjs +215 -0
  231. package/dist/esm/{chunk-7QJ6YJXP.mjs.map → chunk-TBHU6ZW6.mjs.map} +1 -1
  232. package/dist/esm/chunk-TLNHRJB2.mjs +155 -0
  233. package/dist/esm/chunk-TLNHRJB2.mjs.map +1 -0
  234. package/dist/esm/chunk-U3IUCR2G.mjs +54 -0
  235. package/dist/esm/{chunk-CU67XZNB.mjs.map → chunk-U3IUCR2G.mjs.map} +1 -1
  236. package/dist/esm/chunk-U7QBZ6PP.mjs +400 -0
  237. package/dist/esm/chunk-U7QBZ6PP.mjs.map +1 -0
  238. package/dist/esm/chunk-UEBBLQJ5.mjs +94 -0
  239. package/dist/esm/{chunk-NPFNYP75.mjs.map → chunk-UEBBLQJ5.mjs.map} +1 -1
  240. package/dist/esm/chunk-UKU6A2W2.mjs +232 -0
  241. package/dist/esm/{chunk-XO3HHRJV.mjs.map → chunk-UKU6A2W2.mjs.map} +1 -1
  242. package/dist/esm/chunk-UX5NSZEN.mjs +134 -0
  243. package/dist/esm/chunk-UX5NSZEN.mjs.map +1 -0
  244. package/dist/esm/chunk-VDJBDX3A.mjs +79 -0
  245. package/dist/esm/chunk-VDJBDX3A.mjs.map +1 -0
  246. package/dist/esm/chunk-VJP2VWMF.mjs +58 -0
  247. package/dist/esm/chunk-VJP2VWMF.mjs.map +1 -0
  248. package/dist/esm/chunk-VKJQORON.mjs +93 -0
  249. package/dist/esm/{chunk-734YX27W.mjs.map → chunk-VKJQORON.mjs.map} +1 -1
  250. package/dist/esm/chunk-VPWUODU4.mjs +51 -0
  251. package/dist/esm/{chunk-AU6W5OIH.mjs.map → chunk-VPWUODU4.mjs.map} +1 -1
  252. package/dist/esm/chunk-VZQXLVEP.mjs +197 -0
  253. package/dist/esm/{chunk-V6OS74OS.mjs.map → chunk-VZQXLVEP.mjs.map} +1 -1
  254. package/dist/esm/chunk-W76MGKZB.mjs +33 -0
  255. package/dist/esm/{chunk-CTIN3GTP.mjs.map → chunk-W76MGKZB.mjs.map} +1 -1
  256. package/dist/esm/chunk-WDRH2URB.mjs +91 -0
  257. package/dist/esm/chunk-WDRH2URB.mjs.map +1 -0
  258. package/dist/esm/chunk-WHBWEN6N.mjs +206 -0
  259. package/dist/esm/chunk-WHBWEN6N.mjs.map +1 -0
  260. package/dist/esm/chunk-WK5ZSNE2.mjs +173 -0
  261. package/dist/esm/{chunk-QIAHBEEW.mjs.map → chunk-WK5ZSNE2.mjs.map} +1 -1
  262. package/dist/esm/chunk-WLTBF4DF.mjs +22 -0
  263. package/dist/esm/chunk-WLTBF4DF.mjs.map +1 -0
  264. package/dist/esm/chunk-WVGO4D7K.mjs +254 -0
  265. package/dist/esm/chunk-WVGO4D7K.mjs.map +1 -0
  266. package/dist/esm/chunk-XANFAUBD.mjs +44 -0
  267. package/dist/esm/{chunk-QTRYMRYK.mjs.map → chunk-XANFAUBD.mjs.map} +1 -1
  268. package/dist/esm/chunk-Y2LV3S5W.mjs +410 -0
  269. package/dist/esm/chunk-Y2LV3S5W.mjs.map +1 -0
  270. package/dist/esm/chunk-YV7M4CFP.mjs +137 -0
  271. package/dist/esm/{chunk-AOCNYMMX.mjs.map → chunk-YV7M4CFP.mjs.map} +1 -1
  272. package/dist/esm/chunk-YYOPNUX5.mjs +41 -0
  273. package/dist/esm/chunk-YYOPNUX5.mjs.map +1 -0
  274. package/dist/esm/chunk-ZAHJ7KXB.mjs +81 -0
  275. package/dist/esm/chunk-ZAHJ7KXB.mjs.map +1 -0
  276. package/dist/esm/chunk-ZMFKQUHL.mjs +117 -0
  277. package/dist/esm/{chunk-RIUZPGI5.mjs.map → chunk-ZMFKQUHL.mjs.map} +1 -1
  278. package/dist/esm/cli/index.d.mts +12 -0
  279. package/dist/esm/cli/index.mjs +12 -1
  280. package/dist/esm/cli/localNode.mjs +8 -1
  281. package/dist/esm/cli/move.d.mts +105 -0
  282. package/dist/esm/cli/move.mjs +8 -0
  283. package/dist/esm/cli/move.mjs.map +1 -0
  284. package/dist/esm/client/core.mjs +27 -1
  285. package/dist/esm/client/get.d.mts +2 -1
  286. package/dist/esm/client/get.mjs +32 -1
  287. package/dist/esm/client/index.d.mts +2 -2
  288. package/dist/esm/client/index.mjs +55 -1
  289. package/dist/esm/client/post.d.mts +3 -1
  290. package/dist/esm/client/post.mjs +36 -1
  291. package/dist/esm/client/types.d.mts +5 -1
  292. package/dist/esm/client/types.mjs +7 -1
  293. package/dist/esm/core/account/index.d.mts +5 -14
  294. package/dist/esm/core/account/index.mjs +19 -1
  295. package/dist/esm/core/account/utils/address.mjs +18 -1
  296. package/dist/esm/core/account/utils/index.mjs +19 -1
  297. package/dist/esm/core/accountAddress.mjs +15 -1
  298. package/dist/esm/core/authenticationKey.mjs +14 -1
  299. package/dist/esm/core/common.mjs +7 -1
  300. package/dist/esm/core/crypto/ed25519.mjs +29 -1
  301. package/dist/esm/core/crypto/ephemeral.d.mts +73 -0
  302. package/dist/esm/core/crypto/ephemeral.mjs +29 -0
  303. package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
  304. package/dist/esm/core/crypto/hdKey.mjs +25 -1
  305. package/dist/esm/core/crypto/index.d.mts +6 -3
  306. package/dist/esm/core/crypto/index.mjs +124 -1
  307. package/dist/esm/core/crypto/keyless.d.mts +232 -0
  308. package/dist/esm/core/crypto/keyless.mjs +56 -0
  309. package/dist/esm/core/crypto/keyless.mjs.map +1 -0
  310. package/dist/esm/core/crypto/multiEd25519.mjs +28 -1
  311. package/dist/esm/core/crypto/multiKey.d.mts +7 -0
  312. package/dist/esm/core/crypto/multiKey.mjs +34 -1
  313. package/dist/esm/core/crypto/poseidon.d.mts +7 -0
  314. package/dist/esm/core/crypto/poseidon.mjs +16 -0
  315. package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
  316. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  317. package/dist/esm/core/crypto/proof.d.mts +21 -0
  318. package/dist/esm/core/crypto/proof.mjs +20 -0
  319. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  320. package/dist/esm/core/crypto/publicKey.mjs +21 -1
  321. package/dist/esm/core/crypto/secp256k1.mjs +27 -1
  322. package/dist/esm/core/crypto/signature.mjs +19 -1
  323. package/dist/esm/core/crypto/singleKey.mjs +33 -1
  324. package/dist/esm/core/crypto/utils.mjs +9 -1
  325. package/dist/esm/core/hex.mjs +10 -1
  326. package/dist/esm/core/index.d.mts +5 -5
  327. package/dist/esm/core/index.mjs +141 -1
  328. package/dist/esm/index.d.mts +15 -8
  329. package/dist/esm/index.mjs +635 -1
  330. package/dist/esm/internal/account.d.mts +13 -1
  331. package/dist/esm/internal/account.mjs +106 -1
  332. package/dist/esm/internal/ans.d.mts +1 -1
  333. package/dist/esm/internal/ans.mjs +120 -1
  334. package/dist/esm/internal/coin.d.mts +7 -7
  335. package/dist/esm/internal/coin.mjs +85 -1
  336. package/dist/esm/internal/digitalAsset.d.mts +2 -2
  337. package/dist/esm/internal/digitalAsset.mjs +127 -1
  338. package/dist/esm/internal/event.d.mts +1 -1
  339. package/dist/esm/internal/event.mjs +55 -1
  340. package/dist/esm/internal/faucet.d.mts +1 -1
  341. package/dist/esm/internal/faucet.mjs +52 -1
  342. package/dist/esm/internal/fungibleAsset.d.mts +5 -5
  343. package/dist/esm/internal/fungibleAsset.mjs +91 -1
  344. package/dist/esm/internal/general.mjs +46 -1
  345. package/dist/esm/internal/keyless.d.mts +68 -0
  346. package/dist/esm/internal/keyless.mjs +74 -0
  347. package/dist/esm/internal/keyless.mjs.map +1 -0
  348. package/dist/esm/internal/staking.d.mts +1 -1
  349. package/dist/esm/internal/staking.mjs +53 -1
  350. package/dist/esm/internal/transaction.mjs +51 -1
  351. package/dist/esm/internal/transactionSubmission.d.mts +1 -1
  352. package/dist/esm/internal/transactionSubmission.mjs +102 -1
  353. package/dist/esm/internal/view.d.mts +7 -7
  354. package/dist/esm/internal/view.mjs +83 -1
  355. package/dist/esm/transactions/authenticator/account.d.mts +3 -4
  356. package/dist/esm/transactions/authenticator/account.mjs +44 -1
  357. package/dist/esm/transactions/authenticator/index.mjs +60 -1
  358. package/dist/esm/transactions/authenticator/transaction.mjs +48 -1
  359. package/dist/esm/transactions/index.d.mts +2 -2
  360. package/dist/esm/transactions/index.mjs +284 -1
  361. package/dist/esm/transactions/instances/chainId.mjs +11 -1
  362. package/dist/esm/transactions/instances/identifier.mjs +11 -1
  363. package/dist/esm/transactions/instances/index.mjs +96 -1
  364. package/dist/esm/transactions/instances/moduleId.d.mts +1 -1
  365. package/dist/esm/transactions/instances/moduleId.mjs +38 -1
  366. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +43 -1
  367. package/dist/esm/transactions/instances/rawTransaction.mjs +48 -1
  368. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +20 -1
  369. package/dist/esm/transactions/instances/signedTransaction.mjs +45 -1
  370. package/dist/esm/transactions/instances/simpleTransaction.mjs +43 -1
  371. package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
  372. package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
  373. package/dist/esm/transactions/instances/transactionPayload.mjs +56 -1
  374. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +13 -1
  375. package/dist/esm/transactions/management/accountSequenceNumber.mjs +74 -1
  376. package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
  377. package/dist/esm/transactions/management/index.d.mts +2 -2
  378. package/dist/esm/transactions/management/index.mjs +95 -1
  379. package/dist/esm/transactions/management/transactionWorker.d.mts +1 -1
  380. package/dist/esm/transactions/management/transactionWorker.mjs +91 -1
  381. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +9 -9
  382. package/dist/esm/transactions/transactionBuilder/helpers.mjs +75 -1
  383. package/dist/esm/transactions/transactionBuilder/index.d.mts +9 -9
  384. package/dist/esm/transactions/transactionBuilder/index.mjs +162 -1
  385. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +6 -6
  386. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +85 -1
  387. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +72 -0
  388. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +59 -0
  389. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs.map +1 -0
  390. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +6 -28
  391. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +98 -1
  392. package/dist/esm/transactions/typeTag/index.mjs +74 -1
  393. package/dist/esm/transactions/typeTag/parser.mjs +43 -1
  394. package/dist/esm/transactions/types.d.mts +6 -6
  395. package/dist/esm/transactions/types.mjs +1 -1
  396. package/dist/esm/types/generated/queries.mjs +57 -1
  397. package/dist/esm/types/generated/types.mjs +809 -1
  398. package/dist/esm/types/generated/types.mjs.map +1 -1
  399. package/dist/esm/types/index.d.mts +19 -3
  400. package/dist/esm/types/index.mjs +68 -1
  401. package/dist/esm/types/indexer.mjs +1 -1
  402. package/dist/esm/types/keyless.d.mts +69 -0
  403. package/dist/esm/types/keyless.mjs +10 -0
  404. package/dist/esm/types/keyless.mjs.map +1 -0
  405. package/dist/esm/utils/apiEndpoints.d.mts +3 -2
  406. package/dist/esm/utils/apiEndpoints.mjs +21 -1
  407. package/dist/esm/utils/const.d.mts +3 -1
  408. package/dist/esm/utils/const.mjs +21 -1
  409. package/dist/esm/utils/helpers.mjs +7 -1
  410. package/dist/esm/utils/index.d.mts +1 -1
  411. package/dist/esm/utils/index.mjs +56 -1
  412. package/dist/esm/utils/memoize.mjs +9 -1
  413. package/dist/esm/utils/normalizeBundle.mjs +19 -1
  414. package/dist/esm/version.d.mts +1 -1
  415. package/dist/esm/version.mjs +7 -1
  416. package/package.json +11 -3
  417. package/src/{core/account → account}/Account.ts +25 -15
  418. package/src/{core/account → account}/Ed25519Account.ts +45 -9
  419. package/src/account/EphemeralKeyPair.ts +161 -0
  420. package/src/account/KeylessAccount.ts +342 -0
  421. package/src/account/MultiKeyAccount.ts +186 -0
  422. package/src/{core/account → account}/SingleKeyAccount.ts +45 -10
  423. package/src/account/index.ts +6 -0
  424. package/src/api/account.ts +2 -1
  425. package/src/api/ans.ts +2 -1
  426. package/src/api/aptos.ts +6 -0
  427. package/src/api/aptosConfig.ts +46 -1
  428. package/src/api/digitalAsset.ts +2 -1
  429. package/src/api/fungibleAsset.ts +2 -1
  430. package/src/api/keyless.ts +48 -0
  431. package/src/api/transaction.ts +2 -1
  432. package/src/api/transactionSubmission/management.ts +1 -1
  433. package/src/api/transactionSubmission/sign.ts +1 -1
  434. package/src/bcs/deserializer.ts +40 -0
  435. package/src/bcs/serializer.ts +18 -0
  436. package/src/cli/index.ts +1 -0
  437. package/src/cli/move.ts +183 -0
  438. package/src/client/core.ts +8 -0
  439. package/src/client/get.ts +6 -0
  440. package/src/client/post.ts +12 -0
  441. package/src/client/types.ts +1 -1
  442. package/src/core/account/index.ts +0 -3
  443. package/src/core/crypto/ephemeral.ts +138 -0
  444. package/src/core/crypto/index.ts +2 -0
  445. package/src/core/crypto/keyless.ts +453 -0
  446. package/src/core/crypto/multiKey.ts +17 -6
  447. package/src/core/crypto/poseidon.ts +134 -0
  448. package/src/core/crypto/proof.ts +16 -0
  449. package/src/core/crypto/singleKey.ts +11 -0
  450. package/src/core/index.ts +0 -1
  451. package/src/index.ts +1 -0
  452. package/src/internal/account.ts +1 -1
  453. package/src/internal/ans.ts +2 -2
  454. package/src/internal/digitalAsset.ts +2 -1
  455. package/src/internal/fungibleAsset.ts +3 -2
  456. package/src/internal/keyless.ts +119 -0
  457. package/src/internal/transactionSubmission.ts +24 -13
  458. package/src/transactions/authenticator/account.ts +6 -11
  459. package/src/transactions/management/accountSequenceNumber.ts +1 -1
  460. package/src/transactions/management/transactionWorker.ts +1 -1
  461. package/src/transactions/transactionBuilder/index.ts +1 -0
  462. package/src/transactions/transactionBuilder/signingMessage.ts +93 -0
  463. package/src/transactions/transactionBuilder/transactionBuilder.ts +2 -75
  464. package/src/types/index.ts +22 -0
  465. package/src/types/keyless.ts +37 -0
  466. package/src/utils/apiEndpoints.ts +14 -6
  467. package/src/utils/const.ts +2 -0
  468. package/src/version.ts +1 -1
  469. package/dist/common/chunk-KSEUZTKY.js +0 -2
  470. package/dist/common/chunk-KSEUZTKY.js.map +0 -1
  471. package/dist/esm/chunk-24IKVZBK.mjs +0 -2
  472. package/dist/esm/chunk-24IKVZBK.mjs.map +0 -1
  473. package/dist/esm/chunk-2HISPUZZ.mjs +0 -2
  474. package/dist/esm/chunk-2HISPUZZ.mjs.map +0 -1
  475. package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
  476. package/dist/esm/chunk-3WUGR46O.mjs +0 -2
  477. package/dist/esm/chunk-52C73T26.mjs +0 -2
  478. package/dist/esm/chunk-56CNRT2K.mjs +0 -2
  479. package/dist/esm/chunk-5P2S2SZZ.mjs +0 -2
  480. package/dist/esm/chunk-6CFRW26C.mjs +0 -2
  481. package/dist/esm/chunk-6CFRW26C.mjs.map +0 -1
  482. package/dist/esm/chunk-6EMN3BOV.mjs +0 -2
  483. package/dist/esm/chunk-6FBKUTGF.mjs +0 -2
  484. package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
  485. package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
  486. package/dist/esm/chunk-734YX27W.mjs +0 -2
  487. package/dist/esm/chunk-7QJ6YJXP.mjs +0 -2
  488. package/dist/esm/chunk-AD3VLZ7I.mjs +0 -2
  489. package/dist/esm/chunk-AD3VLZ7I.mjs.map +0 -1
  490. package/dist/esm/chunk-AH44UPM4.mjs +0 -2
  491. package/dist/esm/chunk-AOCNYMMX.mjs +0 -2
  492. package/dist/esm/chunk-AU6W5OIH.mjs +0 -2
  493. package/dist/esm/chunk-B3R6G6QP.mjs +0 -2
  494. package/dist/esm/chunk-B3R6G6QP.mjs.map +0 -1
  495. package/dist/esm/chunk-B7TQGVGL.mjs +0 -2
  496. package/dist/esm/chunk-BWFJHFBQ.mjs +0 -2
  497. package/dist/esm/chunk-CNMQNPNV.mjs +0 -2
  498. package/dist/esm/chunk-CTIN3GTP.mjs +0 -2
  499. package/dist/esm/chunk-CU67XZNB.mjs +0 -2
  500. package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
  501. package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
  502. package/dist/esm/chunk-DM44OGQH.mjs +0 -2
  503. package/dist/esm/chunk-DMKUAQB7.mjs +0 -2
  504. package/dist/esm/chunk-DPV25ZKR.mjs +0 -2
  505. package/dist/esm/chunk-DSTKXJMA.mjs +0 -2
  506. package/dist/esm/chunk-E7FWVXGX.mjs +0 -1
  507. package/dist/esm/chunk-EOFJFE4T.mjs +0 -2
  508. package/dist/esm/chunk-EOFJFE4T.mjs.map +0 -1
  509. package/dist/esm/chunk-FATWMUXK.mjs +0 -2
  510. package/dist/esm/chunk-FATWMUXK.mjs.map +0 -1
  511. package/dist/esm/chunk-FBPNHF54.mjs +0 -2
  512. package/dist/esm/chunk-FS3NSGBF.mjs +0 -2
  513. package/dist/esm/chunk-FVA2OPG4.mjs +0 -2
  514. package/dist/esm/chunk-G2O323HP.mjs +0 -2
  515. package/dist/esm/chunk-GSD4OOM3.mjs +0 -2
  516. package/dist/esm/chunk-HQ5I4Q3H.mjs +0 -2
  517. package/dist/esm/chunk-HQ5I4Q3H.mjs.map +0 -1
  518. package/dist/esm/chunk-IIPYR7PF.mjs +0 -2
  519. package/dist/esm/chunk-IIPYR7PF.mjs.map +0 -1
  520. package/dist/esm/chunk-IKYIJYBY.mjs +0 -2
  521. package/dist/esm/chunk-IKYIJYBY.mjs.map +0 -1
  522. package/dist/esm/chunk-IOSQVDZI.mjs +0 -2
  523. package/dist/esm/chunk-KVZ4XMZS.mjs +0 -2
  524. package/dist/esm/chunk-KVZ4XMZS.mjs.map +0 -1
  525. package/dist/esm/chunk-L54P6EGN.mjs +0 -2
  526. package/dist/esm/chunk-LR65XHSF.mjs +0 -2
  527. package/dist/esm/chunk-MACC2BLE.mjs +0 -2
  528. package/dist/esm/chunk-MC6G725U.mjs +0 -2
  529. package/dist/esm/chunk-MC6G725U.mjs.map +0 -1
  530. package/dist/esm/chunk-MFKMAAWA.mjs +0 -2
  531. package/dist/esm/chunk-MLWIHWNH.mjs +0 -1
  532. package/dist/esm/chunk-NNQJBFRB.mjs +0 -2
  533. package/dist/esm/chunk-NPFNYP75.mjs +0 -2
  534. package/dist/esm/chunk-O2F53NKI.mjs +0 -2
  535. package/dist/esm/chunk-O4JRPZZM.mjs +0 -2
  536. package/dist/esm/chunk-ODRO4CSA.mjs +0 -2
  537. package/dist/esm/chunk-ODRO4CSA.mjs.map +0 -1
  538. package/dist/esm/chunk-OVJQWQ2N.mjs +0 -2
  539. package/dist/esm/chunk-OVJQWQ2N.mjs.map +0 -1
  540. package/dist/esm/chunk-OWW6SIDP.mjs +0 -2
  541. package/dist/esm/chunk-OWW6SIDP.mjs.map +0 -1
  542. package/dist/esm/chunk-PFIMEXNN.mjs +0 -2
  543. package/dist/esm/chunk-PFIMEXNN.mjs.map +0 -1
  544. package/dist/esm/chunk-PZGLV5UQ.mjs +0 -2
  545. package/dist/esm/chunk-Q3TZGQVC.mjs +0 -2
  546. package/dist/esm/chunk-Q3TZGQVC.mjs.map +0 -1
  547. package/dist/esm/chunk-QIAHBEEW.mjs +0 -2
  548. package/dist/esm/chunk-QMURTXFM.mjs +0 -2
  549. package/dist/esm/chunk-QTRYMRYK.mjs +0 -2
  550. package/dist/esm/chunk-R5QUBEH6.mjs +0 -2
  551. package/dist/esm/chunk-R7G3CLRI.mjs +0 -1
  552. package/dist/esm/chunk-RHBCVCOS.mjs +0 -2
  553. package/dist/esm/chunk-RIUZPGI5.mjs +0 -2
  554. package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
  555. package/dist/esm/chunk-SG4MAOCF.mjs +0 -2
  556. package/dist/esm/chunk-SUAKPNKQ.mjs +0 -2
  557. package/dist/esm/chunk-SUAKPNKQ.mjs.map +0 -1
  558. package/dist/esm/chunk-TBMAJ6AW.mjs +0 -2
  559. package/dist/esm/chunk-TJDC5PWD.mjs +0 -2
  560. package/dist/esm/chunk-TLOPIURC.mjs +0 -2
  561. package/dist/esm/chunk-TLOPIURC.mjs.map +0 -1
  562. package/dist/esm/chunk-U43IJHQN.mjs +0 -2
  563. package/dist/esm/chunk-U6Z4FNB7.mjs +0 -2
  564. package/dist/esm/chunk-UFT7US42.mjs +0 -2
  565. package/dist/esm/chunk-UML2VQZT.mjs +0 -2
  566. package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
  567. package/dist/esm/chunk-V3Q2KXJU.mjs +0 -2
  568. package/dist/esm/chunk-V4SRNEV3.mjs +0 -2
  569. package/dist/esm/chunk-V4SRNEV3.mjs.map +0 -1
  570. package/dist/esm/chunk-V6OS74OS.mjs +0 -2
  571. package/dist/esm/chunk-VVIG4E7Q.mjs +0 -2
  572. package/dist/esm/chunk-W4ZW7QHA.mjs +0 -2
  573. package/dist/esm/chunk-WFZDFFBM.mjs +0 -2
  574. package/dist/esm/chunk-WLF5YQM4.mjs +0 -2
  575. package/dist/esm/chunk-WLF5YQM4.mjs.map +0 -1
  576. package/dist/esm/chunk-XDGQTMDV.mjs +0 -2
  577. package/dist/esm/chunk-XDGQTMDV.mjs.map +0 -1
  578. package/dist/esm/chunk-XO3HHRJV.mjs +0 -2
  579. package/dist/esm/chunk-YFRXBEOC.mjs +0 -2
  580. package/dist/esm/chunk-YFRXBEOC.mjs.map +0 -1
  581. package/dist/esm/chunk-YPTF6MLX.mjs +0 -2
  582. package/dist/esm/chunk-YPTF6MLX.mjs.map +0 -1
  583. package/dist/esm/chunk-YU3KB3UV.mjs +0 -2
  584. package/dist/esm/chunk-Z5YFM2AW.mjs +0 -2
  585. package/dist/esm/chunk-Z5YFM2AW.mjs.map +0 -1
  586. package/dist/esm/chunk-ZYYK3UXP.mjs +0 -2
  587. package/dist/esm/chunk-ZZZZVONX.mjs +0 -2
  588. package/dist/esm/core/account/Account.d.mts +0 -20
  589. package/dist/esm/core/account/Account.mjs +0 -2
  590. package/dist/esm/core/account/Ed25519Account.d.mts +0 -20
  591. package/dist/esm/core/account/Ed25519Account.mjs +0 -2
  592. package/dist/esm/core/account/SingleKeyAccount.d.mts +0 -20
  593. package/dist/esm/core/account/SingleKeyAccount.mjs +0 -2
  594. /package/dist/esm/{core/account → account}/Account.mjs.map +0 -0
  595. /package/dist/esm/{core/account → account}/Ed25519Account.mjs.map +0 -0
  596. /package/dist/esm/{chunk-E7FWVXGX.mjs.map → account/EphemeralKeyPair.mjs.map} +0 -0
  597. /package/dist/esm/{chunk-FVA2OPG4.mjs.map → account/KeylessAccount.mjs.map} +0 -0
  598. /package/dist/esm/{chunk-MLWIHWNH.mjs.map → account/MultiKeyAccount.mjs.map} +0 -0
  599. /package/dist/esm/{core/account → account}/SingleKeyAccount.mjs.map +0 -0
  600. /package/dist/esm/{chunk-R7G3CLRI.mjs.map → account/index.mjs.map} +0 -0
  601. /package/dist/esm/{chunk-UVSRX4SV.mjs.map → api/keyless.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transactions/transactionBuilder/remoteAbi.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { parseTypeTag } from \"../typeTag/parser\";\nimport { TypeTag, TypeTagStruct } from \"../typeTag\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport {\n EntryFunctionArgumentTypes,\n SimpleEntryFunctionArgumentTypes,\n EntryFunctionABI,\n ViewFunctionABI,\n FunctionABI,\n} from \"../types\";\nimport { Bool, MoveOption, MoveString, MoveVector, U128, U16, U256, U32, U64, U8 } from \"../../bcs\";\nimport { AccountAddress } from \"../../core\";\nimport { getModule } from \"../../internal/account\";\nimport {\n findFirstNonSignerArg,\n isBcsAddress,\n isBcsBool,\n isBcsString,\n isBcsU128,\n isBcsU16,\n isBcsU256,\n isBcsU32,\n isBcsU64,\n isBcsU8,\n isBool,\n isEncodedEntryFunctionArgument,\n isLargeNumber,\n isNull,\n isNumber,\n isString,\n throwTypeMismatch,\n} from \"./helpers\";\nimport { MoveFunction } from \"../../types\";\n\nconst TEXT_ENCODER = new TextEncoder();\n\n/**\n * Convert type arguments to only type tags, allowing for string representations of type tags\n */\nexport function standardizeTypeTags(typeArguments?: Array<TypeTag | string>): Array<TypeTag> {\n return (\n typeArguments?.map((typeArg: string | TypeTag): TypeTag => {\n // Convert to TypeTag if it's a string representation\n if (isString(typeArg)) {\n return parseTypeTag(typeArg);\n }\n return typeArg;\n }) ?? []\n );\n}\n\n/**\n * Fetches a function ABI from the on-chain module ABI. It doesn't validate whether it's a view or entry function.\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n */\nexport async function fetchFunctionAbi(\n moduleAddress: string,\n moduleName: string,\n functionName: string,\n aptosConfig: AptosConfig,\n): Promise<MoveFunction | undefined> {\n // This fetch from the API is currently cached\n const module = await getModule({ aptosConfig, accountAddress: moduleAddress, moduleName });\n\n if (module.abi) {\n return module.abi.exposed_functions.find((func) => func.name === functionName);\n }\n\n return undefined;\n}\n\n/**\n * Fetches the ABI for an entry function from the module\n *\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n */\nexport async function fetchEntryFunctionAbi(\n moduleAddress: string,\n moduleName: string,\n functionName: string,\n aptosConfig: AptosConfig,\n): Promise<EntryFunctionABI> {\n const functionAbi = await fetchFunctionAbi(moduleAddress, moduleName, functionName, aptosConfig);\n\n // If there's no ABI, then the function is invalid\n if (!functionAbi) {\n throw new Error(`Could not find entry function ABI for '${moduleAddress}::${moduleName}::${functionName}'`);\n }\n\n // Non-entry functions also can't be used\n if (!functionAbi.is_entry) {\n throw new Error(`'${moduleAddress}::${moduleName}::${functionName}' is not an entry function`);\n }\n\n // Remove the signer arguments\n const numSigners = findFirstNonSignerArg(functionAbi);\n const params: TypeTag[] = [];\n for (let i = numSigners; i < functionAbi.params.length; i += 1) {\n params.push(parseTypeTag(functionAbi.params[i], { allowGenerics: true }));\n }\n\n return {\n signers: numSigners,\n typeParameters: functionAbi.generic_type_params,\n parameters: params,\n };\n}\n\n/**\n * Fetches the ABI for a view function from the module\n *\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n */\nexport async function fetchViewFunctionAbi(\n moduleAddress: string,\n moduleName: string,\n functionName: string,\n aptosConfig: AptosConfig,\n): Promise<ViewFunctionABI> {\n const functionAbi = await fetchFunctionAbi(moduleAddress, moduleName, functionName, aptosConfig);\n\n // If there's no ABI, then the function is invalid\n if (!functionAbi) {\n throw new Error(`Could not find view function ABI for '${moduleAddress}::${moduleName}::${functionName}'`);\n }\n\n // Non-view functions can't be used\n if (!functionAbi.is_view) {\n throw new Error(`'${moduleAddress}::${moduleName}::${functionName}' is not an view function`);\n }\n\n // Type tag parameters for the function\n const params: TypeTag[] = [];\n for (let i = 0; i < functionAbi.params.length; i += 1) {\n params.push(parseTypeTag(functionAbi.params[i], { allowGenerics: true }));\n }\n\n // The return types of the view function\n const returnTypes: TypeTag[] = [];\n for (let i = 0; i < functionAbi.return.length; i += 1) {\n returnTypes.push(parseTypeTag(functionAbi.return[i], { allowGenerics: true }));\n }\n\n return {\n typeParameters: functionAbi.generic_type_params,\n parameters: params,\n returnTypes,\n };\n}\n\n/**\n * Converts a non-BCS encoded argument into BCS encoded, if necessary\n * @param functionName\n * @param functionAbi\n * @param arg\n * @param position\n */\nexport function convertArgument(\n functionName: string,\n functionAbi: FunctionABI,\n arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes,\n position: number,\n genericTypeParams: Array<TypeTag>,\n) {\n // Ensure not too many arguments\n if (position >= functionAbi.parameters.length) {\n throw new Error(`Too many arguments for '${functionName}', expected ${functionAbi.parameters.length}`);\n }\n\n const param = functionAbi.parameters[position];\n return checkOrConvertArgument(arg, param, position, genericTypeParams);\n}\n\nexport function checkOrConvertArgument(\n arg: SimpleEntryFunctionArgumentTypes | EntryFunctionArgumentTypes,\n param: TypeTag,\n position: number,\n genericTypeParams: Array<TypeTag>,\n) {\n // If the argument is bcs encoded, we can just use it directly\n if (isEncodedEntryFunctionArgument(arg)) {\n // Ensure the type matches the ABI\n checkType(param, arg, position);\n return arg;\n }\n\n // If it is not BCS encoded, we will need to convert it with the ABI\n return parseArg(arg, param, position, genericTypeParams);\n}\n\n/**\n * Parses a non-BCS encoded argument into a BCS encoded argument recursively\n * @param arg\n * @param param\n * @param position\n * @param genericTypeParams\n */\nfunction parseArg(\n arg: SimpleEntryFunctionArgumentTypes,\n param: TypeTag,\n position: number,\n genericTypeParams: Array<TypeTag>,\n): EntryFunctionArgumentTypes {\n if (param.isBool()) {\n if (isBool(arg)) {\n return new Bool(arg);\n }\n throwTypeMismatch(\"boolean\", position);\n }\n // TODO: support uint8array?\n if (param.isAddress()) {\n if (isString(arg)) {\n return AccountAddress.fromString(arg);\n }\n throwTypeMismatch(\"string | AccountAddress\", position);\n }\n if (param.isU8()) {\n if (isNumber(arg)) {\n return new U8(arg);\n }\n throwTypeMismatch(\"number\", position);\n }\n if (param.isU16()) {\n if (isNumber(arg)) {\n return new U16(arg);\n }\n throwTypeMismatch(\"number\", position);\n }\n if (param.isU32()) {\n if (isNumber(arg)) {\n return new U32(arg);\n }\n throwTypeMismatch(\"number\", position);\n }\n if (param.isU64()) {\n if (isLargeNumber(arg)) {\n return new U64(BigInt(arg));\n }\n throwTypeMismatch(\"bigint | number | string\", position);\n }\n if (param.isU128()) {\n if (isLargeNumber(arg)) {\n return new U128(BigInt(arg));\n }\n throwTypeMismatch(\"bigint | number | string\", position);\n }\n if (param.isU256()) {\n if (isLargeNumber(arg)) {\n return new U256(BigInt(arg));\n }\n throwTypeMismatch(\"bigint | number | string\", position);\n }\n\n // Generic needs to use the sub-type\n if (param.isGeneric()) {\n const genericIndex = param.value;\n if (genericIndex < 0 || genericIndex >= genericTypeParams.length) {\n throw new Error(`Generic argument ${param.toString()} is invalid for argument ${position}`);\n }\n\n return checkOrConvertArgument(arg, genericTypeParams[genericIndex], position, genericTypeParams);\n }\n\n // We have to special case some vectors for Vector<u8>\n if (param.isVector()) {\n // Check special case for Vector<u8>\n if (param.value.isU8()) {\n // We don't allow vector<u8>, but we convert strings to UTF8 uint8array\n // This is legacy behavior from the original SDK\n if (isString(arg)) {\n return MoveVector.U8(TEXT_ENCODER.encode(arg));\n }\n if (arg instanceof Uint8Array) {\n return MoveVector.U8(arg);\n }\n if (arg instanceof ArrayBuffer) {\n return MoveVector.U8(new Uint8Array(arg));\n }\n }\n\n // TODO: Support Uint16Array, Uint32Array, BigUint64Array?\n\n if (Array.isArray(arg)) {\n return new MoveVector(arg.map((item) => checkOrConvertArgument(item, param.value, position, genericTypeParams)));\n }\n\n throw new Error(`Type mismatch for argument ${position}, type '${param.toString()}'`);\n }\n\n // Handle structs as they're more complex\n if (param.isStruct()) {\n if (param.isString()) {\n if (isString(arg)) {\n return new MoveString(arg);\n }\n throwTypeMismatch(\"string\", position);\n }\n if (param.isObject()) {\n // The inner type of Object doesn't matter, since it's just syntactic sugar\n if (isString(arg)) {\n return AccountAddress.fromString(arg);\n }\n throwTypeMismatch(\"string | AccountAddress\", position);\n }\n\n if (param.isOption()) {\n // Empty option must be handled specially\n if (isNull(arg)) {\n // Note: This is a placeholder U8 type, and does not match the actual type, as that can't be dynamically grabbed\n return new MoveOption<U8>(null);\n }\n\n return new MoveOption(checkOrConvertArgument(arg, param.value.typeArgs[0], position, genericTypeParams));\n }\n\n throw new Error(`Unsupported struct input type for argument ${position}, type '${param.toString()}'`);\n }\n\n throw new Error(`Type mismatch for argument ${position}, type '${param.toString()}'`);\n}\n\n/**\n * Checks that the type of an already BCS encoded argument matches the ABI\n * @param param\n * @param arg\n * @param position\n */\nfunction checkType(param: TypeTag, arg: EntryFunctionArgumentTypes, position: number) {\n if (param.isBool()) {\n if (isBcsBool(arg)) {\n return;\n }\n throwTypeMismatch(\"Bool\", position);\n }\n if (param.isAddress()) {\n if (isBcsAddress(arg)) {\n return;\n }\n throwTypeMismatch(\"AccountAddress\", position);\n }\n if (param.isU8()) {\n if (isBcsU8(arg)) {\n return;\n }\n throwTypeMismatch(\"U8\", position);\n }\n if (param.isU16()) {\n if (isBcsU16(arg)) {\n return;\n }\n throwTypeMismatch(\"U16\", position);\n }\n if (param.isU32()) {\n if (isBcsU32(arg)) {\n return;\n }\n throwTypeMismatch(\"U32\", position);\n }\n if (param.isU64()) {\n if (isBcsU64(arg)) {\n return;\n }\n throwTypeMismatch(\"U64\", position);\n }\n if (param.isU128()) {\n if (isBcsU128(arg)) {\n return;\n }\n throwTypeMismatch(\"U128\", position);\n }\n if (param.isU256()) {\n if (isBcsU256(arg)) {\n return;\n }\n throwTypeMismatch(\"U256\", position);\n }\n if (param.isVector()) {\n if (arg instanceof MoveVector) {\n // If there's anything in it, check that the inner types match\n // Note that since it's typed, the first item should be the same as the rest\n if (arg.values.length > 0) {\n checkType(param.value, arg.values[0], position);\n }\n\n return;\n }\n throwTypeMismatch(\"MoveVector\", position);\n }\n\n // Handle structs as they're more complex\n if (param instanceof TypeTagStruct) {\n if (param.isString()) {\n if (isBcsString(arg)) {\n return;\n }\n throwTypeMismatch(\"MoveString\", position);\n }\n if (param.isObject()) {\n if (isBcsAddress(arg)) {\n return;\n }\n throwTypeMismatch(\"AccountAddress\", position);\n }\n if (param.isOption()) {\n if (arg instanceof MoveOption) {\n // If there's a value, we can check the inner type (otherwise it doesn't really matter)\n if (arg.value !== undefined) {\n checkType(param.value.typeArgs[0], arg.value, position);\n }\n return;\n }\n throwTypeMismatch(\"MoveOption\", position);\n }\n }\n\n throw new Error(`Type mismatch for argument ${position}, expected '${param.toString()}'`);\n}\n"],"mappings":"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","names":["TEXT_ENCODER","standardizeTypeTags","typeArguments","typeArg","isString","parseTypeTag","fetchFunctionAbi","moduleAddress","moduleName","functionName","aptosConfig","module","getModule","func","fetchEntryFunctionAbi","functionAbi","numSigners","findFirstNonSignerArg","params","i","fetchViewFunctionAbi","returnTypes","convertArgument","arg","position","genericTypeParams","param","checkOrConvertArgument","isEncodedEntryFunctionArgument","checkType","parseArg","isBool","Bool","throwTypeMismatch","AccountAddress","isNumber","U8","U16","U32","isLargeNumber","U64","U128","U256","genericIndex","MoveVector","item","MoveString","isNull","MoveOption","isBcsBool","isBcsAddress","isBcsU8","isBcsU16","isBcsU32","isBcsU64","isBcsU128","isBcsU256","TypeTagStruct","isBcsString"]}
1
+ {"version":3,"sources":["../../src/transactions/transactionBuilder/remoteAbi.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { parseTypeTag } from \"../typeTag/parser\";\nimport { TypeTag, TypeTagStruct } from \"../typeTag\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport {\n EntryFunctionArgumentTypes,\n SimpleEntryFunctionArgumentTypes,\n EntryFunctionABI,\n ViewFunctionABI,\n FunctionABI,\n} from \"../types\";\nimport { Bool, MoveOption, MoveString, MoveVector, U128, U16, U256, U32, U64, U8 } from \"../../bcs\";\nimport { AccountAddress } from \"../../core\";\nimport { getModule } from \"../../internal/account\";\nimport {\n findFirstNonSignerArg,\n isBcsAddress,\n isBcsBool,\n isBcsString,\n isBcsU128,\n isBcsU16,\n isBcsU256,\n isBcsU32,\n isBcsU64,\n isBcsU8,\n isBool,\n isEncodedEntryFunctionArgument,\n isLargeNumber,\n isNull,\n isNumber,\n isString,\n throwTypeMismatch,\n} from \"./helpers\";\nimport { MoveFunction } from \"../../types\";\n\nconst TEXT_ENCODER = new TextEncoder();\n\n/**\n * Convert type arguments to only type tags, allowing for string representations of type tags\n */\nexport function standardizeTypeTags(typeArguments?: Array<TypeTag | string>): Array<TypeTag> {\n return (\n typeArguments?.map((typeArg: string | TypeTag): TypeTag => {\n // Convert to TypeTag if it's a string representation\n if (isString(typeArg)) {\n return parseTypeTag(typeArg);\n }\n return typeArg;\n }) ?? []\n );\n}\n\n/**\n * Fetches a function ABI from the on-chain module ABI. It doesn't validate whether it's a view or entry function.\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n */\nexport async function fetchFunctionAbi(\n moduleAddress: string,\n moduleName: string,\n functionName: string,\n aptosConfig: AptosConfig,\n): Promise<MoveFunction | undefined> {\n // This fetch from the API is currently cached\n const module = await getModule({ aptosConfig, accountAddress: moduleAddress, moduleName });\n\n if (module.abi) {\n return module.abi.exposed_functions.find((func) => func.name === functionName);\n }\n\n return undefined;\n}\n\n/**\n * Fetches the ABI for an entry function from the module\n *\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n */\nexport async function fetchEntryFunctionAbi(\n moduleAddress: string,\n moduleName: string,\n functionName: string,\n aptosConfig: AptosConfig,\n): Promise<EntryFunctionABI> {\n const functionAbi = await fetchFunctionAbi(moduleAddress, moduleName, functionName, aptosConfig);\n\n // If there's no ABI, then the function is invalid\n if (!functionAbi) {\n throw new Error(`Could not find entry function ABI for '${moduleAddress}::${moduleName}::${functionName}'`);\n }\n\n // Non-entry functions also can't be used\n if (!functionAbi.is_entry) {\n throw new Error(`'${moduleAddress}::${moduleName}::${functionName}' is not an entry function`);\n }\n\n // Remove the signer arguments\n const numSigners = findFirstNonSignerArg(functionAbi);\n const params: TypeTag[] = [];\n for (let i = numSigners; i < functionAbi.params.length; i += 1) {\n params.push(parseTypeTag(functionAbi.params[i], { allowGenerics: true }));\n }\n\n return {\n signers: numSigners,\n typeParameters: functionAbi.generic_type_params,\n parameters: params,\n };\n}\n\n/**\n * Fetches the ABI for a view function from the module\n *\n * @param moduleAddress\n * @param moduleName\n * @param functionName\n * @param aptosConfig\n */\nexport async function fetchViewFunctionAbi(\n moduleAddress: string,\n moduleName: string,\n functionName: string,\n aptosConfig: AptosConfig,\n): Promise<ViewFunctionABI> {\n const functionAbi = await fetchFunctionAbi(moduleAddress, moduleName, functionName, aptosConfig);\n\n // If there's no ABI, then the function is invalid\n if (!functionAbi) {\n throw new Error(`Could not find view function ABI for '${moduleAddress}::${moduleName}::${functionName}'`);\n }\n\n // Non-view functions can't be used\n if (!functionAbi.is_view) {\n throw new Error(`'${moduleAddress}::${moduleName}::${functionName}' is not an view function`);\n }\n\n // Type tag parameters for the function\n const params: TypeTag[] = [];\n for (let i = 0; i < functionAbi.params.length; i += 1) {\n params.push(parseTypeTag(functionAbi.params[i], { allowGenerics: true }));\n }\n\n // The return types of the view function\n const returnTypes: TypeTag[] = [];\n for (let i = 0; i < functionAbi.return.length; i += 1) {\n returnTypes.push(parseTypeTag(functionAbi.return[i], { allowGenerics: true }));\n }\n\n return {\n typeParameters: functionAbi.generic_type_params,\n parameters: params,\n returnTypes,\n };\n}\n\n/**\n * Converts a non-BCS encoded argument into BCS encoded, if necessary\n * @param functionName\n * @param functionAbi\n * @param arg\n * @param position\n */\nexport function convertArgument(\n functionName: string,\n functionAbi: FunctionABI,\n arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes,\n position: number,\n genericTypeParams: Array<TypeTag>,\n) {\n // Ensure not too many arguments\n if (position >= functionAbi.parameters.length) {\n throw new Error(`Too many arguments for '${functionName}', expected ${functionAbi.parameters.length}`);\n }\n\n const param = functionAbi.parameters[position];\n return checkOrConvertArgument(arg, param, position, genericTypeParams);\n}\n\nexport function checkOrConvertArgument(\n arg: SimpleEntryFunctionArgumentTypes | EntryFunctionArgumentTypes,\n param: TypeTag,\n position: number,\n genericTypeParams: Array<TypeTag>,\n) {\n // If the argument is bcs encoded, we can just use it directly\n if (isEncodedEntryFunctionArgument(arg)) {\n // Ensure the type matches the ABI\n checkType(param, arg, position);\n return arg;\n }\n\n // If it is not BCS encoded, we will need to convert it with the ABI\n return parseArg(arg, param, position, genericTypeParams);\n}\n\n/**\n * Parses a non-BCS encoded argument into a BCS encoded argument recursively\n * @param arg\n * @param param\n * @param position\n * @param genericTypeParams\n */\nfunction parseArg(\n arg: SimpleEntryFunctionArgumentTypes,\n param: TypeTag,\n position: number,\n genericTypeParams: Array<TypeTag>,\n): EntryFunctionArgumentTypes {\n if (param.isBool()) {\n if (isBool(arg)) {\n return new Bool(arg);\n }\n throwTypeMismatch(\"boolean\", position);\n }\n // TODO: support uint8array?\n if (param.isAddress()) {\n if (isString(arg)) {\n return AccountAddress.fromString(arg);\n }\n throwTypeMismatch(\"string | AccountAddress\", position);\n }\n if (param.isU8()) {\n if (isNumber(arg)) {\n return new U8(arg);\n }\n throwTypeMismatch(\"number\", position);\n }\n if (param.isU16()) {\n if (isNumber(arg)) {\n return new U16(arg);\n }\n throwTypeMismatch(\"number\", position);\n }\n if (param.isU32()) {\n if (isNumber(arg)) {\n return new U32(arg);\n }\n throwTypeMismatch(\"number\", position);\n }\n if (param.isU64()) {\n if (isLargeNumber(arg)) {\n return new U64(BigInt(arg));\n }\n throwTypeMismatch(\"bigint | number | string\", position);\n }\n if (param.isU128()) {\n if (isLargeNumber(arg)) {\n return new U128(BigInt(arg));\n }\n throwTypeMismatch(\"bigint | number | string\", position);\n }\n if (param.isU256()) {\n if (isLargeNumber(arg)) {\n return new U256(BigInt(arg));\n }\n throwTypeMismatch(\"bigint | number | string\", position);\n }\n\n // Generic needs to use the sub-type\n if (param.isGeneric()) {\n const genericIndex = param.value;\n if (genericIndex < 0 || genericIndex >= genericTypeParams.length) {\n throw new Error(`Generic argument ${param.toString()} is invalid for argument ${position}`);\n }\n\n return checkOrConvertArgument(arg, genericTypeParams[genericIndex], position, genericTypeParams);\n }\n\n // We have to special case some vectors for Vector<u8>\n if (param.isVector()) {\n // Check special case for Vector<u8>\n if (param.value.isU8()) {\n // We don't allow vector<u8>, but we convert strings to UTF8 uint8array\n // This is legacy behavior from the original SDK\n if (isString(arg)) {\n return MoveVector.U8(TEXT_ENCODER.encode(arg));\n }\n if (arg instanceof Uint8Array) {\n return MoveVector.U8(arg);\n }\n if (arg instanceof ArrayBuffer) {\n return MoveVector.U8(new Uint8Array(arg));\n }\n }\n\n // TODO: Support Uint16Array, Uint32Array, BigUint64Array?\n\n if (Array.isArray(arg)) {\n return new MoveVector(arg.map((item) => checkOrConvertArgument(item, param.value, position, genericTypeParams)));\n }\n\n throw new Error(`Type mismatch for argument ${position}, type '${param.toString()}'`);\n }\n\n // Handle structs as they're more complex\n if (param.isStruct()) {\n if (param.isString()) {\n if (isString(arg)) {\n return new MoveString(arg);\n }\n throwTypeMismatch(\"string\", position);\n }\n if (param.isObject()) {\n // The inner type of Object doesn't matter, since it's just syntactic sugar\n if (isString(arg)) {\n return AccountAddress.fromString(arg);\n }\n throwTypeMismatch(\"string | AccountAddress\", position);\n }\n\n if (param.isOption()) {\n // Empty option must be handled specially\n if (isNull(arg)) {\n // Note: This is a placeholder U8 type, and does not match the actual type, as that can't be dynamically grabbed\n return new MoveOption<U8>(null);\n }\n\n return new MoveOption(checkOrConvertArgument(arg, param.value.typeArgs[0], position, genericTypeParams));\n }\n\n throw new Error(`Unsupported struct input type for argument ${position}, type '${param.toString()}'`);\n }\n\n throw new Error(`Type mismatch for argument ${position}, type '${param.toString()}'`);\n}\n\n/**\n * Checks that the type of an already BCS encoded argument matches the ABI\n * @param param\n * @param arg\n * @param position\n */\nfunction checkType(param: TypeTag, arg: EntryFunctionArgumentTypes, position: number) {\n if (param.isBool()) {\n if (isBcsBool(arg)) {\n return;\n }\n throwTypeMismatch(\"Bool\", position);\n }\n if (param.isAddress()) {\n if (isBcsAddress(arg)) {\n return;\n }\n throwTypeMismatch(\"AccountAddress\", position);\n }\n if (param.isU8()) {\n if (isBcsU8(arg)) {\n return;\n }\n throwTypeMismatch(\"U8\", position);\n }\n if (param.isU16()) {\n if (isBcsU16(arg)) {\n return;\n }\n throwTypeMismatch(\"U16\", position);\n }\n if (param.isU32()) {\n if (isBcsU32(arg)) {\n return;\n }\n throwTypeMismatch(\"U32\", position);\n }\n if (param.isU64()) {\n if (isBcsU64(arg)) {\n return;\n }\n throwTypeMismatch(\"U64\", position);\n }\n if (param.isU128()) {\n if (isBcsU128(arg)) {\n return;\n }\n throwTypeMismatch(\"U128\", position);\n }\n if (param.isU256()) {\n if (isBcsU256(arg)) {\n return;\n }\n throwTypeMismatch(\"U256\", position);\n }\n if (param.isVector()) {\n if (arg instanceof MoveVector) {\n // If there's anything in it, check that the inner types match\n // Note that since it's typed, the first item should be the same as the rest\n if (arg.values.length > 0) {\n checkType(param.value, arg.values[0], position);\n }\n\n return;\n }\n throwTypeMismatch(\"MoveVector\", position);\n }\n\n // Handle structs as they're more complex\n if (param instanceof TypeTagStruct) {\n if (param.isString()) {\n if (isBcsString(arg)) {\n return;\n }\n throwTypeMismatch(\"MoveString\", position);\n }\n if (param.isObject()) {\n if (isBcsAddress(arg)) {\n return;\n }\n throwTypeMismatch(\"AccountAddress\", position);\n }\n if (param.isOption()) {\n if (arg instanceof MoveOption) {\n // If there's a value, we can check the inner type (otherwise it doesn't really matter)\n if (arg.value !== undefined) {\n checkType(param.value.typeArgs[0], arg.value, position);\n }\n return;\n }\n throwTypeMismatch(\"MoveOption\", position);\n }\n }\n\n throw new Error(`Type mismatch for argument ${position}, expected '${param.toString()}'`);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,7 @@
1
+ // src/version.ts
2
+ var VERSION = "1.14.0-zeta.1";
3
+
4
+ export {
5
+ VERSION
6
+ };
7
+ //# sourceMappingURL=chunk-D2BVBXWO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/version.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * The current version of the SDK\n *\n * hardcoded for now, we would want to have it injected dynamically\n */\nexport const VERSION = \"1.13.3\";\n"],"mappings":"AAQO,IAAMA,EAAU","names":["VERSION"]}
1
+ {"version":3,"sources":["../../src/version.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * The current version of the SDK\n *\n * hardcoded for now, we would want to have it injected dynamically\n */\nexport const VERSION = \"1.14.0-zeta.1\";\n"],"mappings":";AAQO,IAAM,UAAU;","names":[]}
@@ -0,0 +1,413 @@
1
+ import {
2
+ generateTransaction
3
+ } from "./chunk-IHNPN5CQ.mjs";
4
+ import {
5
+ view
6
+ } from "./chunk-RCQMWXEW.mjs";
7
+ import {
8
+ queryIndexer
9
+ } from "./chunk-LYMY63SO.mjs";
10
+ import {
11
+ GetNames
12
+ } from "./chunk-4PJ5FYGQ.mjs";
13
+ import {
14
+ AccountAddress
15
+ } from "./chunk-CMNJG4NN.mjs";
16
+
17
+ // src/internal/ans.ts
18
+ var VALIDATION_RULES_DESCRIPTION = [
19
+ "A name must be between 3 and 63 characters long,",
20
+ "and can only contain lowercase a-z, 0-9, and hyphens.",
21
+ "A name may not start or end with a hyphen."
22
+ ].join(" ");
23
+ function isValidANSSegment(fragment) {
24
+ if (!fragment)
25
+ return false;
26
+ if (fragment.length < 3)
27
+ return false;
28
+ if (fragment.length > 63)
29
+ return false;
30
+ if (!/^[a-z\d][a-z\d-]{1,61}[a-z\d]$/.test(fragment))
31
+ return false;
32
+ return true;
33
+ }
34
+ function isValidANSName(name) {
35
+ const [first, second, ...rest] = name.replace(/\.apt$/, "").split(".");
36
+ if (rest.length > 0) {
37
+ throw new Error(`${name} is invalid. A name can only have two parts, a domain and a subdomain separated by a "."`);
38
+ }
39
+ if (!isValidANSSegment(first)) {
40
+ throw new Error(`${first} is not valid. ${VALIDATION_RULES_DESCRIPTION}`);
41
+ }
42
+ if (second && !isValidANSSegment(second)) {
43
+ throw new Error(`${second} is not valid. ${VALIDATION_RULES_DESCRIPTION}`);
44
+ }
45
+ return {
46
+ domainName: second || first,
47
+ subdomainName: second ? first : void 0
48
+ };
49
+ }
50
+ var LOCAL_ANS_ACCOUNT_PK = "0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221";
51
+ var LOCAL_ANS_ACCOUNT_ADDRESS = "0x585fc9f0f0c54183b039ffc770ca282ebd87307916c215a3e692f2f8e4305e82";
52
+ var NetworkToAnsContract = {
53
+ ["testnet" /* TESTNET */]: "0x5f8fd2347449685cf41d4db97926ec3a096eaf381332be4f1318ad4d16a8497c",
54
+ ["mainnet" /* MAINNET */]: "0x867ed1f6bf916171b1de3ee92849b8978b7d1b9e0a8cc982a3d19d535dfd9c0c",
55
+ ["local" /* LOCAL */]: LOCAL_ANS_ACCOUNT_ADDRESS,
56
+ ["custom" /* CUSTOM */]: null,
57
+ ["devnet" /* DEVNET */]: null
58
+ };
59
+ function getRouterAddress(aptosConfig) {
60
+ const address = NetworkToAnsContract[aptosConfig.network];
61
+ if (!address)
62
+ throw new Error(`The ANS contract is not deployed to ${aptosConfig.network}`);
63
+ return address;
64
+ }
65
+ var unwrapOption = (option) => {
66
+ if (!!option && typeof option === "object" && "vec" in option && Array.isArray(option.vec)) {
67
+ return option.vec[0];
68
+ }
69
+ return void 0;
70
+ };
71
+ async function getOwnerAddress(args) {
72
+ const { aptosConfig, name } = args;
73
+ const routerAddress = getRouterAddress(aptosConfig);
74
+ const { domainName, subdomainName } = isValidANSName(name);
75
+ const res = await view({
76
+ aptosConfig,
77
+ payload: {
78
+ function: `${routerAddress}::router::get_owner_addr`,
79
+ functionArguments: [domainName, subdomainName]
80
+ }
81
+ });
82
+ const owner = unwrapOption(res[0]);
83
+ return owner ? AccountAddress.from(owner) : void 0;
84
+ }
85
+ async function registerName(args) {
86
+ const { aptosConfig, expiration, name, sender, targetAddress, toAddress, options, transferable } = args;
87
+ const routerAddress = getRouterAddress(aptosConfig);
88
+ const { domainName, subdomainName } = isValidANSName(name);
89
+ const hasSubdomainPolicy = expiration.policy === "subdomain:independent" || expiration.policy === "subdomain:follow-domain";
90
+ if (subdomainName && !hasSubdomainPolicy) {
91
+ throw new Error(
92
+ "Subdomains must have an expiration policy of either 'subdomain:independent' or 'subdomain:follow-domain'"
93
+ );
94
+ }
95
+ if (hasSubdomainPolicy && !subdomainName) {
96
+ throw new Error(`Policy is set to ${expiration.policy} but no subdomain was provided`);
97
+ }
98
+ if (expiration.policy === "domain") {
99
+ const years = expiration.years ?? 1;
100
+ if (years !== 1) {
101
+ throw new Error("For now, names can only be registered for 1 year at a time");
102
+ }
103
+ const secondsInYear = 31536e3;
104
+ const registrationDuration = years * secondsInYear;
105
+ const transaction2 = await generateTransaction({
106
+ aptosConfig,
107
+ sender: sender.accountAddress.toString(),
108
+ data: {
109
+ function: `${routerAddress}::router::register_domain`,
110
+ functionArguments: [domainName, registrationDuration, targetAddress, toAddress]
111
+ },
112
+ options
113
+ });
114
+ return transaction2;
115
+ }
116
+ if (!subdomainName) {
117
+ throw new Error(`${expiration.policy} requires a subdomain to be provided.`);
118
+ }
119
+ const tldExpiration = await getExpiration({ aptosConfig, name: domainName });
120
+ if (!tldExpiration) {
121
+ throw new Error("The domain does not exist");
122
+ }
123
+ const expirationDateInMillisecondsSinceEpoch = expiration.policy === "subdomain:independent" ? expiration.expirationDate : tldExpiration;
124
+ if (expirationDateInMillisecondsSinceEpoch > tldExpiration) {
125
+ throw new Error("The subdomain expiration time cannot be greater than the domain expiration time");
126
+ }
127
+ const transaction = await generateTransaction({
128
+ aptosConfig,
129
+ sender: sender.accountAddress.toString(),
130
+ data: {
131
+ function: `${routerAddress}::router::register_subdomain`,
132
+ functionArguments: [
133
+ domainName,
134
+ subdomainName,
135
+ Math.round(expirationDateInMillisecondsSinceEpoch / 1e3),
136
+ expiration.policy === "subdomain:follow-domain" ? 1 : 0,
137
+ !!transferable,
138
+ targetAddress,
139
+ toAddress
140
+ ]
141
+ },
142
+ options
143
+ });
144
+ return transaction;
145
+ }
146
+ async function getExpiration(args) {
147
+ const { aptosConfig, name } = args;
148
+ const routerAddress = getRouterAddress(aptosConfig);
149
+ const { domainName, subdomainName } = isValidANSName(name);
150
+ try {
151
+ const res = await view({
152
+ aptosConfig,
153
+ payload: {
154
+ function: `${routerAddress}::router::get_expiration`,
155
+ functionArguments: [domainName, subdomainName]
156
+ }
157
+ });
158
+ return Number(res[0]) * 1e3;
159
+ } catch (e) {
160
+ return void 0;
161
+ }
162
+ }
163
+ async function getPrimaryName(args) {
164
+ const { aptosConfig, address } = args;
165
+ const routerAddress = getRouterAddress(aptosConfig);
166
+ const res = await view({
167
+ aptosConfig,
168
+ payload: {
169
+ function: `${routerAddress}::router::get_primary_name`,
170
+ functionArguments: [AccountAddress.from(address).toString()]
171
+ }
172
+ });
173
+ const domainName = unwrapOption(res[1]);
174
+ const subdomainName = unwrapOption(res[0]);
175
+ if (!domainName)
176
+ return void 0;
177
+ return [subdomainName, domainName].filter(Boolean).join(".");
178
+ }
179
+ async function setPrimaryName(args) {
180
+ const { aptosConfig, sender, name, options } = args;
181
+ const routerAddress = getRouterAddress(aptosConfig);
182
+ if (!name) {
183
+ const transaction2 = await generateTransaction({
184
+ aptosConfig,
185
+ sender: sender.accountAddress.toString(),
186
+ data: {
187
+ function: `${routerAddress}::router::clear_primary_name`,
188
+ functionArguments: []
189
+ },
190
+ options
191
+ });
192
+ return transaction2;
193
+ }
194
+ const { domainName, subdomainName } = isValidANSName(name);
195
+ const transaction = await generateTransaction({
196
+ aptosConfig,
197
+ sender: sender.accountAddress.toString(),
198
+ data: {
199
+ function: `${routerAddress}::router::set_primary_name`,
200
+ functionArguments: [domainName, subdomainName]
201
+ },
202
+ options
203
+ });
204
+ return transaction;
205
+ }
206
+ async function getTargetAddress(args) {
207
+ const { aptosConfig, name } = args;
208
+ const routerAddress = getRouterAddress(aptosConfig);
209
+ const { domainName, subdomainName } = isValidANSName(name);
210
+ const res = await view({
211
+ aptosConfig,
212
+ payload: {
213
+ function: `${routerAddress}::router::get_target_addr`,
214
+ functionArguments: [domainName, subdomainName]
215
+ }
216
+ });
217
+ const target = unwrapOption(res[0]);
218
+ return target ? AccountAddress.from(target) : void 0;
219
+ }
220
+ async function setTargetAddress(args) {
221
+ const { aptosConfig, sender, name, address, options } = args;
222
+ const routerAddress = getRouterAddress(aptosConfig);
223
+ const { domainName, subdomainName } = isValidANSName(name);
224
+ const transaction = await generateTransaction({
225
+ aptosConfig,
226
+ sender: sender.accountAddress.toString(),
227
+ data: {
228
+ function: `${routerAddress}::router::set_target_addr`,
229
+ functionArguments: [domainName, subdomainName, address]
230
+ },
231
+ options
232
+ });
233
+ return transaction;
234
+ }
235
+ async function getName(args) {
236
+ const { aptosConfig, name } = args;
237
+ const { domainName, subdomainName = "" } = isValidANSName(name);
238
+ const where = {
239
+ domain: { _eq: domainName },
240
+ subdomain: { _eq: subdomainName },
241
+ is_active: { _eq: true }
242
+ };
243
+ const data = await queryIndexer({
244
+ aptosConfig,
245
+ query: {
246
+ query: GetNames,
247
+ variables: {
248
+ where_condition: where,
249
+ limit: 1
250
+ }
251
+ },
252
+ originMethod: "getName"
253
+ });
254
+ let res = data.current_aptos_names[0];
255
+ if (res) {
256
+ res = sanitizeANSName(res);
257
+ }
258
+ return res;
259
+ }
260
+ async function getAccountNames(args) {
261
+ const { aptosConfig, options, accountAddress } = args;
262
+ const expirationDate = await getANSExpirationDate({ aptosConfig });
263
+ const data = await queryIndexer({
264
+ aptosConfig,
265
+ originMethod: "getAccountNames",
266
+ query: {
267
+ query: GetNames,
268
+ variables: {
269
+ limit: options?.limit,
270
+ offset: options?.offset,
271
+ order_by: options?.orderBy,
272
+ where_condition: {
273
+ ...args.options?.where ?? {},
274
+ owner_address: { _eq: accountAddress.toString() },
275
+ expiration_timestamp: { _gte: expirationDate }
276
+ }
277
+ }
278
+ }
279
+ });
280
+ return data.current_aptos_names.map(sanitizeANSName);
281
+ }
282
+ async function getAccountDomains(args) {
283
+ const { aptosConfig, options, accountAddress } = args;
284
+ const expirationDate = await getANSExpirationDate({ aptosConfig });
285
+ const data = await queryIndexer({
286
+ aptosConfig,
287
+ originMethod: "getAccountDomains",
288
+ query: {
289
+ query: GetNames,
290
+ variables: {
291
+ limit: options?.limit,
292
+ offset: options?.offset,
293
+ order_by: options?.orderBy,
294
+ where_condition: {
295
+ ...args.options?.where ?? {},
296
+ owner_address: { _eq: accountAddress.toString() },
297
+ expiration_timestamp: { _gte: expirationDate },
298
+ subdomain: { _eq: "" }
299
+ }
300
+ }
301
+ }
302
+ });
303
+ return data.current_aptos_names.map(sanitizeANSName);
304
+ }
305
+ async function getAccountSubdomains(args) {
306
+ const { aptosConfig, options, accountAddress } = args;
307
+ const expirationDate = await getANSExpirationDate({ aptosConfig });
308
+ const data = await queryIndexer({
309
+ aptosConfig,
310
+ originMethod: "getAccountSubdomains",
311
+ query: {
312
+ query: GetNames,
313
+ variables: {
314
+ limit: options?.limit,
315
+ offset: options?.offset,
316
+ order_by: options?.orderBy,
317
+ where_condition: {
318
+ ...args.options?.where ?? {},
319
+ owner_address: { _eq: accountAddress.toString() },
320
+ expiration_timestamp: { _gte: expirationDate },
321
+ subdomain: { _neq: "" }
322
+ }
323
+ }
324
+ }
325
+ });
326
+ return data.current_aptos_names.map(sanitizeANSName);
327
+ }
328
+ async function getDomainSubdomains(args) {
329
+ const { aptosConfig, options, domain } = args;
330
+ const data = await queryIndexer({
331
+ aptosConfig,
332
+ originMethod: "getDomainSubdomains",
333
+ query: {
334
+ query: GetNames,
335
+ variables: {
336
+ limit: options?.limit,
337
+ offset: options?.offset,
338
+ order_by: options?.orderBy,
339
+ where_condition: {
340
+ ...args.options?.where ?? {},
341
+ domain: { _eq: domain },
342
+ subdomain: { _neq: "" },
343
+ is_active: { _eq: true }
344
+ }
345
+ }
346
+ }
347
+ });
348
+ return data.current_aptos_names.map(sanitizeANSName);
349
+ }
350
+ async function getANSExpirationDate(args) {
351
+ const { aptosConfig } = args;
352
+ const routerAddress = getRouterAddress(aptosConfig);
353
+ const [gracePeriodInSeconds] = await view({
354
+ aptosConfig,
355
+ payload: {
356
+ function: `${routerAddress}::config::reregistration_grace_sec`,
357
+ functionArguments: []
358
+ }
359
+ });
360
+ const gracePeriodInDays = gracePeriodInSeconds / 60 / 60 / 24;
361
+ const now = () => /* @__PURE__ */ new Date();
362
+ return new Date(now().setDate(now().getDate() - gracePeriodInDays)).toISOString();
363
+ }
364
+ async function renewDomain(args) {
365
+ const { aptosConfig, sender, name, years = 1, options } = args;
366
+ const routerAddress = getRouterAddress(aptosConfig);
367
+ const renewalDuration = years * 31536e3;
368
+ const { domainName, subdomainName } = isValidANSName(name);
369
+ if (subdomainName) {
370
+ throw new Error("Subdomains cannot be renewed");
371
+ }
372
+ if (years !== 1) {
373
+ throw new Error("Currently, only 1 year renewals are supported");
374
+ }
375
+ const transaction = await generateTransaction({
376
+ aptosConfig,
377
+ sender: sender.accountAddress.toString(),
378
+ data: {
379
+ function: `${routerAddress}::router::renew_domain`,
380
+ functionArguments: [domainName, renewalDuration]
381
+ },
382
+ options
383
+ });
384
+ return transaction;
385
+ }
386
+ function sanitizeANSName(name) {
387
+ return {
388
+ ...name,
389
+ expiration_timestamp: new Date(name.expiration_timestamp).getTime()
390
+ };
391
+ }
392
+
393
+ export {
394
+ VALIDATION_RULES_DESCRIPTION,
395
+ isValidANSSegment,
396
+ isValidANSName,
397
+ LOCAL_ANS_ACCOUNT_PK,
398
+ LOCAL_ANS_ACCOUNT_ADDRESS,
399
+ getOwnerAddress,
400
+ registerName,
401
+ getExpiration,
402
+ getPrimaryName,
403
+ setPrimaryName,
404
+ getTargetAddress,
405
+ setTargetAddress,
406
+ getName,
407
+ getAccountNames,
408
+ getAccountDomains,
409
+ getAccountSubdomains,
410
+ getDomainSubdomains,
411
+ renewDomain
412
+ };
413
+ //# sourceMappingURL=chunk-DGV7DYU4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/internal/ans.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This file contains the underlying implementations for exposed API surface in\n * the {@link api/name}. By moving the methods out into a separate file,\n * other namespaces and processes can access these methods without depending on the entire\n * name namespace and without having a dependency cycle error.\n */\n\nimport { AptosConfig } from \"../api/aptosConfig\";\nimport { Account } from \"../account\";\nimport { AccountAddress, AccountAddressInput } from \"../core\";\nimport { InputGenerateTransactionOptions } from \"../transactions/types\";\nimport { GetANSNameResponse, MoveAddressType, OrderByArg, PaginationArgs, WhereArg } from \"../types\";\nimport { GetNamesQuery } from \"../types/generated/operations\";\nimport { GetNames } from \"../types/generated/queries\";\nimport { CurrentAptosNamesBoolExp } from \"../types/generated/types\";\nimport { Network } from \"../utils/apiEndpoints\";\nimport { queryIndexer } from \"./general\";\nimport { view } from \"./view\";\nimport { generateTransaction } from \"./transactionSubmission\";\nimport { SimpleTransaction } from \"../transactions/instances/simpleTransaction\";\n\nexport const VALIDATION_RULES_DESCRIPTION = [\n \"A name must be between 3 and 63 characters long,\",\n \"and can only contain lowercase a-z, 0-9, and hyphens.\",\n \"A name may not start or end with a hyphen.\",\n].join(\" \");\n\n/**\n *\n * @param fragment A fragment of a name, either the domain or subdomain\n * @returns boolean indicating if the fragment is a valid fragment\n */\nexport function isValidANSSegment(fragment: string): boolean {\n if (!fragment) return false;\n if (fragment.length < 3) return false;\n if (fragment.length > 63) return false;\n // only lowercase a-z and 0-9 are allowed, along with -. a domain may not start or end with a hyphen\n if (!/^[a-z\\d][a-z\\d-]{1,61}[a-z\\d]$/.test(fragment)) return false;\n return true;\n}\n\n/**\n * Checks if an ANS name is valid or not\n *\n * @param name A string of the domain name, can include or exclude the .apt suffix\n */\nexport function isValidANSName(name: string): { domainName: string; subdomainName?: string } {\n const [first, second, ...rest] = name.replace(/\\.apt$/, \"\").split(\".\");\n\n if (rest.length > 0) {\n throw new Error(`${name} is invalid. A name can only have two parts, a domain and a subdomain separated by a \".\"`);\n }\n\n if (!isValidANSSegment(first)) {\n throw new Error(`${first} is not valid. ${VALIDATION_RULES_DESCRIPTION}`);\n }\n\n if (second && !isValidANSSegment(second)) {\n throw new Error(`${second} is not valid. ${VALIDATION_RULES_DESCRIPTION}`);\n }\n\n return {\n domainName: second || first,\n subdomainName: second ? first : undefined,\n };\n}\n\nexport const LOCAL_ANS_ACCOUNT_PK =\n process.env.ANS_TEST_ACCOUNT_PRIVATE_KEY ?? \"0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221\";\nexport const LOCAL_ANS_ACCOUNT_ADDRESS =\n process.env.ANS_TEST_ACCOUNT_ADDRESS ?? \"0x585fc9f0f0c54183b039ffc770ca282ebd87307916c215a3e692f2f8e4305e82\";\n\nconst NetworkToAnsContract: Record<Network, string | null> = {\n [Network.TESTNET]: \"0x5f8fd2347449685cf41d4db97926ec3a096eaf381332be4f1318ad4d16a8497c\",\n [Network.MAINNET]: \"0x867ed1f6bf916171b1de3ee92849b8978b7d1b9e0a8cc982a3d19d535dfd9c0c\",\n [Network.LOCAL]: LOCAL_ANS_ACCOUNT_ADDRESS,\n [Network.CUSTOM]: null,\n [Network.DEVNET]: null,\n};\n\nfunction getRouterAddress(aptosConfig: AptosConfig): string {\n const address = NetworkToAnsContract[aptosConfig.network];\n if (!address) throw new Error(`The ANS contract is not deployed to ${aptosConfig.network}`);\n return address;\n}\n\nconst unwrapOption = <T>(option: any): T | undefined => {\n if (!!option && typeof option === \"object\" && \"vec\" in option && Array.isArray(option.vec)) {\n return option.vec[0];\n }\n\n return undefined;\n};\n\nexport async function getOwnerAddress(args: {\n aptosConfig: AptosConfig;\n name: string;\n}): Promise<AccountAddress | undefined> {\n const { aptosConfig, name } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n const { domainName, subdomainName } = isValidANSName(name);\n\n const res = await view({\n aptosConfig,\n payload: {\n function: `${routerAddress}::router::get_owner_addr`,\n functionArguments: [domainName, subdomainName],\n },\n });\n\n const owner = unwrapOption<MoveAddressType>(res[0]);\n\n return owner ? AccountAddress.from(owner) : undefined;\n}\n\nexport interface RegisterNameParameters {\n aptosConfig: AptosConfig;\n sender: Account;\n name: string;\n expiration:\n | { policy: \"domain\"; years?: 1 }\n | { policy: \"subdomain:follow-domain\" }\n | { policy: \"subdomain:independent\"; expirationDate: number };\n transferable?: boolean;\n toAddress?: AccountAddressInput;\n targetAddress?: AccountAddressInput;\n options?: InputGenerateTransactionOptions;\n}\n\nexport async function registerName(args: RegisterNameParameters): Promise<SimpleTransaction> {\n const { aptosConfig, expiration, name, sender, targetAddress, toAddress, options, transferable } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n const { domainName, subdomainName } = isValidANSName(name);\n\n const hasSubdomainPolicy =\n expiration.policy === \"subdomain:independent\" || expiration.policy === \"subdomain:follow-domain\";\n\n if (subdomainName && !hasSubdomainPolicy) {\n throw new Error(\n \"Subdomains must have an expiration policy of either 'subdomain:independent' or 'subdomain:follow-domain'\",\n );\n }\n\n if (hasSubdomainPolicy && !subdomainName) {\n throw new Error(`Policy is set to ${expiration.policy} but no subdomain was provided`);\n }\n\n if (expiration.policy === \"domain\") {\n const years = expiration.years ?? 1;\n if (years !== 1) {\n throw new Error(\"For now, names can only be registered for 1 year at a time\");\n }\n\n const secondsInYear = 31536000;\n const registrationDuration = years * secondsInYear;\n\n const transaction = await generateTransaction({\n aptosConfig,\n sender: sender.accountAddress.toString(),\n data: {\n function: `${routerAddress}::router::register_domain`,\n functionArguments: [domainName, registrationDuration, targetAddress, toAddress],\n },\n options,\n });\n\n return transaction;\n }\n\n // We are a subdomain\n if (!subdomainName) {\n throw new Error(`${expiration.policy} requires a subdomain to be provided.`);\n }\n\n const tldExpiration = await getExpiration({ aptosConfig, name: domainName });\n if (!tldExpiration) {\n throw new Error(\"The domain does not exist\");\n }\n\n const expirationDateInMillisecondsSinceEpoch =\n expiration.policy === \"subdomain:independent\" ? expiration.expirationDate : tldExpiration;\n\n if (expirationDateInMillisecondsSinceEpoch > tldExpiration) {\n throw new Error(\"The subdomain expiration time cannot be greater than the domain expiration time\");\n }\n\n const transaction = await generateTransaction({\n aptosConfig,\n sender: sender.accountAddress.toString(),\n data: {\n function: `${routerAddress}::router::register_subdomain`,\n functionArguments: [\n domainName,\n subdomainName,\n Math.round(expirationDateInMillisecondsSinceEpoch / 1000),\n expiration.policy === \"subdomain:follow-domain\" ? 1 : 0,\n !!transferable,\n targetAddress,\n toAddress,\n ],\n },\n options,\n });\n\n return transaction;\n}\n\nexport async function getExpiration(args: { aptosConfig: AptosConfig; name: string }): Promise<number | undefined> {\n const { aptosConfig, name } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n const { domainName, subdomainName } = isValidANSName(name);\n\n try {\n const res = await view({\n aptosConfig,\n payload: {\n function: `${routerAddress}::router::get_expiration`,\n functionArguments: [domainName, subdomainName],\n },\n });\n\n // Normalize expiration time from epoch seconds to epoch milliseconds\n return Number(res[0]) * 1000;\n } catch (e) {\n return undefined;\n }\n}\n\nexport async function getPrimaryName(args: {\n aptosConfig: AptosConfig;\n address: AccountAddressInput;\n}): Promise<string | undefined> {\n const { aptosConfig, address } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n\n const res = await view({\n aptosConfig,\n payload: {\n function: `${routerAddress}::router::get_primary_name`,\n functionArguments: [AccountAddress.from(address).toString()],\n },\n });\n\n const domainName = unwrapOption<MoveAddressType>(res[1]);\n const subdomainName = unwrapOption<MoveAddressType>(res[0]);\n\n if (!domainName) return undefined;\n\n return [subdomainName, domainName].filter(Boolean).join(\".\");\n}\n\nexport async function setPrimaryName(args: {\n aptosConfig: AptosConfig;\n sender: Account;\n name?: string;\n options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n const { aptosConfig, sender, name, options } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n\n if (!name) {\n const transaction = await generateTransaction({\n aptosConfig,\n sender: sender.accountAddress.toString(),\n data: {\n function: `${routerAddress}::router::clear_primary_name`,\n functionArguments: [],\n },\n options,\n });\n\n return transaction;\n }\n\n const { domainName, subdomainName } = isValidANSName(name);\n\n const transaction = await generateTransaction({\n aptosConfig,\n sender: sender.accountAddress.toString(),\n data: {\n function: `${routerAddress}::router::set_primary_name`,\n functionArguments: [domainName, subdomainName],\n },\n options,\n });\n\n return transaction;\n}\n\nexport async function getTargetAddress(args: {\n aptosConfig: AptosConfig;\n name: string;\n}): Promise<AccountAddress | undefined> {\n const { aptosConfig, name } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n const { domainName, subdomainName } = isValidANSName(name);\n\n const res = await view({\n aptosConfig,\n payload: {\n function: `${routerAddress}::router::get_target_addr`,\n functionArguments: [domainName, subdomainName],\n },\n });\n\n const target = unwrapOption<MoveAddressType>(res[0]);\n return target ? AccountAddress.from(target) : undefined;\n}\n\nexport async function setTargetAddress(args: {\n aptosConfig: AptosConfig;\n sender: Account;\n name: string;\n address: AccountAddressInput;\n options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n const { aptosConfig, sender, name, address, options } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n const { domainName, subdomainName } = isValidANSName(name);\n\n const transaction = await generateTransaction({\n aptosConfig,\n sender: sender.accountAddress.toString(),\n data: {\n function: `${routerAddress}::router::set_target_addr`,\n functionArguments: [domainName, subdomainName, address],\n },\n options,\n });\n\n return transaction;\n}\n\nexport async function getName(args: {\n aptosConfig: AptosConfig;\n name: string;\n}): Promise<GetANSNameResponse[0] | undefined> {\n const { aptosConfig, name } = args;\n const { domainName, subdomainName = \"\" } = isValidANSName(name);\n\n const where: CurrentAptosNamesBoolExp = {\n domain: { _eq: domainName },\n subdomain: { _eq: subdomainName },\n is_active: { _eq: true },\n };\n\n const data = await queryIndexer<GetNamesQuery>({\n aptosConfig,\n query: {\n query: GetNames,\n variables: {\n where_condition: where,\n limit: 1,\n },\n },\n originMethod: \"getName\",\n });\n\n // Convert the expiration_timestamp from an ISO string to milliseconds since epoch\n let res = data.current_aptos_names[0];\n if (res) {\n res = sanitizeANSName(res);\n }\n\n return res;\n}\n\ninterface QueryNamesOptions {\n options?: PaginationArgs & OrderByArg<GetANSNameResponse[0]> & WhereArg<CurrentAptosNamesBoolExp>;\n}\n\nexport interface GetAccountNamesArgs extends QueryNamesOptions {\n accountAddress: AccountAddressInput;\n}\n\nexport async function getAccountNames(\n args: { aptosConfig: AptosConfig } & GetAccountNamesArgs,\n): Promise<GetANSNameResponse> {\n const { aptosConfig, options, accountAddress } = args;\n\n const expirationDate = await getANSExpirationDate({ aptosConfig });\n\n const data = await queryIndexer<GetNamesQuery>({\n aptosConfig,\n originMethod: \"getAccountNames\",\n query: {\n query: GetNames,\n variables: {\n limit: options?.limit,\n offset: options?.offset,\n order_by: options?.orderBy,\n where_condition: {\n ...(args.options?.where ?? {}),\n owner_address: { _eq: accountAddress.toString() },\n expiration_timestamp: { _gte: expirationDate },\n },\n },\n },\n });\n\n return data.current_aptos_names.map(sanitizeANSName);\n}\n\nexport interface GetAccountDomainsArgs extends QueryNamesOptions {\n accountAddress: AccountAddressInput;\n}\n\nexport async function getAccountDomains(\n args: { aptosConfig: AptosConfig } & GetAccountDomainsArgs,\n): Promise<GetANSNameResponse> {\n const { aptosConfig, options, accountAddress } = args;\n\n const expirationDate = await getANSExpirationDate({ aptosConfig });\n\n const data = await queryIndexer<GetNamesQuery>({\n aptosConfig,\n originMethod: \"getAccountDomains\",\n query: {\n query: GetNames,\n variables: {\n limit: options?.limit,\n offset: options?.offset,\n order_by: options?.orderBy,\n where_condition: {\n ...(args.options?.where ?? {}),\n owner_address: { _eq: accountAddress.toString() },\n expiration_timestamp: { _gte: expirationDate },\n subdomain: { _eq: \"\" },\n },\n },\n },\n });\n\n return data.current_aptos_names.map(sanitizeANSName);\n}\n\nexport interface GetAccountSubdomainsArgs extends QueryNamesOptions {\n accountAddress: AccountAddressInput;\n}\n\nexport async function getAccountSubdomains(\n args: { aptosConfig: AptosConfig } & GetAccountSubdomainsArgs,\n): Promise<GetANSNameResponse> {\n const { aptosConfig, options, accountAddress } = args;\n\n const expirationDate = await getANSExpirationDate({ aptosConfig });\n\n const data = await queryIndexer<GetNamesQuery>({\n aptosConfig,\n originMethod: \"getAccountSubdomains\",\n query: {\n query: GetNames,\n variables: {\n limit: options?.limit,\n offset: options?.offset,\n order_by: options?.orderBy,\n where_condition: {\n ...(args.options?.where ?? {}),\n owner_address: { _eq: accountAddress.toString() },\n expiration_timestamp: { _gte: expirationDate },\n subdomain: { _neq: \"\" },\n },\n },\n },\n });\n\n return data.current_aptos_names.map(sanitizeANSName);\n}\n\nexport interface GetDomainSubdomainsArgs extends QueryNamesOptions {\n domain: string;\n}\n\nexport async function getDomainSubdomains(\n args: { aptosConfig: AptosConfig } & GetDomainSubdomainsArgs,\n): Promise<GetANSNameResponse> {\n const { aptosConfig, options, domain } = args;\n\n const data = await queryIndexer<GetNamesQuery>({\n aptosConfig,\n originMethod: \"getDomainSubdomains\",\n query: {\n query: GetNames,\n variables: {\n limit: options?.limit,\n offset: options?.offset,\n order_by: options?.orderBy,\n where_condition: {\n ...(args.options?.where ?? {}),\n domain: { _eq: domain },\n subdomain: { _neq: \"\" },\n is_active: { _eq: true },\n },\n },\n },\n });\n\n return data.current_aptos_names.map(sanitizeANSName);\n}\n\n/**\n * This function returns the expiration date in which a name is fully expired as\n * defined by the contract. The grace period allows for names to be past\n * expiration for a certain amount of time before they are released to the\n * public. The names will not function as normal, but the owner can renew\n * without others taking ownership of the name. At the time of writing, the\n * contract specified 30 days.\n *\n * @param args.aptosConfig an AptosConfig object\n * @returns\n */\nasync function getANSExpirationDate(args: { aptosConfig: AptosConfig }): Promise<string> {\n const { aptosConfig } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n\n const [gracePeriodInSeconds] = await view<[number]>({\n aptosConfig,\n payload: {\n function: `${routerAddress}::config::reregistration_grace_sec`,\n functionArguments: [],\n },\n });\n\n const gracePeriodInDays = gracePeriodInSeconds / 60 / 60 / 24;\n const now = () => new Date();\n return new Date(now().setDate(now().getDate() - gracePeriodInDays)).toISOString();\n}\n\nexport async function renewDomain(args: {\n aptosConfig: AptosConfig;\n sender: Account;\n name: string;\n years?: 1;\n options?: InputGenerateTransactionOptions;\n}): Promise<SimpleTransaction> {\n const { aptosConfig, sender, name, years = 1, options } = args;\n const routerAddress = getRouterAddress(aptosConfig);\n const renewalDuration = years * 31536000;\n const { domainName, subdomainName } = isValidANSName(name);\n\n if (subdomainName) {\n throw new Error(\"Subdomains cannot be renewed\");\n }\n\n if (years !== 1) {\n throw new Error(\"Currently, only 1 year renewals are supported\");\n }\n\n const transaction = await generateTransaction({\n aptosConfig,\n sender: sender.accountAddress.toString(),\n data: {\n function: `${routerAddress}::router::renew_domain`,\n functionArguments: [domainName, renewalDuration],\n },\n options,\n });\n\n return transaction;\n}\n\n/**\n * The indexer returns ISO strings for expiration, however the contract works in\n * epoch milliseconds. This function converts the ISO string to epoch\n * milliseconds. In the future, if other properties need sanitization, this can\n * be extended.\n */\nfunction sanitizeANSName(name: GetANSNameResponse[0]): GetANSNameResponse[0] {\n return {\n ...name,\n expiration_timestamp: new Date(name.expiration_timestamp).getTime(),\n };\n}\n"],"mappings":"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","names":["transaction"]}