@aptos-labs/ts-sdk 1.35.0-zeta.2 → 1.36.0-zeta.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 (596) hide show
  1. package/dist/common/{accountAddress-Ce4Cv60D.d.ts → accountAddress-C685VEzA.d.ts} +11 -99
  2. package/dist/common/chunk-5GUWOXQG.js +4 -0
  3. package/dist/common/chunk-5GUWOXQG.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +1 -1
  5. package/dist/common/cli/index.js +1 -486
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +9105 -8699
  8. package/dist/common/index.js +436 -18333
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/{Ed25519Account-D4j3_WIS.d.mts → Ed25519Account-6KGApCPu.d.mts} +3 -3
  11. package/dist/esm/account/AbstractKeylessAccount.d.mts +23 -13
  12. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -75
  13. package/dist/esm/account/AbstractedAccount.d.mts +10 -10
  14. package/dist/esm/account/AbstractedAccount.mjs +1 -74
  15. package/dist/esm/account/Account.d.mts +6 -6
  16. package/dist/esm/account/Account.mjs +1 -72
  17. package/dist/esm/account/AccountUtils.d.mts +11 -10
  18. package/dist/esm/account/AccountUtils.mjs +1 -78
  19. package/dist/esm/account/Ed25519Account.d.mts +5 -5
  20. package/dist/esm/account/Ed25519Account.mjs +1 -70
  21. package/dist/esm/account/EphemeralKeyPair.d.mts +3 -1
  22. package/dist/esm/account/EphemeralKeyPair.mjs +1 -50
  23. package/dist/esm/account/FederatedKeylessAccount.d.mts +12 -11
  24. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -72
  25. package/dist/esm/account/KeylessAccount.d.mts +12 -11
  26. package/dist/esm/account/KeylessAccount.mjs +1 -72
  27. package/dist/esm/account/MultiEd25519Account.d.mts +9 -9
  28. package/dist/esm/account/MultiEd25519Account.mjs +1 -70
  29. package/dist/esm/account/MultiKeyAccount.d.mts +34 -12
  30. package/dist/esm/account/MultiKeyAccount.mjs +1 -74
  31. package/dist/esm/account/SingleKeyAccount.d.mts +5 -5
  32. package/dist/esm/account/SingleKeyAccount.mjs +1 -72
  33. package/dist/esm/account/index.d.mts +7 -6
  34. package/dist/esm/account/index.mjs +1 -119
  35. package/dist/esm/account/utils.mjs +1 -54
  36. package/dist/esm/api/account/abstraction.d.mts +9 -9
  37. package/dist/esm/api/account/abstraction.mjs +1 -101
  38. package/dist/esm/api/account.d.mts +4 -20
  39. package/dist/esm/api/account.mjs +1 -105
  40. package/dist/esm/api/ans.d.mts +13 -13
  41. package/dist/esm/api/ans.mjs +1 -101
  42. package/dist/esm/api/aptos.d.mts +6 -5
  43. package/dist/esm/api/aptos.mjs +1 -139
  44. package/dist/esm/api/aptosConfig.mjs +1 -9
  45. package/dist/esm/api/coin.d.mts +9 -9
  46. package/dist/esm/api/coin.mjs +1 -100
  47. package/dist/esm/api/digitalAsset.d.mts +5 -5
  48. package/dist/esm/api/digitalAsset.mjs +1 -101
  49. package/dist/esm/api/event.mjs +1 -59
  50. package/dist/esm/api/experimental.d.mts +7 -7
  51. package/dist/esm/api/experimental.mjs +1 -85
  52. package/dist/esm/api/faucet.mjs +1 -58
  53. package/dist/esm/api/fungibleAsset.d.mts +13 -13
  54. package/dist/esm/api/fungibleAsset.mjs +1 -101
  55. package/dist/esm/api/general.d.mts +7 -7
  56. package/dist/esm/api/general.mjs +1 -85
  57. package/dist/esm/api/index.d.mts +6 -5
  58. package/dist/esm/api/index.mjs +1 -143
  59. package/dist/esm/api/keyless.d.mts +20 -19
  60. package/dist/esm/api/keyless.mjs +1 -102
  61. package/dist/esm/api/object.mjs +1 -59
  62. package/dist/esm/api/staking.mjs +1 -59
  63. package/dist/esm/api/table.mjs +1 -38
  64. package/dist/esm/api/transaction.d.mts +4 -4
  65. package/dist/esm/api/transaction.mjs +1 -110
  66. package/dist/esm/api/transactionSubmission/build.d.mts +9 -9
  67. package/dist/esm/api/transactionSubmission/build.mjs +1 -99
  68. package/dist/esm/api/transactionSubmission/helpers.mjs +1 -9
  69. package/dist/esm/api/transactionSubmission/management.d.mts +8 -8
  70. package/dist/esm/api/transactionSubmission/management.mjs +1 -105
  71. package/dist/esm/api/transactionSubmission/sign.d.mts +3 -3
  72. package/dist/esm/api/transactionSubmission/sign.mjs +1 -218
  73. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  74. package/dist/esm/api/transactionSubmission/simulate.d.mts +9 -9
  75. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -100
  76. package/dist/esm/api/transactionSubmission/submit.d.mts +3 -3
  77. package/dist/esm/api/transactionSubmission/submit.mjs +1 -100
  78. package/dist/esm/api/utils.mjs +1 -36
  79. package/dist/esm/bcs/consts.mjs +1 -17
  80. package/dist/esm/bcs/deserializer.mjs +1 -10
  81. package/dist/esm/bcs/index.mjs +1 -60
  82. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -12
  83. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -11
  84. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -26
  85. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -22
  86. package/dist/esm/bcs/serializer.mjs +1 -18
  87. package/dist/esm/chunk-2V636AYW.mjs +2 -0
  88. package/dist/esm/{chunk-3IWV2Q3K.mjs.map → chunk-2V636AYW.mjs.map} +1 -1
  89. package/dist/esm/chunk-35CO4BP4.mjs +2 -0
  90. package/dist/esm/chunk-35CO4BP4.mjs.map +1 -0
  91. package/dist/esm/chunk-35DKMW7Q.mjs +2 -0
  92. package/dist/esm/{chunk-GUA5YTIK.mjs.map → chunk-35DKMW7Q.mjs.map} +1 -1
  93. package/dist/esm/chunk-3EUHEZND.mjs +2 -0
  94. package/dist/esm/{chunk-G34CJDST.mjs.map → chunk-3EUHEZND.mjs.map} +1 -1
  95. package/dist/esm/chunk-3OLFJ65O.mjs +2 -0
  96. package/dist/esm/{chunk-G4NBRMZ2.mjs.map → chunk-3OLFJ65O.mjs.map} +1 -1
  97. package/dist/esm/chunk-3RVAGHAA.mjs +2 -0
  98. package/dist/esm/{chunk-XQFUKBY7.mjs.map → chunk-3RVAGHAA.mjs.map} +1 -1
  99. package/dist/esm/chunk-4RXKALLC.mjs +2 -0
  100. package/dist/esm/{chunk-SFLQPB72.mjs.map → chunk-4RXKALLC.mjs.map} +1 -1
  101. package/dist/esm/chunk-56CNRT2K.mjs +2 -0
  102. package/dist/esm/{chunk-SBB4YEPT.mjs.map → chunk-56CNRT2K.mjs.map} +1 -1
  103. package/dist/esm/chunk-6KE4JZD6.mjs +2 -0
  104. package/dist/esm/chunk-6KE4JZD6.mjs.map +1 -0
  105. package/dist/esm/chunk-7CRQNXR5.mjs +2 -0
  106. package/dist/esm/{chunk-YU65LNIC.mjs.map → chunk-7CRQNXR5.mjs.map} +1 -1
  107. package/dist/esm/chunk-7YTGBTWH.mjs +2 -0
  108. package/dist/esm/chunk-7YTGBTWH.mjs.map +1 -0
  109. package/dist/esm/chunk-A3VO773Q.mjs +2 -0
  110. package/dist/esm/{chunk-KLUO6XPE.mjs.map → chunk-A3VO773Q.mjs.map} +1 -1
  111. package/dist/esm/chunk-A5L76YP7.mjs +2 -0
  112. package/dist/esm/{chunk-PT2QHUB6.mjs.map → chunk-A5L76YP7.mjs.map} +1 -1
  113. package/dist/esm/chunk-AEGA5N2W.mjs +2 -0
  114. package/dist/esm/{chunk-QJ6CGH7N.mjs.map → chunk-AEGA5N2W.mjs.map} +1 -1
  115. package/dist/esm/chunk-AIPHJFJL.mjs +2 -0
  116. package/dist/esm/{chunk-6I37A76G.mjs.map → chunk-AIPHJFJL.mjs.map} +1 -1
  117. package/dist/esm/chunk-BMPHQ3E7.mjs +2 -0
  118. package/dist/esm/{chunk-MWXBQ6HR.mjs.map → chunk-BMPHQ3E7.mjs.map} +1 -1
  119. package/dist/esm/chunk-C3Q23D22.mjs +2 -0
  120. package/dist/esm/{chunk-F7W7KS5C.mjs.map → chunk-C3Q23D22.mjs.map} +1 -1
  121. package/dist/esm/chunk-CWL7ZA3P.mjs +2 -0
  122. package/dist/esm/{chunk-6T3V5LXK.mjs.map → chunk-CWL7ZA3P.mjs.map} +1 -1
  123. package/dist/esm/chunk-DOVH6HPL.mjs +2 -0
  124. package/dist/esm/{chunk-THWEBWUC.mjs.map → chunk-DOVH6HPL.mjs.map} +1 -1
  125. package/dist/esm/chunk-EODSU3YN.mjs +2 -0
  126. package/dist/esm/{chunk-WXQUBQK4.mjs.map → chunk-EODSU3YN.mjs.map} +1 -1
  127. package/dist/esm/chunk-ERLDXTIY.mjs +2 -0
  128. package/dist/esm/{chunk-6ASWESA2.mjs.map → chunk-ERLDXTIY.mjs.map} +1 -1
  129. package/dist/esm/chunk-GOXRBEIJ.mjs +2 -0
  130. package/dist/esm/{chunk-APM7OSLS.mjs.map → chunk-GOXRBEIJ.mjs.map} +1 -1
  131. package/dist/esm/chunk-HHWJHOFZ.mjs +2 -0
  132. package/dist/esm/{chunk-KSK3XIGF.mjs.map → chunk-HHWJHOFZ.mjs.map} +1 -1
  133. package/dist/esm/chunk-IF4UU2MT.mjs +2 -0
  134. package/dist/esm/{chunk-QPT4BSAB.mjs.map → chunk-IF4UU2MT.mjs.map} +1 -1
  135. package/dist/esm/chunk-IMTC3J2M.mjs +2 -0
  136. package/dist/esm/{chunk-LJRNGZMY.mjs.map → chunk-IMTC3J2M.mjs.map} +1 -1
  137. package/dist/esm/chunk-KDMSOCZY.mjs +2 -0
  138. package/dist/esm/chunk-KSLLV3ZC.mjs +2 -0
  139. package/dist/esm/{chunk-OFUNBTK4.mjs.map → chunk-KSLLV3ZC.mjs.map} +1 -1
  140. package/dist/esm/chunk-KXVD52Y6.mjs +2 -0
  141. package/dist/esm/{chunk-YT7V6AVJ.mjs.map → chunk-KXVD52Y6.mjs.map} +1 -1
  142. package/dist/esm/chunk-LGC2JORV.mjs +2 -0
  143. package/dist/esm/chunk-LGC2JORV.mjs.map +1 -0
  144. package/dist/esm/chunk-LQOSHBB7.mjs +4 -0
  145. package/dist/esm/{chunk-CXLXUSCG.mjs.map → chunk-LQOSHBB7.mjs.map} +1 -1
  146. package/dist/esm/chunk-LS3IDL2N.mjs +2 -0
  147. package/dist/esm/{chunk-MYEYZ7PF.mjs.map → chunk-LS3IDL2N.mjs.map} +1 -1
  148. package/dist/esm/chunk-MIW45ADL.mjs +2 -0
  149. package/dist/esm/chunk-MIW45ADL.mjs.map +1 -0
  150. package/dist/esm/chunk-NFPNWY6Z.mjs +4 -0
  151. package/dist/esm/chunk-NFPNWY6Z.mjs.map +1 -0
  152. package/dist/esm/chunk-PDAWVDI7.mjs +2 -0
  153. package/dist/esm/{chunk-MFFBZ43D.mjs.map → chunk-PDAWVDI7.mjs.map} +1 -1
  154. package/dist/esm/chunk-PSZYS4RG.mjs +2 -0
  155. package/dist/esm/{chunk-YK66QBML.mjs.map → chunk-PSZYS4RG.mjs.map} +1 -1
  156. package/dist/esm/chunk-R6QCPXQG.mjs +2 -0
  157. package/dist/esm/{chunk-SQNS4SFV.mjs.map → chunk-R6QCPXQG.mjs.map} +1 -1
  158. package/dist/esm/chunk-RIINVEZA.mjs +2 -0
  159. package/dist/esm/{chunk-Y3ENAKRC.mjs.map → chunk-RIINVEZA.mjs.map} +1 -1
  160. package/dist/esm/chunk-RJ7F4JDV.mjs +2 -0
  161. package/dist/esm/chunk-RJ7F4JDV.mjs.map +1 -0
  162. package/dist/esm/chunk-RXHER6EA.mjs +2 -0
  163. package/dist/esm/{chunk-C7T6GW5P.mjs.map → chunk-RXHER6EA.mjs.map} +1 -1
  164. package/dist/esm/chunk-RXMLONF7.mjs +2 -0
  165. package/dist/esm/{chunk-BU43ZFDJ.mjs.map → chunk-RXMLONF7.mjs.map} +1 -1
  166. package/dist/esm/chunk-TBY3VMMV.mjs +2 -0
  167. package/dist/esm/chunk-TBY3VMMV.mjs.map +1 -0
  168. package/dist/esm/chunk-TKXEVD7A.mjs +2 -0
  169. package/dist/esm/{chunk-QSYWLSSN.mjs.map → chunk-TKXEVD7A.mjs.map} +1 -1
  170. package/dist/esm/chunk-TNWABITK.mjs +2 -0
  171. package/dist/esm/{chunk-FRLS4GRM.mjs.map → chunk-TNWABITK.mjs.map} +1 -1
  172. package/dist/esm/chunk-TTY5GFMN.mjs +2 -0
  173. package/dist/esm/{chunk-PKUXOBIV.mjs.map → chunk-TTY5GFMN.mjs.map} +1 -1
  174. package/dist/esm/chunk-VHNX2NUR.mjs +473 -0
  175. package/dist/esm/chunk-VHNX2NUR.mjs.map +1 -0
  176. package/dist/esm/chunk-VHY6ZATX.mjs +2 -0
  177. package/dist/esm/{chunk-BDM6FBUO.mjs.map → chunk-VHY6ZATX.mjs.map} +1 -1
  178. package/dist/esm/chunk-W4BSN6SK.mjs +2 -0
  179. package/dist/esm/{chunk-ZWCTF3NQ.mjs.map → chunk-W4BSN6SK.mjs.map} +1 -1
  180. package/dist/esm/chunk-WB26DWOY.mjs +7 -0
  181. package/dist/esm/chunk-WB26DWOY.mjs.map +1 -0
  182. package/dist/esm/chunk-X5YB74NB.mjs +2 -0
  183. package/dist/esm/{chunk-I25AX6PQ.mjs.map → chunk-X5YB74NB.mjs.map} +1 -1
  184. package/dist/esm/chunk-XLDMPCLF.mjs +2 -0
  185. package/dist/esm/{chunk-WLTQHGIJ.mjs.map → chunk-XLDMPCLF.mjs.map} +1 -1
  186. package/dist/esm/chunk-YOZBVVKL.mjs +2 -0
  187. package/dist/esm/{chunk-BEYIOC2H.mjs.map → chunk-YOZBVVKL.mjs.map} +1 -1
  188. package/dist/esm/chunk-ZD2TY5N3.mjs +2 -0
  189. package/dist/esm/{chunk-NUT2VOX2.mjs.map → chunk-ZD2TY5N3.mjs.map} +1 -1
  190. package/dist/esm/chunk-ZELTLAUN.mjs +2 -0
  191. package/dist/esm/chunk-ZELTLAUN.mjs.map +1 -0
  192. package/dist/esm/cli/index.mjs +1 -20
  193. package/dist/esm/cli/localNode.mjs +1 -16
  194. package/dist/esm/cli/move.mjs +1 -7
  195. package/dist/esm/client/core.mjs +1 -34
  196. package/dist/esm/client/get.mjs +1 -41
  197. package/dist/esm/client/index.mjs +1 -69
  198. package/dist/esm/client/post.mjs +1 -43
  199. package/dist/esm/core/account/index.mjs +1 -21
  200. package/dist/esm/core/account/utils/address.mjs +1 -19
  201. package/dist/esm/core/account/utils/index.mjs +1 -20
  202. package/dist/esm/core/accountAddress.mjs +1 -16
  203. package/dist/esm/core/authenticationKey.d.mts +3 -1
  204. package/dist/esm/core/authenticationKey.mjs +1 -15
  205. package/dist/esm/core/common.mjs +1 -7
  206. package/dist/esm/core/crypto/abstraction.d.mts +4 -1
  207. package/dist/esm/core/crypto/abstraction.mjs +1 -26
  208. package/dist/esm/core/crypto/ed25519.d.mts +18 -1
  209. package/dist/esm/core/crypto/ed25519.mjs +1 -33
  210. package/dist/esm/core/crypto/ephemeral.d.mts +8 -1
  211. package/dist/esm/core/crypto/ephemeral.mjs +1 -30
  212. package/dist/esm/core/crypto/federatedKeyless.d.mts +11 -87
  213. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -44
  214. package/dist/esm/core/crypto/hdKey.mjs +1 -25
  215. package/dist/esm/core/crypto/index.d.mts +8 -6
  216. package/dist/esm/core/crypto/index.mjs +1 -173
  217. package/dist/esm/core/crypto/keyless.d.mts +13 -586
  218. package/dist/esm/core/crypto/keyless.mjs +1 -83
  219. package/dist/esm/core/crypto/multiEd25519.d.mts +14 -4
  220. package/dist/esm/core/crypto/multiEd25519.mjs +1 -50
  221. package/dist/esm/core/crypto/multiKey.d.mts +39 -3
  222. package/dist/esm/core/crypto/multiKey.mjs +1 -51
  223. package/dist/esm/core/crypto/poseidon.mjs +1 -15
  224. package/dist/esm/core/crypto/privateKey.d.mts +3 -1
  225. package/dist/esm/core/crypto/privateKey.mjs +1 -12
  226. package/dist/esm/core/crypto/proof.mjs +1 -20
  227. package/dist/esm/core/crypto/publicKey.d.mts +3 -1
  228. package/dist/esm/core/crypto/publicKey.mjs +1 -22
  229. package/dist/esm/core/crypto/secp256k1.d.mts +26 -2
  230. package/dist/esm/core/crypto/secp256k1.mjs +1 -29
  231. package/dist/esm/core/crypto/signature.mjs +1 -20
  232. package/dist/esm/core/crypto/singleKey.d.mts +27 -5
  233. package/dist/esm/core/crypto/singleKey.mjs +1 -48
  234. package/dist/esm/core/crypto/utils.mjs +1 -9
  235. package/dist/esm/core/hex.mjs +1 -12
  236. package/dist/esm/core/index.d.mts +8 -6
  237. package/dist/esm/core/index.mjs +1 -202
  238. package/dist/esm/errors/index.d.mts +10 -2
  239. package/dist/esm/errors/index.mjs +1 -25
  240. package/dist/esm/federatedKeyless-Qe_j8OqV.d.mts +875 -0
  241. package/dist/esm/index.d.mts +11 -10
  242. package/dist/esm/index.mjs +1 -798
  243. package/dist/esm/internal/abstraction.d.mts +9 -9
  244. package/dist/esm/internal/abstraction.mjs +1 -103
  245. package/dist/esm/internal/account.d.mts +7 -24
  246. package/dist/esm/internal/account.mjs +1 -142
  247. package/dist/esm/internal/ans.d.mts +13 -13
  248. package/dist/esm/internal/ans.mjs +1 -138
  249. package/dist/esm/internal/coin.d.mts +7 -7
  250. package/dist/esm/internal/coin.mjs +1 -99
  251. package/dist/esm/internal/digitalAsset.d.mts +2 -2
  252. package/dist/esm/internal/digitalAsset.mjs +1 -145
  253. package/dist/esm/internal/event.mjs +1 -62
  254. package/dist/esm/internal/experimental.d.mts +7 -7
  255. package/dist/esm/internal/experimental.mjs +1 -84
  256. package/dist/esm/internal/faucet.mjs +1 -57
  257. package/dist/esm/internal/fungibleAsset.d.mts +2 -2
  258. package/dist/esm/internal/fungibleAsset.mjs +1 -105
  259. package/dist/esm/internal/general.mjs +1 -43
  260. package/dist/esm/internal/keyless.d.mts +10 -20
  261. package/dist/esm/internal/keyless.mjs +1 -107
  262. package/dist/esm/internal/object.mjs +1 -58
  263. package/dist/esm/internal/staking.mjs +1 -60
  264. package/dist/esm/internal/table.mjs +1 -38
  265. package/dist/esm/internal/transaction.mjs +1 -57
  266. package/dist/esm/internal/transactionSubmission.d.mts +6 -6
  267. package/dist/esm/internal/transactionSubmission.mjs +1 -118
  268. package/dist/esm/internal/utils/index.mjs +1 -38
  269. package/dist/esm/internal/utils/utils.mjs +1 -37
  270. package/dist/esm/internal/view.d.mts +7 -7
  271. package/dist/esm/internal/view.mjs +1 -86
  272. package/dist/esm/{publicKey-BMtGNNLg.d.mts → publicKey-pDHBAZlT.d.mts} +27 -1
  273. package/dist/esm/transactions/authenticator/account.d.mts +3 -1
  274. package/dist/esm/transactions/authenticator/account.mjs +1 -67
  275. package/dist/esm/transactions/authenticator/index.d.mts +3 -1
  276. package/dist/esm/transactions/authenticator/index.mjs +1 -82
  277. package/dist/esm/transactions/authenticator/transaction.d.mts +4 -2
  278. package/dist/esm/transactions/authenticator/transaction.mjs +1 -66
  279. package/dist/esm/transactions/index.d.mts +4 -4
  280. package/dist/esm/transactions/index.mjs +1 -296
  281. package/dist/esm/transactions/instances/chainId.mjs +1 -11
  282. package/dist/esm/transactions/instances/identifier.mjs +1 -11
  283. package/dist/esm/transactions/instances/index.d.mts +4 -2
  284. package/dist/esm/transactions/instances/index.mjs +1 -114
  285. package/dist/esm/transactions/instances/moduleId.mjs +1 -55
  286. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -60
  287. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -65
  288. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +3 -1
  289. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -21
  290. package/dist/esm/transactions/instances/signedTransaction.d.mts +3 -1
  291. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -63
  292. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -60
  293. package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
  294. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -73
  295. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
  296. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -101
  297. package/dist/esm/transactions/management/asyncQueue.mjs +1 -9
  298. package/dist/esm/transactions/management/index.d.mts +2 -2
  299. package/dist/esm/transactions/management/index.mjs +1 -111
  300. package/dist/esm/transactions/management/transactionWorker.d.mts +3 -3
  301. package/dist/esm/transactions/management/transactionWorker.mjs +1 -107
  302. package/dist/esm/transactions/scriptComposer/index.d.mts +7 -7
  303. package/dist/esm/transactions/scriptComposer/index.mjs +1 -80
  304. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +8 -8
  305. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -92
  306. package/dist/esm/transactions/transactionBuilder/index.d.mts +8 -8
  307. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -166
  308. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +34 -23
  309. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -74
  310. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +7 -7
  311. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -75
  312. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +8 -8
  313. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -97
  314. package/dist/esm/transactions/typeTag/index.d.mts +16 -0
  315. package/dist/esm/transactions/typeTag/index.mjs +1 -91
  316. package/dist/esm/transactions/typeTag/parser.mjs +1 -60
  317. package/dist/esm/transactions/types.d.mts +5 -5
  318. package/dist/esm/transactions/types.mjs +1 -1
  319. package/dist/esm/types/abstraction.mjs +1 -7
  320. package/dist/esm/types/generated/operations.d.mts +10 -63
  321. package/dist/esm/types/generated/queries.d.mts +2 -10
  322. package/dist/esm/types/generated/queries.mjs +1 -69
  323. package/dist/esm/types/generated/types.d.mts +1054 -824
  324. package/dist/esm/types/generated/types.mjs +1 -774
  325. package/dist/esm/types/generated/types.mjs.map +1 -1
  326. package/dist/esm/types/index.d.mts +2 -2
  327. package/dist/esm/types/index.mjs +1 -82
  328. package/dist/esm/types/indexer.d.mts +2 -14
  329. package/dist/esm/types/indexer.mjs +1 -1
  330. package/dist/esm/types/keyless.d.mts +1 -1
  331. package/dist/esm/types/types.d.mts +3 -58
  332. package/dist/esm/types/types.mjs +1 -77
  333. package/dist/esm/utils/apiEndpoints.mjs +1 -21
  334. package/dist/esm/utils/const.d.mts +1 -1
  335. package/dist/esm/utils/const.mjs +1 -25
  336. package/dist/esm/utils/helpers.d.mts +2 -1
  337. package/dist/esm/utils/helpers.mjs +1 -37
  338. package/dist/esm/utils/index.d.mts +1 -1
  339. package/dist/esm/utils/index.mjs +1 -88
  340. package/dist/esm/utils/memoize.mjs +1 -9
  341. package/dist/esm/utils/normalizeBundle.mjs +1 -20
  342. package/dist/esm/version.d.mts +1 -1
  343. package/dist/esm/version.mjs +1 -7
  344. package/package.json +3 -3
  345. package/src/account/AbstractKeylessAccount.ts +33 -49
  346. package/src/account/MultiKeyAccount.ts +23 -16
  347. package/src/api/account.ts +2 -56
  348. package/src/cli/localNode.ts +6 -15
  349. package/src/core/crypto/abstraction.ts +6 -1
  350. package/src/core/crypto/ed25519.ts +19 -1
  351. package/src/core/crypto/ephemeral.ts +9 -0
  352. package/src/core/crypto/federatedKeyless.ts +40 -4
  353. package/src/core/crypto/index.ts +4 -3
  354. package/src/core/crypto/keyless.ts +577 -17
  355. package/src/core/crypto/multiEd25519.ts +11 -3
  356. package/src/core/crypto/multiKey.ts +74 -4
  357. package/src/core/crypto/publicKey.ts +28 -0
  358. package/src/core/crypto/secp256k1.ts +25 -2
  359. package/src/core/crypto/singleKey.ts +32 -7
  360. package/src/errors/index.ts +50 -0
  361. package/src/internal/account.ts +2 -395
  362. package/src/internal/keyless.ts +9 -17
  363. package/src/transactions/scriptComposer/index.ts +19 -6
  364. package/src/transactions/transactionBuilder/remoteAbi.ts +107 -35
  365. package/src/transactions/typeTag/index.ts +22 -0
  366. package/src/types/codegen.yaml +1 -1
  367. package/src/types/generated/operations.ts +8 -69
  368. package/src/types/generated/queries.ts +0 -111
  369. package/src/types/generated/types.ts +1159 -951
  370. package/src/types/indexer.ts +0 -16
  371. package/src/types/keyless.ts +1 -1
  372. package/src/types/types.ts +3 -62
  373. package/src/utils/const.ts +1 -1
  374. package/src/utils/helpers.ts +11 -0
  375. package/src/version.ts +1 -1
  376. package/dist/common/chunk-JMOQXLED.js +0 -1305
  377. package/dist/common/chunk-JMOQXLED.js.map +0 -1
  378. package/dist/esm/chunk-2FTF6J7F.mjs +0 -97
  379. package/dist/esm/chunk-2FTF6J7F.mjs.map +0 -1
  380. package/dist/esm/chunk-2HL7JEFC.mjs +0 -829
  381. package/dist/esm/chunk-2HL7JEFC.mjs.map +0 -1
  382. package/dist/esm/chunk-2WBJAKBO.mjs +0 -53
  383. package/dist/esm/chunk-2WBJAKBO.mjs.map +0 -1
  384. package/dist/esm/chunk-32UQAST6.mjs +0 -296
  385. package/dist/esm/chunk-32UQAST6.mjs.map +0 -1
  386. package/dist/esm/chunk-3DAVHDK4.mjs +0 -195
  387. package/dist/esm/chunk-3DAVHDK4.mjs.map +0 -1
  388. package/dist/esm/chunk-3IWV2Q3K.mjs +0 -12
  389. package/dist/esm/chunk-3TUV6YMI.mjs +0 -305
  390. package/dist/esm/chunk-3TUV6YMI.mjs.map +0 -1
  391. package/dist/esm/chunk-4NMDYPUD.mjs +0 -1
  392. package/dist/esm/chunk-56UCIGTO.mjs +0 -21
  393. package/dist/esm/chunk-56UCIGTO.mjs.map +0 -1
  394. package/dist/esm/chunk-5ORUQZAR.mjs +0 -100
  395. package/dist/esm/chunk-5ORUQZAR.mjs.map +0 -1
  396. package/dist/esm/chunk-5QHMFYVL.mjs +0 -42
  397. package/dist/esm/chunk-5QHMFYVL.mjs.map +0 -1
  398. package/dist/esm/chunk-62LC4PPC.mjs +0 -128
  399. package/dist/esm/chunk-62LC4PPC.mjs.map +0 -1
  400. package/dist/esm/chunk-6ASWESA2.mjs +0 -77
  401. package/dist/esm/chunk-6I37A76G.mjs +0 -29
  402. package/dist/esm/chunk-6OFCIXWS.mjs +0 -379
  403. package/dist/esm/chunk-6OFCIXWS.mjs.map +0 -1
  404. package/dist/esm/chunk-6SNGKTWE.mjs +0 -91
  405. package/dist/esm/chunk-6SNGKTWE.mjs.map +0 -1
  406. package/dist/esm/chunk-6T3V5LXK.mjs +0 -119
  407. package/dist/esm/chunk-7F32C225.mjs +0 -219
  408. package/dist/esm/chunk-7F32C225.mjs.map +0 -1
  409. package/dist/esm/chunk-7WW735TU.mjs +0 -276
  410. package/dist/esm/chunk-7WW735TU.mjs.map +0 -1
  411. package/dist/esm/chunk-A33OBGVN.mjs +0 -1014
  412. package/dist/esm/chunk-A33OBGVN.mjs.map +0 -1
  413. package/dist/esm/chunk-A7LYGPFL.mjs +0 -208
  414. package/dist/esm/chunk-A7LYGPFL.mjs.map +0 -1
  415. package/dist/esm/chunk-AGKEC2IM.mjs +0 -250
  416. package/dist/esm/chunk-AGKEC2IM.mjs.map +0 -1
  417. package/dist/esm/chunk-AKXCFBYF.mjs +0 -49
  418. package/dist/esm/chunk-AKXCFBYF.mjs.map +0 -1
  419. package/dist/esm/chunk-APM7OSLS.mjs +0 -122
  420. package/dist/esm/chunk-BDM6FBUO.mjs +0 -198
  421. package/dist/esm/chunk-BEYIOC2H.mjs +0 -34
  422. package/dist/esm/chunk-BMM72IIP.mjs +0 -250
  423. package/dist/esm/chunk-BMM72IIP.mjs.map +0 -1
  424. package/dist/esm/chunk-BSCOVLWS.mjs +0 -1
  425. package/dist/esm/chunk-BSCOVLWS.mjs.map +0 -1
  426. package/dist/esm/chunk-BU43ZFDJ.mjs +0 -281
  427. package/dist/esm/chunk-C7EEG6SW.mjs +0 -689
  428. package/dist/esm/chunk-C7EEG6SW.mjs.map +0 -1
  429. package/dist/esm/chunk-C7T6GW5P.mjs +0 -376
  430. package/dist/esm/chunk-CXLXUSCG.mjs +0 -417
  431. package/dist/esm/chunk-D4MW64RH.mjs +0 -188
  432. package/dist/esm/chunk-D4MW64RH.mjs.map +0 -1
  433. package/dist/esm/chunk-D6RXVCE3.mjs +0 -86
  434. package/dist/esm/chunk-D6RXVCE3.mjs.map +0 -1
  435. package/dist/esm/chunk-DDZGHA66.mjs +0 -495
  436. package/dist/esm/chunk-DDZGHA66.mjs.map +0 -1
  437. package/dist/esm/chunk-DGDZNHUJ.mjs +0 -72
  438. package/dist/esm/chunk-DGDZNHUJ.mjs.map +0 -1
  439. package/dist/esm/chunk-DMFRIING.mjs +0 -286
  440. package/dist/esm/chunk-DMFRIING.mjs.map +0 -1
  441. package/dist/esm/chunk-E7FWVXGX.mjs +0 -1
  442. package/dist/esm/chunk-E7FWVXGX.mjs.map +0 -1
  443. package/dist/esm/chunk-EBFKT35C.mjs +0 -66
  444. package/dist/esm/chunk-EBFKT35C.mjs.map +0 -1
  445. package/dist/esm/chunk-ECTX2FGD.mjs +0 -355
  446. package/dist/esm/chunk-ECTX2FGD.mjs.map +0 -1
  447. package/dist/esm/chunk-EPTUAWRA.mjs +0 -895
  448. package/dist/esm/chunk-EPTUAWRA.mjs.map +0 -1
  449. package/dist/esm/chunk-F4VI7BNX.mjs +0 -58
  450. package/dist/esm/chunk-F4VI7BNX.mjs.map +0 -1
  451. package/dist/esm/chunk-F7W7KS5C.mjs +0 -52
  452. package/dist/esm/chunk-FDMI4BUL.mjs +0 -611
  453. package/dist/esm/chunk-FDMI4BUL.mjs.map +0 -1
  454. package/dist/esm/chunk-FMNMYKYH.mjs +0 -71
  455. package/dist/esm/chunk-FMNMYKYH.mjs.map +0 -1
  456. package/dist/esm/chunk-FRLS4GRM.mjs +0 -62
  457. package/dist/esm/chunk-G34CJDST.mjs +0 -139
  458. package/dist/esm/chunk-G4NBRMZ2.mjs +0 -7
  459. package/dist/esm/chunk-G6R77JKO.mjs +0 -121
  460. package/dist/esm/chunk-G6R77JKO.mjs.map +0 -1
  461. package/dist/esm/chunk-G7BB6K4B.mjs +0 -167
  462. package/dist/esm/chunk-G7BB6K4B.mjs.map +0 -1
  463. package/dist/esm/chunk-GCQK2S5Q.mjs +0 -43
  464. package/dist/esm/chunk-GCQK2S5Q.mjs.map +0 -1
  465. package/dist/esm/chunk-GFPEB22G.mjs +0 -1
  466. package/dist/esm/chunk-GFPEB22G.mjs.map +0 -1
  467. package/dist/esm/chunk-GUA5YTIK.mjs +0 -362
  468. package/dist/esm/chunk-HBXBODME.mjs +0 -84
  469. package/dist/esm/chunk-HBXBODME.mjs.map +0 -1
  470. package/dist/esm/chunk-HEZ2ZYZA.mjs +0 -1
  471. package/dist/esm/chunk-HEZ2ZYZA.mjs.map +0 -1
  472. package/dist/esm/chunk-HKQY5GXT.mjs +0 -231
  473. package/dist/esm/chunk-HKQY5GXT.mjs.map +0 -1
  474. package/dist/esm/chunk-HL337SEM.mjs +0 -219
  475. package/dist/esm/chunk-HL337SEM.mjs.map +0 -1
  476. package/dist/esm/chunk-HQDHSKVS.mjs +0 -74
  477. package/dist/esm/chunk-HQDHSKVS.mjs.map +0 -1
  478. package/dist/esm/chunk-I25AX6PQ.mjs +0 -7
  479. package/dist/esm/chunk-I5G7XFGT.mjs +0 -86
  480. package/dist/esm/chunk-I5G7XFGT.mjs.map +0 -1
  481. package/dist/esm/chunk-IHYTP2EW.mjs +0 -1
  482. package/dist/esm/chunk-IHYTP2EW.mjs.map +0 -1
  483. package/dist/esm/chunk-IJ7XCPP3.mjs +0 -480
  484. package/dist/esm/chunk-IJ7XCPP3.mjs.map +0 -1
  485. package/dist/esm/chunk-ILTEOGFF.mjs +0 -407
  486. package/dist/esm/chunk-ILTEOGFF.mjs.map +0 -1
  487. package/dist/esm/chunk-IP7GATDH.mjs +0 -322
  488. package/dist/esm/chunk-IP7GATDH.mjs.map +0 -1
  489. package/dist/esm/chunk-IPUAVRGL.mjs +0 -248
  490. package/dist/esm/chunk-IPUAVRGL.mjs.map +0 -1
  491. package/dist/esm/chunk-IQVHXOD3.mjs +0 -192
  492. package/dist/esm/chunk-IQVHXOD3.mjs.map +0 -1
  493. package/dist/esm/chunk-JAZJE3OR.mjs +0 -45
  494. package/dist/esm/chunk-JAZJE3OR.mjs.map +0 -1
  495. package/dist/esm/chunk-JEVGHYEP.mjs +0 -162
  496. package/dist/esm/chunk-JEVGHYEP.mjs.map +0 -1
  497. package/dist/esm/chunk-JFMFZ2IL.mjs +0 -147
  498. package/dist/esm/chunk-JFMFZ2IL.mjs.map +0 -1
  499. package/dist/esm/chunk-JQIRRM7G.mjs +0 -195
  500. package/dist/esm/chunk-JQIRRM7G.mjs.map +0 -1
  501. package/dist/esm/chunk-JXCZTOYC.mjs +0 -1
  502. package/dist/esm/chunk-JXCZTOYC.mjs.map +0 -1
  503. package/dist/esm/chunk-K5OCDM3W.mjs +0 -207
  504. package/dist/esm/chunk-K5OCDM3W.mjs.map +0 -1
  505. package/dist/esm/chunk-KLUO6XPE.mjs +0 -33
  506. package/dist/esm/chunk-KSK3XIGF.mjs +0 -502
  507. package/dist/esm/chunk-KW64NP2F.mjs +0 -71
  508. package/dist/esm/chunk-KW64NP2F.mjs.map +0 -1
  509. package/dist/esm/chunk-LJRNGZMY.mjs +0 -10
  510. package/dist/esm/chunk-MFFBZ43D.mjs +0 -45
  511. package/dist/esm/chunk-MWXBQ6HR.mjs +0 -15
  512. package/dist/esm/chunk-MYEYZ7PF.mjs +0 -46
  513. package/dist/esm/chunk-NUT2VOX2.mjs +0 -317
  514. package/dist/esm/chunk-OFUNBTK4.mjs +0 -169
  515. package/dist/esm/chunk-ORCQEMJL.mjs +0 -51
  516. package/dist/esm/chunk-ORCQEMJL.mjs.map +0 -1
  517. package/dist/esm/chunk-PGFEUN7K.mjs +0 -129
  518. package/dist/esm/chunk-PGFEUN7K.mjs.map +0 -1
  519. package/dist/esm/chunk-PKUXOBIV.mjs +0 -138
  520. package/dist/esm/chunk-PT2QHUB6.mjs +0 -96
  521. package/dist/esm/chunk-QJ6CGH7N.mjs +0 -71
  522. package/dist/esm/chunk-QPT4BSAB.mjs +0 -20
  523. package/dist/esm/chunk-QSYWLSSN.mjs +0 -216
  524. package/dist/esm/chunk-QYNYDQE3.mjs +0 -288
  525. package/dist/esm/chunk-QYNYDQE3.mjs.map +0 -1
  526. package/dist/esm/chunk-R45SPK6Q.mjs +0 -61
  527. package/dist/esm/chunk-R45SPK6Q.mjs.map +0 -1
  528. package/dist/esm/chunk-R4JTQQBX.mjs +0 -37
  529. package/dist/esm/chunk-R4JTQQBX.mjs.map +0 -1
  530. package/dist/esm/chunk-RCXGTN36.mjs +0 -58
  531. package/dist/esm/chunk-RCXGTN36.mjs.map +0 -1
  532. package/dist/esm/chunk-RMMOF53Q.mjs +0 -1
  533. package/dist/esm/chunk-RMMOF53Q.mjs.map +0 -1
  534. package/dist/esm/chunk-RQS33JAS.mjs +0 -77
  535. package/dist/esm/chunk-RQS33JAS.mjs.map +0 -1
  536. package/dist/esm/chunk-SAWN7RJP.mjs +0 -15
  537. package/dist/esm/chunk-SAWN7RJP.mjs.map +0 -1
  538. package/dist/esm/chunk-SBB4YEPT.mjs +0 -17
  539. package/dist/esm/chunk-SFLQPB72.mjs +0 -63
  540. package/dist/esm/chunk-SPI2HO3E.mjs +0 -177
  541. package/dist/esm/chunk-SPI2HO3E.mjs.map +0 -1
  542. package/dist/esm/chunk-SPVJXZL5.mjs +0 -865
  543. package/dist/esm/chunk-SPVJXZL5.mjs.map +0 -1
  544. package/dist/esm/chunk-SQNS4SFV.mjs +0 -232
  545. package/dist/esm/chunk-SRXIHVZE.mjs +0 -50
  546. package/dist/esm/chunk-SRXIHVZE.mjs.map +0 -1
  547. package/dist/esm/chunk-T4BFWV46.mjs +0 -63
  548. package/dist/esm/chunk-T4BFWV46.mjs.map +0 -1
  549. package/dist/esm/chunk-T573PCIR.mjs +0 -700
  550. package/dist/esm/chunk-T573PCIR.mjs.map +0 -1
  551. package/dist/esm/chunk-TDLL7QX5.mjs +0 -239
  552. package/dist/esm/chunk-TDLL7QX5.mjs.map +0 -1
  553. package/dist/esm/chunk-TFW6N66T.mjs +0 -415
  554. package/dist/esm/chunk-TFW6N66T.mjs.map +0 -1
  555. package/dist/esm/chunk-THWEBWUC.mjs +0 -20
  556. package/dist/esm/chunk-TJDF4CXI.mjs +0 -513
  557. package/dist/esm/chunk-TJDF4CXI.mjs.map +0 -1
  558. package/dist/esm/chunk-TL4Z4KHK.mjs +0 -70
  559. package/dist/esm/chunk-TL4Z4KHK.mjs.map +0 -1
  560. package/dist/esm/chunk-UGFIWCJQ.mjs +0 -130
  561. package/dist/esm/chunk-UGFIWCJQ.mjs.map +0 -1
  562. package/dist/esm/chunk-UGKZQUGE.mjs +0 -367
  563. package/dist/esm/chunk-UGKZQUGE.mjs.map +0 -1
  564. package/dist/esm/chunk-UIRAXHDH.mjs +0 -1
  565. package/dist/esm/chunk-UIRAXHDH.mjs.map +0 -1
  566. package/dist/esm/chunk-UK7SPHIE.mjs +0 -420
  567. package/dist/esm/chunk-UK7SPHIE.mjs.map +0 -1
  568. package/dist/esm/chunk-UOHCJOXI.mjs +0 -150
  569. package/dist/esm/chunk-UOHCJOXI.mjs.map +0 -1
  570. package/dist/esm/chunk-WHSS6I7T.mjs +0 -90
  571. package/dist/esm/chunk-WHSS6I7T.mjs.map +0 -1
  572. package/dist/esm/chunk-WLTQHGIJ.mjs +0 -177
  573. package/dist/esm/chunk-WUM247HF.mjs +0 -125
  574. package/dist/esm/chunk-WUM247HF.mjs.map +0 -1
  575. package/dist/esm/chunk-WXQUBQK4.mjs +0 -19
  576. package/dist/esm/chunk-X4N5BN3S.mjs +0 -40
  577. package/dist/esm/chunk-X4N5BN3S.mjs.map +0 -1
  578. package/dist/esm/chunk-XIBOO3WF.mjs +0 -168
  579. package/dist/esm/chunk-XIBOO3WF.mjs.map +0 -1
  580. package/dist/esm/chunk-XQFUKBY7.mjs +0 -136
  581. package/dist/esm/chunk-XX6C2QGI.mjs +0 -160
  582. package/dist/esm/chunk-XX6C2QGI.mjs.map +0 -1
  583. package/dist/esm/chunk-Y3ENAKRC.mjs +0 -73
  584. package/dist/esm/chunk-Y3M32DIB.mjs +0 -79
  585. package/dist/esm/chunk-Y3M32DIB.mjs.map +0 -1
  586. package/dist/esm/chunk-YK66QBML.mjs +0 -89
  587. package/dist/esm/chunk-YT7V6AVJ.mjs +0 -66
  588. package/dist/esm/chunk-YU65LNIC.mjs +0 -72
  589. package/dist/esm/chunk-ZRBUAZZD.mjs +0 -36
  590. package/dist/esm/chunk-ZRBUAZZD.mjs.map +0 -1
  591. package/dist/esm/chunk-ZWCTF3NQ.mjs +0 -25
  592. package/src/internal/queries/getAccountAddressForAuthKey.graphql +0 -8
  593. package/src/internal/queries/getAuthKeysForPublicKey.graphql +0 -9
  594. package/src/internal/queries/getMultiKeyForAuthKey.graphql +0 -9
  595. package/src/internal/queries/getSignatures.graphql +0 -13
  596. /package/dist/esm/{chunk-4NMDYPUD.mjs.map → chunk-KDMSOCZY.mjs.map} +0 -0
