@aptos-labs/ts-sdk 1.33.1 → 1.33.2-sc.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 (715) hide show
  1. package/README.md +11 -6
  2. package/dist/common/{accountAddress-BHsGaOsa.d.ts → accountAddress-Cf1amU98.d.ts} +279 -0
  3. package/dist/common/{chunk-F43XVDYJ.js → chunk-IHUCZKG2.js} +1 -1
  4. package/dist/common/chunk-IHUCZKG2.js.map +1 -0
  5. package/dist/common/cli/index.d.ts +47 -9
  6. package/dist/common/cli/index.js +1 -1
  7. package/dist/common/cli/index.js.map +1 -1
  8. package/dist/common/index.d.ts +2126 -306
  9. package/dist/common/index.js +33 -33
  10. package/dist/common/index.js.map +1 -1
  11. package/dist/esm/{Ed25519Account-B3xHXAQe.d.mts → Ed25519Account-D4j3_WIS.d.mts} +122 -12
  12. package/dist/esm/account/AbstractKeylessAccount.d.mts +82 -7
  13. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
  14. package/dist/esm/account/Account.d.mts +6 -4
  15. package/dist/esm/account/Account.mjs +1 -1
  16. package/dist/esm/account/AccountUtils.d.mts +65 -0
  17. package/dist/esm/account/AccountUtils.mjs +2 -0
  18. package/dist/esm/account/Ed25519Account.d.mts +4 -2
  19. package/dist/esm/account/Ed25519Account.mjs +1 -1
  20. package/dist/esm/account/EphemeralKeyPair.d.mts +30 -1
  21. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  22. package/dist/esm/account/FederatedKeylessAccount.d.mts +26 -5
  23. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
  24. package/dist/esm/account/KeylessAccount.d.mts +31 -5
  25. package/dist/esm/account/KeylessAccount.mjs +1 -1
  26. package/dist/esm/account/MultiKeyAccount.d.mts +41 -5
  27. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  28. package/dist/esm/account/SingleKeyAccount.d.mts +5 -3
  29. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  30. package/dist/esm/account/index.d.mts +5 -2
  31. package/dist/esm/account/index.mjs +1 -1
  32. package/dist/esm/account/utils.d.mts +19 -0
  33. package/dist/esm/account/utils.mjs +2 -0
  34. package/dist/esm/api/account.d.mts +26 -4
  35. package/dist/esm/api/account.mjs +1 -1
  36. package/dist/esm/api/ans.d.mts +19 -2
  37. package/dist/esm/api/ans.mjs +1 -1
  38. package/dist/esm/api/aptos.d.mts +7 -2
  39. package/dist/esm/api/aptos.mjs +1 -1
  40. package/dist/esm/api/aptosConfig.d.mts +17 -0
  41. package/dist/esm/api/aptosConfig.mjs +1 -1
  42. package/dist/esm/api/coin.d.mts +6 -1
  43. package/dist/esm/api/coin.mjs +1 -1
  44. package/dist/esm/api/digitalAsset.d.mts +30 -2
  45. package/dist/esm/api/digitalAsset.mjs +1 -1
  46. package/dist/esm/api/event.d.mts +7 -0
  47. package/dist/esm/api/event.mjs +1 -1
  48. package/dist/esm/api/faucet.d.mts +12 -2
  49. package/dist/esm/api/faucet.mjs +1 -1
  50. package/dist/esm/api/fungibleAsset.d.mts +12 -2
  51. package/dist/esm/api/fungibleAsset.mjs +1 -1
  52. package/dist/esm/api/general.d.mts +15 -1
  53. package/dist/esm/api/general.mjs +1 -1
  54. package/dist/esm/api/index.d.mts +5 -2
  55. package/dist/esm/api/index.mjs +1 -1
  56. package/dist/esm/api/keyless.d.mts +9 -2
  57. package/dist/esm/api/keyless.mjs +1 -1
  58. package/dist/esm/api/object.d.mts +4 -0
  59. package/dist/esm/api/object.mjs +1 -1
  60. package/dist/esm/api/staking.d.mts +6 -0
  61. package/dist/esm/api/staking.mjs +1 -1
  62. package/dist/esm/api/table.d.mts +6 -0
  63. package/dist/esm/api/table.mjs +1 -1
  64. package/dist/esm/api/transaction.d.mts +25 -6
  65. package/dist/esm/api/transaction.mjs +1 -1
  66. package/dist/esm/api/transactionSubmission/build.d.mts +72 -1
  67. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  68. package/dist/esm/api/transactionSubmission/helpers.d.mts +2 -0
  69. package/dist/esm/api/transactionSubmission/helpers.mjs +1 -1
  70. package/dist/esm/api/transactionSubmission/management.d.mts +9 -2
  71. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  72. package/dist/esm/api/transactionSubmission/sign.d.mts +8 -2
  73. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  74. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  75. package/dist/esm/api/transactionSubmission/simulate.d.mts +7 -1
  76. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  77. package/dist/esm/api/transactionSubmission/submit.d.mts +7 -1
  78. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  79. package/dist/esm/api/utils.d.mts +2 -0
  80. package/dist/esm/api/utils.mjs +1 -1
  81. package/dist/esm/bcs/consts.d.mts +1 -0
  82. package/dist/esm/bcs/deserializer.d.mts +43 -1
  83. package/dist/esm/bcs/deserializer.mjs +1 -1
  84. package/dist/esm/bcs/index.d.mts +1 -0
  85. package/dist/esm/bcs/index.mjs +1 -1
  86. package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +11 -0
  87. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
  88. package/dist/esm/bcs/serializable/fixedBytes.d.mts +13 -0
  89. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
  90. package/dist/esm/bcs/serializable/movePrimitives.d.mts +25 -0
  91. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  92. package/dist/esm/bcs/serializable/moveStructs.d.mts +57 -0
  93. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  94. package/dist/esm/bcs/serializer.d.mts +61 -0
  95. package/dist/esm/bcs/serializer.mjs +1 -1
  96. package/dist/esm/{chunk-4DP3PEYK.mjs → chunk-32WLD3F3.mjs} +2 -2
  97. package/dist/esm/chunk-32WLD3F3.mjs.map +1 -0
  98. package/dist/esm/{chunk-FZDEGDUY.mjs → chunk-35DKMW7Q.mjs} +1 -1
  99. package/dist/esm/chunk-35DKMW7Q.mjs.map +1 -0
  100. package/dist/esm/chunk-3OLFJ65O.mjs +2 -0
  101. package/dist/esm/chunk-3OLFJ65O.mjs.map +1 -0
  102. package/dist/esm/chunk-3XH3NNSR.mjs +2 -0
  103. package/dist/esm/chunk-3XH3NNSR.mjs.map +1 -0
  104. package/dist/esm/chunk-4RXKALLC.mjs +2 -0
  105. package/dist/esm/chunk-4RXKALLC.mjs.map +1 -0
  106. package/dist/esm/{chunk-IBZKCBN5.mjs → chunk-4UYVRG5Z.mjs} +2 -2
  107. package/dist/esm/chunk-4UYVRG5Z.mjs.map +1 -0
  108. package/dist/esm/chunk-4YLUM62M.mjs +2 -0
  109. package/dist/esm/chunk-4YLUM62M.mjs.map +1 -0
  110. package/dist/esm/{chunk-JMPHD4BP.mjs → chunk-4ZJJINCW.mjs} +2 -2
  111. package/dist/esm/chunk-4ZJJINCW.mjs.map +1 -0
  112. package/dist/esm/{chunk-ZXVN3HXB.mjs → chunk-66AQ2MJ6.mjs} +2 -2
  113. package/dist/esm/chunk-66AQ2MJ6.mjs.map +1 -0
  114. package/dist/esm/{chunk-4XB3BB5Z.mjs → chunk-67BUAZ6O.mjs} +2 -2
  115. package/dist/esm/chunk-67BUAZ6O.mjs.map +1 -0
  116. package/dist/esm/{chunk-333QBK32.mjs → chunk-67ZANQ3R.mjs} +2 -2
  117. package/dist/esm/chunk-67ZANQ3R.mjs.map +1 -0
  118. package/dist/esm/{chunk-UFPYCROT.mjs → chunk-6IIAGMDR.mjs} +2 -2
  119. package/dist/esm/chunk-6IIAGMDR.mjs.map +1 -0
  120. package/dist/esm/{chunk-F2WY2DEY.mjs → chunk-6IPM5P4L.mjs} +2 -2
  121. package/dist/esm/chunk-6IPM5P4L.mjs.map +1 -0
  122. package/dist/esm/{chunk-IK2NYNKG.mjs → chunk-6XHBRRS6.mjs} +2 -2
  123. package/dist/esm/chunk-6XHBRRS6.mjs.map +1 -0
  124. package/dist/esm/chunk-7HLNV3QL.mjs +2 -0
  125. package/dist/esm/chunk-7HLNV3QL.mjs.map +1 -0
  126. package/dist/esm/{chunk-2KSMV5KD.mjs → chunk-A3NEASNH.mjs} +2 -2
  127. package/dist/esm/chunk-A3NEASNH.mjs.map +1 -0
  128. package/dist/esm/{chunk-2CJC43CV.mjs → chunk-A5L76YP7.mjs} +1 -1
  129. package/dist/esm/chunk-A5L76YP7.mjs.map +1 -0
  130. package/dist/esm/{chunk-5PVZ4N42.mjs → chunk-AD3A7DTH.mjs} +2 -2
  131. package/dist/esm/chunk-AD3A7DTH.mjs.map +1 -0
  132. package/dist/esm/chunk-AIABPCUF.mjs +2 -0
  133. package/dist/esm/{chunk-YD2BMHH7.mjs.map → chunk-AIABPCUF.mjs.map} +1 -1
  134. package/dist/esm/{chunk-AOROYJ74.mjs → chunk-AZWVCBK2.mjs} +2 -2
  135. package/dist/esm/chunk-AZWVCBK2.mjs.map +1 -0
  136. package/dist/esm/chunk-BFIXIXHO.mjs +2 -0
  137. package/dist/esm/chunk-BFIXIXHO.mjs.map +1 -0
  138. package/dist/esm/{chunk-6ZOVTYLJ.mjs → chunk-BI3BTSUB.mjs} +2 -2
  139. package/dist/esm/chunk-BI3BTSUB.mjs.map +1 -0
  140. package/dist/esm/{chunk-OIOGOW6I.mjs → chunk-C3Q23D22.mjs} +1 -1
  141. package/dist/esm/chunk-C3Q23D22.mjs.map +1 -0
  142. package/dist/esm/{chunk-EGV3HFE3.mjs → chunk-CDYLZDD2.mjs} +2 -2
  143. package/dist/esm/chunk-CDYLZDD2.mjs.map +1 -0
  144. package/dist/esm/{chunk-LA5HJILW.mjs → chunk-CGTHWGSJ.mjs} +2 -2
  145. package/dist/esm/chunk-CGTHWGSJ.mjs.map +1 -0
  146. package/dist/esm/{chunk-VWGB5BHW.mjs → chunk-CNCRJ56P.mjs} +2 -2
  147. package/dist/esm/chunk-CNCRJ56P.mjs.map +1 -0
  148. package/dist/esm/{chunk-VQZMI3EZ.mjs → chunk-CWKNJZB6.mjs} +2 -2
  149. package/dist/esm/chunk-CWKNJZB6.mjs.map +1 -0
  150. package/dist/esm/chunk-CWRANLXZ.mjs +2 -0
  151. package/dist/esm/chunk-CWRANLXZ.mjs.map +1 -0
  152. package/dist/esm/{chunk-SK3LIS4Z.mjs → chunk-CYMVZJHC.mjs} +2 -2
  153. package/dist/esm/chunk-CYMVZJHC.mjs.map +1 -0
  154. package/dist/esm/{chunk-V4FKFCBL.mjs → chunk-DAFSKSZ5.mjs} +1 -1
  155. package/dist/esm/chunk-DAFSKSZ5.mjs.map +1 -0
  156. package/dist/esm/chunk-DPW6ELCQ.mjs +2 -0
  157. package/dist/esm/chunk-DPW6ELCQ.mjs.map +1 -0
  158. package/dist/esm/{chunk-YEWZAR76.mjs → chunk-DW3ETAZB.mjs} +2 -2
  159. package/dist/esm/chunk-DW3ETAZB.mjs.map +1 -0
  160. package/dist/esm/{chunk-AJ5JHBAE.mjs → chunk-EBMEXURY.mjs} +2 -2
  161. package/dist/esm/chunk-EBMEXURY.mjs.map +1 -0
  162. package/dist/esm/{chunk-G4KAHJXB.mjs → chunk-EBS4BKER.mjs} +2 -2
  163. package/dist/esm/chunk-EBS4BKER.mjs.map +1 -0
  164. package/dist/esm/{chunk-S5SQJRAV.mjs → chunk-ECZYQTNN.mjs} +2 -2
  165. package/dist/esm/chunk-ECZYQTNN.mjs.map +1 -0
  166. package/dist/esm/chunk-EMURYYVO.mjs +2 -0
  167. package/dist/esm/chunk-EMURYYVO.mjs.map +1 -0
  168. package/dist/esm/chunk-F2ZTBAJJ.mjs +2 -0
  169. package/dist/esm/chunk-F2ZTBAJJ.mjs.map +1 -0
  170. package/dist/esm/chunk-FC2IYWI7.mjs +2 -0
  171. package/dist/esm/chunk-FC2IYWI7.mjs.map +1 -0
  172. package/dist/esm/chunk-FKJ3GCBI.mjs +2 -0
  173. package/dist/esm/chunk-FKJ3GCBI.mjs.map +1 -0
  174. package/dist/esm/{chunk-AKIO3OIT.mjs → chunk-FN4C3CKC.mjs} +2 -2
  175. package/dist/esm/chunk-FN4C3CKC.mjs.map +1 -0
  176. package/dist/esm/{chunk-2ESU5N3V.mjs → chunk-FNXO3URE.mjs} +2 -2
  177. package/dist/esm/chunk-FNXO3URE.mjs.map +1 -0
  178. package/dist/esm/{chunk-7V35JAAF.mjs → chunk-FQECACH3.mjs} +2 -2
  179. package/dist/esm/chunk-FQECACH3.mjs.map +1 -0
  180. package/dist/esm/{chunk-2QGJDHME.mjs → chunk-FQXEX2HN.mjs} +2 -2
  181. package/dist/esm/chunk-FQXEX2HN.mjs.map +1 -0
  182. package/dist/esm/{chunk-T6ADNZE5.mjs → chunk-G4O6FXCF.mjs} +2 -2
  183. package/dist/esm/chunk-G4O6FXCF.mjs.map +1 -0
  184. package/dist/esm/{chunk-7N7FEBZA.mjs → chunk-G5ZWH5T3.mjs} +2 -2
  185. package/dist/esm/chunk-G5ZWH5T3.mjs.map +1 -0
  186. package/dist/esm/{chunk-UGIHQFID.mjs → chunk-GL4OJVYH.mjs} +2 -2
  187. package/dist/esm/chunk-GL4OJVYH.mjs.map +1 -0
  188. package/dist/esm/{chunk-GMKKHGXK.mjs → chunk-GOXRBEIJ.mjs} +1 -1
  189. package/dist/esm/chunk-GOXRBEIJ.mjs.map +1 -0
  190. package/dist/esm/chunk-GP4TLDVZ.mjs +1 -0
  191. package/dist/esm/{chunk-33CVOPIN.mjs → chunk-H3XZ3FZY.mjs} +2 -2
  192. package/dist/esm/{chunk-33CVOPIN.mjs.map → chunk-H3XZ3FZY.mjs.map} +1 -1
  193. package/dist/esm/{chunk-7T26VA2W.mjs → chunk-I7JGKVOC.mjs} +2 -2
  194. package/dist/esm/chunk-I7JGKVOC.mjs.map +1 -0
  195. package/dist/esm/{chunk-6Q2O5G3J.mjs → chunk-IF4UU2MT.mjs} +1 -1
  196. package/dist/esm/chunk-IF4UU2MT.mjs.map +1 -0
  197. package/dist/esm/{chunk-LPVGVTWT.mjs → chunk-IJ2QKE4W.mjs} +2 -2
  198. package/dist/esm/chunk-IJ2QKE4W.mjs.map +1 -0
  199. package/dist/esm/chunk-JJM6ELMS.mjs +2 -0
  200. package/dist/esm/chunk-JJM6ELMS.mjs.map +1 -0
  201. package/dist/esm/{chunk-SNYYEVJA.mjs → chunk-K2CSACQY.mjs} +2 -2
  202. package/dist/esm/chunk-K2CSACQY.mjs.map +1 -0
  203. package/dist/esm/{chunk-NZ7M6NG2.mjs → chunk-KFCLSJC3.mjs} +2 -2
  204. package/dist/esm/chunk-KFGXOZ77.mjs +2 -0
  205. package/dist/esm/chunk-KFGXOZ77.mjs.map +1 -0
  206. package/dist/esm/{chunk-PXMNAP2Q.mjs → chunk-KG23XFU2.mjs} +2 -2
  207. package/dist/esm/chunk-KG23XFU2.mjs.map +1 -0
  208. package/dist/esm/chunk-KNTAED2Z.mjs +2 -0
  209. package/dist/esm/chunk-KNTAED2Z.mjs.map +1 -0
  210. package/dist/esm/{chunk-GVNK3UMT.mjs → chunk-KPLWOVKG.mjs} +2 -2
  211. package/dist/esm/chunk-KPLWOVKG.mjs.map +1 -0
  212. package/dist/esm/{chunk-BRV3RLKW.mjs → chunk-MT2RJ7H3.mjs} +2 -2
  213. package/dist/esm/chunk-MT2RJ7H3.mjs.map +1 -0
  214. package/dist/esm/{chunk-ACVIE7IE.mjs → chunk-N4DM5FYH.mjs} +2 -2
  215. package/dist/esm/chunk-N4DM5FYH.mjs.map +1 -0
  216. package/dist/esm/{chunk-ZMMLM6ZJ.mjs → chunk-N4VVDQA5.mjs} +2 -2
  217. package/dist/esm/chunk-N4VVDQA5.mjs.map +1 -0
  218. package/dist/esm/{chunk-LGTOOAQI.mjs → chunk-N6YTF76Q.mjs} +2 -2
  219. package/dist/esm/chunk-N6YTF76Q.mjs.map +1 -0
  220. package/dist/esm/{chunk-HMMNQFVM.mjs → chunk-NDUIXMIA.mjs} +2 -2
  221. package/dist/esm/chunk-NDUIXMIA.mjs.map +1 -0
  222. package/dist/esm/{chunk-U3T4ZT7B.mjs → chunk-NW2WUKWV.mjs} +2 -2
  223. package/dist/esm/chunk-NW2WUKWV.mjs.map +1 -0
  224. package/dist/esm/{chunk-XZN344G4.mjs → chunk-ODEDSSQL.mjs} +2 -2
  225. package/dist/esm/chunk-ODEDSSQL.mjs.map +1 -0
  226. package/dist/esm/{chunk-42H7WETG.mjs → chunk-ORMOQWWH.mjs} +2 -2
  227. package/dist/esm/chunk-ORMOQWWH.mjs.map +1 -0
  228. package/dist/esm/{chunk-4MTSP4S2.mjs → chunk-P4VF7BN4.mjs} +2 -2
  229. package/dist/esm/chunk-P4VF7BN4.mjs.map +1 -0
  230. package/dist/esm/chunk-P54RNN4V.mjs +2 -0
  231. package/dist/esm/chunk-P54RNN4V.mjs.map +1 -0
  232. package/dist/esm/{chunk-XOLU6UP3.mjs → chunk-PHJRCZQ3.mjs} +2 -2
  233. package/dist/esm/chunk-PHJRCZQ3.mjs.map +1 -0
  234. package/dist/esm/{chunk-VIZHWYI5.mjs → chunk-PNDCGNVH.mjs} +2 -2
  235. package/dist/esm/chunk-PNDCGNVH.mjs.map +1 -0
  236. package/dist/esm/{chunk-5LGKGWLX.mjs → chunk-PTS3BTOU.mjs} +2 -2
  237. package/dist/esm/chunk-PTS3BTOU.mjs.map +1 -0
  238. package/dist/esm/{chunk-NK67FECB.mjs → chunk-PUNTBVRJ.mjs} +2 -2
  239. package/dist/esm/chunk-PUNTBVRJ.mjs.map +1 -0
  240. package/dist/esm/{chunk-DBTKJMLV.mjs → chunk-Q2C6ZY5N.mjs} +2 -2
  241. package/dist/esm/chunk-Q2C6ZY5N.mjs.map +1 -0
  242. package/dist/esm/{chunk-UJSTWN32.mjs → chunk-Q3VS6AEN.mjs} +2 -2
  243. package/dist/esm/{chunk-UJSTWN32.mjs.map → chunk-Q3VS6AEN.mjs.map} +1 -1
  244. package/dist/esm/{chunk-JNO7KPMG.mjs → chunk-Q4C4U6I4.mjs} +2 -2
  245. package/dist/esm/chunk-Q4C4U6I4.mjs.map +1 -0
  246. package/dist/esm/{chunk-F45G3GP3.mjs → chunk-QHEKBHNU.mjs} +2 -2
  247. package/dist/esm/chunk-R7QOPBWA.mjs +2 -0
  248. package/dist/esm/chunk-R7QOPBWA.mjs.map +1 -0
  249. package/dist/esm/{chunk-J7PJSK3J.mjs → chunk-RJ7F4JDV.mjs} +1 -1
  250. package/dist/esm/chunk-RJ7F4JDV.mjs.map +1 -0
  251. package/dist/esm/{chunk-BUAHUVAD.mjs → chunk-ROT6S6BM.mjs} +2 -2
  252. package/dist/esm/chunk-ROT6S6BM.mjs.map +1 -0
  253. package/dist/esm/{chunk-RCA73RVB.mjs → chunk-SOLQ5VON.mjs} +2 -2
  254. package/dist/esm/chunk-SOLQ5VON.mjs.map +1 -0
  255. package/dist/esm/{chunk-L4SWQLAJ.mjs → chunk-SQR3AIY7.mjs} +2 -2
  256. package/dist/esm/chunk-SQR3AIY7.mjs.map +1 -0
  257. package/dist/esm/{chunk-SPRNSFUV.mjs → chunk-STY74NUA.mjs} +2 -2
  258. package/dist/esm/chunk-STY74NUA.mjs.map +1 -0
  259. package/dist/esm/{chunk-LKKI2KAP.mjs → chunk-SZRZ3HIL.mjs} +2 -2
  260. package/dist/esm/chunk-SZRZ3HIL.mjs.map +1 -0
  261. package/dist/esm/{chunk-KCWRCWNT.mjs → chunk-T6NQDM7D.mjs} +2 -2
  262. package/dist/esm/chunk-T6NQDM7D.mjs.map +1 -0
  263. package/dist/esm/{chunk-ZMBXHMVQ.mjs → chunk-TOBQ5UE6.mjs} +2 -2
  264. package/dist/esm/chunk-TOBQ5UE6.mjs.map +1 -0
  265. package/dist/esm/{chunk-2MN7DW2J.mjs → chunk-UF6SI2QE.mjs} +2 -2
  266. package/dist/esm/chunk-UF6SI2QE.mjs.map +1 -0
  267. package/dist/esm/chunk-UIRAXHDH.mjs +1 -0
  268. package/dist/esm/chunk-UIRAXHDH.mjs.map +1 -0
  269. package/dist/esm/{chunk-ALNQK276.mjs → chunk-UONSJQUV.mjs} +2 -2
  270. package/dist/esm/chunk-UONSJQUV.mjs.map +1 -0
  271. package/dist/esm/{chunk-N62NUAHT.mjs → chunk-UQ7D5CSM.mjs} +2 -2
  272. package/dist/esm/chunk-UQ7D5CSM.mjs.map +1 -0
  273. package/dist/esm/{chunk-BAEIZAP7.mjs → chunk-UYONA6PP.mjs} +2 -2
  274. package/dist/esm/chunk-UYONA6PP.mjs.map +1 -0
  275. package/dist/esm/{chunk-YJVZFYBX.mjs → chunk-VCIJX6R4.mjs} +2 -2
  276. package/dist/esm/chunk-VCIJX6R4.mjs.map +1 -0
  277. package/dist/esm/{chunk-CX6KECGV.mjs → chunk-VVAKGJDN.mjs} +2 -2
  278. package/dist/esm/chunk-VVAKGJDN.mjs.map +1 -0
  279. package/dist/esm/chunk-VZELORLW.mjs +2 -0
  280. package/dist/esm/chunk-VZELORLW.mjs.map +1 -0
  281. package/dist/esm/{chunk-IHGA5KAD.mjs → chunk-W4BSN6SK.mjs} +1 -1
  282. package/dist/esm/chunk-W4BSN6SK.mjs.map +1 -0
  283. package/dist/esm/chunk-WCMW2L3P.mjs +2 -0
  284. package/dist/esm/chunk-WCMW2L3P.mjs.map +1 -0
  285. package/dist/esm/{chunk-PMGK5IHB.mjs → chunk-X3SO2LDX.mjs} +2 -2
  286. package/dist/esm/chunk-X3SO2LDX.mjs.map +1 -0
  287. package/dist/esm/{chunk-H3C3VTHS.mjs → chunk-XGF7UNEW.mjs} +2 -2
  288. package/dist/esm/chunk-XGF7UNEW.mjs.map +1 -0
  289. package/dist/esm/chunk-XHPWHA6B.mjs +2 -0
  290. package/dist/esm/chunk-XHPWHA6B.mjs.map +1 -0
  291. package/dist/esm/{chunk-2C27NY4D.mjs → chunk-XIFIACCB.mjs} +2 -2
  292. package/dist/esm/chunk-XIFIACCB.mjs.map +1 -0
  293. package/dist/esm/chunk-XJJVJOX5.mjs +2 -0
  294. package/dist/esm/{chunk-UGTIALNW.mjs.map → chunk-XJJVJOX5.mjs.map} +1 -1
  295. package/dist/esm/{chunk-OPO5EYF7.mjs → chunk-XKUIMGKU.mjs} +2 -2
  296. package/dist/esm/chunk-XKUIMGKU.mjs.map +1 -0
  297. package/dist/esm/{chunk-ZMS3AOEZ.mjs → chunk-XLFX2YQA.mjs} +2 -2
  298. package/dist/esm/chunk-XLFX2YQA.mjs.map +1 -0
  299. package/dist/esm/chunk-XTOIL6MB.mjs +2 -0
  300. package/dist/esm/chunk-XTOIL6MB.mjs.map +1 -0
  301. package/dist/esm/{chunk-U6OCK6T4.mjs → chunk-Y6QTKAQO.mjs} +2 -2
  302. package/dist/esm/chunk-Y6QTKAQO.mjs.map +1 -0
  303. package/dist/esm/{chunk-HBIDHQ2M.mjs → chunk-YOZBVVKL.mjs} +1 -1
  304. package/dist/esm/chunk-YOZBVVKL.mjs.map +1 -0
  305. package/dist/esm/{chunk-WFK3XRQX.mjs → chunk-YPGI5HAA.mjs} +2 -2
  306. package/dist/esm/chunk-YPGI5HAA.mjs.map +1 -0
  307. package/dist/esm/{chunk-QI7OREBM.mjs → chunk-ZJNPBHEI.mjs} +2 -2
  308. package/dist/esm/chunk-ZJNPBHEI.mjs.map +1 -0
  309. package/dist/esm/cli/index.d.mts +1 -0
  310. package/dist/esm/cli/index.mjs +1 -1
  311. package/dist/esm/cli/localNode.d.mts +20 -8
  312. package/dist/esm/cli/localNode.mjs +1 -1
  313. package/dist/esm/cli/move.d.mts +27 -0
  314. package/dist/esm/cli/move.mjs +1 -1
  315. package/dist/esm/client/core.d.mts +5 -0
  316. package/dist/esm/client/core.mjs +1 -1
  317. package/dist/esm/client/get.d.mts +34 -1
  318. package/dist/esm/client/get.mjs +1 -1
  319. package/dist/esm/client/index.d.mts +2 -1
  320. package/dist/esm/client/index.mjs +1 -1
  321. package/dist/esm/client/post.d.mts +38 -0
  322. package/dist/esm/client/post.mjs +1 -1
  323. package/dist/esm/core/account/index.d.mts +1 -0
  324. package/dist/esm/core/account/index.mjs +1 -1
  325. package/dist/esm/core/account/utils/address.d.mts +7 -0
  326. package/dist/esm/core/account/utils/address.mjs +1 -1
  327. package/dist/esm/core/account/utils/index.d.mts +1 -0
  328. package/dist/esm/core/account/utils/index.mjs +1 -1
  329. package/dist/esm/core/accountAddress.d.mts +47 -0
  330. package/dist/esm/core/accountAddress.mjs +1 -1
  331. package/dist/esm/core/authenticationKey.d.mts +2 -1
  332. package/dist/esm/core/authenticationKey.mjs +1 -1
  333. package/dist/esm/core/common.d.mts +14 -0
  334. package/dist/esm/core/common.mjs +1 -1
  335. package/dist/esm/core/crypto/ed25519.d.mts +58 -5
  336. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  337. package/dist/esm/core/crypto/ephemeral.d.mts +24 -1
  338. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  339. package/dist/esm/core/crypto/federatedKeyless.d.mts +14 -1
  340. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
  341. package/dist/esm/core/crypto/hdKey.d.mts +28 -0
  342. package/dist/esm/core/crypto/hdKey.mjs +1 -1
  343. package/dist/esm/core/crypto/index.d.mts +3 -2
  344. package/dist/esm/core/crypto/index.mjs +1 -1
  345. package/dist/esm/core/crypto/keyless.d.mts +132 -1
  346. package/dist/esm/core/crypto/keyless.mjs +1 -1
  347. package/dist/esm/core/crypto/multiEd25519.d.mts +42 -1
  348. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  349. package/dist/esm/core/crypto/multiKey.d.mts +39 -1
  350. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  351. package/dist/esm/core/crypto/poseidon.d.mts +10 -0
  352. package/dist/esm/core/crypto/poseidon.mjs +1 -1
  353. package/dist/esm/core/crypto/privateKey.d.mts +10 -1
  354. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  355. package/dist/esm/core/crypto/proof.d.mts +3 -0
  356. package/dist/esm/core/crypto/proof.mjs +1 -1
  357. package/dist/esm/core/crypto/publicKey.d.mts +2 -1
  358. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  359. package/dist/esm/core/crypto/secp256k1.d.mts +51 -3
  360. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  361. package/dist/esm/core/crypto/signature.d.mts +7 -0
  362. package/dist/esm/core/crypto/signature.mjs +1 -1
  363. package/dist/esm/core/crypto/singleKey.d.mts +37 -2
  364. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  365. package/dist/esm/core/crypto/utils.d.mts +3 -0
  366. package/dist/esm/core/crypto/utils.mjs +1 -1
  367. package/dist/esm/core/hex.d.mts +21 -0
  368. package/dist/esm/core/hex.mjs +1 -1
  369. package/dist/esm/core/index.d.mts +3 -2
  370. package/dist/esm/core/index.mjs +1 -1
  371. package/dist/esm/errors/index.d.mts +1 -0
  372. package/dist/esm/errors/index.mjs +1 -1
  373. package/dist/esm/index.d.mts +9 -6
  374. package/dist/esm/index.mjs +1 -1
  375. package/dist/esm/internal/account.d.mts +25 -4
  376. package/dist/esm/internal/account.mjs +1 -1
  377. package/dist/esm/internal/ans.d.mts +28 -2
  378. package/dist/esm/internal/ans.mjs +1 -1
  379. package/dist/esm/internal/coin.d.mts +4 -1
  380. package/dist/esm/internal/coin.mjs +1 -1
  381. package/dist/esm/internal/digitalAsset.d.mts +32 -2
  382. package/dist/esm/internal/digitalAsset.mjs +1 -1
  383. package/dist/esm/internal/event.d.mts +6 -0
  384. package/dist/esm/internal/event.mjs +1 -1
  385. package/dist/esm/internal/faucet.d.mts +6 -0
  386. package/dist/esm/internal/faucet.mjs +1 -1
  387. package/dist/esm/internal/fungibleAsset.d.mts +9 -2
  388. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  389. package/dist/esm/internal/general.d.mts +8 -0
  390. package/dist/esm/internal/general.mjs +1 -1
  391. package/dist/esm/internal/keyless.d.mts +7 -2
  392. package/dist/esm/internal/keyless.mjs +1 -1
  393. package/dist/esm/internal/object.d.mts +3 -0
  394. package/dist/esm/internal/object.mjs +1 -1
  395. package/dist/esm/internal/staking.d.mts +6 -1
  396. package/dist/esm/internal/staking.mjs +1 -1
  397. package/dist/esm/internal/table.d.mts +4 -0
  398. package/dist/esm/internal/table.mjs +1 -1
  399. package/dist/esm/internal/transaction.d.mts +15 -0
  400. package/dist/esm/internal/transaction.mjs +1 -1
  401. package/dist/esm/internal/transactionSubmission.d.mts +17 -5
  402. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  403. package/dist/esm/internal/view.d.mts +3 -1
  404. package/dist/esm/internal/view.mjs +1 -1
  405. package/dist/esm/{publicKey-BVXX1nVl.d.mts → publicKey-BMtGNNLg.d.mts} +36 -0
  406. package/dist/esm/transactions/authenticator/account.d.mts +29 -1
  407. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  408. package/dist/esm/transactions/authenticator/index.d.mts +3 -1
  409. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  410. package/dist/esm/transactions/authenticator/transaction.d.mts +24 -2
  411. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  412. package/dist/esm/transactions/index.d.mts +6 -3
  413. package/dist/esm/transactions/index.mjs +1 -1
  414. package/dist/esm/transactions/instances/chainId.d.mts +9 -0
  415. package/dist/esm/transactions/instances/chainId.mjs +1 -1
  416. package/dist/esm/transactions/instances/identifier.d.mts +9 -0
  417. package/dist/esm/transactions/instances/identifier.mjs +1 -1
  418. package/dist/esm/transactions/instances/index.d.mts +3 -1
  419. package/dist/esm/transactions/instances/index.mjs +1 -1
  420. package/dist/esm/transactions/instances/moduleId.d.mts +11 -0
  421. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  422. package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +9 -0
  423. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  424. package/dist/esm/transactions/instances/rawTransaction.d.mts +31 -0
  425. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  426. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +8 -1
  427. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  428. package/dist/esm/transactions/instances/signedTransaction.d.mts +11 -1
  429. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  430. package/dist/esm/transactions/instances/simpleTransaction.d.mts +9 -0
  431. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  432. package/dist/esm/transactions/instances/transactionArgument.d.mts +17 -0
  433. package/dist/esm/transactions/instances/transactionPayload.d.mts +49 -0
  434. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  435. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +20 -2
  436. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  437. package/dist/esm/transactions/management/asyncQueue.d.mts +16 -0
  438. package/dist/esm/transactions/management/asyncQueue.mjs +1 -1
  439. package/dist/esm/transactions/management/index.d.mts +4 -2
  440. package/dist/esm/transactions/management/index.mjs +1 -1
  441. package/dist/esm/transactions/management/transactionWorker.d.mts +46 -7
  442. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  443. package/dist/esm/transactions/scriptComposer/index.d.mts +47 -0
  444. package/dist/esm/transactions/scriptComposer/index.mjs +2 -0
  445. package/dist/esm/transactions/scriptComposer/index.mjs.map +1 -0
  446. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +65 -1
  447. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  448. package/dist/esm/transactions/transactionBuilder/index.d.mts +4 -2
  449. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  450. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +37 -3
  451. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  452. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +11 -1
  453. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  454. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +43 -1
  455. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  456. package/dist/esm/transactions/typeTag/index.d.mts +83 -0
  457. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  458. package/dist/esm/transactions/typeTag/parser.d.mts +9 -0
  459. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  460. package/dist/esm/transactions/types.d.mts +90 -2
  461. package/dist/esm/types/index.d.mts +1 -0
  462. package/dist/esm/types/index.mjs +1 -1
  463. package/dist/esm/types/indexer.d.mts +52 -0
  464. package/dist/esm/types/keyless.d.mts +12 -0
  465. package/dist/esm/types/types.d.mts +1 -0
  466. package/dist/esm/utils/apiEndpoints.d.mts +30 -0
  467. package/dist/esm/utils/apiEndpoints.mjs +1 -1
  468. package/dist/esm/utils/const.d.mts +24 -0
  469. package/dist/esm/utils/const.mjs +1 -1
  470. package/dist/esm/utils/helpers.d.mts +21 -0
  471. package/dist/esm/utils/helpers.mjs +1 -1
  472. package/dist/esm/utils/index.d.mts +1 -0
  473. package/dist/esm/utils/index.mjs +1 -1
  474. package/dist/esm/utils/memoize.d.mts +4 -0
  475. package/dist/esm/utils/memoize.mjs +1 -1
  476. package/dist/esm/utils/normalizeBundle.d.mts +9 -0
  477. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  478. package/dist/esm/version.d.mts +1 -1
  479. package/dist/esm/version.mjs +1 -1
  480. package/package.json +10 -4
  481. package/src/account/AbstractKeylessAccount.ts +80 -9
  482. package/src/account/Account.ts +51 -6
  483. package/src/account/AccountUtils.ts +216 -0
  484. package/src/account/Ed25519Account.ts +26 -0
  485. package/src/account/EphemeralKeyPair.ts +30 -0
  486. package/src/account/FederatedKeylessAccount.ts +10 -3
  487. package/src/account/KeylessAccount.ts +13 -1
  488. package/src/account/MultiKeyAccount.ts +75 -12
  489. package/src/account/SingleKeyAccount.ts +63 -6
  490. package/src/account/index.ts +1 -0
  491. package/src/account/utils.ts +16 -0
  492. package/src/api/account.ts +22 -2
  493. package/src/api/ans.ts +15 -0
  494. package/src/api/aptos.ts +3 -0
  495. package/src/api/aptosConfig.ts +24 -0
  496. package/src/api/coin.ts +3 -0
  497. package/src/api/digitalAsset.ts +26 -0
  498. package/src/api/event.ts +6 -0
  499. package/src/api/faucet.ts +11 -2
  500. package/src/api/fungibleAsset.ts +8 -0
  501. package/src/api/general.ts +12 -0
  502. package/src/api/keyless.ts +6 -0
  503. package/src/api/object.ts +3 -0
  504. package/src/api/staking.ts +5 -0
  505. package/src/api/table.ts +5 -0
  506. package/src/api/transaction.ts +19 -3
  507. package/src/api/transactionSubmission/build.ts +89 -2
  508. package/src/api/transactionSubmission/helpers.ts +2 -0
  509. package/src/api/transactionSubmission/management.ts +5 -0
  510. package/src/api/transactionSubmission/sign.ts +4 -0
  511. package/src/api/transactionSubmission/simulate.ts +4 -0
  512. package/src/api/transactionSubmission/submit.ts +4 -0
  513. package/src/api/utils.ts +1 -0
  514. package/src/bcs/deserializer.ts +47 -1
  515. package/src/bcs/serializable/entryFunctionBytes.ts +10 -0
  516. package/src/bcs/serializable/fixedBytes.ts +12 -0
  517. package/src/bcs/serializable/movePrimitives.ts +26 -0
  518. package/src/bcs/serializable/moveStructs.ts +56 -0
  519. package/src/bcs/serializer.ts +64 -1
  520. package/src/cli/localNode.ts +22 -8
  521. package/src/cli/move.ts +26 -0
  522. package/src/client/core.ts +4 -0
  523. package/src/client/get.ts +75 -1
  524. package/src/client/post.ts +37 -0
  525. package/src/core/account/utils/address.ts +6 -0
  526. package/src/core/accountAddress.ts +46 -0
  527. package/src/core/authenticationKey.ts +22 -0
  528. package/src/core/common.ts +14 -0
  529. package/src/core/crypto/ed25519.ts +58 -4
  530. package/src/core/crypto/ephemeral.ts +22 -0
  531. package/src/core/crypto/federatedKeyless.ts +12 -0
  532. package/src/core/crypto/hdKey.ts +29 -0
  533. package/src/core/crypto/keyless.ts +134 -0
  534. package/src/core/crypto/multiEd25519.ts +40 -0
  535. package/src/core/crypto/multiKey.ts +37 -1
  536. package/src/core/crypto/poseidon.ts +20 -0
  537. package/src/core/crypto/privateKey.ts +8 -0
  538. package/src/core/crypto/proof.ts +2 -0
  539. package/src/core/crypto/publicKey.ts +14 -0
  540. package/src/core/crypto/secp256k1.ts +49 -2
  541. package/src/core/crypto/signature.ts +8 -0
  542. package/src/core/crypto/singleKey.ts +34 -2
  543. package/src/core/crypto/utils.ts +2 -0
  544. package/src/core/hex.ts +20 -0
  545. package/src/internal/account.ts +27 -7
  546. package/src/internal/ans.ts +27 -0
  547. package/src/internal/coin.ts +1 -0
  548. package/src/internal/digitalAsset.ts +30 -0
  549. package/src/internal/event.ts +6 -0
  550. package/src/internal/faucet.ts +5 -0
  551. package/src/internal/fungibleAsset.ts +5 -0
  552. package/src/internal/general.ts +7 -0
  553. package/src/internal/keyless.ts +4 -0
  554. package/src/internal/object.ts +2 -0
  555. package/src/internal/staking.ts +5 -1
  556. package/src/internal/table.ts +3 -0
  557. package/src/internal/transaction.ts +16 -0
  558. package/src/internal/transactionSubmission.ts +15 -2
  559. package/src/transactions/authenticator/account.ts +26 -0
  560. package/src/transactions/authenticator/transaction.ts +20 -0
  561. package/src/transactions/index.ts +1 -0
  562. package/src/transactions/instances/chainId.ts +8 -0
  563. package/src/transactions/instances/identifier.ts +8 -0
  564. package/src/transactions/instances/moduleId.ts +10 -0
  565. package/src/transactions/instances/multiAgentTransaction.ts +8 -0
  566. package/src/transactions/instances/rawTransaction.ts +30 -0
  567. package/src/transactions/instances/rotationProofChallenge.ts +6 -0
  568. package/src/transactions/instances/signedTransaction.ts +8 -0
  569. package/src/transactions/instances/simpleTransaction.ts +8 -0
  570. package/src/transactions/instances/transactionArgument.ts +16 -0
  571. package/src/transactions/instances/transactionPayload.ts +50 -0
  572. package/src/transactions/management/accountSequenceNumber.ts +16 -0
  573. package/src/transactions/management/asyncQueue.ts +16 -0
  574. package/src/transactions/management/transactionWorker.ts +42 -5
  575. package/src/transactions/scriptComposer/index.ts +86 -0
  576. package/src/transactions/transactionBuilder/helpers.ts +82 -10
  577. package/src/transactions/transactionBuilder/remoteAbi.ts +75 -1
  578. package/src/transactions/transactionBuilder/signingMessage.ts +10 -0
  579. package/src/transactions/transactionBuilder/transactionBuilder.ts +58 -0
  580. package/src/transactions/typeTag/index.ts +82 -0
  581. package/src/transactions/typeTag/parser.ts +24 -0
  582. package/src/transactions/types.ts +89 -0
  583. package/src/types/index.ts +1 -0
  584. package/src/types/indexer.ts +52 -0
  585. package/src/types/keyless.ts +12 -0
  586. package/src/utils/apiEndpoints.ts +30 -2
  587. package/src/utils/const.ts +24 -1
  588. package/src/utils/helpers.ts +22 -0
  589. package/src/utils/memoize.ts +6 -0
  590. package/src/utils/normalizeBundle.ts +8 -1
  591. package/src/version.ts +1 -1
  592. package/dist/common/chunk-F43XVDYJ.js.map +0 -1
  593. package/dist/esm/chunk-2C27NY4D.mjs.map +0 -1
  594. package/dist/esm/chunk-2CJC43CV.mjs.map +0 -1
  595. package/dist/esm/chunk-2ESU5N3V.mjs.map +0 -1
  596. package/dist/esm/chunk-2KSMV5KD.mjs.map +0 -1
  597. package/dist/esm/chunk-2MN7DW2J.mjs.map +0 -1
  598. package/dist/esm/chunk-2QGJDHME.mjs.map +0 -1
  599. package/dist/esm/chunk-333QBK32.mjs.map +0 -1
  600. package/dist/esm/chunk-372SLYVR.mjs +0 -2
  601. package/dist/esm/chunk-372SLYVR.mjs.map +0 -1
  602. package/dist/esm/chunk-42H7WETG.mjs.map +0 -1
  603. package/dist/esm/chunk-46O23AOD.mjs +0 -2
  604. package/dist/esm/chunk-46O23AOD.mjs.map +0 -1
  605. package/dist/esm/chunk-4DI5SPSK.mjs +0 -2
  606. package/dist/esm/chunk-4DI5SPSK.mjs.map +0 -1
  607. package/dist/esm/chunk-4DP3PEYK.mjs.map +0 -1
  608. package/dist/esm/chunk-4MTSP4S2.mjs.map +0 -1
  609. package/dist/esm/chunk-4O5XDQDO.mjs +0 -2
  610. package/dist/esm/chunk-4O5XDQDO.mjs.map +0 -1
  611. package/dist/esm/chunk-4OV2A6PJ.mjs +0 -2
  612. package/dist/esm/chunk-4OV2A6PJ.mjs.map +0 -1
  613. package/dist/esm/chunk-4XB3BB5Z.mjs.map +0 -1
  614. package/dist/esm/chunk-5B3SMBXQ.mjs +0 -2
  615. package/dist/esm/chunk-5B3SMBXQ.mjs.map +0 -1
  616. package/dist/esm/chunk-5LGKGWLX.mjs.map +0 -1
  617. package/dist/esm/chunk-5PVZ4N42.mjs.map +0 -1
  618. package/dist/esm/chunk-6Q2O5G3J.mjs.map +0 -1
  619. package/dist/esm/chunk-6ZOVTYLJ.mjs.map +0 -1
  620. package/dist/esm/chunk-7N7FEBZA.mjs.map +0 -1
  621. package/dist/esm/chunk-7T26VA2W.mjs.map +0 -1
  622. package/dist/esm/chunk-7V35JAAF.mjs.map +0 -1
  623. package/dist/esm/chunk-ACVIE7IE.mjs.map +0 -1
  624. package/dist/esm/chunk-AJ5JHBAE.mjs.map +0 -1
  625. package/dist/esm/chunk-AKIO3OIT.mjs.map +0 -1
  626. package/dist/esm/chunk-ALNQK276.mjs.map +0 -1
  627. package/dist/esm/chunk-AOROYJ74.mjs.map +0 -1
  628. package/dist/esm/chunk-BAEIZAP7.mjs.map +0 -1
  629. package/dist/esm/chunk-BRV3RLKW.mjs.map +0 -1
  630. package/dist/esm/chunk-BUAHUVAD.mjs.map +0 -1
  631. package/dist/esm/chunk-C2HCRGQU.mjs +0 -2
  632. package/dist/esm/chunk-C2HCRGQU.mjs.map +0 -1
  633. package/dist/esm/chunk-CDEYH77E.mjs +0 -2
  634. package/dist/esm/chunk-CDEYH77E.mjs.map +0 -1
  635. package/dist/esm/chunk-CX6KECGV.mjs.map +0 -1
  636. package/dist/esm/chunk-D3OEQLUE.mjs +0 -2
  637. package/dist/esm/chunk-D3OEQLUE.mjs.map +0 -1
  638. package/dist/esm/chunk-DBTKJMLV.mjs.map +0 -1
  639. package/dist/esm/chunk-DC2IESER.mjs +0 -2
  640. package/dist/esm/chunk-DC2IESER.mjs.map +0 -1
  641. package/dist/esm/chunk-EGV3HFE3.mjs.map +0 -1
  642. package/dist/esm/chunk-ELXJ5A4B.mjs +0 -2
  643. package/dist/esm/chunk-ELXJ5A4B.mjs.map +0 -1
  644. package/dist/esm/chunk-F2WY2DEY.mjs.map +0 -1
  645. package/dist/esm/chunk-FD6FGKYY.mjs +0 -1
  646. package/dist/esm/chunk-FZDEGDUY.mjs.map +0 -1
  647. package/dist/esm/chunk-G4KAHJXB.mjs.map +0 -1
  648. package/dist/esm/chunk-GAEAYY44.mjs +0 -1
  649. package/dist/esm/chunk-GMKKHGXK.mjs.map +0 -1
  650. package/dist/esm/chunk-GVNK3UMT.mjs.map +0 -1
  651. package/dist/esm/chunk-H3C3VTHS.mjs.map +0 -1
  652. package/dist/esm/chunk-HBIDHQ2M.mjs.map +0 -1
  653. package/dist/esm/chunk-HMMNQFVM.mjs.map +0 -1
  654. package/dist/esm/chunk-I5OYNCZS.mjs +0 -1
  655. package/dist/esm/chunk-IBZKCBN5.mjs.map +0 -1
  656. package/dist/esm/chunk-ICMELYCL.mjs +0 -2
  657. package/dist/esm/chunk-ICMELYCL.mjs.map +0 -1
  658. package/dist/esm/chunk-IHGA5KAD.mjs.map +0 -1
  659. package/dist/esm/chunk-IK2NYNKG.mjs.map +0 -1
  660. package/dist/esm/chunk-J3E4UMBB.mjs +0 -2
  661. package/dist/esm/chunk-J3E4UMBB.mjs.map +0 -1
  662. package/dist/esm/chunk-J7PJSK3J.mjs.map +0 -1
  663. package/dist/esm/chunk-JMPHD4BP.mjs.map +0 -1
  664. package/dist/esm/chunk-JNO7KPMG.mjs.map +0 -1
  665. package/dist/esm/chunk-KCWRCWNT.mjs.map +0 -1
  666. package/dist/esm/chunk-L4SWQLAJ.mjs.map +0 -1
  667. package/dist/esm/chunk-LA5HJILW.mjs.map +0 -1
  668. package/dist/esm/chunk-LGTOOAQI.mjs.map +0 -1
  669. package/dist/esm/chunk-LKKI2KAP.mjs.map +0 -1
  670. package/dist/esm/chunk-LPVGVTWT.mjs.map +0 -1
  671. package/dist/esm/chunk-MHN6XY4Z.mjs +0 -2
  672. package/dist/esm/chunk-MHN6XY4Z.mjs.map +0 -1
  673. package/dist/esm/chunk-N62NUAHT.mjs.map +0 -1
  674. package/dist/esm/chunk-NK67FECB.mjs.map +0 -1
  675. package/dist/esm/chunk-OIOGOW6I.mjs.map +0 -1
  676. package/dist/esm/chunk-OPO5EYF7.mjs.map +0 -1
  677. package/dist/esm/chunk-P6KX7AS2.mjs +0 -2
  678. package/dist/esm/chunk-P6KX7AS2.mjs.map +0 -1
  679. package/dist/esm/chunk-PMGK5IHB.mjs.map +0 -1
  680. package/dist/esm/chunk-PXMNAP2Q.mjs.map +0 -1
  681. package/dist/esm/chunk-QI7OREBM.mjs.map +0 -1
  682. package/dist/esm/chunk-RCA73RVB.mjs.map +0 -1
  683. package/dist/esm/chunk-S5SQJRAV.mjs.map +0 -1
  684. package/dist/esm/chunk-SK3LIS4Z.mjs.map +0 -1
  685. package/dist/esm/chunk-SNYYEVJA.mjs.map +0 -1
  686. package/dist/esm/chunk-SPRNSFUV.mjs.map +0 -1
  687. package/dist/esm/chunk-T6ADNZE5.mjs.map +0 -1
  688. package/dist/esm/chunk-TCXYTPUR.mjs +0 -2
  689. package/dist/esm/chunk-TCXYTPUR.mjs.map +0 -1
  690. package/dist/esm/chunk-U3T4ZT7B.mjs.map +0 -1
  691. package/dist/esm/chunk-U6OCK6T4.mjs.map +0 -1
  692. package/dist/esm/chunk-UFPYCROT.mjs.map +0 -1
  693. package/dist/esm/chunk-UGIHQFID.mjs.map +0 -1
  694. package/dist/esm/chunk-UGTIALNW.mjs +0 -2
  695. package/dist/esm/chunk-V4FKFCBL.mjs.map +0 -1
  696. package/dist/esm/chunk-V5NDNR36.mjs +0 -2
  697. package/dist/esm/chunk-V5NDNR36.mjs.map +0 -1
  698. package/dist/esm/chunk-VIZHWYI5.mjs.map +0 -1
  699. package/dist/esm/chunk-VQZMI3EZ.mjs.map +0 -1
  700. package/dist/esm/chunk-VWGB5BHW.mjs.map +0 -1
  701. package/dist/esm/chunk-WFK3XRQX.mjs.map +0 -1
  702. package/dist/esm/chunk-XOLU6UP3.mjs.map +0 -1
  703. package/dist/esm/chunk-XZN344G4.mjs.map +0 -1
  704. package/dist/esm/chunk-YD2BMHH7.mjs +0 -2
  705. package/dist/esm/chunk-YEWZAR76.mjs.map +0 -1
  706. package/dist/esm/chunk-YJVZFYBX.mjs.map +0 -1
  707. package/dist/esm/chunk-ZMBXHMVQ.mjs.map +0 -1
  708. package/dist/esm/chunk-ZMMLM6ZJ.mjs.map +0 -1
  709. package/dist/esm/chunk-ZMS3AOEZ.mjs.map +0 -1
  710. package/dist/esm/chunk-ZXVN3HXB.mjs.map +0 -1
  711. /package/dist/esm/{chunk-FD6FGKYY.mjs.map → account/AccountUtils.mjs.map} +0 -0
  712. /package/dist/esm/{chunk-GAEAYY44.mjs.map → account/utils.mjs.map} +0 -0
  713. /package/dist/esm/{chunk-I5OYNCZS.mjs.map → chunk-GP4TLDVZ.mjs.map} +0 -0
  714. /package/dist/esm/{chunk-NZ7M6NG2.mjs.map → chunk-KFCLSJC3.mjs.map} +0 -0
  715. /package/dist/esm/{chunk-F45G3GP3.mjs.map → chunk-QHEKBHNU.mjs.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/transactions/transactionBuilder/transactionBuilder.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This file handles the transaction creation lifecycle.\n * It holds different operations to generate a transaction payload, a raw transaction,\n * and a signed transaction that can be simulated, signed and submitted to chain.\n */\nimport { sha3_256 as sha3Hash } from \"@noble/hashes/sha3\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport { AccountAddress, AccountAddressInput, Hex, PublicKey } from \"../../core\";\nimport {\n AnyPublicKey,\n AnySignature,\n KeylessPublicKey,\n KeylessSignature,\n Secp256k1PublicKey,\n FederatedKeylessPublicKey,\n MultiKey,\n MultiKeySignature,\n} from \"../../core/crypto\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"../../core/crypto/ed25519\";\nimport { getInfo } from \"../../internal/account\";\nimport { getLedgerInfo } from \"../../internal/general\";\nimport { getGasPriceEstimation } from \"../../internal/transaction\";\nimport { NetworkToChainId } from \"../../utils/apiEndpoints\";\nimport { DEFAULT_MAX_GAS_AMOUNT, DEFAULT_TXN_EXP_SEC_FROM_NOW } from \"../../utils/const\";\nimport { normalizeBundle } from \"../../utils/normalizeBundle\";\nimport {\n AccountAuthenticator,\n AccountAuthenticatorEd25519,\n AccountAuthenticatorMultiKey,\n AccountAuthenticatorNoAccountAuthenticator,\n AccountAuthenticatorSingleKey,\n} from \"../authenticator/account\";\nimport {\n TransactionAuthenticator,\n TransactionAuthenticatorEd25519,\n TransactionAuthenticatorFeePayer,\n TransactionAuthenticatorMultiAgent,\n TransactionAuthenticatorSingleSender,\n} from \"../authenticator/transaction\";\nimport {\n ChainId,\n EntryFunction,\n FeePayerRawTransaction,\n MultiAgentRawTransaction,\n MultiSig,\n MultiSigTransactionPayload,\n RawTransaction,\n Script,\n TransactionPayloadEntryFunction,\n TransactionPayloadMultiSig,\n TransactionPayloadScript,\n} from \"../instances\";\nimport { SignedTransaction } from \"../instances/signedTransaction\";\nimport {\n AnyRawTransaction,\n AnyTransactionPayloadInstance,\n EntryFunctionArgumentTypes,\n InputGenerateMultiAgentRawTransactionArgs,\n InputGenerateRawTransactionArgs,\n InputGenerateSingleSignerRawTransactionArgs,\n InputGenerateTransactionOptions,\n InputScriptData,\n InputSimulateTransactionData,\n InputMultiSigDataWithRemoteABI,\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadDataWithRemoteABI,\n InputSubmitTransactionData,\n InputGenerateTransactionPayloadDataWithABI,\n InputEntryFunctionDataWithABI,\n InputMultiSigDataWithABI,\n InputViewFunctionDataWithRemoteABI,\n InputViewFunctionDataWithABI,\n FunctionABI,\n} from \"../types\";\nimport { convertArgument, fetchEntryFunctionAbi, fetchViewFunctionAbi, standardizeTypeTags } from \"./remoteAbi\";\nimport { memoizeAsync } from \"../../utils/memoize\";\nimport { getFunctionParts, isScriptDataInput } from \"./helpers\";\nimport { SimpleTransaction } from \"../instances/simpleTransaction\";\nimport { MultiAgentTransaction } from \"../instances/multiAgentTransaction\";\n\n/**\n * Builds a transaction payload based on the provided arguments and returns a transaction payload.\n * This function uses the RemoteABI by default, but can also utilize a specified ABI.\n * When we call our `generateTransactionPayload` function with the relevant type properties,\n * Typescript can infer the return type based on the appropriate function overload.\n * @param args - The input data for generating the transaction payload.\n * @param args.function - The function to be called, specified in the format \"moduleAddress::moduleName::functionName\".\n * @param args.functionArguments - The arguments to pass to the function.\n * @param args.typeArguments - The type arguments for the function.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param args.abi - The ABI to use for the transaction, if not using the RemoteABI.\n *\n * @returns TransactionPayload - The generated transaction payload, which can be of type TransactionPayloadScript,\n * TransactionPayloadMultiSig, or TransactionPayloadEntryFunction.\n * @group Implementation\n * @category Transactions\n */\nexport async function generateTransactionPayload(args: InputScriptData): Promise<TransactionPayloadScript>;\n/**\n * @group Implementation\n * @category Transactions\n */\nexport async function generateTransactionPayload(\n args: InputEntryFunctionDataWithRemoteABI,\n): Promise<TransactionPayloadEntryFunction>;\n/**\n * @group Implementation\n * @category Transactions\n */\nexport async function generateTransactionPayload(\n args: InputMultiSigDataWithRemoteABI,\n): Promise<TransactionPayloadMultiSig>;\n\n/**\n * Builds a transaction payload based on the data argument and returns\n * a transaction payload - TransactionPayloadScript | TransactionPayloadMultiSig | TransactionPayloadEntryFunction\n *\n * This uses the RemoteABI by default, and the remote ABI can be skipped by using generateTransactionPayloadWithABI\n *\n * @param args.data GenerateTransactionPayloadData\n *\n * @return TransactionPayload\n * @group Implementation\n * @category Transactions\n */\nexport async function generateTransactionPayload(\n args: InputGenerateTransactionPayloadDataWithRemoteABI,\n): Promise<AnyTransactionPayloadInstance> {\n if (isScriptDataInput(args)) {\n return generateTransactionPayloadScript(args);\n }\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n const functionAbi = await fetchAbi({\n key: \"entry-function\",\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig: args.aptosConfig,\n abi: args.abi,\n fetch: fetchEntryFunctionAbi,\n });\n\n // Fill in the ABI\n return generateTransactionPayloadWithABI({ ...args, abi: functionAbi });\n}\n\n/**\n * Generates a transaction payload using the provided ABI and function details.\n * This function helps create a properly structured transaction payload for executing a specific function on a module.\n *\n * @param args - The input data required to generate the transaction payload.\n * @param args.abi - The ABI of the function to be executed.\n * @param args.function - The fully qualified name of the function in the format `moduleAddress::moduleName::functionName`.\n * @param args.typeArguments - An array of type arguments that correspond to the function's type parameters.\n * @param args.functionArguments - An array of arguments to be passed to the function.\n * @param args.multisigAddress - (Optional) The address for a multisig transaction if applicable.\n *\n * @throws Error if the type argument count does not match the ABI or if the number of function arguments is incorrect.\n * @group Implementation\n * @category Transactions\n */\nexport function generateTransactionPayloadWithABI(args: InputEntryFunctionDataWithABI): TransactionPayloadEntryFunction;\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function generateTransactionPayloadWithABI(args: InputMultiSigDataWithABI): TransactionPayloadMultiSig;\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function generateTransactionPayloadWithABI(\n args: InputGenerateTransactionPayloadDataWithABI,\n): AnyTransactionPayloadInstance {\n const functionAbi = args.abi;\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n // Ensure that all type arguments are typed properly\n const typeArguments = standardizeTypeTags(args.typeArguments);\n\n // Check the type argument count against the ABI\n if (typeArguments.length !== functionAbi.typeParameters.length) {\n throw new Error(\n `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`,\n );\n }\n\n // Check all BCS types, and convert any non-BCS types\n const functionArguments: Array<EntryFunctionArgumentTypes> = args.functionArguments.map((arg, i) =>\n /**\n * Converts the argument for a specified function using its ABI and type arguments.\n * This function helps ensure that the correct number of arguments is provided for the function call.\n *\n * @param args - The arguments for the function call.\n * @param args.function - The specific function to be invoked.\n * @param functionAbi - The ABI (Application Binary Interface) of the function, which includes parameter details.\n * @param arg - The argument to be converted.\n * @param i - The index of the argument in the function call.\n * @param typeArguments - Additional type arguments that may be required for the conversion.\n * @group Implementation\n * @category Transactions\n */\n // TODO: Fix JSDoc\n convertArgument(args.function, functionAbi, arg, i, typeArguments),\n );\n\n // Check that all arguments are accounted for\n if (functionArguments.length !== functionAbi.parameters.length) {\n throw new Error(\n // eslint-disable-next-line max-len\n `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`,\n );\n }\n\n // Generate entry function payload\n const entryFunctionPayload = EntryFunction.build(\n `${moduleAddress}::${moduleName}`,\n functionName,\n typeArguments,\n functionArguments,\n );\n\n // Send it as multi sig if it's a multisig payload\n if (\"multisigAddress\" in args) {\n const multisigAddress = AccountAddress.from(args.multisigAddress);\n return new TransactionPayloadMultiSig(\n new MultiSig(multisigAddress, new MultiSigTransactionPayload(entryFunctionPayload)),\n );\n }\n\n // Otherwise send as an entry function\n return new TransactionPayloadEntryFunction(entryFunctionPayload);\n}\n\n/**\n * Generates the payload for a view function call using the provided arguments.\n * This function helps in preparing the necessary data to interact with a specific view function on the blockchain.\n *\n * @param args - The input data required to generate the view function payload.\n * @param args.function - The function identifier in the format \"moduleAddress::moduleName::functionName\".\n * @param args.aptosConfig - Configuration settings for the Aptos client.\n * @param args.abi - The ABI (Application Binary Interface) of the module.\n *\n * @returns The generated payload for the view function call.\n * @group Implementation\n * @category Transactions\n */\nexport async function generateViewFunctionPayload(args: InputViewFunctionDataWithRemoteABI): Promise<EntryFunction> {\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n const functionAbi = await fetchAbi({\n key: \"view-function\",\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig: args.aptosConfig,\n abi: args.abi,\n fetch: fetchViewFunctionAbi,\n });\n\n // Fill in the ABI\n return generateViewFunctionPayloadWithABI({ abi: functionAbi, ...args });\n}\n\n/**\n * Generates a payload for a view function call using the provided ABI and arguments.\n * This function ensures that the type arguments and function arguments are correctly formatted\n * and match the expected counts as defined in the ABI.\n *\n * @param args - The input data for generating the view function payload.\n * @param args.abi - The ABI of the function to be called.\n * @param args.function - The full name of the function in the format \"moduleAddress::moduleName::functionName\".\n * @param args.typeArguments - An array of type arguments to be used in the function call.\n * @param args.functionArguments - An array of arguments to be passed to the function.\n *\n * @throws Error if the type argument count does not match the ABI or if the function arguments\n * do not match the expected parameters defined in the ABI.\n * @group Implementation\n * @category Transactions\n */\nexport function generateViewFunctionPayloadWithABI(args: InputViewFunctionDataWithABI): EntryFunction {\n const functionAbi = args.abi;\n const { moduleAddress, moduleName, functionName } = getFunctionParts(args.function);\n\n // Ensure that all type arguments are typed properly\n const typeArguments = standardizeTypeTags(args.typeArguments);\n\n // Check the type argument count against the ABI\n if (typeArguments.length !== functionAbi.typeParameters.length) {\n throw new Error(\n `Type argument count mismatch, expected ${functionAbi.typeParameters.length}, received ${typeArguments.length}`,\n );\n }\n\n // Check all BCS types, and convert any non-BCS types\n const functionArguments: Array<EntryFunctionArgumentTypes> =\n args?.functionArguments?.map((arg, i) => convertArgument(args.function, functionAbi, arg, i, typeArguments)) ?? [];\n\n // Check that all arguments are accounted for\n if (functionArguments.length !== functionAbi.parameters.length) {\n throw new Error(\n // eslint-disable-next-line max-len\n `Too few arguments for '${moduleAddress}::${moduleName}::${functionName}', expected ${functionAbi.parameters.length} but got ${functionArguments.length}`,\n );\n }\n\n // Generate entry function payload\n return EntryFunction.build(`${moduleAddress}::${moduleName}`, functionName, typeArguments, functionArguments);\n}\n\n/**\n * Generates a transaction payload script based on the provided input data.\n * This function helps in creating a structured script for transaction processing.\n *\n * @param args - The input data required to generate the transaction payload script.\n * @param args.bytecode - The bytecode to be converted into a Uint8Array.\n * @param args.typeArguments - The type arguments that will be standardized.\n * @param args.functionArguments - The arguments for the function being called.\n * @returns A new instance of TransactionPayloadScript.\n * @group Implementation\n * @category Transactions\n */\nfunction generateTransactionPayloadScript(args: InputScriptData) {\n return new TransactionPayloadScript(\n new Script(\n Hex.fromHexInput(args.bytecode).toUint8Array(),\n standardizeTypeTags(args.typeArguments),\n args.functionArguments,\n ),\n );\n}\n\n/**\n * Generates a raw transaction that can be sent to the Aptos network.\n *\n * @param args - The arguments for generating the raw transaction.\n * @param args.aptosConfig - The configuration for the Aptos network.\n * @param args.sender - The transaction's sender account address as a hex input.\n * @param args.payload - The transaction payload, which can be created using generateTransactionPayload().\n * @param args.options - Optional parameters for transaction generation.\n * @param args.feePayerAddress - The address of the fee payer for sponsored transactions.\n *\n * @returns RawTransaction - The generated raw transaction.\n * @group Implementation\n * @category Transactions\n */\nexport async function generateRawTransaction(args: {\n aptosConfig: AptosConfig;\n sender: AccountAddressInput;\n payload: AnyTransactionPayloadInstance;\n options?: InputGenerateTransactionOptions;\n feePayerAddress?: AccountAddressInput;\n}): Promise<RawTransaction> {\n const { aptosConfig, sender, payload, options, feePayerAddress } = args;\n\n const getChainId = async () => {\n if (NetworkToChainId[aptosConfig.network]) {\n return { chainId: NetworkToChainId[aptosConfig.network] };\n }\n const info = await getLedgerInfo({ aptosConfig });\n return { chainId: info.chain_id };\n };\n\n const getGasUnitPrice = async () => {\n if (options?.gasUnitPrice) {\n return { gasEstimate: options.gasUnitPrice };\n }\n const estimation = await getGasPriceEstimation({ aptosConfig });\n return { gasEstimate: estimation.gas_estimate };\n };\n\n const getSequenceNumberForAny = async () => {\n const getSequenceNumber = async () => {\n if (options?.accountSequenceNumber !== undefined) {\n return options.accountSequenceNumber;\n }\n\n return (await getInfo({ aptosConfig, accountAddress: sender })).sequence_number;\n };\n\n /**\n * Check if is sponsored transaction to honor AIP-52\n * {@link https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-52.md}\n * @group Implementation\n * @category Transactions\n */\n if (feePayerAddress && AccountAddress.from(feePayerAddress).equals(AccountAddress.ZERO)) {\n // Handle sponsored transaction generation with the option that\n // the main signer has not been created on chain\n try {\n // Check if main signer has been created on chain, if not assign sequence number 0\n return await getSequenceNumber();\n } catch (e: any) {\n return 0;\n }\n } else {\n return getSequenceNumber();\n }\n };\n const [{ chainId }, { gasEstimate }, sequenceNumber] = await Promise.all([\n getChainId(),\n getGasUnitPrice(),\n getSequenceNumberForAny(),\n ]);\n\n const { maxGasAmount, gasUnitPrice, expireTimestamp } = {\n maxGasAmount: options?.maxGasAmount ? BigInt(options.maxGasAmount) : BigInt(DEFAULT_MAX_GAS_AMOUNT),\n gasUnitPrice: options?.gasUnitPrice ?? BigInt(gasEstimate),\n expireTimestamp: options?.expireTimestamp ?? BigInt(Math.floor(Date.now() / 1000) + DEFAULT_TXN_EXP_SEC_FROM_NOW),\n };\n\n return new RawTransaction(\n AccountAddress.from(sender),\n BigInt(sequenceNumber),\n payload,\n BigInt(maxGasAmount),\n BigInt(gasUnitPrice),\n BigInt(expireTimestamp),\n new ChainId(chainId),\n );\n}\n\n/**\n * Generates a transaction based on the provided arguments.\n * This function can create both simple and multi-agent transactions, allowing for flexible transaction handling.\n *\n * @param args - The input arguments for generating the transaction.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param args.sender - The transaction's sender account address as a hex input.\n * @param args.payload - The transaction payload, which can be created using `generateTransactionPayload()`.\n * @param args.options - Optional. Transaction options object.\n * @param args.secondarySignerAddresses - Optional. An array of addresses for additional signers in a multi-signature transaction.\n * @param args.feePayerAddress - Optional. The address of the fee payer for sponsored transactions.\n * @returns An instance of a transaction, which may include secondary signer addresses and a fee payer address.\n * @group Implementation\n * @category Transactions\n */\nexport async function buildTransaction(args: InputGenerateSingleSignerRawTransactionArgs): Promise<SimpleTransaction>;\n/**\n * @group Implementation\n * @category Transactions\n */\nexport async function buildTransaction(args: InputGenerateMultiAgentRawTransactionArgs): Promise<MultiAgentTransaction>;\n\n/**\n * Generates a transaction based on the provided arguments\n *\n * Note: we can start with one function to support all different payload/transaction types,\n * and if to complex to use, we could have function for each type\n *\n * @param args.aptosConfig AptosConfig\n * @param args.sender The transaction's sender account address as a hex input\n * @param args.payload The transaction payload - can create by using generateTransactionPayload()\n * @param args.options optional. Transaction options object\n * @param args.secondarySignerAddresses optional. For when want to create a multi signers transaction\n * @param args.feePayerAddress optional. For when want to create a fee payer (aka sponsored) transaction\n *\n * @return An instance of a RawTransaction, plus optional secondary/fee payer addresses\n * ```\n * {\n * rawTransaction: RawTransaction,\n * secondarySignerAddresses?: Array<AccountAddress>,\n * feePayerAddress?: AccountAddress\n * }\n * ```\n * @group Implementation\n * @category Transactions\n */\nexport async function buildTransaction(args: InputGenerateRawTransactionArgs): Promise<AnyRawTransaction> {\n const { aptosConfig, sender, payload, options, feePayerAddress } = args;\n // generate raw transaction\n const rawTxn = await generateRawTransaction({\n aptosConfig,\n sender,\n payload,\n options,\n feePayerAddress,\n });\n\n // if multi agent transaction\n if (\"secondarySignerAddresses\" in args) {\n const signers: Array<AccountAddress> =\n args.secondarySignerAddresses?.map((signer) => AccountAddress.from(signer)) ?? [];\n\n return new MultiAgentTransaction(\n rawTxn,\n signers,\n args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : undefined,\n );\n }\n // return the raw transaction\n return new SimpleTransaction(rawTxn, args.feePayerAddress ? AccountAddress.from(args.feePayerAddress) : undefined);\n}\n\n/**\n * Generate a signed transaction for simulation before submitting it to the chain.\n * This function helps in preparing a transaction that can be simulated, allowing users to verify its validity and expected behavior.\n *\n * @param args - The input data required to generate the signed transaction for simulation.\n * @param args.transaction - An Aptos transaction type to sign.\n * @param args.signerPublicKey - The public key of the signer.\n * @param args.secondarySignersPublicKeys - Optional. The public keys of secondary signers if it is a multi-signer transaction.\n * @param args.feePayerPublicKey - Optional. The public key of the fee payer in a sponsored transaction.\n * @param args.options - Optional. Additional options for simulating the transaction.\n *\n * @returns A signed serialized transaction that can be simulated.\n * @group Implementation\n * @category Transactions\n */\nexport function generateSignedTransactionForSimulation(args: InputSimulateTransactionData): Uint8Array {\n const { signerPublicKey, transaction, secondarySignersPublicKeys, feePayerPublicKey } = args;\n\n const accountAuthenticator = getAuthenticatorForSimulation(signerPublicKey);\n\n // fee payer transaction\n if (transaction.feePayerAddress) {\n const transactionToSign = new FeePayerRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses ?? [],\n transaction.feePayerAddress,\n );\n let secondaryAccountAuthenticators: Array<AccountAuthenticator> = [];\n if (transaction.secondarySignerAddresses) {\n if (secondarySignersPublicKeys) {\n secondaryAccountAuthenticators = secondarySignersPublicKeys.map((publicKey) =>\n getAuthenticatorForSimulation(publicKey),\n );\n } else {\n secondaryAccountAuthenticators = Array.from({ length: transaction.secondarySignerAddresses.length }, () =>\n getAuthenticatorForSimulation(undefined),\n );\n }\n }\n const feePayerAuthenticator = getAuthenticatorForSimulation(feePayerPublicKey);\n\n const transactionAuthenticator = new TransactionAuthenticatorFeePayer(\n accountAuthenticator,\n transaction.secondarySignerAddresses ?? [],\n secondaryAccountAuthenticators,\n {\n address: transaction.feePayerAddress,\n authenticator: feePayerAuthenticator,\n },\n );\n return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator).bcsToBytes();\n }\n\n // multi agent transaction\n if (transaction.secondarySignerAddresses) {\n const transactionToSign = new MultiAgentRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses,\n );\n\n let secondaryAccountAuthenticators: Array<AccountAuthenticator> = [];\n\n if (secondarySignersPublicKeys) {\n secondaryAccountAuthenticators = secondarySignersPublicKeys.map((publicKey) =>\n getAuthenticatorForSimulation(publicKey),\n );\n } else {\n secondaryAccountAuthenticators = Array.from({ length: transaction.secondarySignerAddresses.length }, () =>\n getAuthenticatorForSimulation(undefined),\n );\n }\n\n const transactionAuthenticator = new TransactionAuthenticatorMultiAgent(\n accountAuthenticator,\n transaction.secondarySignerAddresses,\n secondaryAccountAuthenticators,\n );\n\n return new SignedTransaction(transactionToSign.raw_txn, transactionAuthenticator).bcsToBytes();\n }\n\n // single signer raw transaction\n let transactionAuthenticator;\n if (accountAuthenticator instanceof AccountAuthenticatorEd25519) {\n transactionAuthenticator = new TransactionAuthenticatorEd25519(\n accountAuthenticator.public_key,\n accountAuthenticator.signature,\n );\n } else if (\n accountAuthenticator instanceof AccountAuthenticatorSingleKey ||\n accountAuthenticator instanceof AccountAuthenticatorMultiKey\n ) {\n transactionAuthenticator = new TransactionAuthenticatorSingleSender(accountAuthenticator);\n } else if (accountAuthenticator instanceof AccountAuthenticatorNoAccountAuthenticator) {\n transactionAuthenticator = new TransactionAuthenticatorSingleSender(accountAuthenticator);\n } else {\n throw new Error(\"Invalid public key\");\n }\n return new SignedTransaction(transaction.rawTransaction, transactionAuthenticator).bcsToBytes();\n}\n\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function getAuthenticatorForSimulation(publicKey?: PublicKey) {\n if (!publicKey) {\n return new AccountAuthenticatorNoAccountAuthenticator();\n }\n\n // Wrap the public key types below with AnyPublicKey as they are only support through single sender.\n // Learn more about AnyPublicKey here - https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-55.md\n const convertToAnyPublicKey =\n KeylessPublicKey.isInstance(publicKey) ||\n FederatedKeylessPublicKey.isInstance(publicKey) ||\n Secp256k1PublicKey.isInstance(publicKey);\n const accountPublicKey = convertToAnyPublicKey ? new AnyPublicKey(publicKey) : publicKey;\n\n // No need to for the signature to be matching in scheme. All that matters for simulations is that it's not valid\n const invalidSignature = new Ed25519Signature(new Uint8Array(64));\n\n if (Ed25519PublicKey.isInstance(accountPublicKey)) {\n return new AccountAuthenticatorEd25519(accountPublicKey, invalidSignature);\n }\n\n if (AnyPublicKey.isInstance(accountPublicKey)) {\n if (KeylessPublicKey.isInstance(accountPublicKey.publicKey)) {\n return new AccountAuthenticatorSingleKey(\n accountPublicKey,\n new AnySignature(KeylessSignature.getSimulationSignature()),\n );\n }\n return new AccountAuthenticatorSingleKey(accountPublicKey, new AnySignature(invalidSignature));\n }\n\n if (MultiKey.isInstance(accountPublicKey)) {\n return new AccountAuthenticatorMultiKey(\n accountPublicKey,\n new MultiKeySignature({\n signatures: accountPublicKey.publicKeys.map(() => new AnySignature(invalidSignature)),\n bitmap: accountPublicKey.createBitmap({\n bits: Array(accountPublicKey.publicKeys.length)\n .fill(0)\n .map((_, i) => i),\n }),\n }),\n );\n }\n\n throw new Error(\"Unsupported PublicKey used for simulations\");\n}\n\n/**\n * Generate a signed transaction ready for submission to the blockchain.\n * This function prepares the transaction by authenticating the sender and any additional signers based on the provided arguments.\n *\n * @param args - The input data required to generate the signed transaction.\n * @param args.transaction - An Aptos transaction type containing the details of the transaction.\n * @param args.senderAuthenticator - The account authenticator of the transaction sender.\n * @param args.feePayerAuthenticator - The authenticator for the fee payer, required if the transaction has a fee payer address.\n * @param args.additionalSignersAuthenticators - Optional authenticators for additional signers in a multi-signer transaction.\n *\n * @returns A Uint8Array representing the signed transaction in bytes.\n *\n * @throws Error if the feePayerAuthenticator is not provided for a fee payer transaction.\n * @throws Error if additionalSignersAuthenticators are not provided for a multi-signer transaction.\n * @group Implementation\n * @category Transactions\n */\nexport function generateSignedTransaction(args: InputSubmitTransactionData): Uint8Array {\n const { transaction, feePayerAuthenticator, additionalSignersAuthenticators } = args;\n const senderAuthenticator = normalizeBundle(AccountAuthenticator, args.senderAuthenticator);\n\n let txnAuthenticator: TransactionAuthenticator;\n if (transaction.feePayerAddress) {\n if (!feePayerAuthenticator) {\n throw new Error(\"Must provide a feePayerAuthenticator argument to generate a signed fee payer transaction\");\n }\n txnAuthenticator = new TransactionAuthenticatorFeePayer(\n senderAuthenticator,\n transaction.secondarySignerAddresses ?? [],\n additionalSignersAuthenticators ?? [],\n {\n address: transaction.feePayerAddress,\n authenticator: feePayerAuthenticator,\n },\n );\n } else if (transaction.secondarySignerAddresses) {\n if (!additionalSignersAuthenticators) {\n throw new Error(\n \"Must provide a additionalSignersAuthenticators argument to generate a signed multi agent transaction\",\n );\n }\n txnAuthenticator = new TransactionAuthenticatorMultiAgent(\n senderAuthenticator,\n transaction.secondarySignerAddresses,\n additionalSignersAuthenticators,\n );\n } else if (senderAuthenticator instanceof AccountAuthenticatorEd25519) {\n txnAuthenticator = new TransactionAuthenticatorEd25519(\n senderAuthenticator.public_key,\n senderAuthenticator.signature,\n );\n } else {\n txnAuthenticator = new TransactionAuthenticatorSingleSender(senderAuthenticator);\n }\n\n return new SignedTransaction(transaction.rawTransaction, txnAuthenticator).bcsToBytes();\n}\n\n/**\n * Hashes the set of values using a SHA-3 256 hash algorithm.\n * @param input - An array of UTF-8 strings or Uint8Array byte arrays to be hashed.\n * @group Implementation\n * @category Transactions\n */\nexport function hashValues(input: (Uint8Array | string)[]): Uint8Array {\n const hash = sha3Hash.create();\n for (const item of input) {\n hash.update(item);\n }\n return hash.digest();\n}\n\n/**\n * The domain separated prefix for hashing transactions\n * @group Implementation\n * @category Transactions\n */\nconst TRANSACTION_PREFIX = hashValues([\"APTOS::Transaction\"]);\n\n/**\n * Generates a user transaction hash for the provided transaction payload, which must already have an authenticator.\n * This function helps ensure the integrity and uniqueness of the transaction by producing a hash based on the signed transaction data.\n *\n * @param args - The input data required to submit the transaction.\n * @param args.authenticator - The authenticator for the transaction.\n * @param args.payload - The payload containing the transaction details.\n * @param args.sender - The address of the sender initiating the transaction.\n * @param args.sequenceNumber - The sequence number of the transaction for the sender.\n * @group Implementation\n * @category Transactions\n */\nexport function generateUserTransactionHash(args: InputSubmitTransactionData): string {\n const signedTransaction = generateSignedTransaction(args);\n\n // Transaction signature is defined as, the domain separated prefix based on struct (Transaction)\n // Then followed by the type of the transaction for the enum, UserTransaction is 0\n // Then followed by BCS encoded bytes of the signed transaction\n return new Hex(hashValues([TRANSACTION_PREFIX, new Uint8Array([0]), signedTransaction])).toString();\n}\n\n/**\n * Fetches and caches ABIs while allowing for pass-through on provided ABIs.\n *\n * @param key - A unique identifier for the cached ABI.\n * @param moduleAddress - The address of the module from which to fetch the ABI.\n * @param moduleName - The name of the module containing the function.\n * @param functionName - The name of the function whose ABI is being fetched.\n * @param aptosConfig - Configuration settings for Aptos.\n * @param abi - An optional ABI to use if already available.\n * @param fetch - A function to fetch the ABI if it is not provided.\n * @group Implementation\n * @category Transactions\n */\nasync function fetchAbi<T extends FunctionABI>({\n key,\n moduleAddress,\n moduleName,\n functionName,\n aptosConfig,\n abi,\n fetch,\n}: {\n key: string;\n moduleAddress: string;\n moduleName: string;\n functionName: string;\n aptosConfig: AptosConfig;\n abi?: T;\n fetch: (moduleAddress: string, moduleName: string, functionName: string, aptosConfig: AptosConfig) => Promise<T>;\n}): Promise<T> {\n if (abi !== undefined) {\n return abi;\n }\n\n // We fetch the entry function ABI, and then pretend that we already had the ABI\n return memoizeAsync(\n async () => fetch(moduleAddress, moduleName, functionName, aptosConfig),\n `${key}-${aptosConfig.network}-${moduleAddress}-${moduleName}-${functionName}`,\n 1000 * 60 * 5, // 5 minutes\n )();\n}\n"],"mappings":"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","names":["sha3Hash","generateTransactionPayload","args","isScriptDataInput","generateTransactionPayloadScript","moduleAddress","moduleName","functionName","getFunctionParts","functionAbi","fetchAbi","fetchEntryFunctionAbi","generateTransactionPayloadWithABI","typeArguments","standardizeTypeTags","functionArguments","arg","i","convertArgument","entryFunctionPayload","EntryFunction","multisigAddress","AccountAddress","TransactionPayloadMultiSig","MultiSig","MultiSigTransactionPayload","TransactionPayloadEntryFunction","generateViewFunctionPayload","fetchViewFunctionAbi","generateViewFunctionPayloadWithABI","TransactionPayloadScript","Script","Hex","generateRawTransaction","aptosConfig","sender","payload","options","feePayerAddress","getChainId","NetworkToChainId","getLedgerInfo","getGasUnitPrice","getGasPriceEstimation","getSequenceNumberForAny","getSequenceNumber","getInfo","chainId","gasEstimate","sequenceNumber","maxGasAmount","gasUnitPrice","expireTimestamp","RawTransaction","ChainId","buildTransaction","rawTxn","signers","signer","MultiAgentTransaction","SimpleTransaction","generateSignedTransactionForSimulation","signerPublicKey","transaction","secondarySignersPublicKeys","feePayerPublicKey","accountAuthenticator","getAuthenticatorForSimulation","transactionToSign","FeePayerRawTransaction","secondaryAccountAuthenticators","publicKey","feePayerAuthenticator","transactionAuthenticator","TransactionAuthenticatorFeePayer","SignedTransaction","MultiAgentRawTransaction","TransactionAuthenticatorMultiAgent","AccountAuthenticatorEd25519","TransactionAuthenticatorEd25519","AccountAuthenticatorSingleKey","AccountAuthenticatorMultiKey","TransactionAuthenticatorSingleSender","AccountAuthenticatorNoAccountAuthenticator","accountPublicKey","KeylessPublicKey","FederatedKeylessPublicKey","Secp256k1PublicKey","AnyPublicKey","invalidSignature","Ed25519Signature","Ed25519PublicKey","AnySignature","KeylessSignature","MultiKey","MultiKeySignature","_","generateSignedTransaction","additionalSignersAuthenticators","senderAuthenticator","normalizeBundle","AccountAuthenticator","txnAuthenticator","hashValues","input","hash","sha3Hash","item","TRANSACTION_PREFIX","generateUserTransactionHash","signedTransaction","key","abi","fetch","memoizeAsync"]}
@@ -0,0 +1,2 @@
1
+ import{b as s}from"./chunk-Q4C4U6I4.mjs";import{E as r}from"./chunk-U2PRGW4O.mjs";function o(i){let e=i.deserializeUleb128AsU32();if(!Object.values(r).includes(e))throw new Error(`Deserialization of Account failed: SigningScheme variant ${e} is invalid`);return{address:s.deserialize(i),signingScheme:e}}export{o as a};
2
+ //# sourceMappingURL=chunk-JJM6ELMS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/account/utils.ts"],"sourcesContent":["import { SigningScheme } from \"../types\";\nimport { AccountAddress } from \"../core\";\nimport { Deserializer } from \"../bcs/deserializer\";\n\nexport function deserializeSchemeAndAddress(deserializer: Deserializer): {\n address: AccountAddress;\n signingScheme: SigningScheme;\n} {\n const signingScheme = deserializer.deserializeUleb128AsU32();\n // Validate that signingScheme is a valid SigningScheme value\n if (!Object.values(SigningScheme).includes(signingScheme)) {\n throw new Error(`Deserialization of Account failed: SigningScheme variant ${signingScheme} is invalid`);\n }\n const address = AccountAddress.deserialize(deserializer);\n return { address, signingScheme };\n}\n"],"mappings":"kFAIO,SAASA,EAA4BC,EAG1C,CACA,IAAMC,EAAgBD,EAAa,wBAAwB,EAE3D,GAAI,CAAC,OAAO,OAAOE,CAAa,EAAE,SAASD,CAAa,EACtD,MAAM,IAAI,MAAM,4DAA4DA,CAAa,aAAa,EAGxG,MAAO,CAAE,QADOE,EAAe,YAAYH,CAAY,EACrC,cAAAC,CAAc,CAClC","names":["deserializeSchemeAndAddress","deserializer","signingScheme","SigningScheme","AccountAddress"]}
@@ -1,2 +1,2 @@
1
- import{c as T,d as c}from"./chunk-XOLU6UP3.mjs";import{g as A,h as a}from"./chunk-J7PJSK3J.mjs";import{sha3_256 as y}from"@noble/hashes/sha3";function d(e){return e.feePayerAddress?new c(e.rawTransaction,e.secondarySignerAddresses??[],e.feePayerAddress):e.secondarySignerAddresses?new T(e.rawTransaction,e.secondarySignerAddresses):e.rawTransaction}function n(e,r){let i=y.create();if(!r.startsWith("APTOS::"))throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${r}`);i.update(r);let s=i.digest(),o=e,t=new Uint8Array(s.length+o.length);return t.set(s),t.set(o,s.length),t}function u(e){return n(e.bcsToBytes(),`APTOS::${e.constructor.name}`)}function S(e){let r=d(e);return e.feePayerAddress?n(r.bcsToBytes(),a):e.secondarySignerAddresses?n(r.bcsToBytes(),a):n(r.bcsToBytes(),A)}export{d as a,n as b,u as c,S as d};
2
- //# sourceMappingURL=chunk-SNYYEVJA.mjs.map
1
+ import{c as T,d as c}from"./chunk-PHJRCZQ3.mjs";import{g as A,h as a}from"./chunk-RJ7F4JDV.mjs";import{sha3_256 as y}from"@noble/hashes/sha3";function d(e){return e.feePayerAddress?new c(e.rawTransaction,e.secondarySignerAddresses??[],e.feePayerAddress):e.secondarySignerAddresses?new T(e.rawTransaction,e.secondarySignerAddresses):e.rawTransaction}function n(e,r){let i=y.create();if(!r.startsWith("APTOS::"))throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${r}`);i.update(r);let s=i.digest(),o=e,t=new Uint8Array(s.length+o.length);return t.set(s),t.set(o,s.length),t}function u(e){return n(e.bcsToBytes(),`APTOS::${e.constructor.name}`)}function S(e){let r=d(e);return e.feePayerAddress?n(r.bcsToBytes(),a):e.secondarySignerAddresses?n(r.bcsToBytes(),a):n(r.bcsToBytes(),A)}export{d as a,n as b,u as c,S as d};
2
+ //# sourceMappingURL=chunk-K2CSACQY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/transactions/transactionBuilder/signingMessage.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This file handles the generation of the signing message.\n * @group Implementation\n * @category Transactions\n */\nimport { sha3_256 as sha3Hash } from \"@noble/hashes/sha3\";\nimport { RAW_TRANSACTION_SALT, RAW_TRANSACTION_WITH_DATA_SALT } from \"../../utils/const\";\nimport { FeePayerRawTransaction, MultiAgentRawTransaction } from \"../instances\";\nimport { AnyRawTransaction, AnyRawTransactionInstance } from \"../types\";\nimport { Serializable } from \"../../bcs\";\n\n/**\n * Derives the appropriate raw transaction type based on the provided transaction details.\n * This function helps in identifying whether the transaction is a FeePayerRawTransaction,\n * MultiAgentRawTransaction, or a standard RawTransaction.\n *\n * @param transaction - An object representing an Aptos transaction, which may include:\n * - feePayerAddress - The address of the fee payer (optional).\n * - secondarySignerAddresses - An array of secondary signer addresses (optional).\n * - rawTransaction - The raw transaction data.\n *\n * @returns FeePayerRawTransaction | MultiAgentRawTransaction | RawTransaction\n * @group Implementation\n * @category Transactions\n */\nexport function deriveTransactionType(transaction: AnyRawTransaction): AnyRawTransactionInstance {\n if (transaction.feePayerAddress) {\n return new FeePayerRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses ?? [],\n transaction.feePayerAddress,\n );\n }\n if (transaction.secondarySignerAddresses) {\n return new MultiAgentRawTransaction(transaction.rawTransaction, transaction.secondarySignerAddresses);\n }\n\n return transaction.rawTransaction;\n}\n\n/**\n * Generates the 'signing message' form of a message to be signed.\n * This function combines a domain separator with the byte representation of the message to create a signing message.\n *\n * @param bytes - The byte representation of the message to be signed and sent to the chain.\n * @param domainSeparator - A domain separator that starts with 'APTOS::'.\n *\n * @returns The Uint8Array of the signing message.\n * @group Implementation\n * @category Transactions\n */\nexport function generateSigningMessage(bytes: Uint8Array, domainSeparator: string): Uint8Array {\n const hash = sha3Hash.create();\n\n if (!domainSeparator.startsWith(\"APTOS::\")) {\n throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${domainSeparator}`);\n }\n\n hash.update(domainSeparator);\n\n const prefix = hash.digest();\n\n const body = bytes;\n\n const mergedArray = new Uint8Array(prefix.length + body.length);\n mergedArray.set(prefix);\n mergedArray.set(body, prefix.length);\n\n return mergedArray;\n}\n\n/**\n * @deprecated\n * Use CryptoHashable instead by having your class implement it and call hash() to get the signing message.\n *\n * Generates the 'signing message' form of a serializable value by serializing it and using the constructor name as the domain\n * separator.\n *\n * @param serializable - An object that has a BCS serialized form.\n *\n * @returns The Uint8Array of the signing message.\n * @group Implementation\n * @category Transactions\n */\nexport function generateSigningMessageForSerializable(serializable: Serializable): Uint8Array {\n return generateSigningMessage(serializable.bcsToBytes(), `APTOS::${serializable.constructor.name}`);\n}\n\n/**\n * Generates the 'signing message' form of a transaction by deriving the type of transaction and applying the appropriate domain\n * separator based on the presence of a fee payer or secondary signers.\n *\n * @param transaction - A transaction that is to be signed, which can include a fee payer address or secondary signer addresses.\n *\n * @returns The Uint8Array of the signing message.\n * @group Implementation\n * @category Transactions\n */\nexport function generateSigningMessageForTransaction(transaction: AnyRawTransaction): Uint8Array {\n const rawTxn = deriveTransactionType(transaction);\n if (transaction.feePayerAddress) {\n return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);\n }\n if (transaction.secondarySignerAddresses) {\n return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);\n }\n return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_SALT);\n}\n"],"mappings":"gGAQA,OAAS,YAAYA,MAAgB,qBAoB9B,SAASC,EAAsBC,EAA2D,CAC/F,OAAIA,EAAY,gBACP,IAAIC,EACTD,EAAY,eACZA,EAAY,0BAA4B,CAAC,EACzCA,EAAY,eACd,EAEEA,EAAY,yBACP,IAAIE,EAAyBF,EAAY,eAAgBA,EAAY,wBAAwB,EAG/FA,EAAY,cACrB,CAaO,SAASG,EAAuBC,EAAmBC,EAAqC,CAC7F,IAAMC,EAAOC,EAAS,OAAO,EAE7B,GAAI,CAACF,EAAgB,WAAW,SAAS,EACvC,MAAM,IAAI,MAAM,+DAA+DA,CAAe,EAAE,EAGlGC,EAAK,OAAOD,CAAe,EAE3B,IAAMG,EAASF,EAAK,OAAO,EAErBG,EAAOL,EAEPM,EAAc,IAAI,WAAWF,EAAO,OAASC,EAAK,MAAM,EAC9D,OAAAC,EAAY,IAAIF,CAAM,EACtBE,EAAY,IAAID,EAAMD,EAAO,MAAM,EAE5BE,CACT,CAeO,SAASC,EAAsCC,EAAwC,CAC5F,OAAOT,EAAuBS,EAAa,WAAW,EAAG,UAAUA,EAAa,YAAY,IAAI,EAAE,CACpG,CAYO,SAASC,EAAqCb,EAA4C,CAC/F,IAAMc,EAASf,EAAsBC,CAAW,EAChD,OAAIA,EAAY,gBACPG,EAAuBW,EAAO,WAAW,EAAGC,CAA8B,EAE/Ef,EAAY,yBACPG,EAAuBW,EAAO,WAAW,EAAGC,CAA8B,EAE5EZ,EAAuBW,EAAO,WAAW,EAAGE,CAAoB,CACzE","names":["sha3Hash","deriveTransactionType","transaction","FeePayerRawTransaction","MultiAgentRawTransaction","generateSigningMessage","bytes","domainSeparator","hash","sha3Hash","prefix","body","mergedArray","generateSigningMessageForSerializable","serializable","generateSigningMessageForTransaction","rawTxn","RAW_TRANSACTION_WITH_DATA_SALT","RAW_TRANSACTION_SALT"]}
@@ -1,2 +1,2 @@
1
- import{c as p}from"./chunk-LPVGVTWT.mjs";import{b as a}from"./chunk-LKKI2KAP.mjs";import{b as s}from"./chunk-AJ5JHBAE.mjs";async function F(n){let{aptosConfig:e,payload:o,options:t}=n,i=await p({...o,aptosConfig:e}),r=new s;i.serialize(r);let u=r.toUint8Array(),{data:d}=await a({aptosConfig:e,path:"view",originMethod:"view",contentType:"application/x.aptos.view_function+bcs",params:{ledger_version:t?.ledgerVersion},body:u});return d}async function M(n){let{aptosConfig:e,payload:o,options:t}=n,{data:i}=await a({aptosConfig:e,originMethod:"viewJson",path:"view",params:{ledger_version:t?.ledgerVersion},body:{function:o.function,type_arguments:o.typeArguments??[],arguments:o.functionArguments??[]}});return i}export{F as a,M as b};
2
- //# sourceMappingURL=chunk-NZ7M6NG2.mjs.map
1
+ import{c as p}from"./chunk-IJ2QKE4W.mjs";import{b as a}from"./chunk-SZRZ3HIL.mjs";import{b as s}from"./chunk-EBMEXURY.mjs";async function F(n){let{aptosConfig:e,payload:o,options:t}=n,i=await p({...o,aptosConfig:e}),r=new s;i.serialize(r);let u=r.toUint8Array(),{data:d}=await a({aptosConfig:e,path:"view",originMethod:"view",contentType:"application/x.aptos.view_function+bcs",params:{ledger_version:t?.ledgerVersion},body:u});return d}async function M(n){let{aptosConfig:e,payload:o,options:t}=n,{data:i}=await a({aptosConfig:e,originMethod:"viewJson",path:"view",params:{ledger_version:t?.ledgerVersion},body:{function:o.function,type_arguments:o.typeArguments??[],arguments:o.functionArguments??[]}});return i}export{F as a,M as b};
2
+ //# sourceMappingURL=chunk-KFCLSJC3.mjs.map
@@ -0,0 +1,2 @@
1
+ import{b as f}from"./chunk-FC2IYWI7.mjs";import{a as A}from"./chunk-NW2WUKWV.mjs";import{r as y}from"./chunk-KG23XFU2.mjs";import{b as K}from"./chunk-Q4C4U6I4.mjs";import{a as m}from"./chunk-XTOIL6MB.mjs";var h=class d extends f{constructor(e){let r=A.create(e);super({publicKey:r,...e}),this.publicKey=r,this.audless=e.audless??!1}serialize(e){super.serialize(e),this.publicKey.jwkAddress.serialize(e)}static deserialize(e){let{address:r,proof:l,ephemeralKeyPair:s,jwt:i,uidKey:o,pepper:c,verificationKeyHash:t}=f.partialDeserialize(e),n=K.deserialize(e),{iss:a,aud:p,uidVal:u}=y({jwt:i,uidKey:o});return new d({address:r,proof:l,ephemeralKeyPair:s,iss:a,uidKey:o,uidVal:u,aud:p,pepper:c,jwt:i,verificationKeyHash:t,jwkAddress:n})}static fromBytes(e){return d.deserialize(m.fromHex(e))}static create(e){let{address:r,proof:l,jwt:s,ephemeralKeyPair:i,pepper:o,jwkAddress:c,uidKey:t="sub",proofFetchCallback:n,verificationKey:a}=e,{iss:p,aud:u,uidVal:w}=y({jwt:s,uidKey:t});return new d({address:r,proof:l,ephemeralKeyPair:i,iss:p,uidKey:t,uidVal:w,aud:u,pepper:o,jwkAddress:K.from(c),jwt:s,proofFetchCallback:n,verificationKeyHash:a?a.hash():void 0})}};export{h as a};
2
+ //# sourceMappingURL=chunk-KFGXOZ77.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/account/FederatedKeylessAccount.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { HexInput } from \"../types\";\nimport { AccountAddress, AccountAddressInput } from \"../core/accountAddress\";\nimport { getIssAudAndUidVal, Groth16VerificationKey, ZeroKnowledgeSig } from \"../core/crypto\";\n\nimport { EphemeralKeyPair } from \"./EphemeralKeyPair\";\nimport { Deserializer, Serializer } from \"../bcs\";\nimport { FederatedKeylessPublicKey } from \"../core/crypto/federatedKeyless\";\nimport { AbstractKeylessAccount, ProofFetchCallback } from \"./AbstractKeylessAccount\";\n\n/**\n * Account implementation for the FederatedKeyless authentication scheme.\n *\n * Used to represent a FederatedKeyless based account and sign transactions with it.\n *\n * Use `FederatedKeylessAccount.create()` to instantiate a KeylessAccount with a JSON Web Token (JWT), proof, EphemeralKeyPair and the\n * address the JSON Web Key Set (JWKS) are installed that will be used to verify the JWT.\n *\n * When the proof expires or the JWT becomes invalid, the KeylessAccount must be instantiated again with a new JWT,\n * EphemeralKeyPair, and corresponding proof.\n * @group Implementation\n * @category Account (On-Chain Model)\n */\nexport class FederatedKeylessAccount extends AbstractKeylessAccount {\n /**\n * The FederatedKeylessPublicKey associated with the account\n * @group Implementation\n * @category Account (On-Chain Model)\n */\n readonly publicKey: FederatedKeylessPublicKey;\n\n readonly audless: boolean;\n\n /**\n * Use the static generator `FederatedKeylessAccount.create(...)` instead.\n * Creates a KeylessAccount instance using the provided parameters.\n * This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT.\n *\n * @param args - The parameters for creating a KeylessAccount.\n * @param args.address - Optional account address associated with the KeylessAccount.\n * @param args.proof - A Zero Knowledge Signature or a promise that resolves to one.\n * @param args.jwt - A JSON Web Token used for authentication.\n * @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation.\n * @param args.jwkAddress - The address which stores the JSON Web Key Set (JWKS) used to verify the JWT.\n * @param args.uidKey - Optional key for user identification, defaults to \"sub\".\n * @param args.proofFetchCallback - Optional callback function for fetching proof.\n */\n constructor(args: {\n address?: AccountAddress;\n ephemeralKeyPair: EphemeralKeyPair;\n iss: string;\n uidKey: string;\n uidVal: string;\n aud: string;\n pepper: HexInput;\n jwkAddress: AccountAddress;\n proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;\n proofFetchCallback?: ProofFetchCallback;\n jwt: string;\n verificationKeyHash?: HexInput;\n audless?: boolean;\n }) {\n const publicKey = FederatedKeylessPublicKey.create(args);\n super({ publicKey, ...args });\n this.publicKey = publicKey;\n this.audless = args.audless ?? false;\n }\n\n /**\n * Serializes the transaction data into a format suitable for transmission or storage.\n * This function ensures that both the transaction bytes and the proof are properly serialized.\n *\n * @param serializer - The serializer instance used to convert the transaction data into bytes.\n */\n serialize(serializer: Serializer): void {\n super.serialize(serializer);\n this.publicKey.jwkAddress.serialize(serializer);\n }\n\n /**\n * Deserializes the provided deserializer to create a KeylessAccount instance.\n * This function extracts necessary components such as the JWT, UID key, pepper, ephemeral key pair, and proof from the deserializer.\n *\n * @param deserializer - The deserializer instance used to retrieve the serialized data.\n * @returns A KeylessAccount instance created from the deserialized data.\n */\n static deserialize(deserializer: Deserializer): FederatedKeylessAccount {\n const { address, proof, ephemeralKeyPair, jwt, uidKey, pepper, verificationKeyHash } =\n AbstractKeylessAccount.partialDeserialize(deserializer);\n const jwkAddress = AccountAddress.deserialize(deserializer);\n const { iss, aud, uidVal } = getIssAudAndUidVal({ jwt, uidKey });\n return new FederatedKeylessAccount({\n address,\n proof,\n ephemeralKeyPair,\n iss,\n uidKey,\n uidVal,\n aud,\n pepper,\n jwt,\n verificationKeyHash,\n jwkAddress,\n });\n }\n\n /**\n * Deserialize bytes using this account's information.\n *\n * @param bytes The bytes being interpreted.\n * @returns\n */\n static fromBytes(bytes: HexInput): FederatedKeylessAccount {\n return FederatedKeylessAccount.deserialize(Deserializer.fromHex(bytes));\n }\n\n /**\n * Creates a KeylessAccount instance using the provided parameters.\n * This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT.\n * This is used instead of the KeylessAccount constructor.\n *\n * @param args - The parameters for creating a KeylessAccount.\n * @param args.address - Optional account address associated with the KeylessAccount.\n * @param args.proof - A Zero Knowledge Signature or a promise that resolves to one.\n * @param args.jwt - A JSON Web Token used for authentication.\n * @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation.\n * @param args.jwkAddress - The address which stores the JSON Web Key Set (JWKS) used to verify the JWT.\n * @param args.uidKey - Optional key for user identification, defaults to \"sub\".\n * @param args.proofFetchCallback - Optional callback function for fetching proof.\n */\n static create(args: {\n address?: AccountAddress;\n proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;\n jwt: string;\n ephemeralKeyPair: EphemeralKeyPair;\n pepper: HexInput;\n jwkAddress: AccountAddressInput;\n uidKey?: string;\n proofFetchCallback?: ProofFetchCallback;\n verificationKey?: Groth16VerificationKey;\n }): FederatedKeylessAccount {\n const {\n address,\n proof,\n jwt,\n ephemeralKeyPair,\n pepper,\n jwkAddress,\n uidKey = \"sub\",\n proofFetchCallback,\n verificationKey,\n } = args;\n\n const { iss, aud, uidVal } = getIssAudAndUidVal({ jwt, uidKey });\n return new FederatedKeylessAccount({\n address,\n proof,\n ephemeralKeyPair,\n iss,\n uidKey,\n uidVal,\n aud,\n pepper,\n jwkAddress: AccountAddress.from(jwkAddress),\n jwt,\n proofFetchCallback,\n verificationKeyHash: verificationKey ? verificationKey.hash() : undefined,\n });\n }\n}\n"],"mappings":"6MAyBO,IAAMA,EAAN,MAAMC,UAAgCC,CAAuB,CAwBlE,YAAYC,EAcT,CACD,IAAMC,EAAYC,EAA0B,OAAOF,CAAI,EACvD,MAAM,CAAE,UAAAC,EAAW,GAAGD,CAAK,CAAC,EAC5B,KAAK,UAAYC,EACjB,KAAK,QAAUD,EAAK,SAAW,EACjC,CAQA,UAAUG,EAA8B,CACtC,MAAM,UAAUA,CAAU,EAC1B,KAAK,UAAU,WAAW,UAAUA,CAAU,CAChD,CASA,OAAO,YAAYC,EAAqD,CACtE,GAAM,CAAE,QAAAC,EAAS,MAAAC,EAAO,iBAAAC,EAAkB,IAAAC,EAAK,OAAAC,EAAQ,OAAAC,EAAQ,oBAAAC,CAAoB,EACjFZ,EAAuB,mBAAmBK,CAAY,EAClDQ,EAAaC,EAAe,YAAYT,CAAY,EACpD,CAAE,IAAAU,EAAK,IAAAC,EAAK,OAAAC,CAAO,EAAIC,EAAmB,CAAE,IAAAT,EAAK,OAAAC,CAAO,CAAC,EAC/D,OAAO,IAAIX,EAAwB,CACjC,QAAAO,EACA,MAAAC,EACA,iBAAAC,EACA,IAAAO,EACA,OAAAL,EACA,OAAAO,EACA,IAAAD,EACA,OAAAL,EACA,IAAAF,EACA,oBAAAG,EACA,WAAAC,CACF,CAAC,CACH,CAQA,OAAO,UAAUM,EAA0C,CACzD,OAAOpB,EAAwB,YAAYqB,EAAa,QAAQD,CAAK,CAAC,CACxE,CAgBA,OAAO,OAAOlB,EAUc,CAC1B,GAAM,CACJ,QAAAK,EACA,MAAAC,EACA,IAAAE,EACA,iBAAAD,EACA,OAAAG,EACA,WAAAE,EACA,OAAAH,EAAS,MACT,mBAAAW,EACA,gBAAAC,CACF,EAAIrB,EAEE,CAAE,IAAAc,EAAK,IAAAC,EAAK,OAAAC,CAAO,EAAIC,EAAmB,CAAE,IAAAT,EAAK,OAAAC,CAAO,CAAC,EAC/D,OAAO,IAAIX,EAAwB,CACjC,QAAAO,EACA,MAAAC,EACA,iBAAAC,EACA,IAAAO,EACA,OAAAL,EACA,OAAAO,EACA,IAAAD,EACA,OAAAL,EACA,WAAYG,EAAe,KAAKD,CAAU,EAC1C,IAAAJ,EACA,mBAAAY,EACA,oBAAqBC,EAAkBA,EAAgB,KAAK,EAAI,MAClE,CAAC,CACH,CACF","names":["FederatedKeylessAccount","_FederatedKeylessAccount","AbstractKeylessAccount","args","publicKey","FederatedKeylessPublicKey","serializer","deserializer","address","proof","ephemeralKeyPair","jwt","uidKey","pepper","verificationKeyHash","jwkAddress","AccountAddress","iss","aud","uidVal","getIssAudAndUidVal","bytes","Deserializer","proofFetchCallback","verificationKey"]}
@@ -1,2 +1,2 @@
1
- import{a as M}from"./chunk-UGTIALNW.mjs";import{a as E,b as w}from"./chunk-KCWRCWNT.mjs";import{a as S,c as k,d as R,e as V}from"./chunk-GMKKHGXK.mjs";import{b as _,d as U}from"./chunk-H3C3VTHS.mjs";import{b as C}from"./chunk-MHN6XY4Z.mjs";import{a as f}from"./chunk-4O5XDQDO.mjs";import{a as P}from"./chunk-AKIO3OIT.mjs";import{b as m}from"./chunk-JNO7KPMG.mjs";import{a as D}from"./chunk-HBIDHQ2M.mjs";import{b as g}from"./chunk-372SLYVR.mjs";import{d as l}from"./chunk-F45G3GP3.mjs";import{b as B}from"./chunk-V4FKFCBL.mjs";import{a as h}from"./chunk-J3E4UMBB.mjs";import{a as y,b as K}from"./chunk-AJ5JHBAE.mjs";import{b as p,c as T}from"./chunk-SPRNSFUV.mjs";import{jwtDecode as W}from"jwt-decode";import{sha3_256 as $}from"@noble/hashes/sha3";var He=1e7,Z=120,Y=30,X=330,Te=120,Pe=350,Ce=300,_e=93,o=class o extends C{constructor(e,t){super();let r=p.fromHexInput(t).toUint8Array();if(r.length!==o.ID_COMMITMENT_LENGTH)throw new Error(`Id Commitment length in bytes should be ${o.ID_COMMITMENT_LENGTH}`);this.iss=e,this.idCommitment=r}authKey(){let e=new K;return e.serializeU32AsUleb128(3),e.serializeFixedBytes(this.bcsToBytes()),P.fromSchemeAndBytes({scheme:2,input:e.toUint8Array()})}verifySignature(e){throw new Error("Not yet implemented")}serialize(e){e.serializeStr(this.iss),e.serializeBytes(this.idCommitment)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new o(t,r)}static load(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new o(t,r)}static isPublicKey(e){return e instanceof o}static create(e){return J(e),new o(e.iss,J(e))}static fromJwtAndPepper(e){let{jwt:t,pepper:r,uidKey:s="sub"}=e,a=W(t);if(typeof a.iss!="string")throw new Error("iss was not found");if(typeof a.aud!="string")throw new Error("aud was not found or an array of values");let n=a[s];return o.create({iss:a.iss,uidKey:s,uidVal:n,aud:a.aud,pepper:r})}static isInstance(e){return"iss"in e&&typeof e.iss=="string"&&"idCommitment"in e&&e.idCommitment instanceof Uint8Array}};o.ID_COMMITMENT_LENGTH=32;var G=o;function J(i){let{uidKey:e,uidVal:t,aud:r,pepper:s}=i,a=[k(p.fromHexInput(s).toUint8Array()),S(r,Z),S(t,X),S(e,Y)];return R(V(a),G.ID_COMMITMENT_LENGTH)}var O=class i extends f{constructor(e){super();let{jwtHeader:t,ephemeralCertificate:r,expiryDateSecs:s,ephemeralPublicKey:a,ephemeralSignature:n}=e;this.jwtHeader=t,this.ephemeralCertificate=r,this.expiryDateSecs=s,this.ephemeralPublicKey=a,this.ephemeralSignature=n}getJwkKid(){return ee(this.jwtHeader).kid}serialize(e){this.ephemeralCertificate.serialize(e),e.serializeStr(this.jwtHeader),e.serializeU64(this.expiryDateSecs),this.ephemeralPublicKey.serialize(e),this.ephemeralSignature.serialize(e)}static deserialize(e){let t=x.deserialize(e),r=e.deserializeStr(),s=e.deserializeU64(),a=E.deserialize(e),n=w.deserialize(e);return new i({jwtHeader:r,expiryDateSecs:Number(s),ephemeralCertificate:t,ephemeralPublicKey:a,ephemeralSignature:n})}static getSimulationSignature(){return new i({jwtHeader:"{}",ephemeralCertificate:new x(new z({proof:new b(new A({a:new Uint8Array(32),b:new Uint8Array(64),c:new Uint8Array(32)}),0),expHorizonSecs:0}),0),expiryDateSecs:0,ephemeralPublicKey:new E(new _(new Uint8Array(32))),ephemeralSignature:new w(new U(new Uint8Array(64)))})}static isSignature(e){return e instanceof i}},x=class i extends f{constructor(e,t){super(),this.signature=e,this.variant=t}toUint8Array(){return this.signature.toUint8Array()}serialize(e){e.serializeU32AsUleb128(this.variant),this.signature.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return new i(z.deserialize(e),t);default:throw new Error(`Unknown variant index for EphemeralCertificate: ${t}`)}}},c=class i extends y{constructor(e){if(super(),this.data=p.fromHexInput(e).toUint8Array(),this.data.length!==32)throw new Error("Input needs to be 32 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(32);return new i(t)}},d=class i extends y{constructor(e){if(super(),this.data=p.fromHexInput(e).toUint8Array(),this.data.length!==64)throw new Error("Input needs to be 64 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(64);return new i(t)}},A=class i extends M{constructor(e){super();let{a:t,b:r,c:s}=e;this.a=new c(t),this.b=new d(r),this.c=new c(s)}serialize(e){this.a.serialize(e),this.b.serialize(e),this.c.serialize(e)}static deserialize(e){let t=c.deserialize(e).bcsToBytes(),r=d.deserialize(e).bcsToBytes(),s=c.deserialize(e).bcsToBytes();return new i({a:t,b:r,c:s})}},b=class i extends y{constructor(e,t){super(),this.proof=e,this.variant=t}serialize(e){e.serializeU32AsUleb128(this.variant),this.proof.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return new i(A.deserialize(e),t);default:throw new Error(`Unknown variant index for ZkProof: ${t}`)}}},z=class i extends f{constructor(e){super();let{proof:t,expHorizonSecs:r,trainingWheelsSignature:s,extraField:a,overrideAudVal:n}=e;this.proof=t,this.expHorizonSecs=r,this.trainingWheelsSignature=s,this.extraField=a,this.overrideAudVal=n}static fromBytes(e){return i.deserialize(new h(e))}serialize(e){this.proof.serialize(e),e.serializeU64(this.expHorizonSecs),e.serializeOption(this.extraField),e.serializeOption(this.overrideAudVal),e.serializeOption(this.trainingWheelsSignature)}static deserialize(e){let t=b.deserialize(e),r=Number(e.deserializeU64()),s=e.deserializeOption("string"),a=e.deserializeOption("string"),n=e.deserializeOption(w);return new i({proof:t,expHorizonSecs:r,trainingWheelsSignature:n,extraField:s,overrideAudVal:a})}},v=class i{constructor(e,t){this.verificationKey=e,this.maxExpHorizonSecs=t}static create(e,t){return new i(new I({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2}),t)}},I=class i{constructor(e){let{alphaG1:t,betaG2:r,deltaG2:s,gammaAbcG1:a,gammaG2:n}=e;this.alphaG1=new c(t),this.betaG2=new d(r),this.deltaG2=new d(s),this.gammaAbcG1=[new c(a[0]),new c(a[1])],this.gammaG2=new d(n)}hash(){let e=new K;return this.serialize(e),$.create().update(e.toUint8Array()).digest()}serialize(e){this.alphaG1.serialize(e),this.betaG2.serialize(e),this.deltaG2.serialize(e),this.gammaAbcG1[0].serialize(e),this.gammaAbcG1[1].serialize(e),this.gammaG2.serialize(e)}static fromGroth16VerificationKeyResponse(e){return new i({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2})}};async function Ue(i){let{aptosConfig:e}=i;try{return await D(async()=>{let t=await q(i),r=await Q(i);return v.create(r,Number(t.max_exp_horizon_secs))},`keyless-configuration-${e.network}`,1e3*60*5)()}catch(t){throw t instanceof l?t:l.fromErrorType({type:25,error:t})}}function ke(i){let{jwt:e,uidKey:t="sub"}=i,r;try{r=W(e)}catch(a){throw l.fromErrorType({type:12,details:`Failed to parse JWT - ${B(a)}`})}if(typeof r.iss!="string")throw l.fromErrorType({type:12,details:"JWT is missing 'iss' in the payload. This should never happen."});if(typeof r.aud!="string")throw l.fromErrorType({type:12,details:"JWT is missing 'aud' in the payload or 'aud' is an array of values."});let s=r[t];return{iss:r.iss,aud:r.aud,uidVal:s}}async function q(i){let{aptosConfig:e,options:t}=i,r="0x1::keyless_account::Configuration";try{let{data:s}=await g({aptosConfig:e,originMethod:"getKeylessConfigurationResource",path:`accounts/${m.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return s.data}catch(s){throw l.fromErrorType({type:22,error:s})}}async function Q(i){let{aptosConfig:e,options:t}=i,r="0x1::keyless_account::Groth16VerificationKey";try{let{data:s}=await g({aptosConfig:e,originMethod:"getGroth16VerificationKeyResource",path:`accounts/${m.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return s.data}catch(s){throw l.fromErrorType({type:23,error:s})}}async function Re(i){let{aptosConfig:e,jwkAddr:t,options:r}=i,s;if(t){let n="0x1::jwks::FederatedJWKs",{data:u}=await g({aptosConfig:e,originMethod:"getKeylessJWKs",path:`accounts/${m.from(t).toString()}/resource/${n}`,params:{ledger_version:r?.ledgerVersion}});s=u}else{let n="0x1::jwks::PatchedJWKs",{data:u}=await g({aptosConfig:e,originMethod:"getKeylessJWKs",path:`accounts/0x1/resource/${n}`,params:{ledger_version:r?.ledgerVersion}});s=u}let a=new Map;for(let n of s.data.jwks.entries){let u=[];for(let j of n.jwks){let{data:L}=j.variant,N=new h(p.fromHexInput(L).toUint8Array()),F=H.deserialize(N);u.push(F)}a.set(T(n.issuer),u)}return a}var H=class i extends y{constructor(e){super();let{kid:t,kty:r,alg:s,e:a,n}=e;this.kid=t,this.kty=r,this.alg=s,this.e=a,this.n=n}serialize(e){e.serializeStr(this.kid),e.serializeStr(this.kty),e.serializeStr(this.alg),e.serializeStr(this.e),e.serializeStr(this.n)}static fromMoveStruct(e){let{data:t}=e.variant,r=new h(p.fromHexInput(t).toUint8Array());return i.deserialize(r)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeStr(),s=e.deserializeStr(),a=e.deserializeStr(),n=e.deserializeStr();return new i({kid:t,kty:r,alg:s,n:a,e:n})}};function ee(i){try{let e=JSON.parse(i);if(e.kid===void 0)throw new Error("JWT header missing kid");return e}catch{throw new Error("Failed to parse JWT header.")}}export{He as a,Z as b,Y as c,X as d,Te as e,Pe as f,Ce as g,_e as h,G as i,O as j,x as k,A as l,b as m,z as n,v as o,I as p,Ue as q,ke as r,Re as s,H as t,ee as u};
2
- //# sourceMappingURL=chunk-PXMNAP2Q.mjs.map
1
+ import{a as S,c as k,d as R,e as V}from"./chunk-GOXRBEIJ.mjs";import{a as M}from"./chunk-XJJVJOX5.mjs";import{a as E,b as w}from"./chunk-T6NQDM7D.mjs";import{b as _,d as U}from"./chunk-XGF7UNEW.mjs";import{b as C}from"./chunk-EMURYYVO.mjs";import{a as f}from"./chunk-WCMW2L3P.mjs";import{a as P}from"./chunk-FN4C3CKC.mjs";import{b as m}from"./chunk-Q4C4U6I4.mjs";import{a as D}from"./chunk-YOZBVVKL.mjs";import{b as g}from"./chunk-FKJ3GCBI.mjs";import{d as l}from"./chunk-QHEKBHNU.mjs";import{a as h}from"./chunk-XTOIL6MB.mjs";import{a as y,b as K}from"./chunk-EBMEXURY.mjs";import{b as p,c as T}from"./chunk-STY74NUA.mjs";import{b as B}from"./chunk-DAFSKSZ5.mjs";import{jwtDecode as W}from"jwt-decode";import{sha3_256 as $}from"@noble/hashes/sha3";var He=1e7,Z=120,Y=30,X=330,Te=120,Pe=350,Ce=300,_e=93,o=class o extends C{constructor(e,t){super();let r=p.fromHexInput(t).toUint8Array();if(r.length!==o.ID_COMMITMENT_LENGTH)throw new Error(`Id Commitment length in bytes should be ${o.ID_COMMITMENT_LENGTH}`);this.iss=e,this.idCommitment=r}authKey(){let e=new K;return e.serializeU32AsUleb128(3),e.serializeFixedBytes(this.bcsToBytes()),P.fromSchemeAndBytes({scheme:2,input:e.toUint8Array()})}verifySignature(e){throw new Error("Not yet implemented")}serialize(e){e.serializeStr(this.iss),e.serializeBytes(this.idCommitment)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new o(t,r)}static load(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new o(t,r)}static isPublicKey(e){return e instanceof o}static create(e){return J(e),new o(e.iss,J(e))}static fromJwtAndPepper(e){let{jwt:t,pepper:r,uidKey:s="sub"}=e,a=W(t);if(typeof a.iss!="string")throw new Error("iss was not found");if(typeof a.aud!="string")throw new Error("aud was not found or an array of values");let n=a[s];return o.create({iss:a.iss,uidKey:s,uidVal:n,aud:a.aud,pepper:r})}static isInstance(e){return"iss"in e&&typeof e.iss=="string"&&"idCommitment"in e&&e.idCommitment instanceof Uint8Array}};o.ID_COMMITMENT_LENGTH=32;var G=o;function J(i){let{uidKey:e,uidVal:t,aud:r,pepper:s}=i,a=[k(p.fromHexInput(s).toUint8Array()),S(r,Z),S(t,X),S(e,Y)];return R(V(a),G.ID_COMMITMENT_LENGTH)}var O=class i extends f{constructor(e){super();let{jwtHeader:t,ephemeralCertificate:r,expiryDateSecs:s,ephemeralPublicKey:a,ephemeralSignature:n}=e;this.jwtHeader=t,this.ephemeralCertificate=r,this.expiryDateSecs=s,this.ephemeralPublicKey=a,this.ephemeralSignature=n}getJwkKid(){return ee(this.jwtHeader).kid}serialize(e){this.ephemeralCertificate.serialize(e),e.serializeStr(this.jwtHeader),e.serializeU64(this.expiryDateSecs),this.ephemeralPublicKey.serialize(e),this.ephemeralSignature.serialize(e)}static deserialize(e){let t=x.deserialize(e),r=e.deserializeStr(),s=e.deserializeU64(),a=E.deserialize(e),n=w.deserialize(e);return new i({jwtHeader:r,expiryDateSecs:Number(s),ephemeralCertificate:t,ephemeralPublicKey:a,ephemeralSignature:n})}static getSimulationSignature(){return new i({jwtHeader:"{}",ephemeralCertificate:new x(new z({proof:new b(new A({a:new Uint8Array(32),b:new Uint8Array(64),c:new Uint8Array(32)}),0),expHorizonSecs:0}),0),expiryDateSecs:0,ephemeralPublicKey:new E(new _(new Uint8Array(32))),ephemeralSignature:new w(new U(new Uint8Array(64)))})}static isSignature(e){return e instanceof i}},x=class i extends f{constructor(e,t){super(),this.signature=e,this.variant=t}toUint8Array(){return this.signature.toUint8Array()}serialize(e){e.serializeU32AsUleb128(this.variant),this.signature.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return new i(z.deserialize(e),t);default:throw new Error(`Unknown variant index for EphemeralCertificate: ${t}`)}}},c=class i extends y{constructor(e){if(super(),this.data=p.fromHexInput(e).toUint8Array(),this.data.length!==32)throw new Error("Input needs to be 32 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(32);return new i(t)}},d=class i extends y{constructor(e){if(super(),this.data=p.fromHexInput(e).toUint8Array(),this.data.length!==64)throw new Error("Input needs to be 64 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(64);return new i(t)}},A=class i extends M{constructor(e){super();let{a:t,b:r,c:s}=e;this.a=new c(t),this.b=new d(r),this.c=new c(s)}serialize(e){this.a.serialize(e),this.b.serialize(e),this.c.serialize(e)}static deserialize(e){let t=c.deserialize(e).bcsToBytes(),r=d.deserialize(e).bcsToBytes(),s=c.deserialize(e).bcsToBytes();return new i({a:t,b:r,c:s})}},b=class i extends y{constructor(e,t){super(),this.proof=e,this.variant=t}serialize(e){e.serializeU32AsUleb128(this.variant),this.proof.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return new i(A.deserialize(e),t);default:throw new Error(`Unknown variant index for ZkProof: ${t}`)}}},z=class i extends f{constructor(e){super();let{proof:t,expHorizonSecs:r,trainingWheelsSignature:s,extraField:a,overrideAudVal:n}=e;this.proof=t,this.expHorizonSecs=r,this.trainingWheelsSignature=s,this.extraField=a,this.overrideAudVal=n}static fromBytes(e){return i.deserialize(new h(e))}serialize(e){this.proof.serialize(e),e.serializeU64(this.expHorizonSecs),e.serializeOption(this.extraField),e.serializeOption(this.overrideAudVal),e.serializeOption(this.trainingWheelsSignature)}static deserialize(e){let t=b.deserialize(e),r=Number(e.deserializeU64()),s=e.deserializeOption("string"),a=e.deserializeOption("string"),n=e.deserializeOption(w);return new i({proof:t,expHorizonSecs:r,trainingWheelsSignature:n,extraField:s,overrideAudVal:a})}},v=class i{constructor(e,t){this.verificationKey=e,this.maxExpHorizonSecs=t}static create(e,t){return new i(new I({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2}),t)}},I=class i{constructor(e){let{alphaG1:t,betaG2:r,deltaG2:s,gammaAbcG1:a,gammaG2:n}=e;this.alphaG1=new c(t),this.betaG2=new d(r),this.deltaG2=new d(s),this.gammaAbcG1=[new c(a[0]),new c(a[1])],this.gammaG2=new d(n)}hash(){let e=new K;return this.serialize(e),$.create().update(e.toUint8Array()).digest()}serialize(e){this.alphaG1.serialize(e),this.betaG2.serialize(e),this.deltaG2.serialize(e),this.gammaAbcG1[0].serialize(e),this.gammaAbcG1[1].serialize(e),this.gammaG2.serialize(e)}static fromGroth16VerificationKeyResponse(e){return new i({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2})}};async function Ue(i){let{aptosConfig:e}=i;try{return await D(async()=>{let t=await q(i),r=await Q(i);return v.create(r,Number(t.max_exp_horizon_secs))},`keyless-configuration-${e.network}`,1e3*60*5)()}catch(t){throw t instanceof l?t:l.fromErrorType({type:25,error:t})}}function ke(i){let{jwt:e,uidKey:t="sub"}=i,r;try{r=W(e)}catch(a){throw l.fromErrorType({type:12,details:`Failed to parse JWT - ${B(a)}`})}if(typeof r.iss!="string")throw l.fromErrorType({type:12,details:"JWT is missing 'iss' in the payload. This should never happen."});if(typeof r.aud!="string")throw l.fromErrorType({type:12,details:"JWT is missing 'aud' in the payload or 'aud' is an array of values."});let s=r[t];return{iss:r.iss,aud:r.aud,uidVal:s}}async function q(i){let{aptosConfig:e,options:t}=i,r="0x1::keyless_account::Configuration";try{let{data:s}=await g({aptosConfig:e,originMethod:"getKeylessConfigurationResource",path:`accounts/${m.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return s.data}catch(s){throw l.fromErrorType({type:22,error:s})}}async function Q(i){let{aptosConfig:e,options:t}=i,r="0x1::keyless_account::Groth16VerificationKey";try{let{data:s}=await g({aptosConfig:e,originMethod:"getGroth16VerificationKeyResource",path:`accounts/${m.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return s.data}catch(s){throw l.fromErrorType({type:23,error:s})}}async function Re(i){let{aptosConfig:e,jwkAddr:t,options:r}=i,s;if(t){let n="0x1::jwks::FederatedJWKs",{data:u}=await g({aptosConfig:e,originMethod:"getKeylessJWKs",path:`accounts/${m.from(t).toString()}/resource/${n}`,params:{ledger_version:r?.ledgerVersion}});s=u}else{let n="0x1::jwks::PatchedJWKs",{data:u}=await g({aptosConfig:e,originMethod:"getKeylessJWKs",path:`accounts/0x1/resource/${n}`,params:{ledger_version:r?.ledgerVersion}});s=u}let a=new Map;for(let n of s.data.jwks.entries){let u=[];for(let j of n.jwks){let{data:L}=j.variant,N=new h(p.fromHexInput(L).toUint8Array()),F=H.deserialize(N);u.push(F)}a.set(T(n.issuer),u)}return a}var H=class i extends y{constructor(e){super();let{kid:t,kty:r,alg:s,e:a,n}=e;this.kid=t,this.kty=r,this.alg=s,this.e=a,this.n=n}serialize(e){e.serializeStr(this.kid),e.serializeStr(this.kty),e.serializeStr(this.alg),e.serializeStr(this.e),e.serializeStr(this.n)}static fromMoveStruct(e){let{data:t}=e.variant,r=new h(p.fromHexInput(t).toUint8Array());return i.deserialize(r)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeStr(),s=e.deserializeStr(),a=e.deserializeStr(),n=e.deserializeStr();return new i({kid:t,kty:r,alg:s,n:a,e:n})}};function ee(i){try{let e=JSON.parse(i);if(e.kid===void 0)throw new Error("JWT header missing kid");return e}catch{throw new Error("Failed to parse JWT header.")}}export{He as a,Z as b,Y as c,X as d,Te as e,Pe as f,Ce as g,_e as h,G as i,O as j,x as k,A as l,b as m,z as n,v as o,I as p,Ue as q,ke as r,Re as s,H as t,ee as u};
2
+ //# sourceMappingURL=chunk-KG23XFU2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/crypto/keyless.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n// eslint-disable-next-line max-classes-per-file\nimport { JwtPayload, jwtDecode } from \"jwt-decode\";\nimport { sha3_256 } from \"@noble/hashes/sha3\";\nimport { AccountPublicKey, PublicKey } from \"./publicKey\";\nimport { Signature } from \"./signature\";\nimport { Deserializer, Serializable, Serializer } from \"../../bcs\";\nimport { Hex, hexToAsciiString } from \"../hex\";\nimport {\n HexInput,\n EphemeralCertificateVariant,\n AnyPublicKeyVariant,\n SigningScheme,\n ZkpVariant,\n LedgerVersionArg,\n MoveResource,\n} from \"../../types\";\nimport { EphemeralPublicKey, EphemeralSignature } from \"./ephemeral\";\nimport { bigIntToBytesLE, bytesToBigIntLE, hashStrToField, poseidonHash } from \"./poseidon\";\nimport { AuthenticationKey } from \"../authenticationKey\";\nimport { Proof } from \"./proof\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"./ed25519\";\nimport {\n Groth16VerificationKeyResponse,\n KeylessConfigurationResponse,\n MoveAnyStruct,\n PatchedJWKsResponse,\n} from \"../../types/keyless\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport { getAptosFullNode } from \"../../client\";\nimport { memoizeAsync } from \"../../utils/memoize\";\nimport { AccountAddress, AccountAddressInput } from \"../accountAddress\";\nimport { getErrorMessage } from \"../../utils\";\nimport { KeylessError, KeylessErrorType } from \"../../errors\";\n\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const EPK_HORIZON_SECS = 10000000;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_AUD_VAL_BYTES = 120;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_UID_KEY_BYTES = 30;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_UID_VAL_BYTES = 330;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_ISS_VAL_BYTES = 120;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_EXTRA_FIELD_BYTES = 350;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_JWT_HEADER_B64_BYTES = 300;\n/**\n * @group Implementation\n * @category Serialization\n */\nexport const MAX_COMMITED_EPK_BYTES = 93;\n\n/**\n * Represents a Keyless Public Key used for authentication.\n *\n * This class encapsulates the public key functionality for keyless authentication,\n * including methods for generating and verifying signatures, as well as serialization\n * and deserialization of the key. The KeylessPublicKey is represented in the SDK\n * as `AnyPublicKey`.\n * @group Implementation\n * @category Serialization\n */\nexport class KeylessPublicKey extends AccountPublicKey {\n /**\n * The number of bytes that `idCommitment` should be\n * @group Implementation\n * @category Serialization\n */\n static readonly ID_COMMITMENT_LENGTH: number = 32;\n\n /**\n * The value of the 'iss' claim on the JWT which identifies the OIDC provider.\n * @group Implementation\n * @category Serialization\n */\n readonly iss: string;\n\n /**\n * A value representing a cryptographic commitment to a user identity.\n *\n * It is calculated from the aud, uidKey, uidVal, pepper.\n * @group Implementation\n * @category Serialization\n */\n readonly idCommitment: Uint8Array;\n\n /**\n * Constructs an instance with the specified parameters for cryptographic operations.\n *\n * @param args - The parameters required to initialize the instance.\n * @param args.alphaG1 - The hex representation of the alpha G1 value.\n * @param args.betaG2 - The hex representation of the beta G2 value.\n * @param args.deltaG2 - The hex representation of the delta G2 value.\n * @param args.gammaAbcG1 - An array containing two hex representations for gamma ABC G1 values.\n * @param args.gammaG2 - The hex representation of the gamma G2 value.\n * @group Implementation\n * @category Serialization\n */\n // TODO: Fix the JSDoc for the below values\n constructor(iss: string, idCommitment: HexInput) {\n super();\n const idcBytes = Hex.fromHexInput(idCommitment).toUint8Array();\n if (idcBytes.length !== KeylessPublicKey.ID_COMMITMENT_LENGTH) {\n throw new Error(`Id Commitment length in bytes should be ${KeylessPublicKey.ID_COMMITMENT_LENGTH}`);\n }\n this.iss = iss;\n this.idCommitment = idcBytes;\n }\n\n /**\n * Get the authentication key for the keyless public key.\n *\n * @returns AuthenticationKey - The authentication key derived from the keyless public key.\n * @group Implementation\n * @category Serialization\n */\n authKey(): AuthenticationKey {\n const serializer = new Serializer();\n serializer.serializeU32AsUleb128(AnyPublicKeyVariant.Keyless);\n serializer.serializeFixedBytes(this.bcsToBytes());\n return AuthenticationKey.fromSchemeAndBytes({\n scheme: SigningScheme.SingleKey,\n input: serializer.toUint8Array(),\n });\n }\n\n /**\n * Verifies the validity of a signature for a given message.\n *\n * @param args - The arguments for signature verification.\n * @param args.message - The message that was signed.\n * @param args.signature - The signature to verify against the message.\n * @returns true if the signature is valid; otherwise, false.\n * @group Implementation\n * @category Serialization\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this\n verifySignature(args: { message: HexInput; signature: KeylessSignature }): boolean {\n throw new Error(\"Not yet implemented\");\n }\n\n /**\n * Serializes the current instance into a format suitable for transmission or storage.\n * This function ensures that all relevant fields are properly serialized, including the proof and optional fields.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @param serializer.proof - The proof to be serialized.\n * @param serializer.expHorizonSecs - The expiration horizon in seconds.\n * @param serializer.extraField - An optional additional field for serialization.\n * @param serializer.overrideAudVal - An optional override value for auditing.\n * @param serializer.trainingWheelsSignature - An optional signature for training wheels.\n * @group Implementation\n * @category Serialization\n */\n serialize(serializer: Serializer): void {\n serializer.serializeStr(this.iss);\n serializer.serializeBytes(this.idCommitment);\n }\n\n /**\n * Deserializes a ZeroKnowledgeSig object from the provided deserializer.\n * This function allows you to reconstruct a ZeroKnowledgeSig instance from its serialized form.\n *\n * @param deserializer - The deserializer instance used to read the serialized data.\n * @returns A new instance of ZeroKnowledgeSig.\n * @group Implementation\n * @category Serialization\n */\n static deserialize(deserializer: Deserializer): KeylessPublicKey {\n const iss = deserializer.deserializeStr();\n const addressSeed = deserializer.deserializeBytes();\n return new KeylessPublicKey(iss, addressSeed);\n }\n\n /**\n * Loads a KeylessPublicKey instance from the provided deserializer.\n * This function is used to deserialize the necessary components to create a KeylessPublicKey.\n *\n * @param deserializer - The deserializer used to extract the string and byte data.\n * @param deserializer.deserializeStr - A method to deserialize a string value.\n * @param deserializer.deserializeBytes - A method to deserialize byte data.\n * @returns A new instance of KeylessPublicKey.\n * @group Implementation\n * @category Serialization\n */\n static load(deserializer: Deserializer): KeylessPublicKey {\n const iss = deserializer.deserializeStr();\n const addressSeed = deserializer.deserializeBytes();\n return new KeylessPublicKey(iss, addressSeed);\n }\n\n /**\n * Determines if the provided public key is an instance of KeylessPublicKey.\n *\n * @param publicKey - The public key to check.\n * @returns A boolean indicating whether the public key is a KeylessPublicKey instance.\n * @group Implementation\n * @category Serialization\n */\n static isPublicKey(publicKey: PublicKey): publicKey is KeylessPublicKey {\n return publicKey instanceof KeylessPublicKey;\n }\n\n /**\n * Creates a KeylessPublicKey from the JWT components plus pepper\n *\n * @param args.iss the iss of the identity\n * @param args.uidKey the key to use to get the uidVal in the JWT token\n * @param args.uidVal the value of the uidKey in the JWT token\n * @param args.aud the client ID of the application\n * @param args.pepper The pepper used to maintain privacy of the account\n * @returns KeylessPublicKey\n * @group Implementation\n * @category Serialization\n */\n static create(args: {\n iss: string;\n uidKey: string;\n uidVal: string;\n aud: string;\n pepper: HexInput;\n }): KeylessPublicKey {\n computeIdCommitment(args);\n return new KeylessPublicKey(args.iss, computeIdCommitment(args));\n }\n\n /**\n * Creates a KeylessPublicKey instance from a JWT and a pepper value.\n * This function is useful for generating a public key that can be used for authentication based on the provided JWT claims and pepper.\n *\n * @param args - The arguments for creating the KeylessPublicKey.\n * @param args.jwt - The JSON Web Token to decode.\n * @param args.pepper - The pepper value used in the key creation process.\n * @param args.uidKey - An optional key to retrieve the unique identifier from the JWT payload, defaults to \"sub\".\n * @returns A KeylessPublicKey instance created from the provided JWT and pepper.\n * @group Implementation\n * @category Serialization\n */\n static fromJwtAndPepper(args: { jwt: string; pepper: HexInput; uidKey?: string }): KeylessPublicKey {\n const { jwt, pepper, uidKey = \"sub\" } = args;\n const jwtPayload = jwtDecode<JwtPayload & { [key: string]: string }>(jwt);\n if (typeof jwtPayload.iss !== \"string\") {\n throw new Error(\"iss was not found\");\n }\n if (typeof jwtPayload.aud !== \"string\") {\n throw new Error(\"aud was not found or an array of values\");\n }\n const uidVal = jwtPayload[uidKey];\n return KeylessPublicKey.create({ iss: jwtPayload.iss, uidKey, uidVal, aud: jwtPayload.aud, pepper });\n }\n\n /**\n * Checks if the provided public key is a valid instance by verifying its structure and types.\n *\n * @param publicKey - The public key to validate.\n * @returns A boolean indicating whether the public key is a valid instance.\n * @group Implementation\n * @category Serialization\n */\n static isInstance(publicKey: PublicKey) {\n return (\n \"iss\" in publicKey &&\n typeof publicKey.iss === \"string\" &&\n \"idCommitment\" in publicKey &&\n publicKey.idCommitment instanceof Uint8Array\n );\n }\n}\n\nfunction computeIdCommitment(args: { uidKey: string; uidVal: string; aud: string; pepper: HexInput }): Uint8Array {\n const { uidKey, uidVal, aud, pepper } = args;\n\n const fields = [\n bytesToBigIntLE(Hex.fromHexInput(pepper).toUint8Array()),\n hashStrToField(aud, MAX_AUD_VAL_BYTES),\n hashStrToField(uidVal, MAX_UID_VAL_BYTES),\n hashStrToField(uidKey, MAX_UID_KEY_BYTES),\n ];\n\n return bigIntToBytesLE(poseidonHash(fields), KeylessPublicKey.ID_COMMITMENT_LENGTH);\n}\n\n/**\n * Represents a signature of a message signed via a Keyless Account, utilizing proofs or a JWT token for authentication.\n * @group Implementation\n * @category Serialization\n */\nexport class KeylessSignature extends Signature {\n /**\n * The inner signature ZeroKnowledgeSignature or OpenIdSignature\n * @group Implementation\n * @category Serialization\n */\n readonly ephemeralCertificate: EphemeralCertificate;\n\n /**\n * The jwt header in the token used to create the proof/signature. In json string representation.\n * @group Implementation\n * @category Serialization\n */\n readonly jwtHeader: string;\n\n /**\n * The expiry timestamp in seconds of the EphemeralKeyPair used to sign\n * @group Implementation\n * @category Serialization\n */\n readonly expiryDateSecs: number;\n\n /**\n * The ephemeral public key used to verify the signature\n * @group Implementation\n * @category Serialization\n */\n readonly ephemeralPublicKey: EphemeralPublicKey;\n\n /**\n * The signature resulting from signing with the private key of the EphemeralKeyPair\n * @group Implementation\n * @category Serialization\n */\n readonly ephemeralSignature: EphemeralSignature;\n\n constructor(args: {\n jwtHeader: string;\n ephemeralCertificate: EphemeralCertificate;\n expiryDateSecs: number;\n ephemeralPublicKey: EphemeralPublicKey;\n ephemeralSignature: EphemeralSignature;\n }) {\n super();\n const { jwtHeader, ephemeralCertificate, expiryDateSecs, ephemeralPublicKey, ephemeralSignature } = args;\n this.jwtHeader = jwtHeader;\n this.ephemeralCertificate = ephemeralCertificate;\n this.expiryDateSecs = expiryDateSecs;\n this.ephemeralPublicKey = ephemeralPublicKey;\n this.ephemeralSignature = ephemeralSignature;\n }\n\n /**\n * Get the kid of the JWT used to derive the Keyless Account used to sign.\n *\n * @returns the kid as a string\n */\n getJwkKid(): string {\n return parseJwtHeader(this.jwtHeader).kid;\n }\n\n serialize(serializer: Serializer): void {\n this.ephemeralCertificate.serialize(serializer);\n serializer.serializeStr(this.jwtHeader);\n serializer.serializeU64(this.expiryDateSecs);\n this.ephemeralPublicKey.serialize(serializer);\n this.ephemeralSignature.serialize(serializer);\n }\n\n static deserialize(deserializer: Deserializer): KeylessSignature {\n const ephemeralCertificate = EphemeralCertificate.deserialize(deserializer);\n const jwtHeader = deserializer.deserializeStr();\n const expiryDateSecs = deserializer.deserializeU64();\n const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);\n const ephemeralSignature = EphemeralSignature.deserialize(deserializer);\n return new KeylessSignature({\n jwtHeader,\n expiryDateSecs: Number(expiryDateSecs),\n ephemeralCertificate,\n ephemeralPublicKey,\n ephemeralSignature,\n });\n }\n\n static getSimulationSignature(): KeylessSignature {\n return new KeylessSignature({\n jwtHeader: \"{}\",\n ephemeralCertificate: new EphemeralCertificate(\n new ZeroKnowledgeSig({\n proof: new ZkProof(\n new Groth16Zkp({ a: new Uint8Array(32), b: new Uint8Array(64), c: new Uint8Array(32) }),\n ZkpVariant.Groth16,\n ),\n expHorizonSecs: 0,\n }),\n EphemeralCertificateVariant.ZkProof,\n ),\n expiryDateSecs: 0,\n ephemeralPublicKey: new EphemeralPublicKey(new Ed25519PublicKey(new Uint8Array(32))),\n ephemeralSignature: new EphemeralSignature(new Ed25519Signature(new Uint8Array(64))),\n });\n }\n\n static isSignature(signature: Signature): signature is KeylessSignature {\n return signature instanceof KeylessSignature;\n }\n}\n\n/**\n * Represents an ephemeral certificate containing a signature, specifically a ZeroKnowledgeSig.\n * This class can be extended to support additional signature types, such as OpenIdSignature.\n *\n * @extends Signature\n * @group Implementation\n * @category Serialization\n */\nexport class EphemeralCertificate extends Signature {\n public readonly signature: Signature;\n\n /**\n * Index of the underlying enum variant\n * @group Implementation\n * @category Serialization\n */\n private readonly variant: EphemeralCertificateVariant;\n\n constructor(signature: Signature, variant: EphemeralCertificateVariant) {\n super();\n this.signature = signature;\n this.variant = variant;\n }\n\n /**\n * Get the public key in bytes (Uint8Array).\n *\n * @returns Uint8Array representation of the public key\n * @group Implementation\n * @category Serialization\n */\n toUint8Array(): Uint8Array {\n return this.signature.toUint8Array();\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(this.variant);\n this.signature.serialize(serializer);\n }\n\n static deserialize(deserializer: Deserializer): EphemeralCertificate {\n const variant = deserializer.deserializeUleb128AsU32();\n switch (variant) {\n case EphemeralCertificateVariant.ZkProof:\n return new EphemeralCertificate(ZeroKnowledgeSig.deserialize(deserializer), variant);\n default:\n throw new Error(`Unknown variant index for EphemeralCertificate: ${variant}`);\n }\n }\n}\n\n/**\n * Represents a fixed-size byte array of 32 bytes, extending the Serializable class.\n * This class is used for handling and serializing G1 bytes in cryptographic operations.\n *\n * @extends Serializable\n * @group Implementation\n * @category Serialization\n */\nclass G1Bytes extends Serializable {\n data: Uint8Array;\n\n constructor(data: HexInput) {\n super();\n this.data = Hex.fromHexInput(data).toUint8Array();\n if (this.data.length !== 32) {\n throw new Error(\"Input needs to be 32 bytes\");\n }\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeFixedBytes(this.data);\n }\n\n static deserialize(deserializer: Deserializer): G1Bytes {\n const bytes = deserializer.deserializeFixedBytes(32);\n return new G1Bytes(bytes);\n }\n}\n\n/**\n * Represents a 64-byte G2 element in a cryptographic context.\n * This class provides methods for serialization and deserialization of G2 bytes.\n *\n * @extends Serializable\n * @group Implementation\n * @category Serialization\n */\nclass G2Bytes extends Serializable {\n data: Uint8Array;\n\n constructor(data: HexInput) {\n super();\n this.data = Hex.fromHexInput(data).toUint8Array();\n if (this.data.length !== 64) {\n throw new Error(\"Input needs to be 64 bytes\");\n }\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeFixedBytes(this.data);\n }\n\n static deserialize(deserializer: Deserializer): G2Bytes {\n const bytes = deserializer.deserializeFixedBytes(64);\n return new G2Bytes(bytes);\n }\n}\n\n/**\n * Represents a Groth16 zero-knowledge proof, consisting of three proof points in compressed serialization format.\n * The points are the compressed serialization of affine representation of the proof.\n *\n * @extends Proof\n * @group Implementation\n * @category Serialization\n */\nexport class Groth16Zkp extends Proof {\n /**\n * The bytes of G1 proof point a\n * @group Implementation\n * @category Serialization\n */\n a: G1Bytes;\n\n /**\n * The bytes of G2 proof point b\n * @group Implementation\n * @category Serialization\n */\n b: G2Bytes;\n\n /**\n * The bytes of G1 proof point c\n * @group Implementation\n * @category Serialization\n */\n c: G1Bytes;\n\n constructor(args: { a: HexInput; b: HexInput; c: HexInput }) {\n super();\n const { a, b, c } = args;\n this.a = new G1Bytes(a);\n this.b = new G2Bytes(b);\n this.c = new G1Bytes(c);\n }\n\n serialize(serializer: Serializer): void {\n this.a.serialize(serializer);\n this.b.serialize(serializer);\n this.c.serialize(serializer);\n }\n\n static deserialize(deserializer: Deserializer): Groth16Zkp {\n const a = G1Bytes.deserialize(deserializer).bcsToBytes();\n const b = G2Bytes.deserialize(deserializer).bcsToBytes();\n const c = G1Bytes.deserialize(deserializer).bcsToBytes();\n return new Groth16Zkp({ a, b, c });\n }\n}\n\n/**\n * Represents a container for different types of zero-knowledge proofs.\n *\n * @extends Serializable\n * @group Implementation\n * @category Serialization\n */\nexport class ZkProof extends Serializable {\n public readonly proof: Proof;\n\n /**\n * Index of the underlying enum variant\n * @group Implementation\n * @category Serialization\n */\n private readonly variant: ZkpVariant;\n\n constructor(proof: Proof, variant: ZkpVariant) {\n super();\n this.proof = proof;\n this.variant = variant;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(this.variant);\n this.proof.serialize(serializer);\n }\n\n static deserialize(deserializer: Deserializer): ZkProof {\n const variant = deserializer.deserializeUleb128AsU32();\n switch (variant) {\n case ZkpVariant.Groth16:\n return new ZkProof(Groth16Zkp.deserialize(deserializer), variant);\n default:\n throw new Error(`Unknown variant index for ZkProof: ${variant}`);\n }\n }\n}\n\n/**\n * Represents a zero-knowledge signature, encapsulating the proof and its associated metadata.\n *\n * @extends Signature\n * @group Implementation\n * @category Serialization\n */\nexport class ZeroKnowledgeSig extends Signature {\n /**\n * The proof\n * @group Implementation\n * @category Serialization\n */\n readonly proof: ZkProof;\n\n /**\n * The max lifespan of the proof\n * @group Implementation\n * @category Serialization\n */\n readonly expHorizonSecs: number;\n\n /**\n * A key value pair on the JWT token that can be specified on the signature which would reveal the value on chain.\n * Can be used to assert identity or other attributes.\n * @group Implementation\n * @category Serialization\n */\n readonly extraField?: string;\n\n /**\n * The 'aud' value of the recovery service which is set when recovering an account.\n * @group Implementation\n * @category Serialization\n */\n readonly overrideAudVal?: string;\n\n /**\n * The training wheels signature\n * @group Implementation\n * @category Serialization\n */\n readonly trainingWheelsSignature?: EphemeralSignature;\n\n constructor(args: {\n proof: ZkProof;\n expHorizonSecs: number;\n extraField?: string;\n overrideAudVal?: string;\n trainingWheelsSignature?: EphemeralSignature;\n }) {\n super();\n const { proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal } = args;\n this.proof = proof;\n this.expHorizonSecs = expHorizonSecs;\n this.trainingWheelsSignature = trainingWheelsSignature;\n this.extraField = extraField;\n this.overrideAudVal = overrideAudVal;\n }\n\n /**\n * Deserialize a ZeroKnowledgeSig object from its BCS serialization in bytes.\n *\n * @param bytes - The bytes representing the serialized ZeroKnowledgeSig.\n * @returns ZeroKnowledgeSig - The deserialized ZeroKnowledgeSig object.\n * @group Implementation\n * @category Serialization\n */\n static fromBytes(bytes: Uint8Array): ZeroKnowledgeSig {\n return ZeroKnowledgeSig.deserialize(new Deserializer(bytes));\n }\n\n serialize(serializer: Serializer): void {\n this.proof.serialize(serializer);\n serializer.serializeU64(this.expHorizonSecs);\n serializer.serializeOption(this.extraField);\n serializer.serializeOption(this.overrideAudVal);\n serializer.serializeOption(this.trainingWheelsSignature);\n }\n\n static deserialize(deserializer: Deserializer): ZeroKnowledgeSig {\n const proof = ZkProof.deserialize(deserializer);\n const expHorizonSecs = Number(deserializer.deserializeU64());\n const extraField = deserializer.deserializeOption(\"string\");\n const overrideAudVal = deserializer.deserializeOption(\"string\");\n const trainingWheelsSignature = deserializer.deserializeOption(EphemeralSignature);\n return new ZeroKnowledgeSig({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });\n }\n}\n\n/**\n * Represents the on-chain configuration for how Keyless accounts operate.\n *\n * @remarks\n * This class encapsulates the verification key and the maximum lifespan of ephemeral key pairs,\n * which are essential for the functionality of Keyless accounts.\n * @group Implementation\n * @category Serialization\n */\nexport class KeylessConfiguration {\n /**\n * The verification key used to verify Groth16 proofs on chain\n * @group Implementation\n * @category Serialization\n */\n readonly verificationKey: Groth16VerificationKey;\n\n /**\n * The maximum lifespan of an ephemeral key pair. This is configured on chain.\n * @group Implementation\n * @category Serialization\n */\n readonly maxExpHorizonSecs: number;\n\n constructor(verificationKey: Groth16VerificationKey, maxExpHorizonSecs: number) {\n this.verificationKey = verificationKey;\n this.maxExpHorizonSecs = maxExpHorizonSecs;\n }\n\n static create(res: Groth16VerificationKeyResponse, maxExpHorizonSecs: number): KeylessConfiguration {\n return new KeylessConfiguration(\n new Groth16VerificationKey({\n alphaG1: res.alpha_g1,\n betaG2: res.beta_g2,\n deltaG2: res.delta_g2,\n gammaAbcG1: res.gamma_abc_g1,\n gammaG2: res.gamma_g2,\n }),\n maxExpHorizonSecs,\n );\n }\n}\n\n/**\n * Represents the verification key stored on-chain used to verify Groth16 proofs.\n * @group Implementation\n * @category Serialization\n */\nexport class Groth16VerificationKey {\n // The docstrings below are borrowed from ark-groth16\n\n /**\n * The `alpha * G`, where `G` is the generator of G1\n * @group Implementation\n * @category Serialization\n */\n readonly alphaG1: G1Bytes;\n\n /**\n * The `alpha * H`, where `H` is the generator of G2\n * @group Implementation\n * @category Serialization\n */\n readonly betaG2: G2Bytes;\n\n /**\n * The `delta * H`, where `H` is the generator of G2\n * @group Implementation\n * @category Serialization\n */\n readonly deltaG2: G2Bytes;\n\n /**\n * The `gamma^{-1} * (beta * a_i + alpha * b_i + c_i) * H`, where H is the generator of G1\n * @group Implementation\n * @category Serialization\n */\n readonly gammaAbcG1: [G1Bytes, G1Bytes];\n\n /**\n * The `gamma * H`, where `H` is the generator of G2\n * @group Implementation\n * @category Serialization\n */\n readonly gammaG2: G2Bytes;\n\n constructor(args: {\n alphaG1: HexInput;\n betaG2: HexInput;\n deltaG2: HexInput;\n gammaAbcG1: [HexInput, HexInput];\n gammaG2: HexInput;\n }) {\n const { alphaG1, betaG2, deltaG2, gammaAbcG1, gammaG2 } = args;\n this.alphaG1 = new G1Bytes(alphaG1);\n this.betaG2 = new G2Bytes(betaG2);\n this.deltaG2 = new G2Bytes(deltaG2);\n this.gammaAbcG1 = [new G1Bytes(gammaAbcG1[0]), new G1Bytes(gammaAbcG1[1])];\n this.gammaG2 = new G2Bytes(gammaG2);\n }\n\n /**\n * Calculates the hash of the serialized form of the verification key.\n * This is useful for comparing verification keys or using them as unique identifiers.\n *\n * @returns The SHA3-256 hash of the serialized verification key as a Uint8Array\n */\n public hash(): Uint8Array {\n const serializer = new Serializer();\n this.serialize(serializer);\n return sha3_256.create().update(serializer.toUint8Array()).digest();\n }\n\n serialize(serializer: Serializer): void {\n this.alphaG1.serialize(serializer);\n this.betaG2.serialize(serializer);\n this.deltaG2.serialize(serializer);\n this.gammaAbcG1[0].serialize(serializer);\n this.gammaAbcG1[1].serialize(serializer);\n this.gammaG2.serialize(serializer);\n }\n\n /**\n * Converts a Groth16VerificationKeyResponse object into a Groth16VerificationKey instance.\n *\n * @param res - The Groth16VerificationKeyResponse object containing the verification key data.\n * @param res.alpha_g1 - The alpha G1 value from the response.\n * @param res.beta_g2 - The beta G2 value from the response.\n * @param res.delta_g2 - The delta G2 value from the response.\n * @param res.gamma_abc_g1 - The gamma ABC G1 value from the response.\n * @param res.gamma_g2 - The gamma G2 value from the response.\n * @returns A Groth16VerificationKey instance constructed from the provided response data.\n * @group Implementation\n * @category Serialization\n */\n static fromGroth16VerificationKeyResponse(res: Groth16VerificationKeyResponse): Groth16VerificationKey {\n return new Groth16VerificationKey({\n alphaG1: res.alpha_g1,\n betaG2: res.beta_g2,\n deltaG2: res.delta_g2,\n gammaAbcG1: res.gamma_abc_g1,\n gammaG2: res.gamma_g2,\n });\n }\n}\n\n/**\n * Retrieves the configuration parameters for Keyless Accounts on the blockchain, including the verifying key and the maximum\n * expiry horizon.\n *\n * @param args - The arguments for retrieving the keyless configuration.\n * @param args.aptosConfig - The Aptos configuration object containing network details.\n * @param args.options - Optional parameters for the request.\n * @param args.options.ledgerVersion - The ledger version to query; if not provided, the latest version will be used.\n * @returns KeylessConfiguration - The configuration object containing the verifying key and maximum expiry horizon.\n * @group Implementation\n * @category Serialization\n */\nexport async function getKeylessConfig(args: {\n aptosConfig: AptosConfig;\n options?: LedgerVersionArg;\n}): Promise<KeylessConfiguration> {\n const { aptosConfig } = args;\n try {\n return await memoizeAsync(\n async () => {\n const config = await getKeylessConfigurationResource(args);\n const vk = await getGroth16VerificationKeyResource(args);\n return KeylessConfiguration.create(vk, Number(config.max_exp_horizon_secs));\n },\n `keyless-configuration-${aptosConfig.network}`,\n 1000 * 60 * 5, // 5 minutes\n )();\n } catch (error) {\n if (error instanceof KeylessError) {\n throw error;\n }\n throw KeylessError.fromErrorType({\n type: KeylessErrorType.FULL_NODE_OTHER,\n error,\n });\n }\n}\n\n/**\n * Parses a JWT and returns the 'iss', 'aud', and 'uid' values.\n *\n * @param args - The arguments for parsing the JWT.\n * @param args.jwt - The JWT to parse.\n * @param args.uidKey - The key to use for the 'uid' value; defaults to 'sub'.\n * @returns The 'iss', 'aud', and 'uid' values from the JWT.\n */\nexport function getIssAudAndUidVal(args: { jwt: string; uidKey?: string }): {\n iss: string;\n aud: string;\n uidVal: string;\n} {\n const { jwt, uidKey = \"sub\" } = args;\n let jwtPayload: JwtPayload & { [key: string]: string };\n try {\n jwtPayload = jwtDecode<JwtPayload & { [key: string]: string }>(jwt);\n } catch (error) {\n throw KeylessError.fromErrorType({\n type: KeylessErrorType.JWT_PARSING_ERROR,\n details: `Failed to parse JWT - ${getErrorMessage(error)}`,\n });\n }\n if (typeof jwtPayload.iss !== \"string\") {\n throw KeylessError.fromErrorType({\n type: KeylessErrorType.JWT_PARSING_ERROR,\n details: \"JWT is missing 'iss' in the payload. This should never happen.\",\n });\n }\n if (typeof jwtPayload.aud !== \"string\") {\n throw KeylessError.fromErrorType({\n type: KeylessErrorType.JWT_PARSING_ERROR,\n details: \"JWT is missing 'aud' in the payload or 'aud' is an array of values.\",\n });\n }\n const uidVal = jwtPayload[uidKey];\n return { iss: jwtPayload.iss, aud: jwtPayload.aud, uidVal };\n}\n\n/**\n * Retrieves the KeylessConfiguration set on chain.\n *\n * @param args - The arguments for retrieving the configuration.\n * @param args.aptosConfig - The configuration for connecting to the Aptos network.\n * @param args.options - Optional parameters for the request.\n * @param args.options.ledgerVersion - The ledger version to query; if not provided, it will get the latest version.\n * @returns KeylessConfigurationResponse - The response containing the keyless configuration data.\n * @group Implementation\n * @category Serialization\n */\nasync function getKeylessConfigurationResource(args: {\n aptosConfig: AptosConfig;\n options?: LedgerVersionArg;\n}): Promise<KeylessConfigurationResponse> {\n const { aptosConfig, options } = args;\n const resourceType = \"0x1::keyless_account::Configuration\";\n try {\n const { data } = await getAptosFullNode<{}, MoveResource<KeylessConfigurationResponse>>({\n aptosConfig,\n originMethod: \"getKeylessConfigurationResource\",\n path: `accounts/${AccountAddress.from(\"0x1\").toString()}/resource/${resourceType}`,\n params: { ledger_version: options?.ledgerVersion },\n });\n return data.data;\n } catch (error) {\n throw KeylessError.fromErrorType({\n type: KeylessErrorType.FULL_NODE_CONFIG_LOOKUP_ERROR,\n error,\n });\n }\n}\n\n/**\n * Retrieves the Groth16VerificationKey set on the blockchain.\n *\n * @param args - The arguments for retrieving the verification key.\n * @param args.aptosConfig - The Aptos configuration object.\n * @param args.options - Optional parameters for the request.\n * @param args.options.ledgerVersion - The ledger version to query; if not provided, it will get the latest version.\n * @returns Groth16VerificationKeyResponse - The response containing the Groth16 verification key data.\n * @group Implementation\n * @category Serialization\n */\nasync function getGroth16VerificationKeyResource(args: {\n aptosConfig: AptosConfig;\n options?: LedgerVersionArg;\n}): Promise<Groth16VerificationKeyResponse> {\n const { aptosConfig, options } = args;\n const resourceType = \"0x1::keyless_account::Groth16VerificationKey\";\n try {\n const { data } = await getAptosFullNode<{}, MoveResource<Groth16VerificationKeyResponse>>({\n aptosConfig,\n originMethod: \"getGroth16VerificationKeyResource\",\n path: `accounts/${AccountAddress.from(\"0x1\").toString()}/resource/${resourceType}`,\n params: { ledger_version: options?.ledgerVersion },\n });\n return data.data;\n } catch (error) {\n throw KeylessError.fromErrorType({\n type: KeylessErrorType.FULL_NODE_VERIFICATION_KEY_LOOKUP_ERROR,\n error,\n });\n }\n}\n\nexport async function getKeylessJWKs(args: {\n aptosConfig: AptosConfig;\n jwkAddr?: AccountAddressInput;\n options?: LedgerVersionArg;\n}): Promise<Map<string, MoveJWK[]>> {\n const { aptosConfig, jwkAddr, options } = args;\n let resource: MoveResource<PatchedJWKsResponse>;\n if (!jwkAddr) {\n const resourceType = \"0x1::jwks::PatchedJWKs\";\n const { data } = await getAptosFullNode<{}, MoveResource<PatchedJWKsResponse>>({\n aptosConfig,\n originMethod: \"getKeylessJWKs\",\n path: `accounts/0x1/resource/${resourceType}`,\n params: { ledger_version: options?.ledgerVersion },\n });\n resource = data;\n } else {\n const resourceType = \"0x1::jwks::FederatedJWKs\";\n const { data } = await getAptosFullNode<{}, MoveResource<PatchedJWKsResponse>>({\n aptosConfig,\n originMethod: \"getKeylessJWKs\",\n path: `accounts/${AccountAddress.from(jwkAddr).toString()}/resource/${resourceType}`,\n params: { ledger_version: options?.ledgerVersion },\n });\n resource = data;\n }\n\n // Create a map of issuer to JWK arrays\n const jwkMap = new Map<string, MoveJWK[]>();\n for (const entry of resource.data.jwks.entries) {\n const jwks: MoveJWK[] = [];\n for (const jwkStruct of entry.jwks) {\n const { data: jwkData } = jwkStruct.variant;\n const deserializer = new Deserializer(Hex.fromHexInput(jwkData).toUint8Array());\n const jwk = MoveJWK.deserialize(deserializer);\n jwks.push(jwk);\n }\n jwkMap.set(hexToAsciiString(entry.issuer), jwks);\n }\n\n return jwkMap;\n}\n\nexport class MoveJWK extends Serializable {\n public kid: string;\n\n public kty: string;\n\n public alg: string;\n\n public e: string;\n\n public n: string;\n\n constructor(args: { kid: string; kty: string; alg: string; e: string; n: string }) {\n super();\n const { kid, kty, alg, e, n } = args;\n this.kid = kid;\n this.kty = kty;\n this.alg = alg;\n this.e = e;\n this.n = n;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeStr(this.kid);\n serializer.serializeStr(this.kty);\n serializer.serializeStr(this.alg);\n serializer.serializeStr(this.e);\n serializer.serializeStr(this.n);\n }\n\n static fromMoveStruct(struct: MoveAnyStruct): MoveJWK {\n const { data } = struct.variant;\n const deserializer = new Deserializer(Hex.fromHexInput(data).toUint8Array());\n return MoveJWK.deserialize(deserializer);\n }\n\n static deserialize(deserializer: Deserializer): MoveJWK {\n const kid = deserializer.deserializeStr();\n const kty = deserializer.deserializeStr();\n const alg = deserializer.deserializeStr();\n const n = deserializer.deserializeStr();\n const e = deserializer.deserializeStr();\n return new MoveJWK({ kid, kty, alg, n, e });\n }\n}\n\ninterface JwtHeader {\n kid: string; // Key ID\n}\n/**\n * Safely parses the JWT header.\n * @param jwtHeader The JWT header string\n * @returns Parsed JWT header as an object.\n */\nexport function parseJwtHeader(jwtHeader: string): JwtHeader {\n try {\n const header = JSON.parse(jwtHeader);\n if (header.kid === undefined) {\n throw new Error(\"JWT header missing kid\");\n }\n return header;\n } catch (error) {\n throw new Error(\"Failed to parse JWT header.\");\n }\n}\n"],"mappings":"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","names":["jwtDecode","sha3_256","EPK_HORIZON_SECS","MAX_AUD_VAL_BYTES","MAX_UID_KEY_BYTES","MAX_UID_VAL_BYTES","MAX_ISS_VAL_BYTES","MAX_EXTRA_FIELD_BYTES","MAX_JWT_HEADER_B64_BYTES","MAX_COMMITED_EPK_BYTES","_KeylessPublicKey","AccountPublicKey","iss","idCommitment","idcBytes","Hex","serializer","Serializer","AuthenticationKey","args","deserializer","addressSeed","publicKey","computeIdCommitment","jwt","pepper","uidKey","jwtPayload","jwtDecode","uidVal","KeylessPublicKey","aud","fields","bytesToBigIntLE","hashStrToField","bigIntToBytesLE","poseidonHash","KeylessSignature","_KeylessSignature","Signature","jwtHeader","ephemeralCertificate","expiryDateSecs","ephemeralPublicKey","ephemeralSignature","parseJwtHeader","EphemeralCertificate","EphemeralPublicKey","EphemeralSignature","ZeroKnowledgeSig","ZkProof","Groth16Zkp","Ed25519PublicKey","Ed25519Signature","signature","_EphemeralCertificate","variant","G1Bytes","_G1Bytes","Serializable","data","bytes","G2Bytes","_G2Bytes","_Groth16Zkp","Proof","a","b","c","_ZkProof","proof","_ZeroKnowledgeSig","expHorizonSecs","trainingWheelsSignature","extraField","overrideAudVal","Deserializer","KeylessConfiguration","_KeylessConfiguration","verificationKey","maxExpHorizonSecs","res","Groth16VerificationKey","_Groth16VerificationKey","alphaG1","betaG2","deltaG2","gammaAbcG1","gammaG2","sha3_256","getKeylessConfig","aptosConfig","memoizeAsync","config","getKeylessConfigurationResource","vk","getGroth16VerificationKeyResource","error","KeylessError","getIssAudAndUidVal","getErrorMessage","options","resourceType","getAptosFullNode","AccountAddress","getKeylessJWKs","jwkAddr","resource","jwkMap","entry","jwks","jwkStruct","jwkData","jwk","MoveJWK","hexToAsciiString","_MoveJWK","kid","kty","alg","e","struct","n","header"]}
@@ -0,0 +1,2 @@
1
+ import{a as t}from"./chunk-CYMVZJHC.mjs";import{a as p}from"./chunk-CWRANLXZ.mjs";import{e as s}from"./chunk-IJ2QKE4W.mjs";import{a as i}from"./chunk-I7JGKVOC.mjs";import{c as a}from"./chunk-67ZANQ3R.mjs";import{b as r}from"./chunk-Q4C4U6I4.mjs";import{a as e}from"./chunk-XTOIL6MB.mjs";var c=class{constructor(n){this.config=n}async simple(n){return t({aptosConfig:this.config,...n})}async scriptComposer(n){let o=new p(this.config);await o.init();let d=(await n.builder(o)).build(),u=await s({aptosConfig:this.config,payload:a.load(new e(d)),...n});return new i(u,n.withFeePayer===!0?r.ZERO:void 0)}async multiAgent(n){return t({aptosConfig:this.config,...n})}};export{c as a};
2
+ //# sourceMappingURL=chunk-KNTAED2Z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/api/transactionSubmission/build.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AccountAddress, AccountAddressInput } from \"../../core\";\nimport { generateTransaction } from \"../../internal/transactionSubmission\";\nimport {\n InputGenerateTransactionPayloadData,\n InputGenerateTransactionOptions,\n AptosScriptComposer,\n TransactionPayloadScript,\n generateRawTransaction,\n} from \"../../transactions\";\nimport { MultiAgentTransaction } from \"../../transactions/instances/multiAgentTransaction\";\nimport { SimpleTransaction } from \"../../transactions/instances/simpleTransaction\";\nimport { AptosConfig } from \"../aptosConfig\";\nimport { Deserializer } from \"../../bcs\";\n\n/**\n * A class to handle all `Build` transaction operations.\n * @group Implementation\n */\nexport class Build {\n readonly config: AptosConfig;\n\n /**\n * Initializes a new instance of the Aptos client with the specified configuration.\n * This allows you to interact with the Aptos blockchain using the provided settings.\n *\n * @param config - The configuration settings for the Aptos client.\n * @param config.network - The network to connect to (e.g., TESTNET, MAINNET).\n * @param config.nodeUrl - The URL of the Aptos node to connect to.\n * @param config.account - The account details for authentication.\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * async function runExample() {\n * // Create a configuration for the Aptos client\n * const config = new AptosConfig({\n * network: Network.TESTNET, // specify the network\n * nodeUrl: \"https://testnet.aptos.dev\", // specify the node URL\n * });\n *\n * // Initialize the Aptos client\n * const aptos = new Aptos(config);\n *\n * console.log(\"Aptos client initialized:\", aptos);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Implementation\n */\n constructor(config: AptosConfig) {\n this.config = config;\n }\n\n /**\n * Build a simple transaction.\n *\n * This function allows you to create a transaction with specified sender and data.\n *\n * @param args.sender - The sender account address.\n * @param args.data - The transaction data.\n * @param args.options - Optional transaction configurations.\n * @param args.withFeePayer - Whether there is a fee payer for the transaction.\n *\n * @returns SimpleTransaction\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Build a simple transaction\n * const transaction = await aptos.transaction.simple({\n * sender: \"0x1\", // replace with a real sender account address\n * data: {\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [\"0x2\", 100], // replace with a real destination account address\n * },\n * options: {\n * gasUnitPrice: 100, // specify your own gas unit price if needed\n * maxGasAmount: 1000, // specify your own max gas amount if needed\n * },\n * });\n *\n * console.log(transaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Implementation\n */\n async simple(args: {\n sender: AccountAddressInput;\n data: InputGenerateTransactionPayloadData;\n options?: InputGenerateTransactionOptions;\n withFeePayer?: boolean;\n }): Promise<SimpleTransaction> {\n return generateTransaction({ aptosConfig: this.config, ...args });\n }\n\n /**\n * Build a transaction from a series of Move calls.\n *\n * This function allows you to create a transaction with a list of Move calls.\n *\n * Right now we only tested this logic with single signer and we will add support\n * for mutli agent transactions if needed.\n *\n * @param args.sender - The sender account address.\n * @param args.builder - The closure to construct the list of calls.\n * @param args.options - Optional transaction configurations.\n * @param args.withFeePayer - Whether there is a fee payer for the transaction.\n *\n * @returns SimpleTransaction\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Build a transaction from a chained series of Move calls.\n * const transaction = await aptos.transaction.build.scriptComposer({\n * sender: \"0x1\", // replace with a real sender account address\n * builder: builder: async (builder) => {\n * const coin = await builder.addBatchedCalls({\n * function: \"0x1::coin::withdraw\",\n * functionArguments: [CallArgument.new_signer(0), 1],\n * typeArguments: [\"0x1::aptos_coin::AptosCoin\"],\n * });\n *\n * // Pass the returned value from the first function call to the second call\n * const fungibleAsset = await builder.addBatchedCalls({\n * function: \"0x1::coin::coin_to_fungible_asset\",\n * functionArguments: [coin[0]],\n * typeArguments: [\"0x1::aptos_coin::AptosCoin\"],\n * });\n *\n * await builder.addBatchedCalls({\n * function: \"0x1::primary_fungible_store::deposit\",\n * functionArguments: [singleSignerED25519SenderAccount.accountAddress, fungibleAsset[0]],\n * typeArguments: [],\n * });\n * return builder;\n * },\n * options: {\n * gasUnitPrice: 100, // specify your own gas unit price if needed\n * maxGasAmount: 1000, // specify your own max gas amount if needed\n * },\n * });\n *\n * console.log(transaction);\n * }\n * runExample().catch(console.error);\n * ```\n */\n async scriptComposer(args: {\n sender: AccountAddressInput;\n builder: (builder: AptosScriptComposer) => Promise<AptosScriptComposer>;\n options?: InputGenerateTransactionOptions;\n withFeePayer?: boolean;\n }): Promise<SimpleTransaction> {\n const composer = new AptosScriptComposer(this.config);\n await composer.init();\n const builder = await args.builder(composer);\n const bytes = builder.build();\n const rawTxn = await generateRawTransaction({\n aptosConfig: this.config,\n payload: TransactionPayloadScript.load(new Deserializer(bytes)),\n ...args,\n });\n return new SimpleTransaction(rawTxn, args.withFeePayer === true ? AccountAddress.ZERO : undefined);\n }\n\n /**\n * Build a multi-agent transaction that allows multiple signers to authorize a transaction.\n *\n * @param args - The parameters for creating the multi-agent transaction.\n * @param args.sender - The sender account address.\n * @param args.data - The transaction data.\n * @param args.secondarySignerAddresses - An array of the secondary signers' account addresses.\n * @param args.options - Optional transaction configurations.\n * @param args.withFeePayer - Whether there is a fee payer for the transaction.\n *\n * @returns MultiAgentTransaction\n *\n * @example\n * ```typescript\n * import { Aptos, AptosConfig, Network } from \"@aptos-labs/ts-sdk\";\n *\n * const config = new AptosConfig({ network: Network.TESTNET });\n * const aptos = new Aptos(config);\n *\n * async function runExample() {\n * // Build a multi-agent transaction\n * const transaction = await aptos.multiAgent({\n * sender: \"0x1\", // replace with a real sender account address\n * data: {\n * // Transaction data structure\n * function: \"0x1::aptos_account::transfer\",\n * functionArguments: [\"0x2\", 100], // replace with a real destination account address and amount\n * },\n * secondarySignerAddresses: [\"0x3\", \"0x4\"], // replace with real secondary signer addresses\n * options: {\n * // Optional transaction configurations\n * maxGasAmount: \"1000\",\n * gasUnitPrice: \"1\",\n * },\n * });\n *\n * console.log(transaction);\n * }\n * runExample().catch(console.error);\n * ```\n * @group Implementation\n */\n async multiAgent(args: {\n sender: AccountAddressInput;\n data: InputGenerateTransactionPayloadData;\n secondarySignerAddresses: AccountAddressInput[];\n options?: InputGenerateTransactionOptions;\n withFeePayer?: boolean;\n }): Promise<MultiAgentTransaction> {\n return generateTransaction({ aptosConfig: this.config, ...args });\n }\n}\n"],"mappings":"+RAqBO,IAAMA,EAAN,KAAY,CAgCjB,YAAYC,EAAqB,CAC/B,KAAK,OAASA,CAChB,CAyCA,MAAM,OAAOC,EAKkB,CAC7B,OAAOC,EAAoB,CAAE,YAAa,KAAK,OAAQ,GAAGD,CAAK,CAAC,CAClE,CA4DA,MAAM,eAAeA,EAKU,CAC7B,IAAME,EAAW,IAAIC,EAAoB,KAAK,MAAM,EACpD,MAAMD,EAAS,KAAK,EAEpB,IAAME,GADU,MAAMJ,EAAK,QAAQE,CAAQ,GACrB,MAAM,EACtBG,EAAS,MAAMC,EAAuB,CAC1C,YAAa,KAAK,OAClB,QAASC,EAAyB,KAAK,IAAIC,EAAaJ,CAAK,CAAC,EAC9D,GAAGJ,CACL,CAAC,EACD,OAAO,IAAIS,EAAkBJ,EAAQL,EAAK,eAAiB,GAAOU,EAAe,KAAO,MAAS,CACnG,CA4CA,MAAM,WAAWV,EAMkB,CACjC,OAAOC,EAAoB,CAAE,YAAa,KAAK,OAAQ,GAAGD,CAAK,CAAC,CAClE,CACF","names":["Build","config","args","generateTransaction","composer","AptosScriptComposer","bytes","rawTxn","generateRawTransaction","TransactionPayloadScript","Deserializer","SimpleTransaction","AccountAddress"]}
@@ -1,2 +1,2 @@
1
- import{c as a}from"./chunk-2KSMV5KD.mjs";import{u as n}from"./chunk-VHNX2NUR.mjs";import{b as s}from"./chunk-JNO7KPMG.mjs";async function d(e){let{aptosConfig:o,options:t}=e,r={query:n,variables:{where_condition:t?.where,offset:t?.offset,limit:t?.limit,order_by:t?.orderBy}};return(await a({aptosConfig:o,query:r,originMethod:"getObjectData"})).current_objects}async function f(e){let{aptosConfig:o,objectAddress:t,options:r}=e,c={object_address:{_eq:s.from(t).toStringLong()}};return(await d({aptosConfig:o,options:{...r,where:c}}))[0]}export{d as a,f as b};
2
- //# sourceMappingURL=chunk-GVNK3UMT.mjs.map
1
+ import{c as a}from"./chunk-A3NEASNH.mjs";import{u as n}from"./chunk-VHNX2NUR.mjs";import{b as s}from"./chunk-Q4C4U6I4.mjs";async function d(e){let{aptosConfig:o,options:t}=e,r={query:n,variables:{where_condition:t?.where,offset:t?.offset,limit:t?.limit,order_by:t?.orderBy}};return(await a({aptosConfig:o,query:r,originMethod:"getObjectData"})).current_objects}async function f(e){let{aptosConfig:o,objectAddress:t,options:r}=e,c={object_address:{_eq:s.from(t).toStringLong()}};return(await d({aptosConfig:o,options:{...r,where:c}}))[0]}export{d as a,f as b};
2
+ //# sourceMappingURL=chunk-KPLWOVKG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/internal/object.ts"],"sourcesContent":["import { AptosConfig } from \"../api/aptosConfig\";\nimport { AccountAddressInput, AccountAddress } from \"../core\";\nimport { PaginationArgs, OrderByArg, GetObjectDataQueryResponse, WhereArg } from \"../types\";\nimport { GetObjectDataQuery } from \"../types/generated/operations\";\nimport { GetObjectData } from \"../types/generated/queries\";\nimport { CurrentObjectsBoolExp } from \"../types/generated/types\";\nimport { queryIndexer } from \"./general\";\n\n/**\n * Retrieves the current objects based on specified filtering and pagination options.\n *\n * @param args - The arguments for retrieving object data.\n * @param args.aptosConfig - The configuration settings for Aptos.\n * @param [args.options] - Optional parameters for pagination and filtering.\n * @param [args.options.offset] - The number of items to skip before starting to collect the result set.\n * @param [args.options.limit] - The maximum number of items to return.\n * @param [args.options.orderBy] - The criteria for ordering the results.\n * @param [args.options.where] - The conditions to filter the results.\n * @returns The current objects that match the specified criteria.\n * @group Implementation\n */\nexport async function getObjectData(args: {\n aptosConfig: AptosConfig;\n options?: PaginationArgs & OrderByArg<GetObjectDataQueryResponse[0]> & WhereArg<CurrentObjectsBoolExp>;\n}): Promise<GetObjectDataQueryResponse> {\n const { aptosConfig, options } = args;\n\n const graphqlQuery = {\n query: GetObjectData,\n variables: {\n where_condition: options?.where,\n offset: options?.offset,\n limit: options?.limit,\n order_by: options?.orderBy,\n },\n };\n const data = await queryIndexer<GetObjectDataQuery>({\n aptosConfig,\n query: graphqlQuery,\n originMethod: \"getObjectData\",\n });\n\n return data.current_objects;\n}\n\n/**\n * Retrieves the object data associated with a specific object address.\n * This function allows you to access detailed information about an object in the Aptos blockchain.\n *\n * @param args - The arguments for retrieving object data.\n * @param args.aptosConfig - The configuration for connecting to the Aptos blockchain.\n * @param args.objectAddress - The address of the object whose data is being retrieved.\n * @param args.options - Optional parameters for pagination and ordering of the results.\n * @group Implementation\n */\nexport async function getObjectDataByObjectAddress(args: {\n aptosConfig: AptosConfig;\n objectAddress: AccountAddressInput;\n options?: PaginationArgs & OrderByArg<GetObjectDataQueryResponse[0]>;\n}): Promise<GetObjectDataQueryResponse[0]> {\n const { aptosConfig, objectAddress, options } = args;\n const address = AccountAddress.from(objectAddress).toStringLong();\n\n const whereCondition: { object_address: { _eq: string } } = {\n object_address: { _eq: address },\n };\n return (await getObjectData({ aptosConfig, options: { ...options, where: whereCondition } }))[0];\n}\n"],"mappings":"2HAqBA,eAAsBA,EAAcC,EAGI,CACtC,GAAM,CAAE,YAAAC,EAAa,QAAAC,CAAQ,EAAIF,EAE3BG,EAAe,CACnB,MAAOC,EACP,UAAW,CACT,gBAAiBF,GAAS,MAC1B,OAAQA,GAAS,OACjB,MAAOA,GAAS,MAChB,SAAUA,GAAS,OACrB,CACF,EAOA,OANa,MAAMG,EAAiC,CAClD,YAAAJ,EACA,MAAOE,EACP,aAAc,eAChB,CAAC,GAEW,eACd,CAYA,eAAsBG,EAA6BN,EAIR,CACzC,GAAM,CAAE,YAAAC,EAAa,cAAAM,EAAe,QAAAL,CAAQ,EAAIF,EAG1CQ,EAAsD,CAC1D,eAAgB,CAAE,IAHJC,EAAe,KAAKF,CAAa,EAAE,aAAa,CAG/B,CACjC,EACA,OAAQ,MAAMR,EAAc,CAAE,YAAAE,EAAa,QAAS,CAAE,GAAGC,EAAS,MAAOM,CAAe,CAAE,CAAC,GAAG,CAAC,CACjG","names":["getObjectData","args","aptosConfig","options","graphqlQuery","GetObjectData","queryIndexer","getObjectDataByObjectAddress","objectAddress","whereCondition","AccountAddress"]}
@@ -1,2 +1,2 @@
1
- import{a as r}from"./chunk-AJ5JHBAE.mjs";import{b as i}from"./chunk-SPRNSFUV.mjs";var t=class a extends r{constructor(e){super(),this.value=i.fromHexInput(e).toUint8Array()}serialize(e){e.serializeFixedBytes(this.value)}serializeForEntryFunction(e){e.serialize(this)}serializeForScriptFunction(e){e.serialize(this)}static deserialize(e,s){let o=e.deserializeFixedBytes(s);return new a(o)}};export{t as a};
2
- //# sourceMappingURL=chunk-BRV3RLKW.mjs.map
1
+ import{a as r}from"./chunk-EBMEXURY.mjs";import{b as i}from"./chunk-STY74NUA.mjs";var t=class a extends r{constructor(e){super(),this.value=i.fromHexInput(e).toUint8Array()}serialize(e){e.serializeFixedBytes(this.value)}serializeForEntryFunction(e){e.serialize(this)}serializeForScriptFunction(e){e.serialize(this)}static deserialize(e,s){let o=e.deserializeFixedBytes(s);return new a(o)}};export{t as a};
2
+ //# sourceMappingURL=chunk-MT2RJ7H3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/bcs/serializable/fixedBytes.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Serializer, Serializable } from \"../serializer\";\nimport { Deserializer } from \"../deserializer\";\nimport { HexInput } from \"../../types\";\nimport { Hex } from \"../../core/hex\";\nimport { TransactionArgument } from \"../../transactions/instances/transactionArgument\";\n\n/**\n * Represents a contiguous sequence of already serialized BCS bytes.\n * \n * This class differs from most other Serializable classes in that its internal byte buffer is serialized to BCS\n * bytes exactly as-is, without prepending the length of the bytes. It is ideal for scenarios where custom serialization\n * is required, such as passing serialized bytes as transaction arguments. Additionally, it serves as a representation \n * of type-agnostic BCS bytes, akin to a vector<u8>.\n * \n * An example use case includes handling bytes resulting from entry function arguments that have been serialized \n * for an entry function.\n * \n * @example\n * const yourCustomSerializedBytes = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);\n * const fixedBytes = new FixedBytes(yourCustomSerializedBytes);\n * const payload = await generateTransactionPayload({\n * function: \"0xbeefcafe::your_module::your_function_that_requires_custom_serialization\",\n * functionArguments: [yourCustomBytes],\n * });\n * \n * This class is particularly useful when you want to handle a fixed-size byte array without the overhead of \n * length prepending, such as when dealing with 32-byte addresses stored as U8 in a MoveVector<U8>.\n\n * For example, if you store each of the 32 bytes for an address as a U8 in a MoveVector<U8>, when you\n * serialize that MoveVector<U8>, it will be serialized to 33 bytes. If you solely want to pass around\n * the 32 bytes as a Serializable class that *does not* prepend the length to the BCS-serialized representation,\n * use this class.* \n * @param value - HexInput representing a sequence of Uint8 bytes.\n * @returns A Serializable FixedBytes instance, which when serialized, does not prepend the length of the bytes.\n * @see EntryFunctionBytes\n * @group Implementation\n * @category BCS\n */\nexport class FixedBytes extends Serializable implements TransactionArgument {\n public value: Uint8Array;\n\n /**\n * Creates an instance of the class with a specified hexadecimal input.\n * The value is converted from hexadecimal format to a Uint8Array.\n *\n * @param value - The hexadecimal input to be converted.\n * @group Implementation\n * @category BCS\n */\n constructor(value: HexInput) {\n super();\n this.value = Hex.fromHexInput(value).toUint8Array();\n }\n\n /**\n * Serializes the fixed bytes value using the provided serializer.\n * This function is essential for converting the fixed bytes into a format suitable for storage or transmission.\n *\n * @param serializer - The serializer instance used for serialization.\n * @group Implementation\n * @category BCS\n */\n serialize(serializer: Serializer): void {\n serializer.serializeFixedBytes(this.value);\n }\n\n /**\n * Serializes the current instance for an entry function using the provided serializer.\n * This allows the instance to be converted into a format suitable for transmission or storage.\n *\n * @param serializer - The serializer used to perform the serialization.\n * @group Implementation\n * @category BCS\n */\n serializeForEntryFunction(serializer: Serializer): void {\n serializer.serialize(this);\n }\n\n /**\n * Serializes the current instance using the provided serializer.\n * This function is essential for preparing data to be passed as arguments in script functions.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @group Implementation\n * @category BCS\n */\n serializeForScriptFunction(serializer: Serializer): void {\n serializer.serialize(this);\n }\n\n /**\n * Deserializes a fixed-length byte array from the provided deserializer.\n * This function helps in reconstructing a FixedBytes object from the serialized data.\n *\n * @param deserializer - The deserializer instance used to read the byte data.\n * @param length - The length of the byte array to be deserialized.\n * @group Implementation\n * @category BCS\n */\n static deserialize(deserializer: Deserializer, length: number): FixedBytes {\n const bytes = deserializer.deserializeFixedBytes(length);\n return new FixedBytes(bytes);\n }\n}\n"],"mappings":"kFAyCO,IAAMA,EAAN,MAAMC,UAAmBC,CAA4C,CAW1E,YAAYC,EAAiB,CAC3B,MAAM,EACN,KAAK,MAAQC,EAAI,aAAaD,CAAK,EAAE,aAAa,CACpD,CAUA,UAAUE,EAA8B,CACtCA,EAAW,oBAAoB,KAAK,KAAK,CAC3C,CAUA,0BAA0BA,EAA8B,CACtDA,EAAW,UAAU,IAAI,CAC3B,CAUA,2BAA2BA,EAA8B,CACvDA,EAAW,UAAU,IAAI,CAC3B,CAWA,OAAO,YAAYC,EAA4BC,EAA4B,CACzE,IAAMC,EAAQF,EAAa,sBAAsBC,CAAM,EACvD,OAAO,IAAIN,EAAWO,CAAK,CAC7B,CACF","names":["FixedBytes","_FixedBytes","Serializable","value","Hex","serializer","deserializer","length","bytes"]}
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-LGTOOAQI.mjs";import{b as i}from"./chunk-JNO7KPMG.mjs";import{a as d}from"./chunk-AJ5JHBAE.mjs";var o=class t extends d{constructor(e,r){super(),this.address=e,this.name=r}static fromStr(e){let r=e.split("::");if(r.length!==2)throw new Error("Invalid module id.");return new t(i.fromString(r[0]),new s(r[1]))}serialize(e){this.address.serialize(e),this.name.serialize(e)}static deserialize(e){let r=i.deserialize(e),n=s.deserialize(e);return new t(r,n)}};export{o as a};
2
- //# sourceMappingURL=chunk-ACVIE7IE.mjs.map
1
+ import{a as s}from"./chunk-N6YTF76Q.mjs";import{b as i}from"./chunk-Q4C4U6I4.mjs";import{a as d}from"./chunk-EBMEXURY.mjs";var o=class t extends d{constructor(e,r){super(),this.address=e,this.name=r}static fromStr(e){let r=e.split("::");if(r.length!==2)throw new Error("Invalid module id.");return new t(i.fromString(r[0]),new s(r[1]))}serialize(e){this.address.serialize(e),this.name.serialize(e)}static deserialize(e){let r=i.deserialize(e),n=s.deserialize(e);return new t(r,n)}};export{o as a};
2
+ //# sourceMappingURL=chunk-N4DM5FYH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/transactions/instances/moduleId.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { AccountAddress } from \"../../core\";\nimport { Identifier } from \"./identifier\";\nimport { MoveModuleId } from \"../../types\";\n\n/**\n * Represents a ModuleId that can be serialized and deserialized.\n * A ModuleId consists of a module address (e.g., \"0x1\") and a module name (e.g., \"coin\").\n * @group Implementation\n * @category Transactions\n */\nexport class ModuleId extends Serializable {\n public readonly address: AccountAddress;\n\n public readonly name: Identifier;\n\n /**\n * Initializes a new instance of the module with the specified account address and name.\n *\n * @param address - The account address, e.g., \"0x1\".\n * @param name - The module name under the specified address, e.g., \"coin\".\n * @group Implementation\n * @category Transactions\n */\n constructor(address: AccountAddress, name: Identifier) {\n super();\n this.address = address;\n this.name = name;\n }\n\n /**\n * Converts a string literal in the format \"account_address::module_name\" to a ModuleId.\n * @param moduleId - A string literal representing the module identifier.\n * @throws Error if the provided moduleId is not in the correct format.\n * @returns ModuleId - The corresponding ModuleId object.\n * @group Implementation\n * @category Transactions\n */\n static fromStr(moduleId: MoveModuleId): ModuleId {\n const parts = moduleId.split(\"::\");\n if (parts.length !== 2) {\n throw new Error(\"Invalid module id.\");\n }\n return new ModuleId(AccountAddress.fromString(parts[0]), new Identifier(parts[1]));\n }\n\n /**\n * Serializes the address and name properties using the provided serializer.\n * This function is essential for converting the object's data into a format suitable for transmission or storage.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @group Implementation\n * @category Transactions\n */\n serialize(serializer: Serializer): void {\n this.address.serialize(serializer);\n this.name.serialize(serializer);\n }\n\n /**\n * Deserializes a ModuleId from the provided deserializer.\n * This function retrieves the account address and identifier to construct a ModuleId instance.\n *\n * @param deserializer - The deserializer instance used to read the data.\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): ModuleId {\n const address = AccountAddress.deserialize(deserializer);\n const name = Identifier.deserialize(deserializer);\n return new ModuleId(address, name);\n }\n}\n"],"mappings":"2HAeO,IAAMA,EAAN,MAAMC,UAAiBC,CAAa,CAazC,YAAYC,EAAyBC,EAAkB,CACrD,MAAM,EACN,KAAK,QAAUD,EACf,KAAK,KAAOC,CACd,CAUA,OAAO,QAAQC,EAAkC,CAC/C,IAAMC,EAAQD,EAAS,MAAM,IAAI,EACjC,GAAIC,EAAM,SAAW,EACnB,MAAM,IAAI,MAAM,oBAAoB,EAEtC,OAAO,IAAIL,EAASM,EAAe,WAAWD,EAAM,CAAC,CAAC,EAAG,IAAIE,EAAWF,EAAM,CAAC,CAAC,CAAC,CACnF,CAUA,UAAUG,EAA8B,CACtC,KAAK,QAAQ,UAAUA,CAAU,EACjC,KAAK,KAAK,UAAUA,CAAU,CAChC,CAUA,OAAO,YAAYC,EAAsC,CACvD,IAAMP,EAAUI,EAAe,YAAYG,CAAY,EACjDN,EAAOI,EAAW,YAAYE,CAAY,EAChD,OAAO,IAAIT,EAASE,EAASC,CAAI,CACnC,CACF","names":["ModuleId","_ModuleId","Serializable","address","name","moduleId","parts","AccountAddress","Identifier","serializer","deserializer"]}
@@ -1,2 +1,2 @@
1
- import{a as c,b as o,c as d,d as z,e as m,f as U,g as y}from"./chunk-42H7WETG.mjs";import{a as b}from"./chunk-J3E4UMBB.mjs";import{a as s}from"./chunk-AJ5JHBAE.mjs";import{b as u}from"./chunk-SPRNSFUV.mjs";var t=class i extends s{constructor(e){super(),this.values=e}serializeForEntryFunction(e){let r=this.bcsToBytes();e.serializeBytes(r)}serializeForScriptFunction(e){if(this.values[0]!==void 0&&!(this.values[0]instanceof o)){new p(this.bcsToBytes()).serializeForScriptFunction(e);return}e.serializeU32AsUleb128(4),e.serialize(this)}static U8(e){let r;if(Array.isArray(e)&&e.length===0)r=[];else if(Array.isArray(e)&&typeof e[0]=="number")r=e;else if(typeof e=="string"){let n=u.fromHexInput(e);r=Array.from(n.toUint8Array())}else if(e instanceof Uint8Array)r=Array.from(e);else throw new Error("Invalid input type, must be an number[], Uint8Array, or hex string");return new i(r.map(n=>new o(n)))}static U16(e){return new i(e.map(r=>new d(r)))}static U32(e){return new i(e.map(r=>new z(r)))}static U64(e){return new i(e.map(r=>new m(r)))}static U128(e){return new i(e.map(r=>new U(r)))}static U256(e){return new i(e.map(r=>new y(r)))}static Bool(e){return new i(e.map(r=>new c(r)))}static MoveString(e){return new i(e.map(r=>new a(r)))}serialize(e){e.serializeVector(this.values)}static deserialize(e,r){let n=e.deserializeUleb128AsU32(),l=new Array;for(let w=0;w<n;w+=1)l.push(r.deserialize(e));return new i(l)}},p=class i extends s{constructor(e){super(),this.value=u.fromHexInput(e).toUint8Array()}serialize(e){e.serializeBytes(this.value)}serializeForEntryFunction(e){this.serialize(e)}serializeForScriptFunction(e){e.serializeU32AsUleb128(9),this.serialize(e)}static deserialize(e){return new i(e.deserializeBytes())}toMoveVector(e){let r=new b(this.bcsToBytes());r.deserializeUleb128AsU32();let n=r.deserializeVector(e);return new t(n)}},a=class i extends s{constructor(e){super(),this.value=e}serialize(e){e.serializeStr(this.value)}serializeForEntryFunction(e){let r=this.bcsToBytes();e.serializeBytes(r)}serializeForScriptFunction(e){let n=new TextEncoder().encode(this.value);t.U8(n).serializeForScriptFunction(e)}static deserialize(e){return new i(e.deserializeStr())}},A=class i extends s{constructor(e){super(),typeof e<"u"&&e!==null?this.vec=new t([e]):this.vec=new t([]),[this.value]=this.vec.values}serializeForEntryFunction(e){let r=this.bcsToBytes();e.serializeBytes(r)}unwrap(){if(this.isSome())return this.vec.values[0];throw new Error("Called unwrap on a MoveOption with no value")}isSome(){return this.vec.values.length===1}serialize(e){this.vec.serialize(e)}static U8(e){return new i(e!=null?new o(e):void 0)}static U16(e){return new i(e!=null?new d(e):void 0)}static U32(e){return new i(e!=null?new z(e):void 0)}static U64(e){return new i(e!=null?new m(e):void 0)}static U128(e){return new i(e!=null?new U(e):void 0)}static U256(e){return new i(e!=null?new y(e):void 0)}static Bool(e){return new i(e!=null?new c(e):void 0)}static MoveString(e){return new i(e!=null?new a(e):void 0)}static deserialize(e,r){let n=t.deserialize(e,r);return new i(n.values[0])}};export{t as a,p as b,a as c,A as d};
2
- //# sourceMappingURL=chunk-ZMMLM6ZJ.mjs.map
1
+ import{a as c,b as o,c as d,d as z,e as m,f as U,g as y}from"./chunk-ORMOQWWH.mjs";import{a as b}from"./chunk-XTOIL6MB.mjs";import{a as s}from"./chunk-EBMEXURY.mjs";import{b as u}from"./chunk-STY74NUA.mjs";var t=class i extends s{constructor(e){super(),this.values=e}serializeForEntryFunction(e){let r=this.bcsToBytes();e.serializeBytes(r)}serializeForScriptFunction(e){if(this.values[0]!==void 0&&!(this.values[0]instanceof o)){new p(this.bcsToBytes()).serializeForScriptFunction(e);return}e.serializeU32AsUleb128(4),e.serialize(this)}static U8(e){let r;if(Array.isArray(e)&&e.length===0)r=[];else if(Array.isArray(e)&&typeof e[0]=="number")r=e;else if(typeof e=="string"){let n=u.fromHexInput(e);r=Array.from(n.toUint8Array())}else if(e instanceof Uint8Array)r=Array.from(e);else throw new Error("Invalid input type, must be an number[], Uint8Array, or hex string");return new i(r.map(n=>new o(n)))}static U16(e){return new i(e.map(r=>new d(r)))}static U32(e){return new i(e.map(r=>new z(r)))}static U64(e){return new i(e.map(r=>new m(r)))}static U128(e){return new i(e.map(r=>new U(r)))}static U256(e){return new i(e.map(r=>new y(r)))}static Bool(e){return new i(e.map(r=>new c(r)))}static MoveString(e){return new i(e.map(r=>new a(r)))}serialize(e){e.serializeVector(this.values)}static deserialize(e,r){let n=e.deserializeUleb128AsU32(),l=new Array;for(let w=0;w<n;w+=1)l.push(r.deserialize(e));return new i(l)}},p=class i extends s{constructor(e){super(),this.value=u.fromHexInput(e).toUint8Array()}serialize(e){e.serializeBytes(this.value)}serializeForEntryFunction(e){this.serialize(e)}serializeForScriptFunction(e){e.serializeU32AsUleb128(9),this.serialize(e)}static deserialize(e){return new i(e.deserializeBytes())}toMoveVector(e){let r=new b(this.bcsToBytes());r.deserializeUleb128AsU32();let n=r.deserializeVector(e);return new t(n)}},a=class i extends s{constructor(e){super(),this.value=e}serialize(e){e.serializeStr(this.value)}serializeForEntryFunction(e){let r=this.bcsToBytes();e.serializeBytes(r)}serializeForScriptFunction(e){let n=new TextEncoder().encode(this.value);t.U8(n).serializeForScriptFunction(e)}static deserialize(e){return new i(e.deserializeStr())}},A=class i extends s{constructor(e){super(),typeof e<"u"&&e!==null?this.vec=new t([e]):this.vec=new t([]),[this.value]=this.vec.values}serializeForEntryFunction(e){let r=this.bcsToBytes();e.serializeBytes(r)}unwrap(){if(this.isSome())return this.vec.values[0];throw new Error("Called unwrap on a MoveOption with no value")}isSome(){return this.vec.values.length===1}serialize(e){this.vec.serialize(e)}static U8(e){return new i(e!=null?new o(e):void 0)}static U16(e){return new i(e!=null?new d(e):void 0)}static U32(e){return new i(e!=null?new z(e):void 0)}static U64(e){return new i(e!=null?new m(e):void 0)}static U128(e){return new i(e!=null?new U(e):void 0)}static U256(e){return new i(e!=null?new y(e):void 0)}static Bool(e){return new i(e!=null?new c(e):void 0)}static MoveString(e){return new i(e!=null?new a(e):void 0)}static deserialize(e,r){let n=t.deserialize(e,r);return new i(n.values[0])}};export{t as a,p as b,a as c,A as d};
2
+ //# sourceMappingURL=chunk-N4VVDQA5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/bcs/serializable/moveStructs.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Bool, U128, U16, U256, U32, U64, U8 } from \"./movePrimitives\";\nimport { Serializable, Serializer } from \"../serializer\";\nimport { Deserializable, Deserializer } from \"../deserializer\";\nimport { AnyNumber, HexInput, ScriptTransactionArgumentVariants } from \"../../types\";\nimport { Hex } from \"../../core/hex\";\nimport { EntryFunctionArgument, TransactionArgument } from \"../../transactions/instances/transactionArgument\";\n\n/**\n * This class is the Aptos Typescript SDK representation of a Move `vector<T>`,\n * where `T` represents either a primitive type (`bool`, `u8`, `u64`, ...)\n * or a BCS-serializable struct itself.\n *\n * It is a BCS-serializable, array-like type that contains an array of values of type `T`,\n * where `T` is a class that implements `Serializable`.\n *\n * The purpose of this class is to facilitate easy construction of BCS-serializable\n * Move `vector<T>` types.\n *\n * @example\n * // in Move: `vector<u8> [1, 2, 3, 4];`\n * const vecOfU8s = new MoveVector<U8>([new U8(1), new U8(2), new U8(3), new U8(4)]);\n * // in Move: `std::bcs::to_bytes(vector<u8> [1, 2, 3, 4]);`\n * const bcsBytes = vecOfU8s.toUint8Array();\n *\n * // vector<vector<u8>> [ vector<u8> [1], vector<u8> [1, 2, 3, 4], vector<u8> [5, 6, 7, 8] ];\n * const vecOfVecs = new MoveVector<MoveVector<U8>>([\n * new MoveVector<U8>([new U8(1)]),\n * MoveVector.U8([1, 2, 3, 4]),\n * MoveVector.U8([5, 6, 7, 8]),\n * ]);\n *\n * // vector<Option<u8>> [ std::option::some<u8>(1), std::option::some<u8>(2) ];\n * const vecOfOptionU8s = new MoveVector<MoveOption<U8>>([\n * MoveOption.U8(1),\n * MoveOption.U8(2),\n * ]);\n *\n * // vector<MoveString> [ std::string::utf8(b\"hello\"), std::string::utf8(b\"world\") ];\n * const vecOfStrings = new MoveVector([new MoveString(\"hello\"), new MoveString(\"world\")]);\n * const vecOfStrings2 = MoveVector.MoveString([\"hello\", \"world\"]);\n *\n * @param values an Array<T> of values where T is a class that implements Serializable\n * @returns a `MoveVector<T>` with the values `values`\n * @group Implementation\n * @category BCS\n */\nexport class MoveVector<T extends Serializable & EntryFunctionArgument>\n extends Serializable\n implements TransactionArgument\n{\n public values: Array<T>;\n\n /**\n * Initializes a new instance of the class with an optional value.\n * This constructor sets up the internal vector based on the provided value.\n *\n * @param values - The initial value to be stored in the vector, or null to initialize an empty vector.\n * @group Implementation\n * @category BCS\n */\n constructor(values: Array<T>) {\n super();\n this.values = values;\n }\n\n /**\n * Serializes the current instance into a byte sequence suitable for entry functions.\n * This allows the data to be properly formatted for transmission or storage.\n *\n * @param serializer - The serializer instance used to serialize the byte sequence.\n * @group Implementation\n * @category BCS\n */\n serializeForEntryFunction(serializer: Serializer): void {\n const bcsBytes = this.bcsToBytes();\n serializer.serializeBytes(bcsBytes);\n }\n\n /**\n * NOTE: This function will only work when the inner values in the `MoveVector` are `U8`s.\n * @param serializer\n * @group Implementation\n * @category BCS\n */\n\n /**\n * Serialize the string as a fixed byte string without the length prefix for use in a script function.\n * @param serializer - The serializer used to convert the byte vector into a format suitable for a script function.\n * @group Implementation\n * @category BCS\n */\n serializeForScriptFunction(serializer: Serializer): void {\n // This checks if the type of a non-empty vector is of type other than U8. If so, we use the Serialized\n // transaction argument type to serialize the argument.\n if (this.values[0] !== undefined && !(this.values[0] instanceof U8)) {\n const serialized = new Serialized(this.bcsToBytes());\n serialized.serializeForScriptFunction(serializer);\n return;\n }\n serializer.serializeU32AsUleb128(ScriptTransactionArgumentVariants.U8Vector);\n serializer.serialize(this);\n }\n\n /**\n * Factory method to generate a MoveVector<U8> from a `number` or `undefined`.\n *\n * This method allows you to create a MoveVector that encapsulates a U8 value, enabling you to handle optional U8 values\n * effectively.\n *\n * @param values - The values used to fill the MoveVector. If `values` is undefined or null, the resulting MoveVector's\n * `.isSome()` method will return false.\n * @returns A MoveVector<U8> with an inner value `value`.\n *\n * @example\n * ```typescript\n * const v = MoveVector.U8([1, 2, 3, 4]);\n * ```\n * @group Implementation\n * @category BCS\n */\n static U8(values: Array<number> | HexInput): MoveVector<U8> {\n let numbers: Array<number>;\n\n if (Array.isArray(values) && values.length === 0) {\n // Handle empty array, since it won't have a \"first value\"\n numbers = [];\n } else if (Array.isArray(values) && typeof values[0] === \"number\") {\n numbers = values;\n } else if (typeof values === \"string\") {\n const hex = Hex.fromHexInput(values);\n numbers = Array.from(hex.toUint8Array());\n } else if (values instanceof Uint8Array) {\n numbers = Array.from(values);\n } else {\n throw new Error(\"Invalid input type, must be an number[], Uint8Array, or hex string\");\n }\n\n return new MoveVector<U8>(numbers.map((v) => new U8(v)));\n }\n\n /**\n * Factory method to generate a MoveOption<U16> from a `number` or `null`.\n *\n * This method allows you to create a MoveVector that can either hold a U16 value or be empty.\n *\n * @param values - The value used to fill the MoveVector. If `value` is null or undefined, the resulting MoveVector's\n * `.isSome()` method will return false.\n * @returns A MoveVector<U16> with an inner value `value`.\n * @example\n * ```typescript\n * const v = MoveVector.U16([1, 2, 3, 4]);\n * ```\n * @group Implementation\n * @category BCS\n\n */\n static U16(values: Array<number>): MoveVector<U16> {\n return new MoveVector<U16>(values.map((v) => new U16(v)));\n }\n\n /**\n * Factory method to generate a MoveVector<U32> from a `number` or `null`.\n *\n * This method allows you to create a MoveVector that can either hold a U32 value or be empty.\n *\n * @param values - The value used to fill the MoveVector. If `value` is null or undefined,\n * the resulting MoveVector's .isSome() method will return false.\n * @returns A MoveVector<U32> with an inner value `value`.\n *\n * @example\n * ```\n * const v = MoveVector.U32([1, 2, 3, 4]);\n * ```\n * @group Implementation\n * @category BCS\n\n */\n static U32(values: Array<number>): MoveVector<U32> {\n return new MoveVector<U32>(values.map((v) => new U32(v)));\n }\n\n /**\n * Factory method to generate a MoveVector<U64> from a number, bigint, or null/undefined.\n * This allows for the creation of an optional U64 value that can be checked for presence.\n *\n * @param values - The value used to fill the MoveVector. If `value` is undefined or null, the resulting MoveVector's\n * `.isSome()` method will return false.\n * @returns A MoveVector<U64> with an inner value `value`.\n *\n * @example\n * ```typescript\n * const v = MoveVector.U64([1, 2, 3, 4]);\n * ```\n * @group Implementation\n * @category BCS\n */\n static U64(values: Array<AnyNumber>): MoveVector<U64> {\n return new MoveVector<U64>(values.map((v) => new U64(v)));\n }\n\n /**\n * Factory method to generate a MoveVector<U128> from a number, bigint, or undefined.\n *\n * @param values - The value used to fill the MoveVector. If `value` is undefined, the resulting MoveVector's `.isSome()`\n * method will return false.\n * @returns A MoveVector<U128> with an inner value `value`.\n *\n * @example\n * ```typescript\n * const v = MoveVector.U128([1, 2, 3, 4]);\n * ```\n * @group Implementation\n * @category BCS\n */\n static U128(values: Array<AnyNumber>): MoveVector<U128> {\n return new MoveVector<U128>(values.map((v) => new U128(v)));\n }\n\n /**\n * Factory method to generate a MoveVector<U256> from a number, bigint, or null/undefined.\n * This allows for the creation of an optional U256 value, enabling checks for presence or absence of a value.\n *\n * @param values - The value used to fill the MoveVector. If `value` is undefined or null,\n * the resulting MoveVector's .isSome() method will return false.\n * @returns A MoveVector<U256> with an inner value `value`.\n *\n * @example\n * ```typescript\n * const v = MoveVector.U256([1, 2, 3, 4]);\n * ```\n * @group Implementation\n * @category BCS\n */\n static U256(values: Array<AnyNumber>): MoveVector<U256> {\n return new MoveVector<U256>(values.map((v) => new U256(v)));\n }\n\n /**\n * Factory method to generate a MoveVector<Bool> from a `boolean` or `undefined`.\n * This method allows you to create an optional boolean value that can be used in various contexts where a boolean may or may\n * not be present.\n *\n * @param values - The value used to fill the MoveVector. If `value` is undefined, the resulting MoveVector's .isSome() method\n * will return false.\n * @returns A MoveVector<Bool> with an inner value `value`.\n *\n * @example\n * * const v = MoveVector.Bool([true, false, true, false]);\n * @group Implementation\n * @category BCS\n */\n static Bool(values: Array<boolean>): MoveVector<Bool> {\n return new MoveVector<Bool>(values.map((v) => new Bool(v)));\n }\n\n /**\n * Factory method to generate a MoveVector<MoveString> from a `string` or `undefined`.\n * This function creates a MoveVector that encapsulates a MoveString if the provided value is not null or undefined.\n *\n * @param values - The value used to fill the MoveVector. If `value` is undefined, the resulting MoveVector's .isSome() method\n * will return false.\n * @returns A MoveVector<MoveString> with an inner value `value`.\n *\n * @example\n * const v = MoveVector.MoveString([\"hello\", \"world\"]);\n * @group Implementation\n * @category BCS\n */\n static MoveString(values: Array<string>): MoveVector<MoveString> {\n return new MoveVector<MoveString>(values.map((v) => new MoveString(v)));\n }\n\n /**\n * Serializes the current object using the provided serializer.\n * This function will serialize the value if it is present.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @group Implementation\n * @category BCS\n */\n serialize(serializer: Serializer): void;\n serialize(serializer: Serializer): void {\n serializer.serializeVector(this.values);\n }\n\n /**\n * Deserialize a MoveVector of type T, specifically where T is a Serializable and Deserializable type.\n *\n * NOTE: This only works with a depth of one. Generics will not work.\n *\n * NOTE: This will not work with types that aren't of the Serializable class.\n *\n * If you're looking for a more flexible deserialization function, you can use the deserializeVector function\n * in the Deserializer class.\n *\n * @example\n * const vec = MoveVector.deserialize(deserializer, U64);\n * @param deserializer the Deserializer instance to use, with bytes loaded into it already.\n * @param cls the class to typecast the input values to, must be a Serializable and Deserializable type.\n * @returns a MoveVector of the corresponding class T\n *\n * @group Implementation\n * @category BCS\n */\n static deserialize<T extends Serializable & EntryFunctionArgument>(\n deserializer: Deserializer,\n cls: Deserializable<T>,\n ): MoveVector<T> {\n const length = deserializer.deserializeUleb128AsU32();\n const values = new Array<T>();\n for (let i = 0; i < length; i += 1) {\n values.push(cls.deserialize(deserializer));\n }\n return new MoveVector(values);\n }\n}\n\n/**\n * Represents a serialized data structure that encapsulates a byte array.\n * This class extends the Serializable class and provides methods for serialization\n * and deserialization of byte data, as well as converting to a MoveVector.\n *\n * @extends Serializable\n * @group Implementation\n * @category BCS\n */\nexport class Serialized extends Serializable implements TransactionArgument {\n public readonly value: Uint8Array;\n\n constructor(value: HexInput) {\n super();\n this.value = Hex.fromHexInput(value).toUint8Array();\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeBytes(this.value);\n }\n\n serializeForEntryFunction(serializer: Serializer): void {\n this.serialize(serializer);\n }\n\n serializeForScriptFunction(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(ScriptTransactionArgumentVariants.Serialized);\n this.serialize(serializer);\n }\n\n static deserialize(deserializer: Deserializer): Serialized {\n return new Serialized(deserializer.deserializeBytes());\n }\n\n /**\n * Deserialize the bytecode into a MoveVector of the specified type.\n * This function allows you to convert serialized data into a usable MoveVector format.\n *\n * @param cls - The class type of the elements in the MoveVector.\n * @group Implementation\n * @category BCS\n */\n toMoveVector<T extends Serializable & EntryFunctionArgument>(cls: Deserializable<T>): MoveVector<T> {\n const deserializer = new Deserializer(this.bcsToBytes());\n deserializer.deserializeUleb128AsU32();\n const vec = deserializer.deserializeVector(cls);\n return new MoveVector(vec);\n }\n}\n\n/**\n * Represents a string value that can be serialized and deserialized.\n * This class extends the Serializable base class and provides methods\n * for serializing the string in different contexts, such as for entry\n * functions and script functions.\n *\n * @extends Serializable\n * @group Implementation\n * @category BCS\n */\nexport class MoveString extends Serializable implements TransactionArgument {\n public value: string;\n\n constructor(value: string) {\n super();\n this.value = value;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeStr(this.value);\n }\n\n serializeForEntryFunction(serializer: Serializer): void {\n const bcsBytes = this.bcsToBytes();\n serializer.serializeBytes(bcsBytes);\n }\n\n serializeForScriptFunction(serializer: Serializer): void {\n // Serialize the string as a fixed byte string, i.e., without the length prefix\n const textEncoder = new TextEncoder();\n const fixedStringBytes = textEncoder.encode(this.value);\n // Put those bytes into a vector<u8> and serialize it as a script function argument\n const vectorU8 = MoveVector.U8(fixedStringBytes);\n vectorU8.serializeForScriptFunction(serializer);\n }\n\n static deserialize(deserializer: Deserializer): MoveString {\n return new MoveString(deserializer.deserializeStr());\n }\n}\n\nexport class MoveOption<T extends Serializable & EntryFunctionArgument>\n extends Serializable\n implements EntryFunctionArgument\n{\n private vec: MoveVector<T>;\n\n public readonly value?: T;\n\n constructor(value?: T | null) {\n super();\n if (typeof value !== \"undefined\" && value !== null) {\n this.vec = new MoveVector([value]);\n } else {\n this.vec = new MoveVector([]);\n }\n\n [this.value] = this.vec.values;\n }\n\n serializeForEntryFunction(serializer: Serializer): void {\n const bcsBytes = this.bcsToBytes();\n serializer.serializeBytes(bcsBytes);\n }\n\n /**\n * Retrieves the inner value of the MoveOption.\n *\n * This method is inspired by Rust's `Option<T>.unwrap()`, where attempting to unwrap a `None` value results in a panic.\n * This method will throw an error if the value is not present.\n *\n * @example\n * const option = new MoveOption<Bool>(new Bool(true));\n * const value = option.unwrap(); // Returns the Bool instance\n *\n * @throws {Error} Throws an error if the MoveOption does not contain a value.\n *\n * @returns {T} The contained value if present.\n * @group Implementation\n * @category BCS\n */\n unwrap(): T {\n if (!this.isSome()) {\n throw new Error(\"Called unwrap on a MoveOption with no value\");\n } else {\n return this.vec.values[0];\n }\n }\n\n /**\n * Check if the MoveOption has a value.\n *\n * @returns {boolean} Returns true if there is exactly one value in the MoveOption.\n * @group Implementation\n * @category BCS\n */\n isSome(): boolean {\n return this.vec.values.length === 1;\n }\n\n serialize(serializer: Serializer): void {\n // serialize 0 or 1\n // if 1, serialize the value\n this.vec.serialize(serializer);\n }\n\n /**\n * Factory method to generate a MoveOption<U8> from a `number` or `undefined`.\n *\n * @example\n * MoveOption.U8(1).isSome() === true;\n * MoveOption.U8().isSome() === false;\n * MoveOption.U8(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<U8> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static U8(value?: number | null): MoveOption<U8> {\n return new MoveOption<U8>(value !== null && value !== undefined ? new U8(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<U16> from a `number` or `undefined`.\n *\n * @example\n * MoveOption.U16(1).isSome() === true;\n * MoveOption.U16().isSome() === false;\n * MoveOption.U16(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<U16> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static U16(value?: number | null): MoveOption<U16> {\n return new MoveOption<U16>(value !== null && value !== undefined ? new U16(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<U32> from a `number` or `undefined`.\n *\n * @example\n * MoveOption.U32(1).isSome() === true;\n * MoveOption.U32().isSome() === false;\n * MoveOption.U32(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<U32> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static U32(value?: number | null): MoveOption<U32> {\n return new MoveOption<U32>(value !== null && value !== undefined ? new U32(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<U64> from a `number` or a `bigint` or `undefined`.\n *\n * @example\n * MoveOption.U64(1).isSome() === true;\n * MoveOption.U64().isSome() === false;\n * MoveOption.U64(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<U64> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static U64(value?: AnyNumber | null): MoveOption<U64> {\n return new MoveOption<U64>(value !== null && value !== undefined ? new U64(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<U128> from a `number` or a `bigint` or `undefined`.\n *\n * @example\n * MoveOption.U128(1).isSome() === true;\n * MoveOption.U128().isSome() === false;\n * MoveOption.U128(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<U128> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static U128(value?: AnyNumber | null): MoveOption<U128> {\n return new MoveOption<U128>(value !== null && value !== undefined ? new U128(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<U256> from a `number` or a `bigint` or `undefined`.\n *\n * @example\n * MoveOption.U256(1).isSome() === true;\n * MoveOption.U256().isSome() === false;\n * MoveOption.U256(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<U256> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static U256(value?: AnyNumber | null): MoveOption<U256> {\n return new MoveOption<U256>(value !== null && value !== undefined ? new U256(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<Bool> from a `boolean` or `undefined`.\n *\n * @example\n * MoveOption.Bool(true).isSome() === true;\n * MoveOption.Bool().isSome() === false;\n * MoveOption.Bool(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<Bool> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static Bool(value?: boolean | null): MoveOption<Bool> {\n return new MoveOption<Bool>(value !== null && value !== undefined ? new Bool(value) : undefined);\n }\n\n /**\n * Factory method to generate a MoveOption<MoveString> from a `string` or `undefined`.\n *\n * @example\n * MoveOption.MoveString(\"hello\").isSome() === true;\n * MoveOption.MoveString(\"\").isSome() === true;\n * MoveOption.MoveString().isSome() === false;\n * MoveOption.MoveString(undefined).isSome() === false;\n * @param value the value used to fill the MoveOption. If `value` is undefined\n * the resulting MoveOption's .isSome() method will return false.\n * @returns a MoveOption<MoveString> with an inner value `value`\n * @group Implementation\n * @category BCS\n */\n static MoveString(value?: string | null): MoveOption<MoveString> {\n return new MoveOption<MoveString>(value !== null && value !== undefined ? new MoveString(value) : undefined);\n }\n\n static deserialize<U extends Serializable & EntryFunctionArgument>(\n deserializer: Deserializer,\n cls: Deserializable<U>,\n ): MoveOption<U> {\n const vector = MoveVector.deserialize(deserializer, cls);\n return new MoveOption(vector.values[0]);\n }\n}\n"],"mappings":"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","names":["MoveVector","_MoveVector","Serializable","values","serializer","bcsBytes","U8","Serialized","numbers","hex","Hex","v","U16","U32","U64","U128","U256","Bool","MoveString","deserializer","cls","length","i","_Serialized","value","Deserializer","vec","_MoveString","fixedStringBytes","MoveOption","_MoveOption","vector"]}
@@ -1,2 +1,2 @@
1
- import{a as e}from"./chunk-AJ5JHBAE.mjs";var r=class t extends e{constructor(i){super(),this.identifier=i}serialize(i){i.serializeStr(this.identifier)}static deserialize(i){let s=i.deserializeStr();return new t(s)}};export{r as a};
2
- //# sourceMappingURL=chunk-LGTOOAQI.mjs.map
1
+ import{a as e}from"./chunk-EBMEXURY.mjs";var r=class t extends e{constructor(i){super(),this.identifier=i}serialize(i){i.serializeStr(this.identifier)}static deserialize(i){let s=i.deserializeStr();return new t(s)}};export{r as a};
2
+ //# sourceMappingURL=chunk-N6YTF76Q.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/transactions/instances/identifier.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\n\n/**\n * Represents an Identifier that can be serialized and deserialized.\n * This class is used to denote the module \"name\" in \"ModuleId\" and\n * the \"function name\" in \"EntryFunction\".\n *\n * @extends Serializable\n * @group Implementation\n * @category Transactions\n */\nexport class Identifier extends Serializable {\n public identifier: string;\n\n /**\n * Creates an instance of the class with a specified identifier.\n *\n * @param identifier - The unique identifier for the instance.\n * @group Implementation\n * @category Transactions\n */\n constructor(identifier: string) {\n super();\n this.identifier = identifier;\n }\n\n /**\n * Serializes the identifier of the current instance using the provided serializer.\n *\n * @param serializer - The serializer instance used to perform the serialization.\n * @group Implementation\n * @category Transactions\n */\n public serialize(serializer: Serializer): void {\n serializer.serializeStr(this.identifier);\n }\n\n /**\n * Deserializes an identifier from the provided deserializer.\n * This function is useful for reconstructing an Identifier object from a serialized format.\n *\n * @param deserializer - The deserializer instance used to read the serialized data.\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): Identifier {\n const identifier = deserializer.deserializeStr();\n return new Identifier(identifier);\n }\n}\n"],"mappings":"yCAeO,IAAMA,EAAN,MAAMC,UAAmBC,CAAa,CAU3C,YAAYC,EAAoB,CAC9B,MAAM,EACN,KAAK,WAAaA,CACpB,CASO,UAAUC,EAA8B,CAC7CA,EAAW,aAAa,KAAK,UAAU,CACzC,CAUA,OAAO,YAAYC,EAAwC,CACzD,IAAMF,EAAaE,EAAa,eAAe,EAC/C,OAAO,IAAIJ,EAAWE,CAAU,CAClC,CACF","names":["Identifier","_Identifier","Serializable","identifier","serializer","deserializer"]}
@@ -1,2 +1,2 @@
1
- import{a as b,b as p}from"./chunk-XZN344G4.mjs";import{a as z,b as A}from"./chunk-TCXYTPUR.mjs";import{a as h,b as g}from"./chunk-JMPHD4BP.mjs";import{b as d,d as y}from"./chunk-H3C3VTHS.mjs";import{a as o}from"./chunk-AJ5JHBAE.mjs";var s=class extends o{static deserialize(e){let i=e.deserializeUleb128AsU32();switch(i){case 0:return u.load(e);case 1:return l.load(e);case 2:return n.load(e);case 3:return a.load(e);case 4:return c.load(e);default:throw new Error(`Unknown variant index for AccountAuthenticator: ${i}`)}}isEd25519(){return this instanceof u}isMultiEd25519(){return this instanceof l}isSingleKey(){return this instanceof n}isMultiKey(){return this instanceof a}},u=class t extends s{constructor(e,i){super(),this.public_key=e,this.signature=i}serialize(e){e.serializeU32AsUleb128(0),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let i=d.deserialize(e),r=y.deserialize(e);return new t(i,r)}},l=class t extends s{constructor(e,i){super(),this.public_key=e,this.signature=i}serialize(e){e.serializeU32AsUleb128(1),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let i=b.deserialize(e),r=p.deserialize(e);return new t(i,r)}},n=class t extends s{constructor(e,i){super(),this.public_key=e,this.signature=i}serialize(e){e.serializeU32AsUleb128(2),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let i=h.deserialize(e),r=g.deserialize(e);return new t(i,r)}},a=class t extends s{constructor(e,i){super(),this.public_keys=e,this.signatures=i}serialize(e){e.serializeU32AsUleb128(3),this.public_keys.serialize(e),this.signatures.serialize(e)}static load(e){let i=z.deserialize(e),r=A.deserialize(e);return new t(i,r)}},c=class t extends s{serialize(e){e.serializeU32AsUleb128(4)}static load(e){return new t}};export{s as a,u as b,l as c,n as d,a as e,c as f};
2
- //# sourceMappingURL=chunk-HMMNQFVM.mjs.map
1
+ import{a as b,b as p}from"./chunk-ODEDSSQL.mjs";import{a as z,b as A}from"./chunk-3XH3NNSR.mjs";import{a as h,b as g}from"./chunk-4ZJJINCW.mjs";import{b as d,d as y}from"./chunk-XGF7UNEW.mjs";import{a as o}from"./chunk-EBMEXURY.mjs";var s=class extends o{static deserialize(e){let i=e.deserializeUleb128AsU32();switch(i){case 0:return u.load(e);case 1:return l.load(e);case 2:return n.load(e);case 3:return a.load(e);case 4:return c.load(e);default:throw new Error(`Unknown variant index for AccountAuthenticator: ${i}`)}}isEd25519(){return this instanceof u}isMultiEd25519(){return this instanceof l}isSingleKey(){return this instanceof n}isMultiKey(){return this instanceof a}},u=class t extends s{constructor(e,i){super(),this.public_key=e,this.signature=i}serialize(e){e.serializeU32AsUleb128(0),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let i=d.deserialize(e),r=y.deserialize(e);return new t(i,r)}},l=class t extends s{constructor(e,i){super(),this.public_key=e,this.signature=i}serialize(e){e.serializeU32AsUleb128(1),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let i=b.deserialize(e),r=p.deserialize(e);return new t(i,r)}},n=class t extends s{constructor(e,i){super(),this.public_key=e,this.signature=i}serialize(e){e.serializeU32AsUleb128(2),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let i=h.deserialize(e),r=g.deserialize(e);return new t(i,r)}},a=class t extends s{constructor(e,i){super(),this.public_keys=e,this.signatures=i}serialize(e){e.serializeU32AsUleb128(3),this.public_keys.serialize(e),this.signatures.serialize(e)}static load(e){let i=z.deserialize(e),r=A.deserialize(e);return new t(i,r)}},c=class t extends s{serialize(e){e.serializeU32AsUleb128(4)}static load(e){return new t}};export{s as a,u as b,l as c,n as d,a as e,c as f};
2
+ //# sourceMappingURL=chunk-NDUIXMIA.mjs.map