@@ -1,420 +0,0 @@
1
- import {
2
- view
3
- } from "./chunk-ORCQEMJL.mjs";
4
- import {
5
- generateTransaction
6
- } from "./chunk-HKQY5GXT.mjs";
7
- import {
8
- queryIndexer
9
- } from "./chunk-YK66QBML.mjs";
10
- import {
11
- GetNames
12
- } from "./chunk-EPTUAWRA.mjs";
13
- import {
14
- AccountAddress
15
- } from "./chunk-CXLXUSCG.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) return false;
25
- if (fragment.length < 3) return false;
26
- if (fragment.length > 63) return false;
27
- if (!/^[a-z\d][a-z\d-]{1,61}[a-z\d]$/.test(fragment)) return false;
28
- return true;
29
- }
30
- function isValidANSName(name) {
31
- const [first, second, ...rest] = name.replace(/\.apt$/, "").split(".");
32
- if (rest.length > 0) {
33
- throw new Error(`${name} is invalid. A name can only have two parts, a domain and a subdomain separated by a "."`);
34
- }
35
- if (!isValidANSSegment(first)) {
36
- throw new Error(`${first} is not valid. ${VALIDATION_RULES_DESCRIPTION}`);
37
- }
38
- if (second && !isValidANSSegment(second)) {
39
- throw new Error(`${second} is not valid. ${VALIDATION_RULES_DESCRIPTION}`);
40
- }
41
- return {
42
- domainName: second || first,
43
- subdomainName: second ? first : void 0
44
- };
45
- }
46
- var SubdomainExpirationPolicy = /* @__PURE__ */ ((SubdomainExpirationPolicy2) => {
47
- SubdomainExpirationPolicy2[SubdomainExpirationPolicy2["Independent"] = 0] = "Independent";
48
- SubdomainExpirationPolicy2[SubdomainExpirationPolicy2["FollowsDomain"] = 1] = "FollowsDomain";
49
- return SubdomainExpirationPolicy2;
50
- })(SubdomainExpirationPolicy || {});
51
- function isActiveANSName(name) {
52
- if (!name) return false;
53
- const isTLDExpired = new Date(name.domain_expiration_timestamp).getTime() < Date.now();
54
- const isExpired = new Date(name.expiration_timestamp).getTime() < Date.now();
55
- if (name.subdomain && isTLDExpired) return false;
56
- if (name.subdomain && name.subdomain_expiration_policy === 1 /* FollowsDomain */) return true;
57
- return !isExpired;
58
- }
59
- var LOCAL_ANS_ACCOUNT_PK = "0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221";
60
- var LOCAL_ANS_ACCOUNT_ADDRESS = "0x585fc9f0f0c54183b039ffc770ca282ebd87307916c215a3e692f2f8e4305e82";
61
- var NetworkToAnsContract = {
62
- ["testnet" /* TESTNET */]: "0x5f8fd2347449685cf41d4db97926ec3a096eaf381332be4f1318ad4d16a8497c",
63
- ["mainnet" /* MAINNET */]: "0x867ed1f6bf916171b1de3ee92849b8978b7d1b9e0a8cc982a3d19d535dfd9c0c",
64
- ["local" /* LOCAL */]: LOCAL_ANS_ACCOUNT_ADDRESS,
65
- ["custom" /* CUSTOM */]: null,
66
- ["devnet" /* DEVNET */]: null
67
- };
68
- function getRouterAddress(aptosConfig) {
69
- const address = NetworkToAnsContract[aptosConfig.network];
70
- if (!address) throw new Error(`The ANS contract is not deployed to ${aptosConfig.network}`);
71
- return address;
72
- }
73
- var unwrapOption = (option) => {
74
- if (!!option && typeof option === "object" && "vec" in option && Array.isArray(option.vec)) {
75
- return option.vec[0];
76
- }
77
- return void 0;
78
- };
79
- async function getOwnerAddress(args) {
80
- const { aptosConfig, name } = args;
81
- const routerAddress = getRouterAddress(aptosConfig);
82
- const { domainName, subdomainName } = isValidANSName(name);
83
- const res = await view({
84
- aptosConfig,
85
- payload: {
86
- function: `${routerAddress}::router::get_owner_addr`,
87
- functionArguments: [domainName, subdomainName]
88
- }
89
- });
90
- const owner = unwrapOption(res[0]);
91
- return owner ? AccountAddress.from(owner) : void 0;
92
- }
93
- async function registerName(args) {
94
- const { aptosConfig, expiration, name, sender, targetAddress, toAddress, options, transferable } = args;
95
- const routerAddress = getRouterAddress(aptosConfig);
96
- const { domainName, subdomainName } = isValidANSName(name);
97
- const hasSubdomainPolicy = expiration.policy === "subdomain:independent" || expiration.policy === "subdomain:follow-domain";
98
- if (subdomainName && !hasSubdomainPolicy) {
99
- throw new Error(
100
- "Subdomains must have an expiration policy of either 'subdomain:independent' or 'subdomain:follow-domain'"
101
- );
102
- }
103
- if (hasSubdomainPolicy && !subdomainName) {
104
- throw new Error(`Policy is set to ${expiration.policy} but no subdomain was provided`);
105
- }
106
- if (expiration.policy === "domain") {
107
- const years = expiration.years ?? 1;
108
- if (years !== 1) {
109
- throw new Error("For now, names can only be registered for 1 year at a time");
110
- }
111
- const secondsInYear = 31536e3;
112
- const registrationDuration = years * secondsInYear;
113
- const transaction2 = await generateTransaction({
114
- aptosConfig,
115
- sender: sender.accountAddress.toString(),
116
- data: {
117
- function: `${routerAddress}::router::register_domain`,
118
- functionArguments: [domainName, registrationDuration, targetAddress, toAddress]
119
- },
120
- options
121
- });
122
- return transaction2;
123
- }
124
- if (!subdomainName) {
125
- throw new Error(`${expiration.policy} requires a subdomain to be provided.`);
126
- }
127
- const tldExpiration = await getExpiration({ aptosConfig, name: domainName });
128
- if (!tldExpiration) {
129
- throw new Error("The domain does not exist");
130
- }
131
- const expirationDateInMillisecondsSinceEpoch = expiration.policy === "subdomain:independent" ? expiration.expirationDate : tldExpiration;
132
- if (expirationDateInMillisecondsSinceEpoch > tldExpiration) {
133
- throw new Error("The subdomain expiration time cannot be greater than the domain expiration time");
134
- }
135
- const transaction = await generateTransaction({
136
- aptosConfig,
137
- sender: sender.accountAddress.toString(),
138
- data: {
139
- function: `${routerAddress}::router::register_subdomain`,
140
- functionArguments: [
141
- domainName,
142
- subdomainName,
143
- Math.round(expirationDateInMillisecondsSinceEpoch / 1e3),
144
- expiration.policy === "subdomain:follow-domain" ? 1 : 0,
145
- !!transferable,
146
- targetAddress,
147
- toAddress
148
- ]
149
- },
150
- options
151
- });
152
- return transaction;
153
- }
154
- async function getExpiration(args) {
155
- const { aptosConfig, name } = args;
156
- const routerAddress = getRouterAddress(aptosConfig);
157
- const { domainName, subdomainName } = isValidANSName(name);
158
- try {
159
- const res = await view({
160
- aptosConfig,
161
- payload: {
162
- function: `${routerAddress}::router::get_expiration`,
163
- functionArguments: [domainName, subdomainName]
164
- }
165
- });
166
- return Number(res[0]) * 1e3;
167
- } catch (e) {
168
- return void 0;
169
- }
170
- }
171
- async function getPrimaryName(args) {
172
- const { aptosConfig, address } = args;
173
- const routerAddress = getRouterAddress(aptosConfig);
174
- const res = await view({
175
- aptosConfig,
176
- payload: {
177
- function: `${routerAddress}::router::get_primary_name`,
178
- functionArguments: [AccountAddress.from(address).toString()]
179
- }
180
- });
181
- const domainName = unwrapOption(res[1]);
182
- const subdomainName = unwrapOption(res[0]);
183
- if (!domainName) return void 0;
184
- return [subdomainName, domainName].filter(Boolean).join(".");
185
- }
186
- async function setPrimaryName(args) {
187
- const { aptosConfig, sender, name, options } = args;
188
- const routerAddress = getRouterAddress(aptosConfig);
189
- if (!name) {
190
- const transaction2 = await generateTransaction({
191
- aptosConfig,
192
- sender: sender.accountAddress.toString(),
193
- data: {
194
- function: `${routerAddress}::router::clear_primary_name`,
195
- functionArguments: []
196
- },
197
- options
198
- });
199
- return transaction2;
200
- }
201
- const { domainName, subdomainName } = isValidANSName(name);
202
- const transaction = await generateTransaction({
203
- aptosConfig,
204
- sender: sender.accountAddress.toString(),
205
- data: {
206
- function: `${routerAddress}::router::set_primary_name`,
207
- functionArguments: [domainName, subdomainName]
208
- },
209
- options
210
- });
211
- return transaction;
212
- }
213
- async function getTargetAddress(args) {
214
- const { aptosConfig, name } = args;
215
- const routerAddress = getRouterAddress(aptosConfig);
216
- const { domainName, subdomainName } = isValidANSName(name);
217
- const res = await view({
218
- aptosConfig,
219
- payload: {
220
- function: `${routerAddress}::router::get_target_addr`,
221
- functionArguments: [domainName, subdomainName]
222
- }
223
- });
224
- const target = unwrapOption(res[0]);
225
- return target ? AccountAddress.from(target) : void 0;
226
- }
227
- async function setTargetAddress(args) {
228
- const { aptosConfig, sender, name, address, options } = args;
229
- const routerAddress = getRouterAddress(aptosConfig);
230
- const { domainName, subdomainName } = isValidANSName(name);
231
- const transaction = await generateTransaction({
232
- aptosConfig,
233
- sender: sender.accountAddress.toString(),
234
- data: {
235
- function: `${routerAddress}::router::set_target_addr`,
236
- functionArguments: [domainName, subdomainName, address]
237
- },
238
- options
239
- });
240
- return transaction;
241
- }
242
- async function getName(args) {
243
- const { aptosConfig, name } = args;
244
- const { domainName, subdomainName = "" } = isValidANSName(name);
245
- const where = {
246
- domain: { _eq: domainName },
247
- subdomain: { _eq: subdomainName }
248
- };
249
- const data = await queryIndexer({
250
- aptosConfig,
251
- query: {
252
- query: GetNames,
253
- variables: {
254
- where_condition: where,
255
- limit: 1
256
- }
257
- },
258
- originMethod: "getName"
259
- });
260
- let res = data.current_aptos_names[0];
261
- if (res) {
262
- res = sanitizeANSName(res);
263
- }
264
- return isActiveANSName(res) ? res : void 0;
265
- }
266
- async function getAccountNames(args) {
267
- const { aptosConfig, options, accountAddress } = args;
268
- const expirationDate = await getANSExpirationDate({ aptosConfig });
269
- const data = await queryIndexer({
270
- aptosConfig,
271
- originMethod: "getAccountNames",
272
- query: {
273
- query: GetNames,
274
- variables: {
275
- limit: options?.limit,
276
- offset: options?.offset,
277
- order_by: options?.orderBy,
278
- where_condition: {
279
- ...args.options?.where ?? {},
280
- owner_address: { _eq: accountAddress.toString() },
281
- expiration_timestamp: { _gte: expirationDate }
282
- }
283
- }
284
- }
285
- });
286
- return data.current_aptos_names.map(sanitizeANSName);
287
- }
288
- async function getAccountDomains(args) {
289
- const { aptosConfig, options, accountAddress } = args;
290
- const expirationDate = await getANSExpirationDate({ aptosConfig });
291
- const data = await queryIndexer({
292
- aptosConfig,
293
- originMethod: "getAccountDomains",
294
- query: {
295
- query: GetNames,
296
- variables: {
297
- limit: options?.limit,
298
- offset: options?.offset,
299
- order_by: options?.orderBy,
300
- where_condition: {
301
- ...args.options?.where ?? {},
302
- owner_address: { _eq: accountAddress.toString() },
303
- expiration_timestamp: { _gte: expirationDate },
304
- subdomain: { _eq: "" }
305
- }
306
- }
307
- }
308
- });
309
- return data.current_aptos_names.map(sanitizeANSName);
310
- }
311
- async function getAccountSubdomains(args) {
312
- const { aptosConfig, options, accountAddress } = args;
313
- const expirationDate = await getANSExpirationDate({ aptosConfig });
314
- const data = await queryIndexer({
315
- aptosConfig,
316
- originMethod: "getAccountSubdomains",
317
- query: {
318
- query: GetNames,
319
- variables: {
320
- limit: options?.limit,
321
- offset: options?.offset,
322
- order_by: options?.orderBy,
323
- where_condition: {
324
- ...args.options?.where ?? {},
325
- owner_address: { _eq: accountAddress.toString() },
326
- expiration_timestamp: { _gte: expirationDate },
327
- subdomain: { _neq: "" }
328
- }
329
- }
330
- }
331
- });
332
- return data.current_aptos_names.map(sanitizeANSName);
333
- }
334
- async function getDomainSubdomains(args) {
335
- const { aptosConfig, options, domain } = args;
336
- const data = await queryIndexer({
337
- aptosConfig,
338
- originMethod: "getDomainSubdomains",
339
- query: {
340
- query: GetNames,
341
- variables: {
342
- limit: options?.limit,
343
- offset: options?.offset,
344
- order_by: options?.orderBy,
345
- where_condition: {
346
- ...args.options?.where ?? {},
347
- domain: { _eq: domain },
348
- subdomain: { _neq: "" }
349
- }
350
- }
351
- }
352
- });
353
- return data.current_aptos_names.map(sanitizeANSName).filter(isActiveANSName);
354
- }
355
- async function getANSExpirationDate(args) {
356
- const { aptosConfig } = args;
357
- const routerAddress = getRouterAddress(aptosConfig);
358
- const [gracePeriodInSeconds] = await view({
359
- aptosConfig,
360
- payload: {
361
- function: `${routerAddress}::config::reregistration_grace_sec`,
362
- functionArguments: []
363
- }
364
- });
365
- const gracePeriodInDays = gracePeriodInSeconds / 60 / 60 / 24;
366
- const now = () => /* @__PURE__ */ new Date();
367
- return new Date(now().setDate(now().getDate() - gracePeriodInDays)).toISOString();
368
- }
369
- async function renewDomain(args) {
370
- const { aptosConfig, sender, name, years = 1, options } = args;
371
- const routerAddress = getRouterAddress(aptosConfig);
372
- const renewalDuration = years * 31536e3;
373
- const { domainName, subdomainName } = isValidANSName(name);
374
- if (subdomainName) {
375
- throw new Error("Subdomains cannot be renewed");
376
- }
377
- if (years !== 1) {
378
- throw new Error("Currently, only 1 year renewals are supported");
379
- }
380
- const transaction = await generateTransaction({
381
- aptosConfig,
382
- sender: sender.accountAddress.toString(),
383
- data: {
384
- function: `${routerAddress}::router::renew_domain`,
385
- functionArguments: [domainName, renewalDuration]
386
- },
387
- options
388
- });
389
- return transaction;
390
- }
391
- function sanitizeANSName(name) {
392
- return {
393
- ...name,
394
- expiration_timestamp: new Date(name.expiration_timestamp).getTime()
395
- };
396
- }
397
-
398
- export {
399
- VALIDATION_RULES_DESCRIPTION,
400
- isValidANSSegment,
401
- isValidANSName,
402
- SubdomainExpirationPolicy,
403
- isActiveANSName,
404
- LOCAL_ANS_ACCOUNT_PK,
405
- LOCAL_ANS_ACCOUNT_ADDRESS,
406
- getOwnerAddress,
407
- registerName,
408
- getExpiration,
409
- getPrimaryName,
410
- setPrimaryName,
411
- getTargetAddress,
412
- setTargetAddress,
413
- getName,
414
- getAccountNames,
415
- getAccountDomains,
416
- getAccountSubdomains,
417
- getDomainSubdomains,
418
- renewDomain
419
- };
420
- //# sourceMappingURL=chunk-UK7SPHIE.mjs.map
@@ -1 +0,0 @@
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 * @group Implementation\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 * Validate if a given fragment is a valid ANS segment.\n * This function checks the length and character constraints of the fragment to ensure it meets the ANS standards.\n *\n * @param fragment - A fragment of a name, either the domain or subdomain.\n * @returns A boolean indicating if the fragment is a valid fragment.\n * @group Implementation\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, which can include or exclude the .apt suffix.\n * @group Implementation\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\n/**\n * Policy for determining how subdomains expire in relation to their parent domain.\n * @group Implementation\n */\nexport enum SubdomainExpirationPolicy {\n Independent = 0,\n FollowsDomain = 1,\n}\n\n/**\n * Determine if a given ANS name is considered active based on its expiration dates.\n * Domains are active if their expiration date is in the future, while subdomains may\n * follow their parent's expiration policy (1) or expire independently (0).\n * If the subdomain is expiring independently, it can expire before their parent, but not after.\n *\n * @param name - An ANS name returned from one of the functions of the SDK.\n * @returns A boolean indicating whether the contract considers the name active or not.\n * @group Implementation\n */\nexport function isActiveANSName(name: GetANSNameResponse[0]): boolean {\n if (!name) return false;\n\n const isTLDExpired = new Date(name.domain_expiration_timestamp).getTime() < Date.now();\n const isExpired = new Date(name.expiration_timestamp).getTime() < Date.now();\n\n // If we are a subdomain, if our parent is expired we are always expired\n if (name.subdomain && isTLDExpired) return false;\n\n // If we are a subdomain and our expiration policy is to follow the domain, we\n // are active (since we know our parent is not expired by this point)\n if (name.subdomain && name.subdomain_expiration_policy === SubdomainExpirationPolicy.FollowsDomain) return true;\n\n // At this point, we are either a TLD or a subdomain with an independent\n // expiration policy, we are active as long as we the expiration timestamp\n return !isExpired;\n}\n\nexport const LOCAL_ANS_ACCOUNT_PK =\n process.env.ANS_TEST_ACCOUNT_PRIVATE_KEY ??\n \"ed25519-priv-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\n/**\n * Retrieves the address of the ANS contract based on the specified Aptos network configuration.\n *\n * @param aptosConfig - The configuration object for the Aptos network.\n * @param aptosConfig.network - The network for which to retrieve the ANS contract address.\n *\n * @throws Throws an error if the ANS contract is not deployed to the specified network.\n * @group Implementation\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\n/**\n * Retrieve the owner address of a specified domain or subdomain.\n *\n * @param args - The arguments for retrieving the owner address.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.name - The name of the domain or subdomain to query.\n * @returns The account address of the owner, or undefined if not found.\n * @group Implementation\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\n/**\n * Parameters for registering a name in the Aptos network.\n *\n * @param aptosConfig - Configuration settings for the Aptos network.\n * @param sender - The account initiating the name registration.\n * @param name - The name to be registered.\n * @param expiration - The expiration policy for the name registration.\n * @group Implementation\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\n/**\n * Registers a domain or subdomain with the specified parameters. This function ensures that the provided names and expiration\n * policies are valid before proceeding with the registration process.\n *\n * @param args - The parameters required for registering a name.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param args.expiration - The expiration details for the registration.\n * @param args.name - The name to be registered, which can be a domain or subdomain.\n * @param args.sender - The account details of the sender initiating the registration.\n * @param args.targetAddress - The target address for the registration.\n * @param args.toAddress - The address to which the registration is associated.\n * @param args.options - Additional options for the registration process.\n * @param args.transferable - Indicates whether the registered name is transferable.\n *\n * @throws Error if the provided expiration policy is invalid for subdomains.\n * @throws Error if the domain does not exist.\n * @throws Error if the subdomain expiration time exceeds the domain expiration time.\n *\n * @returns A transaction object representing the registration process.\n * @group Implementation\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\n/**\n * Retrieves the expiration time of a specified domain or subdomain in epoch milliseconds.\n *\n * @param args - The arguments for the function.\n * @param args.aptosConfig - The configuration object for Aptos.\n * @param args.name - The name of the domain or subdomain to check.\n * @returns The expiration time in epoch milliseconds, or undefined if an error occurs.\n * @group Implementation\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\n/**\n * Retrieves the primary name associated with a given account address.\n * This function helps in obtaining the complete domain name by combining the subdomain and domain names.\n *\n * @param args - The arguments for retrieving the primary name.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.address - The account address for which to retrieve the primary name.\n * @returns The primary name as a string, or undefined if no domain name exists.\n * @group Implementation\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\n/**\n * Sets the primary name for the specified account, allowing for the association of a domain or subdomain with the account.\n * If no name is provided, it clears the existing primary name.\n *\n * @param args - The arguments for setting the primary name.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.sender - The account that is sending the transaction.\n * @param args.name - The name to set as the primary name. If omitted, the function will clear the primary name.\n * @param args.options - Optional transaction generation options.\n * @returns A transaction object representing the operation.\n * @group Implementation\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\n/**\n * Retrieves the target address associated with a given domain name and subdomain name.\n *\n * @param args - The arguments for retrieving the target address.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.name - The name of the domain, which may include a subdomain.\n * @returns The target address as an AccountAddress, or undefined if not found.\n * @group Implementation\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\n/**\n * Sets the target address for a specified domain and subdomain in the Aptos network.\n * This function helps to associate a given address with a domain name, allowing for easier access and management of resources.\n *\n * @param args - The arguments for setting the target address.\n * @param args.aptosConfig - The configuration settings for the Aptos network.\n * @param args.sender - The account that is sending the transaction.\n * @param args.name - The name of the domain or subdomain to be set.\n * @param args.address - The address to be associated with the domain or subdomain.\n * @param args.options - Optional parameters for generating the transaction.\n *\n * @returns A transaction object representing the set target address operation.\n * @group Implementation\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\n/**\n * Retrieves the active Aptos name associated with the specified domain and subdomain.\n *\n * @param args - The parameters for the function.\n * @param args.aptosConfig - The configuration object for Aptos.\n * @param args.name - The name to look up, which includes the domain and optional subdomain.\n * @returns The active Aptos name if it exists; otherwise, returns undefined.\n * @group Implementation\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 };\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 isActiveANSName(res) ? res : undefined;\n}\n\n/**\n * Options for querying names, including pagination, ordering, and filtering criteria.\n *\n * @param options - Pagination and filtering options for the query.\n * @group Implementation\n */\ninterface QueryNamesOptions {\n options?: PaginationArgs & OrderByArg<GetANSNameResponse[0]> & WhereArg<CurrentAptosNamesBoolExp>;\n}\n\n/**\n * Arguments for retrieving account names based on the specified account address.\n *\n * @param accountAddress - The address of the account for which names are to be retrieved.\n * @group Implementation\n */\nexport interface GetAccountNamesArgs extends QueryNamesOptions {\n accountAddress: AccountAddressInput;\n}\n\n/**\n * Retrieves the current Aptos names associated with a specific account address.\n *\n * @param args - The arguments for retrieving account names.\n * @param args.aptosConfig - The configuration object for Aptos.\n * @param args.options - Optional parameters for querying account names.\n * @param args.options.limit - The maximum number of names to retrieve.\n * @param args.options.offset - The number of names to skip before starting to collect the result set.\n * @param args.options.orderBy - The field by which to order the results.\n * @param args.options.where - Additional conditions to filter the results.\n * @param args.accountAddress - The address of the account for which to retrieve names.\n *\n * @returns An array of sanitized Aptos names associated with the specified account address.\n * @group Implementation\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\n/**\n * Arguments for retrieving the domains associated with a specific account.\n *\n * @param accountAddress - The address of the account for which to fetch domains.\n * @group Implementation\n */\nexport interface GetAccountDomainsArgs extends QueryNamesOptions {\n accountAddress: AccountAddressInput;\n}\n\n/**\n * Retrieves the list of top-level domains owned by a specified account.\n *\n * @param args - The arguments for retrieving account domains.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.options - Optional parameters for the query.\n * @param args.options.limit - The maximum number of results to return.\n * @param args.options.offset - The number of results to skip before starting to collect the result set.\n * @param args.options.orderBy - The field by which to order the results.\n * @param args.options.where - Additional conditions to filter the results.\n * @param args.options.where.owner_address - The address of the account whose domains are being queried.\n * @param args.options.where.expiration_timestamp - The minimum expiration timestamp for the domains.\n * @param args.options.where.subdomain - The specific subdomain to filter by.\n *\n * @returns An array of sanitized domain names owned by the specified account.\n * @group Implementation\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\n/**\n * Arguments for retrieving subdomains associated with a specific account.\n *\n * @param accountAddress - The address of the account for which to fetch subdomains.\n * @group Implementation\n */\nexport interface GetAccountSubdomainsArgs extends QueryNamesOptions {\n accountAddress: AccountAddressInput;\n}\n\n/**\n * Retrieves a list of subdomains owned by a specified account address.\n * This function helps you identify all subdomains associated with a given account.\n *\n * @param args - The arguments for retrieving account subdomains.\n * @param args.aptosConfig - The configuration object for Aptos.\n * @param args.options - Optional parameters for the query.\n * @param args.options.limit - The maximum number of results to return.\n * @param args.options.offset - The number of results to skip before starting to collect the result set.\n * @param args.options.orderBy - The field by which to order the results.\n * @param args.options.where - Additional conditions to filter the results.\n * @param args.options.where.owner_address - The address of the account to filter by.\n * @param args.options.where.expiration_timestamp - The expiration timestamp to filter by.\n * @param args.options.where.subdomain - The subdomain condition to filter by.\n * @param args.accountAddress - The address of the account whose subdomains are being queried.\n * @group Implementation\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\n/**\n * Arguments for retrieving subdomains associated with a specific domain.\n *\n * @param domain - The domain for which to fetch subdomains.\n * @group Implementation\n */\nexport interface GetDomainSubdomainsArgs extends QueryNamesOptions {\n domain: string;\n}\n\n/**\n * Retrieve the active subdomains associated with a specified domain.\n *\n * @param args - The arguments for retrieving subdomains.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param args.options - Optional parameters for the query.\n * @param args.options.limit - The maximum number of results to return.\n * @param args.options.offset - The number of results to skip before starting to collect the results.\n * @param args.options.orderBy - The field by which to order the results.\n * @param args.options.where - Additional conditions to filter the results.\n * @param args.domain - The domain for which to retrieve subdomains.\n *\n * @returns An array of active subdomain names.\n * @group Implementation\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 },\n },\n },\n });\n\n return data.current_aptos_names.map(sanitizeANSName).filter(isActiveANSName);\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 - The arguments for the function.\n * @param args.aptosConfig - An AptosConfig object containing the configuration settings.\n * @returns The expiration date in ISO 8601 format.\n * @group Implementation\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\n/**\n * Renews a domain for a specified duration. This function allows you to extend the registration of a domain for one year.\n *\n * @param args - The parameters required to renew the domain.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param args.sender - The account that is sending the renewal transaction.\n * @param args.name - The name of the domain to renew.\n * @param args.years - The number of years to renew the domain for. Currently, only 1 year renewals are supported. (optional, default is 1)\n * @param args.options - Additional options for generating the transaction. (optional)\n * @throws Error if the name contains a subdomain or if the years parameter is not equal to 1.\n * @group Implementation\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 *\n * @param name - The ANS name response to sanitize.\n * @param name.expiration_timestamp - The expiration timestamp in ISO string format.\n * @group Implementation\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":["SubdomainExpirationPolicy","transaction"]}
@@ -1,150 +0,0 @@
1
- import {
2
- Ed25519PublicKey,
3
- Ed25519Signature
4
- } from "./chunk-TFW6N66T.mjs";
5
- import {
6
- PublicKey
7
- } from "./chunk-R4JTQQBX.mjs";
8
- import {
9
- Signature
10
- } from "./chunk-KLUO6XPE.mjs";
11
- import {
12
- Deserializer
13
- } from "./chunk-NUT2VOX2.mjs";
14
- import {
15
- Hex
16
- } from "./chunk-BDM6FBUO.mjs";
17
-
18
- // src/core/crypto/ephemeral.ts
19
- var EphemeralPublicKey = class _EphemeralPublicKey extends PublicKey {
20
- /**
21
- * Creates an instance of EphemeralPublicKey using the provided public key.
22
- * This constructor ensures that only supported signature types are accepted.
23
- *
24
- * @param publicKey - The public key to be used for the ephemeral public key.
25
- * @throws Error if the signature type is unsupported.
26
- * @group Implementation
27
- * @category Serialization
28
- */
29
- constructor(publicKey) {
30
- super();
31
- const publicKeyType = publicKey.constructor.name;
32
- switch (publicKeyType) {
33
- case Ed25519PublicKey.name:
34
- this.publicKey = publicKey;
35
- this.variant = 0 /* Ed25519 */;
36
- break;
37
- default:
38
- throw new Error(`Unsupported key for EphemeralPublicKey - ${publicKeyType}`);
39
- }
40
- }
41
- /**
42
- * Verifies a signed message using the ephemeral public key.
43
- *
44
- * @param args - The arguments for the verification.
45
- * @param args.message - The message that was signed.
46
- * @param args.signature - The signature that was signed by the private key of the ephemeral public key.
47
- * @returns true if the signature is valid, otherwise false.
48
- * @group Implementation
49
- * @category Serialization
50
- */
51
- verifySignature(args) {
52
- const { message, signature } = args;
53
- return this.publicKey.verifySignature({ message, signature: signature.signature });
54
- }
55
- /**
56
- * Serializes the current instance, specifically handling the Ed25519 signature type.
57
- * This function ensures that the signature is properly serialized using the provided serializer.
58
- *
59
- * @param serializer - The serializer instance used to serialize the signature.
60
- * @throws Error if the signature type is unknown.
61
- * @group Implementation
62
- * @category Serialization
63
- */
64
- serialize(serializer) {
65
- if (this.publicKey instanceof Ed25519PublicKey) {
66
- serializer.serializeU32AsUleb128(0 /* Ed25519 */);
67
- this.publicKey.serialize(serializer);
68
- } else {
69
- throw new Error("Unknown public key type");
70
- }
71
- }
72
- /**
73
- * Deserializes an EphemeralSignature from the provided deserializer.
74
- * This function allows you to retrieve an EphemeralSignature based on the deserialized data.
75
- *
76
- * @param deserializer - The deserializer instance used to read the serialized data.
77
- * @group Implementation
78
- * @category Serialization
79
- */
80
- static deserialize(deserializer) {
81
- const index = deserializer.deserializeUleb128AsU32();
82
- switch (index) {
83
- case 0 /* Ed25519 */:
84
- return new _EphemeralPublicKey(Ed25519PublicKey.deserialize(deserializer));
85
- default:
86
- throw new Error(`Unknown variant index for EphemeralPublicKey: ${index}`);
87
- }
88
- }
89
- /**
90
- * Determines if the provided public key is an instance of `EphemeralPublicKey`.
91
- *
92
- * @param publicKey - The public key to check.
93
- * @returns A boolean indicating whether the public key is an ephemeral type.
94
- * @group Implementation
95
- * @category Serialization
96
- */
97
- static isPublicKey(publicKey) {
98
- return publicKey instanceof _EphemeralPublicKey;
99
- }
100
- };
101
- var EphemeralSignature = class _EphemeralSignature extends Signature {
102
- constructor(signature) {
103
- super();
104
- const signatureType = signature.constructor.name;
105
- switch (signatureType) {
106
- case Ed25519Signature.name:
107
- this.signature = signature;
108
- break;
109
- default:
110
- throw new Error(`Unsupported signature for EphemeralSignature - ${signatureType}`);
111
- }
112
- }
113
- /**
114
- * Deserializes an ephemeral signature from a hexadecimal input.
115
- * This function allows you to convert a hexadecimal representation of an ephemeral signature into its deserialized form for
116
- * further processing.
117
- *
118
- * @param hexInput - The hexadecimal input representing the ephemeral signature.
119
- * @group Implementation
120
- * @category Serialization
121
- */
122
- static fromHex(hexInput) {
123
- const data = Hex.fromHexInput(hexInput);
124
- const deserializer = new Deserializer(data.toUint8Array());
125
- return _EphemeralSignature.deserialize(deserializer);
126
- }
127
- serialize(serializer) {
128
- if (this.signature instanceof Ed25519Signature) {
129
- serializer.serializeU32AsUleb128(0 /* Ed25519 */);
130
- this.signature.serialize(serializer);
131
- } else {
132
- throw new Error("Unknown signature type");
133
- }
134
- }
135
- static deserialize(deserializer) {
136
- const index = deserializer.deserializeUleb128AsU32();
137
- switch (index) {
138
- case 0 /* Ed25519 */:
139
- return new _EphemeralSignature(Ed25519Signature.deserialize(deserializer));
140
- default:
141
- throw new Error(`Unknown variant index for EphemeralSignature: ${index}`);
142
- }
143
- }
144
- };
145
-
146
- export {
147
- EphemeralPublicKey,
148
- EphemeralSignature
149
- };
150
- //# sourceMappingURL=chunk-UOHCJOXI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/crypto/ephemeral.ts"],"sourcesContent":["import { Serializer, Deserializer } from \"../../bcs\";\nimport { EphemeralPublicKeyVariant, EphemeralSignatureVariant, HexInput } from \"../../types\";\nimport { PublicKey } from \"./publicKey\";\nimport { Signature } from \"./signature\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"./ed25519\";\nimport { Hex } from \"../hex\";\n\n/**\n * Represents ephemeral public keys for Aptos Keyless accounts.\n *\n * These keys are used only temporarily within Keyless accounts and are not utilized as public keys for account identification.\n * @group Implementation\n * @category Serialization\n */\nexport class EphemeralPublicKey extends PublicKey {\n /**\n * The public key itself\n * @group Implementation\n * @category Serialization\n */\n public readonly publicKey: PublicKey;\n\n /**\n * An enum indicating the scheme of the ephemeral public key\n * @group Implementation\n * @category Serialization\n */\n public readonly variant: EphemeralPublicKeyVariant;\n\n /**\n * Creates an instance of EphemeralPublicKey using the provided public key.\n * This constructor ensures that only supported signature types are accepted.\n *\n * @param publicKey - The public key to be used for the ephemeral public key.\n * @throws Error if the signature type is unsupported.\n * @group Implementation\n * @category Serialization\n */\n constructor(publicKey: PublicKey) {\n super();\n const publicKeyType = publicKey.constructor.name;\n switch (publicKeyType) {\n case Ed25519PublicKey.name:\n this.publicKey = publicKey;\n this.variant = EphemeralPublicKeyVariant.Ed25519;\n break;\n default:\n throw new Error(`Unsupported key for EphemeralPublicKey - ${publicKeyType}`);\n }\n }\n\n /**\n * Verifies a signed message using the ephemeral public key.\n *\n * @param args - The arguments for the verification.\n * @param args.message - The message that was signed.\n * @param args.signature - The signature that was signed by the private key of the ephemeral public key.\n * @returns true if the signature is valid, otherwise false.\n * @group Implementation\n * @category Serialization\n */\n verifySignature(args: { message: HexInput; signature: EphemeralSignature }): boolean {\n const { message, signature } = args;\n return this.publicKey.verifySignature({ message, signature: signature.signature });\n }\n\n /**\n * Serializes the current instance, specifically handling the Ed25519 signature type.\n * This function ensures that the signature is properly serialized using the provided serializer.\n *\n * @param serializer - The serializer instance used to serialize the signature.\n * @throws Error if the signature type is unknown.\n * @group Implementation\n * @category Serialization\n */\n serialize(serializer: Serializer): void {\n if (this.publicKey instanceof Ed25519PublicKey) {\n serializer.serializeU32AsUleb128(EphemeralPublicKeyVariant.Ed25519);\n this.publicKey.serialize(serializer);\n } else {\n throw new Error(\"Unknown public key type\");\n }\n }\n\n /**\n * Deserializes an EphemeralSignature from the provided deserializer.\n * This function allows you to retrieve an EphemeralSignature based on the deserialized data.\n *\n * @param deserializer - The deserializer instance used to read the serialized data.\n * @group Implementation\n * @category Serialization\n */\n static deserialize(deserializer: Deserializer): EphemeralPublicKey {\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case EphemeralPublicKeyVariant.Ed25519:\n return new EphemeralPublicKey(Ed25519PublicKey.deserialize(deserializer));\n default:\n throw new Error(`Unknown variant index for EphemeralPublicKey: ${index}`);\n }\n }\n\n /**\n * Determines if the provided public key is an instance of `EphemeralPublicKey`.\n *\n * @param publicKey - The public key to check.\n * @returns A boolean indicating whether the public key is an ephemeral type.\n * @group Implementation\n * @category Serialization\n */\n static isPublicKey(publicKey: PublicKey): publicKey is EphemeralPublicKey {\n return publicKey instanceof EphemeralPublicKey;\n }\n}\n\n/**\n * Represents ephemeral signatures used in Aptos Keyless accounts.\n *\n * These signatures are utilized within the KeylessSignature framework.\n * @group Implementation\n * @category Serialization\n */\nexport class EphemeralSignature extends Signature {\n /**\n * The signature signed by the private key of an EphemeralKeyPair\n * @group Implementation\n * @category Serialization\n */\n public readonly signature: Signature;\n\n constructor(signature: Signature) {\n super();\n const signatureType = signature.constructor.name;\n switch (signatureType) {\n case Ed25519Signature.name:\n this.signature = signature;\n break;\n default:\n throw new Error(`Unsupported signature for EphemeralSignature - ${signatureType}`);\n }\n }\n\n /**\n * Deserializes an ephemeral signature from a hexadecimal input.\n * This function allows you to convert a hexadecimal representation of an ephemeral signature into its deserialized form for\n * further processing.\n *\n * @param hexInput - The hexadecimal input representing the ephemeral signature.\n * @group Implementation\n * @category Serialization\n */\n static fromHex(hexInput: HexInput): EphemeralSignature {\n const data = Hex.fromHexInput(hexInput);\n const deserializer = new Deserializer(data.toUint8Array());\n return EphemeralSignature.deserialize(deserializer);\n }\n\n serialize(serializer: Serializer): void {\n if (this.signature instanceof Ed25519Signature) {\n serializer.serializeU32AsUleb128(EphemeralSignatureVariant.Ed25519);\n this.signature.serialize(serializer);\n } else {\n throw new Error(\"Unknown signature type\");\n }\n }\n\n static deserialize(deserializer: Deserializer): EphemeralSignature {\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case EphemeralSignatureVariant.Ed25519:\n return new EphemeralSignature(Ed25519Signature.deserialize(deserializer));\n default:\n throw new Error(`Unknown variant index for EphemeralSignature: ${index}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAcO,IAAM,qBAAN,MAAM,4BAA2B,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBhD,YAAY,WAAsB;AAChC,UAAM;AACN,UAAM,gBAAgB,UAAU,YAAY;AAC5C,YAAQ,eAAe;AAAA,MACrB,KAAK,iBAAiB;AACpB,aAAK,YAAY;AACjB,aAAK;AACL;AAAA,MACF;AACE,cAAM,IAAI,MAAM,4CAA4C,aAAa,EAAE;AAAA,IAC/E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBAAgB,MAAqE;AACnF,UAAM,EAAE,SAAS,UAAU,IAAI;AAC/B,WAAO,KAAK,UAAU,gBAAgB,EAAE,SAAS,WAAW,UAAU,UAAU,CAAC;AAAA,EACnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAU,YAA8B;AACtC,QAAI,KAAK,qBAAqB,kBAAkB;AAC9C,iBAAW,qCAAuD;AAClE,WAAK,UAAU,UAAU,UAAU;AAAA,IACrC,OAAO;AACL,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,YAAY,cAAgD;AACjE,UAAM,QAAQ,aAAa,wBAAwB;AACnD,YAAQ,OAAO;AAAA,MACb;AACE,eAAO,IAAI,oBAAmB,iBAAiB,YAAY,YAAY,CAAC;AAAA,MAC1E;AACE,cAAM,IAAI,MAAM,iDAAiD,KAAK,EAAE;AAAA,IAC5E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,YAAY,WAAuD;AACxE,WAAO,qBAAqB;AAAA,EAC9B;AACF;AASO,IAAM,qBAAN,MAAM,4BAA2B,UAAU;AAAA,EAQhD,YAAY,WAAsB;AAChC,UAAM;AACN,UAAM,gBAAgB,UAAU,YAAY;AAC5C,YAAQ,eAAe;AAAA,MACrB,KAAK,iBAAiB;AACpB,aAAK,YAAY;AACjB;AAAA,MACF;AACE,cAAM,IAAI,MAAM,kDAAkD,aAAa,EAAE;AAAA,IACrF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,QAAQ,UAAwC;AACrD,UAAM,OAAO,IAAI,aAAa,QAAQ;AACtC,UAAM,eAAe,IAAI,aAAa,KAAK,aAAa,CAAC;AACzD,WAAO,oBAAmB,YAAY,YAAY;AAAA,EACpD;AAAA,EAEA,UAAU,YAA8B;AACtC,QAAI,KAAK,qBAAqB,kBAAkB;AAC9C,iBAAW,qCAAuD;AAClE,WAAK,UAAU,UAAU,UAAU;AAAA,IACrC,OAAO;AACL,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,OAAO,YAAY,cAAgD;AACjE,UAAM,QAAQ,aAAa,wBAAwB;AACnD,YAAQ,OAAO;AAAA,MACb;AACE,eAAO,IAAI,oBAAmB,iBAAiB,YAAY,YAAY,CAAC;AAAA,MAC1E;AACE,cAAM,IAAI,MAAM,iDAAiD,KAAK,EAAE;AAAA,IAC5E;AAAA,EACF;AACF;","names":[]}