@aptos-labs/ts-sdk 1.31.0 → 1.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/README.md +1 -1
  2. package/dist/common/{accountAddress-DnSqjhSl.d.ts → accountAddress-6RqI8Aam.d.ts} +144 -63
  3. package/dist/common/chunk-F43XVDYJ.js +2 -0
  4. package/dist/common/chunk-F43XVDYJ.js.map +1 -0
  5. package/dist/common/cli/index.d.ts +1 -1
  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 +446 -111
  9. package/dist/common/index.js +36 -29
  10. package/dist/common/index.js.map +1 -1
  11. package/dist/esm/{Ed25519Account-DpH9qAcg.d.mts → Ed25519Account-B3xHXAQe.d.mts} +2 -2
  12. package/dist/esm/account/AbstractKeylessAccount.d.mts +85 -14
  13. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
  14. package/dist/esm/account/Account.d.mts +4 -4
  15. package/dist/esm/account/Account.mjs +1 -1
  16. package/dist/esm/account/Ed25519Account.d.mts +4 -4
  17. package/dist/esm/account/Ed25519Account.mjs +1 -1
  18. package/dist/esm/account/EphemeralKeyPair.d.mts +3 -3
  19. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  20. package/dist/esm/account/FederatedKeylessAccount.d.mts +56 -8
  21. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
  22. package/dist/esm/account/KeylessAccount.d.mts +28 -11
  23. package/dist/esm/account/KeylessAccount.mjs +1 -1
  24. package/dist/esm/account/MultiKeyAccount.d.mts +22 -10
  25. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  26. package/dist/esm/account/SingleKeyAccount.d.mts +4 -4
  27. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  28. package/dist/esm/account/index.d.mts +5 -5
  29. package/dist/esm/account/index.mjs +1 -1
  30. package/dist/esm/api/account.d.mts +5 -5
  31. package/dist/esm/api/account.mjs +1 -1
  32. package/dist/esm/api/ans.d.mts +3 -3
  33. package/dist/esm/api/ans.mjs +1 -1
  34. package/dist/esm/api/aptos.d.mts +4 -4
  35. package/dist/esm/api/aptos.mjs +1 -1
  36. package/dist/esm/api/aptosConfig.d.mts +1 -1
  37. package/dist/esm/api/aptosConfig.mjs +1 -1
  38. package/dist/esm/api/coin.d.mts +5 -5
  39. package/dist/esm/api/coin.mjs +1 -1
  40. package/dist/esm/api/digitalAsset.d.mts +5 -5
  41. package/dist/esm/api/digitalAsset.mjs +1 -1
  42. package/dist/esm/api/event.d.mts +3 -3
  43. package/dist/esm/api/event.mjs +1 -1
  44. package/dist/esm/api/faucet.d.mts +2 -2
  45. package/dist/esm/api/faucet.mjs +1 -1
  46. package/dist/esm/api/fungibleAsset.d.mts +5 -5
  47. package/dist/esm/api/fungibleAsset.mjs +1 -1
  48. package/dist/esm/api/general.d.mts +3 -3
  49. package/dist/esm/api/general.mjs +1 -1
  50. package/dist/esm/api/index.d.mts +4 -4
  51. package/dist/esm/api/index.mjs +1 -1
  52. package/dist/esm/api/keyless.d.mts +7 -7
  53. package/dist/esm/api/keyless.mjs +1 -1
  54. package/dist/esm/api/object.d.mts +3 -3
  55. package/dist/esm/api/object.mjs +1 -1
  56. package/dist/esm/api/staking.d.mts +3 -3
  57. package/dist/esm/api/staking.mjs +1 -1
  58. package/dist/esm/api/table.d.mts +3 -3
  59. package/dist/esm/api/table.mjs +1 -1
  60. package/dist/esm/api/transaction.d.mts +3 -3
  61. package/dist/esm/api/transaction.mjs +1 -1
  62. package/dist/esm/api/transactionSubmission/build.d.mts +3 -3
  63. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  64. package/dist/esm/api/transactionSubmission/management.d.mts +4 -4
  65. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  66. package/dist/esm/api/transactionSubmission/sign.d.mts +4 -4
  67. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  68. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  69. package/dist/esm/api/transactionSubmission/simulate.d.mts +3 -3
  70. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  71. package/dist/esm/api/transactionSubmission/submit.d.mts +3 -3
  72. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  73. package/dist/esm/api/utils.d.mts +2 -2
  74. package/dist/esm/api/utils.mjs +1 -1
  75. package/dist/esm/bcs/consts.d.mts +2 -2
  76. package/dist/esm/bcs/deserializer.d.mts +35 -27
  77. package/dist/esm/bcs/deserializer.mjs +1 -1
  78. package/dist/esm/bcs/index.d.mts +2 -2
  79. package/dist/esm/bcs/index.mjs +1 -1
  80. package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +2 -2
  81. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
  82. package/dist/esm/bcs/serializable/fixedBytes.d.mts +2 -2
  83. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
  84. package/dist/esm/bcs/serializable/movePrimitives.d.mts +2 -2
  85. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  86. package/dist/esm/bcs/serializable/moveStructs.d.mts +11 -12
  87. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  88. package/dist/esm/bcs/serializer.d.mts +13 -13
  89. package/dist/esm/bcs/serializer.mjs +1 -1
  90. package/dist/esm/{chunk-22ZSW5EN.mjs → chunk-26WX3UFP.mjs} +2 -2
  91. package/dist/esm/{chunk-A2AEFKXS.mjs → chunk-2E3BT4YW.mjs} +2 -2
  92. package/dist/esm/{chunk-VYMRIKUV.mjs → chunk-2LQ4FTSR.mjs} +2 -2
  93. package/dist/esm/{chunk-L5J3V3HW.mjs → chunk-2REHS35S.mjs} +2 -2
  94. package/dist/esm/{chunk-CC7VOPYH.mjs → chunk-2YTHKFJZ.mjs} +2 -2
  95. package/dist/esm/{chunk-6FLHGOKP.mjs → chunk-42H7WETG.mjs} +2 -2
  96. package/dist/esm/{chunk-RBJNSUSU.mjs → chunk-4IQZOAN7.mjs} +2 -2
  97. package/dist/esm/{chunk-ZPQUCT22.mjs → chunk-4J2JYRV3.mjs} +2 -2
  98. package/dist/esm/chunk-4O5XDQDO.mjs +2 -0
  99. package/dist/esm/chunk-5B3SMBXQ.mjs +2 -0
  100. package/dist/esm/{chunk-5N6KJ7KS.mjs → chunk-5KCKWL2C.mjs} +2 -2
  101. package/dist/esm/{chunk-IFXUWUP2.mjs → chunk-5O3RHPER.mjs} +2 -2
  102. package/dist/esm/{chunk-PCLU4KLY.mjs → chunk-6ZOVTYLJ.mjs} +2 -2
  103. package/dist/esm/chunk-7ECCT6PK.mjs +1 -0
  104. package/dist/esm/{chunk-RAJTNQNL.mjs → chunk-7OHMMGS6.mjs} +2 -2
  105. package/dist/esm/{chunk-ZPIMARUG.mjs → chunk-A3USS2NC.mjs} +2 -2
  106. package/dist/esm/{chunk-NODYW7DM.mjs → chunk-ACVIE7IE.mjs} +2 -2
  107. package/dist/esm/{chunk-RNRNGJDA.mjs → chunk-AGEJNSEX.mjs} +2 -2
  108. package/dist/esm/{chunk-QQIVWB6G.mjs → chunk-AJ5JHBAE.mjs} +2 -2
  109. package/dist/esm/{chunk-QQIVWB6G.mjs.map → chunk-AJ5JHBAE.mjs.map} +1 -1
  110. package/dist/esm/{chunk-PRZ7AIGA.mjs → chunk-AKIO3OIT.mjs} +2 -2
  111. package/dist/esm/{chunk-KRVLR3L4.mjs → chunk-AOROYJ74.mjs} +2 -2
  112. package/dist/esm/chunk-AVZYJAXR.mjs +2 -0
  113. package/dist/esm/chunk-AVZYJAXR.mjs.map +1 -0
  114. package/dist/esm/{chunk-BG2TZI3H.mjs → chunk-BP45UJII.mjs} +2 -2
  115. package/dist/esm/{chunk-JGNMNCQB.mjs → chunk-BRV3RLKW.mjs} +2 -2
  116. package/dist/esm/{chunk-EE7GDBA5.mjs → chunk-CEW2NI3K.mjs} +2 -2
  117. package/dist/esm/{chunk-RNJHULIT.mjs → chunk-CPKG25HX.mjs} +2 -2
  118. package/dist/esm/chunk-CPKG25HX.mjs.map +1 -0
  119. package/dist/esm/chunk-D52UKPQF.mjs +2 -0
  120. package/dist/esm/chunk-D52UKPQF.mjs.map +1 -0
  121. package/dist/esm/{chunk-4LKLOUMG.mjs → chunk-D54FD6XE.mjs} +2 -2
  122. package/dist/esm/{chunk-MK2QAHXC.mjs → chunk-DYELAVMR.mjs} +2 -2
  123. package/dist/esm/{chunk-MSHZ4FWB.mjs → chunk-E2GPZCQI.mjs} +2 -2
  124. package/dist/esm/{chunk-MSHZ4FWB.mjs.map → chunk-E2GPZCQI.mjs.map} +1 -1
  125. package/dist/esm/chunk-EJKX6MGV.mjs +2 -0
  126. package/dist/esm/{chunk-WV2VJQDS.mjs.map → chunk-EJKX6MGV.mjs.map} +1 -1
  127. package/dist/esm/{chunk-OXM4BVAY.mjs → chunk-ERDYU5YQ.mjs} +2 -2
  128. package/dist/esm/{chunk-7JK7UG4E.mjs → chunk-ETF76XA3.mjs} +2 -2
  129. package/dist/esm/chunk-F45G3GP3.mjs +7 -0
  130. package/dist/esm/chunk-F45G3GP3.mjs.map +1 -0
  131. package/dist/esm/chunk-FD6FGKYY.mjs +1 -0
  132. package/dist/esm/{chunk-LDZPO76C.mjs → chunk-FFCCBAEZ.mjs} +2 -2
  133. package/dist/esm/chunk-FYYTCJS4.mjs +2 -0
  134. package/dist/esm/chunk-FYYTCJS4.mjs.map +1 -0
  135. package/dist/esm/{chunk-OAEDFM7T.mjs → chunk-GX4CYRK4.mjs} +2 -2
  136. package/dist/esm/{chunk-UCRROMZN.mjs → chunk-GZBVXXUL.mjs} +2 -2
  137. package/dist/esm/{chunk-AT2ZGTXQ.mjs → chunk-H7AALSJ7.mjs} +2 -2
  138. package/dist/esm/{chunk-EUGLLGYW.mjs → chunk-HBWIDPNN.mjs} +2 -2
  139. package/dist/esm/{chunk-BVVHGSWC.mjs → chunk-HPZQGMSH.mjs} +2 -2
  140. package/dist/esm/{chunk-T5BCTWGK.mjs → chunk-I5GENJBA.mjs} +2 -2
  141. package/dist/esm/chunk-I5GENJBA.mjs.map +1 -0
  142. package/dist/esm/{chunk-73GCGRFW.mjs → chunk-II26BNYA.mjs} +2 -2
  143. package/dist/esm/{chunk-BOWPP6YG.mjs → chunk-IQ4SCMB6.mjs} +2 -2
  144. package/dist/esm/chunk-IUSAYAEI.mjs +4 -0
  145. package/dist/esm/{chunk-HM5HITUC.mjs.map → chunk-IUSAYAEI.mjs.map} +1 -1
  146. package/dist/esm/{chunk-J245N3XF.mjs → chunk-J7PJSK3J.mjs} +2 -2
  147. package/dist/esm/{chunk-J245N3XF.mjs.map → chunk-J7PJSK3J.mjs.map} +1 -1
  148. package/dist/esm/{chunk-CL6EEMSL.mjs → chunk-JGLEKXFP.mjs} +2 -2
  149. package/dist/esm/{chunk-SOLWFAUY.mjs → chunk-JIT2FYGE.mjs} +2 -2
  150. package/dist/esm/chunk-JIT2FYGE.mjs.map +1 -0
  151. package/dist/esm/chunk-JNO7KPMG.mjs +4 -0
  152. package/dist/esm/chunk-JNO7KPMG.mjs.map +1 -0
  153. package/dist/esm/{chunk-AZ6LVQEG.mjs → chunk-JONEH52T.mjs} +2 -2
  154. package/dist/esm/chunk-K62JTXWQ.mjs +2 -0
  155. package/dist/esm/chunk-K62JTXWQ.mjs.map +1 -0
  156. package/dist/esm/{chunk-IAVI3H4V.mjs → chunk-KCEI5JYS.mjs} +2 -2
  157. package/dist/esm/{chunk-XFY4O2S3.mjs → chunk-KM6IOJ6Y.mjs} +2 -2
  158. package/dist/esm/{chunk-DMSHPWA5.mjs → chunk-KTM6KVUJ.mjs} +2 -2
  159. package/dist/esm/chunk-KX43GEAB.mjs +2 -0
  160. package/dist/esm/chunk-KX43GEAB.mjs.map +1 -0
  161. package/dist/esm/{chunk-KYJU5PWF.mjs → chunk-L25CRR2W.mjs} +2 -2
  162. package/dist/esm/{chunk-2652SPOM.mjs → chunk-LGHPJTF3.mjs} +2 -2
  163. package/dist/esm/chunk-LGHPJTF3.mjs.map +1 -0
  164. package/dist/esm/{chunk-AGBA3Y7A.mjs → chunk-LGTOOAQI.mjs} +2 -2
  165. package/dist/esm/chunk-LHBMBCFC.mjs +2 -0
  166. package/dist/esm/chunk-LHBMBCFC.mjs.map +1 -0
  167. package/dist/esm/{chunk-F2RY4YQ7.mjs → chunk-LYO22HMF.mjs} +2 -2
  168. package/dist/esm/{chunk-KW4FVBDD.mjs → chunk-MBEWPBGN.mjs} +2 -2
  169. package/dist/esm/chunk-MHN6XY4Z.mjs +2 -0
  170. package/dist/esm/{chunk-JVTDP4KV.mjs → chunk-ML7D2CVG.mjs} +2 -2
  171. package/dist/esm/chunk-NF7ZQQE3.mjs +2 -0
  172. package/dist/esm/chunk-NF7ZQQE3.mjs.map +1 -0
  173. package/dist/esm/{chunk-XQ7ONNII.mjs → chunk-O4MRRWRI.mjs} +2 -2
  174. package/dist/esm/{chunk-PHP47DI4.mjs → chunk-OIOGOW6I.mjs} +1 -1
  175. package/dist/esm/{chunk-PHP47DI4.mjs.map → chunk-OIOGOW6I.mjs.map} +1 -1
  176. package/dist/esm/{chunk-ZINOJTLU.mjs → chunk-OPO5EYF7.mjs} +2 -2
  177. package/dist/esm/{chunk-6DMDYBV6.mjs → chunk-OVI7L7OG.mjs} +2 -2
  178. package/dist/esm/{chunk-TPJLAYW6.mjs → chunk-P2FTRAK3.mjs} +2 -2
  179. package/dist/esm/{chunk-IECDO22V.mjs → chunk-Q3CWUEXI.mjs} +2 -2
  180. package/dist/esm/chunk-Q3CWUEXI.mjs.map +1 -0
  181. package/dist/esm/{chunk-4JXB6V5O.mjs → chunk-RC43EXC4.mjs} +2 -2
  182. package/dist/esm/{chunk-WZCKSN2U.mjs → chunk-RLH25IDA.mjs} +2 -2
  183. package/dist/esm/{chunk-UGL2GPGK.mjs → chunk-RSO5YIDW.mjs} +2 -2
  184. package/dist/esm/chunk-RZGTHCJY.mjs +2 -0
  185. package/dist/esm/{chunk-2CGJLPHP.mjs.map → chunk-RZGTHCJY.mjs.map} +1 -1
  186. package/dist/esm/chunk-SPRNSFUV.mjs +2 -0
  187. package/dist/esm/chunk-SPRNSFUV.mjs.map +1 -0
  188. package/dist/esm/{chunk-2GEIHUHT.mjs → chunk-SPX2YFZN.mjs} +2 -2
  189. package/dist/esm/chunk-SPX2YFZN.mjs.map +1 -0
  190. package/dist/esm/chunk-SY4HK6CC.mjs +2 -0
  191. package/dist/esm/chunk-SY4HK6CC.mjs.map +1 -0
  192. package/dist/esm/{chunk-OTY3NO7Q.mjs → chunk-T6ADNZE5.mjs} +2 -2
  193. package/dist/esm/{chunk-3H5DGQKX.mjs → chunk-TGW36YOD.mjs} +2 -2
  194. package/dist/esm/{chunk-WSZCPSV4.mjs → chunk-TQA6HY6A.mjs} +2 -2
  195. package/dist/esm/{chunk-XFJD6QIP.mjs → chunk-U3GE6IPF.mjs} +2 -2
  196. package/dist/esm/chunk-UGTIALNW.mjs +2 -0
  197. package/dist/esm/{chunk-JNRMHDRA.mjs → chunk-UKVH4UGL.mjs} +2 -2
  198. package/dist/esm/chunk-UWLW2VLZ.mjs +2 -0
  199. package/dist/esm/chunk-UWLW2VLZ.mjs.map +1 -0
  200. package/dist/esm/chunk-UZTJWOLS.mjs +2 -0
  201. package/dist/esm/chunk-V4FKFCBL.mjs +2 -0
  202. package/dist/esm/chunk-V4FKFCBL.mjs.map +1 -0
  203. package/dist/esm/{chunk-4ZK3JNQT.mjs → chunk-VGITSRT6.mjs} +2 -2
  204. package/dist/esm/chunk-VGJIATTB.mjs +2 -0
  205. package/dist/esm/chunk-VGJIATTB.mjs.map +1 -0
  206. package/dist/esm/{chunk-XOCRDV2V.mjs → chunk-VQZMI3EZ.mjs} +2 -2
  207. package/dist/esm/chunk-WQF3IOXC.mjs +2 -0
  208. package/dist/esm/chunk-WQF3IOXC.mjs.map +1 -0
  209. package/dist/esm/chunk-WYOFF5DJ.mjs +2 -0
  210. package/dist/esm/chunk-WYOFF5DJ.mjs.map +1 -0
  211. package/dist/esm/{chunk-YZ5BCOGI.mjs → chunk-X7JNNNMC.mjs} +2 -2
  212. package/dist/esm/{chunk-JN36BNWA.mjs → chunk-XIB6LX22.mjs} +2 -2
  213. package/dist/esm/chunk-YIQ3JFHW.mjs +2 -0
  214. package/dist/esm/chunk-YIQ3JFHW.mjs.map +1 -0
  215. package/dist/esm/chunk-YP3VO6GM.mjs +2 -0
  216. package/dist/esm/chunk-YP3VO6GM.mjs.map +1 -0
  217. package/dist/esm/{chunk-OZN3OOJV.mjs → chunk-ZMBXHMVQ.mjs} +2 -2
  218. package/dist/esm/cli/index.d.mts +2 -2
  219. package/dist/esm/cli/index.mjs +1 -1
  220. package/dist/esm/cli/localNode.mjs +1 -1
  221. package/dist/esm/cli/move.d.mts +1 -1
  222. package/dist/esm/client/core.d.mts +1 -2
  223. package/dist/esm/client/core.mjs +1 -1
  224. package/dist/esm/client/get.d.mts +1 -2
  225. package/dist/esm/client/get.mjs +1 -1
  226. package/dist/esm/client/index.d.mts +2 -3
  227. package/dist/esm/client/index.mjs +1 -1
  228. package/dist/esm/client/post.d.mts +1 -2
  229. package/dist/esm/client/post.mjs +1 -1
  230. package/dist/esm/core/account/index.d.mts +2 -2
  231. package/dist/esm/core/account/index.mjs +1 -1
  232. package/dist/esm/core/account/utils/address.d.mts +2 -2
  233. package/dist/esm/core/account/utils/address.mjs +1 -1
  234. package/dist/esm/core/account/utils/index.d.mts +2 -2
  235. package/dist/esm/core/account/utils/index.mjs +1 -1
  236. package/dist/esm/core/accountAddress.d.mts +19 -10
  237. package/dist/esm/core/accountAddress.mjs +1 -1
  238. package/dist/esm/core/authenticationKey.d.mts +3 -3
  239. package/dist/esm/core/authenticationKey.mjs +1 -1
  240. package/dist/esm/core/crypto/ed25519.d.mts +26 -12
  241. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  242. package/dist/esm/core/crypto/ephemeral.d.mts +3 -3
  243. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  244. package/dist/esm/core/crypto/federatedKeyless.d.mts +4 -4
  245. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
  246. package/dist/esm/core/crypto/hdKey.d.mts +0 -1
  247. package/dist/esm/core/crypto/hdKey.mjs +1 -1
  248. package/dist/esm/core/crypto/index.d.mts +4 -4
  249. package/dist/esm/core/crypto/index.mjs +1 -1
  250. package/dist/esm/core/crypto/keyless.d.mts +72 -11
  251. package/dist/esm/core/crypto/keyless.mjs +1 -1
  252. package/dist/esm/core/crypto/multiEd25519.d.mts +3 -3
  253. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  254. package/dist/esm/core/crypto/multiKey.d.mts +3 -3
  255. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  256. package/dist/esm/core/crypto/privateKey.d.mts +37 -10
  257. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  258. package/dist/esm/core/crypto/proof.d.mts +2 -2
  259. package/dist/esm/core/crypto/proof.mjs +1 -1
  260. package/dist/esm/core/crypto/publicKey.d.mts +3 -3
  261. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  262. package/dist/esm/core/crypto/secp256k1.d.mts +23 -9
  263. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  264. package/dist/esm/core/crypto/signature.d.mts +2 -2
  265. package/dist/esm/core/crypto/signature.mjs +1 -1
  266. package/dist/esm/core/crypto/singleKey.d.mts +3 -3
  267. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  268. package/dist/esm/core/crypto/utils.d.mts +2 -2
  269. package/dist/esm/core/crypto/utils.mjs +1 -1
  270. package/dist/esm/core/hex.d.mts +39 -3
  271. package/dist/esm/core/hex.mjs +1 -1
  272. package/dist/esm/core/index.d.mts +5 -5
  273. package/dist/esm/core/index.mjs +1 -1
  274. package/dist/esm/errors/index.d.mts +122 -0
  275. package/dist/esm/errors/index.mjs +2 -0
  276. package/dist/esm/index.d.mts +10 -10
  277. package/dist/esm/index.mjs +1 -1
  278. package/dist/esm/internal/account.d.mts +4 -4
  279. package/dist/esm/internal/account.mjs +1 -1
  280. package/dist/esm/internal/ans.d.mts +4 -4
  281. package/dist/esm/internal/ans.mjs +1 -1
  282. package/dist/esm/internal/coin.d.mts +2 -2
  283. package/dist/esm/internal/coin.mjs +1 -1
  284. package/dist/esm/internal/digitalAsset.d.mts +4 -4
  285. package/dist/esm/internal/digitalAsset.mjs +1 -1
  286. package/dist/esm/internal/event.d.mts +2 -2
  287. package/dist/esm/internal/event.mjs +1 -1
  288. package/dist/esm/internal/faucet.d.mts +1 -1
  289. package/dist/esm/internal/faucet.mjs +1 -1
  290. package/dist/esm/internal/fungibleAsset.d.mts +4 -4
  291. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  292. package/dist/esm/internal/general.d.mts +2 -2
  293. package/dist/esm/internal/general.mjs +1 -1
  294. package/dist/esm/internal/keyless.d.mts +9 -5
  295. package/dist/esm/internal/keyless.mjs +1 -1
  296. package/dist/esm/internal/object.d.mts +2 -2
  297. package/dist/esm/internal/object.mjs +1 -1
  298. package/dist/esm/internal/staking.d.mts +1 -1
  299. package/dist/esm/internal/staking.mjs +1 -1
  300. package/dist/esm/internal/table.d.mts +2 -2
  301. package/dist/esm/internal/table.mjs +1 -1
  302. package/dist/esm/internal/transaction.d.mts +1 -1
  303. package/dist/esm/internal/transaction.mjs +1 -1
  304. package/dist/esm/internal/transactionSubmission.d.mts +3 -3
  305. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  306. package/dist/esm/internal/view.d.mts +3 -3
  307. package/dist/esm/internal/view.mjs +1 -1
  308. package/dist/esm/{publicKey-_tPa99ea.d.mts → publicKey-BVXX1nVl.d.mts} +2 -2
  309. package/dist/esm/transactions/authenticator/account.d.mts +3 -3
  310. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  311. package/dist/esm/transactions/authenticator/index.d.mts +3 -3
  312. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  313. package/dist/esm/transactions/authenticator/transaction.d.mts +9 -4
  314. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  315. package/dist/esm/transactions/index.d.mts +3 -3
  316. package/dist/esm/transactions/index.mjs +1 -1
  317. package/dist/esm/transactions/instances/chainId.d.mts +2 -2
  318. package/dist/esm/transactions/instances/chainId.mjs +1 -1
  319. package/dist/esm/transactions/instances/identifier.d.mts +2 -2
  320. package/dist/esm/transactions/instances/identifier.mjs +1 -1
  321. package/dist/esm/transactions/instances/index.d.mts +3 -3
  322. package/dist/esm/transactions/instances/index.mjs +1 -1
  323. package/dist/esm/transactions/instances/moduleId.d.mts +2 -2
  324. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  325. package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +2 -2
  326. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  327. package/dist/esm/transactions/instances/rawTransaction.d.mts +2 -2
  328. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  329. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +3 -3
  330. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  331. package/dist/esm/transactions/instances/signedTransaction.d.mts +3 -3
  332. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  333. package/dist/esm/transactions/instances/simpleTransaction.d.mts +2 -2
  334. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  335. package/dist/esm/transactions/instances/transactionArgument.d.mts +2 -2
  336. package/dist/esm/transactions/instances/transactionPayload.d.mts +2 -2
  337. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  338. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +4 -4
  339. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  340. package/dist/esm/transactions/management/index.d.mts +4 -4
  341. package/dist/esm/transactions/management/index.mjs +1 -1
  342. package/dist/esm/transactions/management/transactionWorker.d.mts +4 -4
  343. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  344. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +2 -2
  345. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  346. package/dist/esm/transactions/transactionBuilder/index.d.mts +3 -3
  347. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  348. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +3 -3
  349. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  350. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +3 -3
  351. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  352. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +3 -3
  353. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  354. package/dist/esm/transactions/typeTag/index.d.mts +2 -2
  355. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  356. package/dist/esm/transactions/typeTag/parser.d.mts +2 -2
  357. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  358. package/dist/esm/transactions/types.d.mts +2 -2
  359. package/dist/esm/types/index.d.mts +3 -1260
  360. package/dist/esm/types/index.mjs +1 -1
  361. package/dist/esm/types/keyless.d.mts +22 -1
  362. package/dist/esm/types/types.d.mts +1289 -0
  363. package/dist/esm/types/types.mjs +2 -0
  364. package/dist/esm/types/types.mjs.map +1 -0
  365. package/dist/esm/utils/const.d.mts +7 -1
  366. package/dist/esm/utils/const.mjs +1 -1
  367. package/dist/esm/utils/helpers.d.mts +10 -3
  368. package/dist/esm/utils/helpers.mjs +1 -1
  369. package/dist/esm/utils/index.d.mts +3 -3
  370. package/dist/esm/utils/index.mjs +1 -1
  371. package/dist/esm/utils/normalizeBundle.d.mts +2 -2
  372. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  373. package/dist/esm/version.d.mts +1 -1
  374. package/dist/esm/version.mjs +1 -1
  375. package/package.json +1 -1
  376. package/src/account/AbstractKeylessAccount.ts +203 -10
  377. package/src/account/FederatedKeylessAccount.ts +83 -35
  378. package/src/account/KeylessAccount.ts +44 -37
  379. package/src/account/MultiKeyAccount.ts +18 -5
  380. package/src/api/keyless.ts +2 -2
  381. package/src/bcs/deserializer.ts +53 -30
  382. package/src/bcs/serializable/moveStructs.ts +16 -17
  383. package/src/bcs/serializer.ts +22 -12
  384. package/src/client/core.ts +2 -2
  385. package/src/client/get.ts +1 -2
  386. package/src/client/index.ts +0 -1
  387. package/src/client/post.ts +1 -2
  388. package/src/core/accountAddress.ts +36 -9
  389. package/src/core/crypto/ed25519.ts +34 -14
  390. package/src/core/crypto/hdKey.ts +0 -1
  391. package/src/core/crypto/keyless.ts +245 -38
  392. package/src/core/crypto/privateKey.ts +81 -5
  393. package/src/core/crypto/secp256k1.ts +31 -11
  394. package/src/core/hex.ts +47 -0
  395. package/src/errors/index.ts +406 -0
  396. package/src/index.ts +1 -0
  397. package/src/internal/account.ts +6 -6
  398. package/src/internal/ans.ts +2 -1
  399. package/src/internal/keyless.ts +57 -19
  400. package/src/internal/transaction.ts +2 -1
  401. package/src/internal/transactionSubmission.ts +36 -18
  402. package/src/transactions/authenticator/transaction.ts +20 -0
  403. package/src/types/index.ts +1 -1483
  404. package/src/types/keyless.ts +19 -0
  405. package/src/types/types.ts +1512 -0
  406. package/src/utils/const.ts +7 -0
  407. package/src/utils/helpers.ts +10 -0
  408. package/src/version.ts +1 -1
  409. package/dist/common/chunk-7IYTZDXV.js +0 -2
  410. package/dist/common/chunk-7IYTZDXV.js.map +0 -1
  411. package/dist/esm/chunk-2652SPOM.mjs.map +0 -1
  412. package/dist/esm/chunk-2CGJLPHP.mjs +0 -2
  413. package/dist/esm/chunk-2GEIHUHT.mjs.map +0 -1
  414. package/dist/esm/chunk-4CDDWSKZ.mjs +0 -2
  415. package/dist/esm/chunk-4OV7QU2U.mjs +0 -2
  416. package/dist/esm/chunk-4VU2ABLU.mjs +0 -2
  417. package/dist/esm/chunk-4VU2ABLU.mjs.map +0 -1
  418. package/dist/esm/chunk-5S3Z7MT4.mjs +0 -2
  419. package/dist/esm/chunk-5S3Z7MT4.mjs.map +0 -1
  420. package/dist/esm/chunk-5SGSPCOY.mjs +0 -2
  421. package/dist/esm/chunk-5SGSPCOY.mjs.map +0 -1
  422. package/dist/esm/chunk-7XS45O6M.mjs +0 -2
  423. package/dist/esm/chunk-7XS45O6M.mjs.map +0 -1
  424. package/dist/esm/chunk-BAGUHYFD.mjs +0 -2
  425. package/dist/esm/chunk-BAGUHYFD.mjs.map +0 -1
  426. package/dist/esm/chunk-CDQGPCHU.mjs +0 -2
  427. package/dist/esm/chunk-CDQGPCHU.mjs.map +0 -1
  428. package/dist/esm/chunk-FTZGP6XW.mjs +0 -2
  429. package/dist/esm/chunk-FTZGP6XW.mjs.map +0 -1
  430. package/dist/esm/chunk-GLATLXF6.mjs +0 -2
  431. package/dist/esm/chunk-GLATLXF6.mjs.map +0 -1
  432. package/dist/esm/chunk-GQABU3RQ.mjs +0 -2
  433. package/dist/esm/chunk-GQABU3RQ.mjs.map +0 -1
  434. package/dist/esm/chunk-HM5HITUC.mjs +0 -4
  435. package/dist/esm/chunk-IBLZ6MZU.mjs +0 -2
  436. package/dist/esm/chunk-IECDO22V.mjs.map +0 -1
  437. package/dist/esm/chunk-KFNDDPOW.mjs +0 -2
  438. package/dist/esm/chunk-KFNDDPOW.mjs.map +0 -1
  439. package/dist/esm/chunk-KIW54KWR.mjs +0 -2
  440. package/dist/esm/chunk-KM6UXNC7.mjs +0 -2
  441. package/dist/esm/chunk-KM6UXNC7.mjs.map +0 -1
  442. package/dist/esm/chunk-KUX6GQ2E.mjs +0 -1
  443. package/dist/esm/chunk-LEKBJ2EG.mjs +0 -2
  444. package/dist/esm/chunk-LEKBJ2EG.mjs.map +0 -1
  445. package/dist/esm/chunk-M22UGFQ5.mjs +0 -2
  446. package/dist/esm/chunk-M22UGFQ5.mjs.map +0 -1
  447. package/dist/esm/chunk-N2FKVZ4D.mjs +0 -1
  448. package/dist/esm/chunk-N47FTRYO.mjs +0 -2
  449. package/dist/esm/chunk-N47FTRYO.mjs.map +0 -1
  450. package/dist/esm/chunk-ONBFUPEC.mjs +0 -2
  451. package/dist/esm/chunk-P3J54CQG.mjs +0 -2
  452. package/dist/esm/chunk-P3J54CQG.mjs.map +0 -1
  453. package/dist/esm/chunk-RNJHULIT.mjs.map +0 -1
  454. package/dist/esm/chunk-SGQFWWLQ.mjs +0 -2
  455. package/dist/esm/chunk-SGQFWWLQ.mjs.map +0 -1
  456. package/dist/esm/chunk-SOLWFAUY.mjs.map +0 -1
  457. package/dist/esm/chunk-T5BCTWGK.mjs.map +0 -1
  458. package/dist/esm/chunk-WV2VJQDS.mjs +0 -2
  459. package/dist/esm/chunk-Y267I7DC.mjs +0 -2
  460. package/dist/esm/chunk-Y267I7DC.mjs.map +0 -1
  461. package/dist/esm/client/types.d.mts +0 -66
  462. package/dist/esm/client/types.mjs +0 -2
  463. package/src/client/types.ts +0 -138
  464. /package/dist/esm/{chunk-22ZSW5EN.mjs.map → chunk-26WX3UFP.mjs.map} +0 -0
  465. /package/dist/esm/{chunk-A2AEFKXS.mjs.map → chunk-2E3BT4YW.mjs.map} +0 -0
  466. /package/dist/esm/{chunk-VYMRIKUV.mjs.map → chunk-2LQ4FTSR.mjs.map} +0 -0
  467. /package/dist/esm/{chunk-L5J3V3HW.mjs.map → chunk-2REHS35S.mjs.map} +0 -0
  468. /package/dist/esm/{chunk-CC7VOPYH.mjs.map → chunk-2YTHKFJZ.mjs.map} +0 -0
  469. /package/dist/esm/{chunk-6FLHGOKP.mjs.map → chunk-42H7WETG.mjs.map} +0 -0
  470. /package/dist/esm/{chunk-RBJNSUSU.mjs.map → chunk-4IQZOAN7.mjs.map} +0 -0
  471. /package/dist/esm/{chunk-ZPQUCT22.mjs.map → chunk-4J2JYRV3.mjs.map} +0 -0
  472. /package/dist/esm/{chunk-IBLZ6MZU.mjs.map → chunk-4O5XDQDO.mjs.map} +0 -0
  473. /package/dist/esm/{chunk-KIW54KWR.mjs.map → chunk-5B3SMBXQ.mjs.map} +0 -0
  474. /package/dist/esm/{chunk-5N6KJ7KS.mjs.map → chunk-5KCKWL2C.mjs.map} +0 -0
  475. /package/dist/esm/{chunk-IFXUWUP2.mjs.map → chunk-5O3RHPER.mjs.map} +0 -0
  476. /package/dist/esm/{chunk-PCLU4KLY.mjs.map → chunk-6ZOVTYLJ.mjs.map} +0 -0
  477. /package/dist/esm/{chunk-KUX6GQ2E.mjs.map → chunk-7ECCT6PK.mjs.map} +0 -0
  478. /package/dist/esm/{chunk-RAJTNQNL.mjs.map → chunk-7OHMMGS6.mjs.map} +0 -0
  479. /package/dist/esm/{chunk-ZPIMARUG.mjs.map → chunk-A3USS2NC.mjs.map} +0 -0
  480. /package/dist/esm/{chunk-NODYW7DM.mjs.map → chunk-ACVIE7IE.mjs.map} +0 -0
  481. /package/dist/esm/{chunk-RNRNGJDA.mjs.map → chunk-AGEJNSEX.mjs.map} +0 -0
  482. /package/dist/esm/{chunk-PRZ7AIGA.mjs.map → chunk-AKIO3OIT.mjs.map} +0 -0
  483. /package/dist/esm/{chunk-KRVLR3L4.mjs.map → chunk-AOROYJ74.mjs.map} +0 -0
  484. /package/dist/esm/{chunk-BG2TZI3H.mjs.map → chunk-BP45UJII.mjs.map} +0 -0
  485. /package/dist/esm/{chunk-JGNMNCQB.mjs.map → chunk-BRV3RLKW.mjs.map} +0 -0
  486. /package/dist/esm/{chunk-EE7GDBA5.mjs.map → chunk-CEW2NI3K.mjs.map} +0 -0
  487. /package/dist/esm/{chunk-4LKLOUMG.mjs.map → chunk-D54FD6XE.mjs.map} +0 -0
  488. /package/dist/esm/{chunk-MK2QAHXC.mjs.map → chunk-DYELAVMR.mjs.map} +0 -0
  489. /package/dist/esm/{chunk-OXM4BVAY.mjs.map → chunk-ERDYU5YQ.mjs.map} +0 -0
  490. /package/dist/esm/{chunk-7JK7UG4E.mjs.map → chunk-ETF76XA3.mjs.map} +0 -0
  491. /package/dist/esm/{chunk-N2FKVZ4D.mjs.map → chunk-FD6FGKYY.mjs.map} +0 -0
  492. /package/dist/esm/{chunk-LDZPO76C.mjs.map → chunk-FFCCBAEZ.mjs.map} +0 -0
  493. /package/dist/esm/{chunk-OAEDFM7T.mjs.map → chunk-GX4CYRK4.mjs.map} +0 -0
  494. /package/dist/esm/{chunk-UCRROMZN.mjs.map → chunk-GZBVXXUL.mjs.map} +0 -0
  495. /package/dist/esm/{chunk-AT2ZGTXQ.mjs.map → chunk-H7AALSJ7.mjs.map} +0 -0
  496. /package/dist/esm/{chunk-EUGLLGYW.mjs.map → chunk-HBWIDPNN.mjs.map} +0 -0
  497. /package/dist/esm/{chunk-BVVHGSWC.mjs.map → chunk-HPZQGMSH.mjs.map} +0 -0
  498. /package/dist/esm/{chunk-73GCGRFW.mjs.map → chunk-II26BNYA.mjs.map} +0 -0
  499. /package/dist/esm/{chunk-BOWPP6YG.mjs.map → chunk-IQ4SCMB6.mjs.map} +0 -0
  500. /package/dist/esm/{chunk-CL6EEMSL.mjs.map → chunk-JGLEKXFP.mjs.map} +0 -0
  501. /package/dist/esm/{chunk-AZ6LVQEG.mjs.map → chunk-JONEH52T.mjs.map} +0 -0
  502. /package/dist/esm/{chunk-IAVI3H4V.mjs.map → chunk-KCEI5JYS.mjs.map} +0 -0
  503. /package/dist/esm/{chunk-XFY4O2S3.mjs.map → chunk-KM6IOJ6Y.mjs.map} +0 -0
  504. /package/dist/esm/{chunk-DMSHPWA5.mjs.map → chunk-KTM6KVUJ.mjs.map} +0 -0
  505. /package/dist/esm/{chunk-KYJU5PWF.mjs.map → chunk-L25CRR2W.mjs.map} +0 -0
  506. /package/dist/esm/{chunk-AGBA3Y7A.mjs.map → chunk-LGTOOAQI.mjs.map} +0 -0
  507. /package/dist/esm/{chunk-F2RY4YQ7.mjs.map → chunk-LYO22HMF.mjs.map} +0 -0
  508. /package/dist/esm/{chunk-KW4FVBDD.mjs.map → chunk-MBEWPBGN.mjs.map} +0 -0
  509. /package/dist/esm/{chunk-4OV7QU2U.mjs.map → chunk-MHN6XY4Z.mjs.map} +0 -0
  510. /package/dist/esm/{chunk-JVTDP4KV.mjs.map → chunk-ML7D2CVG.mjs.map} +0 -0
  511. /package/dist/esm/{chunk-XQ7ONNII.mjs.map → chunk-O4MRRWRI.mjs.map} +0 -0
  512. /package/dist/esm/{chunk-ZINOJTLU.mjs.map → chunk-OPO5EYF7.mjs.map} +0 -0
  513. /package/dist/esm/{chunk-6DMDYBV6.mjs.map → chunk-OVI7L7OG.mjs.map} +0 -0
  514. /package/dist/esm/{chunk-TPJLAYW6.mjs.map → chunk-P2FTRAK3.mjs.map} +0 -0
  515. /package/dist/esm/{chunk-4JXB6V5O.mjs.map → chunk-RC43EXC4.mjs.map} +0 -0
  516. /package/dist/esm/{chunk-WZCKSN2U.mjs.map → chunk-RLH25IDA.mjs.map} +0 -0
  517. /package/dist/esm/{chunk-UGL2GPGK.mjs.map → chunk-RSO5YIDW.mjs.map} +0 -0
  518. /package/dist/esm/{chunk-OTY3NO7Q.mjs.map → chunk-T6ADNZE5.mjs.map} +0 -0
  519. /package/dist/esm/{chunk-3H5DGQKX.mjs.map → chunk-TGW36YOD.mjs.map} +0 -0
  520. /package/dist/esm/{chunk-WSZCPSV4.mjs.map → chunk-TQA6HY6A.mjs.map} +0 -0
  521. /package/dist/esm/{chunk-XFJD6QIP.mjs.map → chunk-U3GE6IPF.mjs.map} +0 -0
  522. /package/dist/esm/{chunk-ONBFUPEC.mjs.map → chunk-UGTIALNW.mjs.map} +0 -0
  523. /package/dist/esm/{chunk-JNRMHDRA.mjs.map → chunk-UKVH4UGL.mjs.map} +0 -0
  524. /package/dist/esm/{chunk-4CDDWSKZ.mjs.map → chunk-UZTJWOLS.mjs.map} +0 -0
  525. /package/dist/esm/{chunk-4ZK3JNQT.mjs.map → chunk-VGITSRT6.mjs.map} +0 -0
  526. /package/dist/esm/{chunk-XOCRDV2V.mjs.map → chunk-VQZMI3EZ.mjs.map} +0 -0
  527. /package/dist/esm/{chunk-YZ5BCOGI.mjs.map → chunk-X7JNNNMC.mjs.map} +0 -0
  528. /package/dist/esm/{chunk-JN36BNWA.mjs.map → chunk-XIB6LX22.mjs.map} +0 -0
  529. /package/dist/esm/{chunk-OZN3OOJV.mjs.map → chunk-ZMBXHMVQ.mjs.map} +0 -0
  530. /package/dist/esm/{client/types.mjs.map → errors/index.mjs.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  // Copyright © Aptos Foundation
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { JwtPayload, jwtDecode } from "jwt-decode";
5
4
  import { HexInput } from "../types";
6
5
  import { AccountAddress } from "../core/accountAddress";
7
- import { KeylessPublicKey, ZeroKnowledgeSig } from "../core/crypto";
6
+ import { getIssAudAndUidVal, Groth16VerificationKey, KeylessPublicKey, ZeroKnowledgeSig } from "../core/crypto";
8
7
 
9
8
  import { EphemeralKeyPair } from "./EphemeralKeyPair";
10
9
  import { Deserializer, Serializer } from "../bcs";
11
10
  import { AbstractKeylessAccount, ProofFetchCallback } from "./AbstractKeylessAccount";
11
+ import { Hex } from "../core/hex";
12
12
 
13
13
  /**
14
14
  * Account implementation for the Keyless authentication scheme.
@@ -19,9 +19,6 @@ import { AbstractKeylessAccount, ProofFetchCallback } from "./AbstractKeylessAcc
19
19
  *
20
20
  * When the proof expires or the JWT becomes invalid, the KeylessAccount must be instantiated again with a new JWT,
21
21
  * EphemeralKeyPair, and corresponding proof.
22
- *
23
- * @static
24
- * @readonly PEPPER_LENGTH - The length of the pepper used for privacy preservation.
25
22
  */
26
23
  export class KeylessAccount extends AbstractKeylessAccount {
27
24
  /**
@@ -32,11 +29,22 @@ export class KeylessAccount extends AbstractKeylessAccount {
32
29
  // Use the static constructor 'create' instead.
33
30
 
34
31
  /**
35
- * Creates an instance of the transaction with an optional proof.
32
+ * Use the static generator `create(...)` instead.
33
+ * Creates an instance of the KeylessAccount with an optional proof.
36
34
  *
37
- * @param args.proof - An optional ZkProof associated with the transaction.
35
+ * @param args - The parameters for creating a KeylessAccount.
36
+ * @param args.address - Optional account address associated with the KeylessAccount.
37
+ * @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation.
38
+ * @param args.iss - A JWT issuer.
39
+ * @param args.uidKey - The claim on the JWT to identify a user. This is typically 'sub' or 'email'.
40
+ * @param args.uidVal - The unique id for this user, intended to be a stable user identifier.
41
+ * @param args.aud - The value of the 'aud' claim on the JWT, also known as client ID. This is the identifier for the dApp's
42
+ * OIDC registration with the identity provider.
43
+ * @param args.pepper - A hexadecimal input used for additional security.
44
+ * @param args.proof - A Zero Knowledge Signature or a promise that resolves to one.
45
+ * @param args.proofFetchCallback - Optional callback function for fetching proof.
46
+ * @param args.jwt - A JSON Web Token used for authentication.
38
47
  */
39
- // TODO: Document rest of parameters
40
48
  private constructor(args: {
41
49
  address?: AccountAddress;
42
50
  ephemeralKeyPair: EphemeralKeyPair;
@@ -48,6 +56,7 @@ export class KeylessAccount extends AbstractKeylessAccount {
48
56
  proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;
49
57
  proofFetchCallback?: ProofFetchCallback;
50
58
  jwt: string;
59
+ verificationKeyHash?: HexInput;
51
60
  }) {
52
61
  const publicKey = KeylessPublicKey.create(args);
53
62
  super({ publicKey, ...args });
@@ -61,14 +70,7 @@ export class KeylessAccount extends AbstractKeylessAccount {
61
70
  * @param serializer - The serializer instance used to convert the transaction data into bytes.
62
71
  */
63
72
  serialize(serializer: Serializer): void {
64
- serializer.serializeStr(this.jwt);
65
- serializer.serializeStr(this.uidKey);
66
- serializer.serializeFixedBytes(this.pepper);
67
- this.ephemeralKeyPair.serialize(serializer);
68
- if (this.proof === undefined) {
69
- throw new Error("Cannot serialize - proof undefined");
70
- }
71
- this.proof.serialize(serializer);
73
+ super.serialize(serializer);
72
74
  }
73
75
 
74
76
  /**
@@ -79,27 +81,37 @@ export class KeylessAccount extends AbstractKeylessAccount {
79
81
  * @returns A KeylessAccount instance created from the deserialized data.
80
82
  */
81
83
  static deserialize(deserializer: Deserializer): KeylessAccount {
82
- const jwt = deserializer.deserializeStr();
83
- const uidKey = deserializer.deserializeStr();
84
- const pepper = deserializer.deserializeFixedBytes(31);
85
- const ephemeralKeyPair = EphemeralKeyPair.deserialize(deserializer);
86
- const proof = ZeroKnowledgeSig.deserialize(deserializer);
87
- return KeylessAccount.create({
84
+ const { address, proof, ephemeralKeyPair, jwt, uidKey, pepper, verificationKeyHash } =
85
+ AbstractKeylessAccount.partialDeserialize(deserializer);
86
+ const { iss, aud, uidVal } = getIssAudAndUidVal({ jwt, uidKey });
87
+ return new KeylessAccount({
88
+ address,
88
89
  proof,
89
- pepper,
90
+ ephemeralKeyPair,
91
+ iss,
90
92
  uidKey,
93
+ uidVal,
94
+ aud,
95
+ pepper,
91
96
  jwt,
92
- ephemeralKeyPair,
97
+ verificationKeyHash,
93
98
  });
94
99
  }
95
100
 
96
- static fromBytes(bytes: Uint8Array): KeylessAccount {
97
- return KeylessAccount.deserialize(new Deserializer(bytes));
101
+ /**
102
+ * Deserialize bytes using this account's information.
103
+ *
104
+ * @param bytes The bytes being interpreted.
105
+ * @returns
106
+ */
107
+ static fromBytes(bytes: HexInput): KeylessAccount {
108
+ return KeylessAccount.deserialize(new Deserializer(Hex.hexInputToUint8Array(bytes)));
98
109
  }
99
110
 
100
111
  /**
101
112
  * Creates a KeylessAccount instance using the provided parameters.
102
113
  * This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT.
114
+ * This is used instead of the KeylessAccount constructor.
103
115
  *
104
116
  * @param args - The parameters for creating a KeylessAccount.
105
117
  * @param args.address - Optional account address associated with the KeylessAccount.
@@ -118,28 +130,23 @@ export class KeylessAccount extends AbstractKeylessAccount {
118
130
  pepper: HexInput;
119
131
  uidKey?: string;
120
132
  proofFetchCallback?: ProofFetchCallback;
133
+ verificationKey?: Groth16VerificationKey;
121
134
  }): KeylessAccount {
122
- const { address, proof, jwt, ephemeralKeyPair, pepper, uidKey = "sub", proofFetchCallback } = args;
135
+ const { address, proof, jwt, ephemeralKeyPair, pepper, uidKey = "sub", proofFetchCallback, verificationKey } = args;
123
136
 
124
- const jwtPayload = jwtDecode<JwtPayload & { [key: string]: string }>(jwt);
125
- if (typeof jwtPayload.iss !== "string") {
126
- throw new Error("iss was not found");
127
- }
128
- if (typeof jwtPayload.aud !== "string") {
129
- throw new Error("aud was not found or an array of values");
130
- }
131
- const uidVal = jwtPayload[uidKey];
137
+ const { iss, aud, uidVal } = getIssAudAndUidVal({ jwt, uidKey });
132
138
  return new KeylessAccount({
133
139
  address,
134
140
  proof,
135
141
  ephemeralKeyPair,
136
- iss: jwtPayload.iss,
142
+ iss,
137
143
  uidKey,
138
144
  uidVal,
139
- aud: jwtPayload.aud,
145
+ aud,
140
146
  pepper,
141
147
  jwt,
142
148
  proofFetchCallback,
149
+ verificationKeyHash: verificationKey ? verificationKey.hash() : undefined,
143
150
  });
144
151
  }
145
152
  }
@@ -7,7 +7,8 @@ import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
7
7
  import { HexInput, SigningScheme } from "../types";
8
8
  import { AccountAuthenticatorMultiKey } from "../transactions/authenticator/account";
9
9
  import { AnyRawTransaction } from "../transactions/types";
10
- import { AbstractKeylessAccount } from "./AbstractKeylessAccount";
10
+ import { AbstractKeylessAccount, KeylessSigner } from "./AbstractKeylessAccount";
11
+ import { AptosConfig } from "../api/aptosConfig";
11
12
 
12
13
  /**
13
14
  * Arguments required to verify a multi-key signature against a given message.
@@ -28,7 +29,7 @@ export interface VerifyMultiKeySignatureArgs {
28
29
  *
29
30
  * Note: Generating a signer instance does not create the account on-chain.
30
31
  */
31
- export class MultiKeyAccount implements Account {
32
+ export class MultiKeyAccount implements Account, KeylessSigner {
32
33
  /**
33
34
  * Public key associated with the account
34
35
  */
@@ -154,9 +155,21 @@ export class MultiKeyAccount implements Account {
154
155
  }
155
156
 
156
157
  /**
157
- * Sign the given data using the MultiKeyAccount's signers.
158
- * @param data - The data to be signed in HexInput format.
159
- * @returns MultiKeySignature - The resulting multi-key signature.
158
+ * Validates that the Keyless Account can be used to sign transactions.
159
+ * @return
160
+ */
161
+ async checkKeylessAccountValidity(aptosConfig: AptosConfig): Promise<void> {
162
+ const keylessSigners = this.signers.filter(
163
+ (signer) => signer instanceof AbstractKeylessAccount,
164
+ ) as AbstractKeylessAccount[];
165
+ const promises = keylessSigners.map((signer) => signer.checkKeylessAccountValidity(aptosConfig));
166
+ await Promise.all(promises);
167
+ }
168
+
169
+ /**
170
+ * Sign the given message using the MultiKeyAccount's signers
171
+ * @param message in HexInput format
172
+ * @returns MultiKeySignature
160
173
  */
161
174
  sign(data: HexInput): MultiKeySignature {
162
175
  const signatures = [];
@@ -155,7 +155,7 @@ export class Keyless {
155
155
  * @param args.jwt - The JWT token used for deriving the account.
156
156
  * @param args.ephemeralKeyPair - The EphemeralKeyPair used to generate the nonce in the JWT token.
157
157
  * @param args.jwkAddress - The address the where the JWKs used to verify signatures are found. Setting the value derives a
158
- * FederatedKeylessAccount
158
+ * FederatedKeylessAccount.
159
159
  * @param args.uidKey - An optional key in the JWT token to set the uidVal in the IdCommitment.
160
160
  * @param args.pepper - An optional pepper value.
161
161
  * @param args.proofFetchCallback - An optional callback function for fetching the proof in the background, allowing for a more
@@ -201,7 +201,7 @@ export class Keyless {
201
201
  /**
202
202
  * This installs a set of FederatedJWKs at an address for a given iss.
203
203
  *
204
- * It will fetch the JWK set from the well-known endpoint and update the FederatedJWKs at the sender's address
204
+ * It will fetch the JSON Web Keyset (JWK) set from the well-known endpoint and update the FederatedJWKs at the sender's address
205
205
  * to reflect it.
206
206
  *
207
207
  * @param args.sender The account that will install the JWKs
@@ -82,6 +82,7 @@ export class Deserializer {
82
82
  }
83
83
 
84
84
  /**
85
+ * @deprecated use `deserializeOption` instead.
85
86
  * Deserializes a UTF-8 encoded string from a byte array. It first reads the length of the string in bytes,
86
87
  * followed by the actual byte content, and decodes it into a string.
87
88
  *
@@ -101,44 +102,66 @@ export class Deserializer {
101
102
  }
102
103
 
103
104
  /**
104
- * Deserializes an optional string.
105
+ * Deserializes an optional value from the buffer.
105
106
  *
106
- * The BCS layout for Optional<String> is 0 if none, else 1 followed by the string length and string content.
107
- * @returns The deserialized string if it exists, otherwise undefined.
108
- * @example
109
- * ```typescript
110
- * const deserializer = new Deserializer(new Uint8Array([0x00]));
111
- * assert(deserializer.deserializeOptionStr() === undefined);
112
- * const deserializer = new Deserializer(new Uint8Array([1, 8, 49, 50, 51, 52, 97, 98, 99, 100]));
113
- * assert(deserializer.deserializeOptionStr() === "1234abcd");
114
- * ```
115
- */
116
- deserializeOptionStr(): string | undefined {
117
- const exists = this.deserializeBool();
118
- return exists ? this.deserializeStr() : undefined;
119
- }
120
-
121
- /**
122
- * Deserializes an optional deserializable class.
107
+ * The BCS layout for Optional<T> starts with a boolean byte (0 if none, 1 if some),
108
+ * followed by the value if present.
109
+ *
110
+ * @template T - The type of the value to deserialize
111
+ * @param type - Either a Deserializable class or one of the string literals: "string", "bytes", or "fixedBytes"
112
+ * @param len - Required length when type is "fixedBytes", ignored otherwise
113
+ * @returns The deserialized value if present, undefined otherwise
123
114
  *
124
- * BCS layout for Optional<T>: 0 if none, else 1 | BCS representation of class.
115
+ * @throws {Error} When "fixedBytes" is specified without a length
125
116
  *
126
117
  * @example
127
- * const deserializer = new Deserializer(new Uint8Array([1, 2, 3]));
128
- * const value = deserializer.deserializeOption(MyClass); // where MyClass has a `deserialize` function
129
- * // value is now an instance of MyClass
118
+ * ```typescript
119
+ * // Deserialize an optional string
120
+ * const deserializer = new Deserializer(new Uint8Array([1, 3, 97, 98, 99]));
121
+ * const optStr = deserializer.deserializeOption("string");
122
+ * // optStr === "abc"
130
123
  *
124
+ * // Deserialize an optional custom type
131
125
  * const deserializer = new Deserializer(new Uint8Array([0]));
132
- * const value = deserializer.deserializeOption(MyClass); // where MyClass has a `deserialize` function
133
- * // value is undefined
134
- *
135
- * @param cls The BCS-deserializable class to deserialize the buffered bytes into.
136
- *
137
- * @returns The deserialized value of class type T or undefined if no value exists.
126
+ * const optValue = deserializer.deserializeOption(MyClass);
127
+ * // optValue === undefined
128
+ *
129
+ * // Deserialize optional bytes
130
+ * const deserializer = new Deserializer(new Uint8Array([1, 3, 1, 2, 3]));
131
+ * const optBytes = deserializer.deserializeOption("bytes");
132
+ * // optBytes === Uint8Array[1, 2, 3]
133
+ *
134
+ * // Deserialize optional fixed bytes
135
+ * const deserializer = new Deserializer(new Uint8Array([1, 1, 2, 3, 4]));
136
+ * const optBytes = deserializer.deserializeOption("fixedBytes", 4);
137
+ * // optBytes === Uint8Array[1, 2, 3, 4]
138
+ * ```
138
139
  */
139
- deserializeOption<T>(cls: Deserializable<T>): T | undefined {
140
+ deserializeOption(type: "string"): string | undefined;
141
+ deserializeOption(type: "bytes"): Uint8Array | undefined;
142
+ deserializeOption(type: "fixedBytes", len: number): Uint8Array | undefined;
143
+ deserializeOption<T>(type: Deserializable<T>): T | undefined;
144
+ deserializeOption<T>(
145
+ type: Deserializable<T> | "string" | "bytes" | "fixedBytes",
146
+ len?: number,
147
+ ): T | string | Uint8Array | undefined {
140
148
  const exists = this.deserializeBool();
141
- return exists ? this.deserialize(cls) : undefined;
149
+ if (!exists) return undefined;
150
+
151
+ if (type === "string") {
152
+ return this.deserializeStr();
153
+ }
154
+ if (type === "bytes") {
155
+ return this.deserializeBytes();
156
+ }
157
+ if (type === "fixedBytes") {
158
+ if (len === undefined) {
159
+ throw new Error("Fixed bytes length not provided");
160
+ }
161
+ return this.deserializeFixedBytes(len);
162
+ }
163
+
164
+ return this.deserialize(type);
142
165
  }
143
166
 
144
167
  /**
@@ -42,8 +42,7 @@ import { EntryFunctionArgument, TransactionArgument } from "../../transactions/i
42
42
  * const vecOfStrings = new MoveVector([new MoveString("hello"), new MoveString("world")]);
43
43
  * const vecOfStrings2 = MoveVector.MoveString(["hello", "world"]);
44
44
  *
45
- * @params
46
- * values: an Array<T> of values where T is a class that implements Serializable
45
+ * @param values an Array<T> of values where T is a class that implements Serializable
47
46
  * @returns a `MoveVector<T>` with the values `values`
48
47
  */
49
48
  export class MoveVector<T extends Serializable & EntryFunctionArgument>
@@ -132,9 +131,9 @@ export class MoveVector<T extends Serializable & EntryFunctionArgument>
132
131
 
133
132
  /**
134
133
  * Factory method to generate a MoveOption<U16> from a `number` or `null`.
135
- *
136
- * This method allows you to create a MoveVector that can either hold a U16 value or be empty.
137
- *
134
+ *
135
+ * This method allows you to create a MoveVector that can either hold a U16 value or be empty.
136
+ *
138
137
  * @param values - The value used to fill the MoveVector. If `value` is null or undefined, the resulting MoveVector's
139
138
  * `.isSome()` method will return false.
140
139
  * @returns A MoveVector<U16> with an inner value `value`.
@@ -150,13 +149,13 @@ export class MoveVector<T extends Serializable & EntryFunctionArgument>
150
149
 
151
150
  /**
152
151
  * Factory method to generate a MoveVector<U32> from a `number` or `null`.
153
- *
154
- * This method allows you to create a MoveVector that can either hold a U32 value or be empty.
155
- *
152
+ *
153
+ * This method allows you to create a MoveVector that can either hold a U32 value or be empty.
154
+ *
156
155
  * @param values - The value used to fill the MoveVector. If `value` is null or undefined,
157
156
  * the resulting MoveVector's .isSome() method will return false.
158
157
  * @returns A MoveVector<U32> with an inner value `value`.
159
- *
158
+ *
160
159
  * @example
161
160
  * ```
162
161
  * const v = MoveVector.U32([1, 2, 3, 4]);
@@ -442,7 +441,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
442
441
  * MoveOption.U8(1).isSome() === true;
443
442
  * MoveOption.U8().isSome() === false;
444
443
  * MoveOption.U8(undefined).isSome() === false;
445
- * @params value: the value used to fill the MoveOption. If `value` is undefined
444
+ * @param value the value used to fill the MoveOption. If `value` is undefined
446
445
  * the resulting MoveOption's .isSome() method will return false.
447
446
  * @returns a MoveOption<U8> with an inner value `value`
448
447
  */
@@ -457,7 +456,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
457
456
  * MoveOption.U16(1).isSome() === true;
458
457
  * MoveOption.U16().isSome() === false;
459
458
  * MoveOption.U16(undefined).isSome() === false;
460
- * @params value: the value used to fill the MoveOption. If `value` is undefined
459
+ * @param value the value used to fill the MoveOption. If `value` is undefined
461
460
  * the resulting MoveOption's .isSome() method will return false.
462
461
  * @returns a MoveOption<U16> with an inner value `value`
463
462
  */
@@ -472,7 +471,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
472
471
  * MoveOption.U32(1).isSome() === true;
473
472
  * MoveOption.U32().isSome() === false;
474
473
  * MoveOption.U32(undefined).isSome() === false;
475
- * @params value: the value used to fill the MoveOption. If `value` is undefined
474
+ * @param value the value used to fill the MoveOption. If `value` is undefined
476
475
  * the resulting MoveOption's .isSome() method will return false.
477
476
  * @returns a MoveOption<U32> with an inner value `value`
478
477
  */
@@ -487,7 +486,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
487
486
  * MoveOption.U64(1).isSome() === true;
488
487
  * MoveOption.U64().isSome() === false;
489
488
  * MoveOption.U64(undefined).isSome() === false;
490
- * @params value: the value used to fill the MoveOption. If `value` is undefined
489
+ * @param value the value used to fill the MoveOption. If `value` is undefined
491
490
  * the resulting MoveOption's .isSome() method will return false.
492
491
  * @returns a MoveOption<U64> with an inner value `value`
493
492
  */
@@ -502,7 +501,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
502
501
  * MoveOption.U128(1).isSome() === true;
503
502
  * MoveOption.U128().isSome() === false;
504
503
  * MoveOption.U128(undefined).isSome() === false;
505
- * @params value: the value used to fill the MoveOption. If `value` is undefined
504
+ * @param value the value used to fill the MoveOption. If `value` is undefined
506
505
  * the resulting MoveOption's .isSome() method will return false.
507
506
  * @returns a MoveOption<U128> with an inner value `value`
508
507
  */
@@ -517,7 +516,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
517
516
  * MoveOption.U256(1).isSome() === true;
518
517
  * MoveOption.U256().isSome() === false;
519
518
  * MoveOption.U256(undefined).isSome() === false;
520
- * @params value: the value used to fill the MoveOption. If `value` is undefined
519
+ * @param value the value used to fill the MoveOption. If `value` is undefined
521
520
  * the resulting MoveOption's .isSome() method will return false.
522
521
  * @returns a MoveOption<U256> with an inner value `value`
523
522
  */
@@ -532,7 +531,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
532
531
  * MoveOption.Bool(true).isSome() === true;
533
532
  * MoveOption.Bool().isSome() === false;
534
533
  * MoveOption.Bool(undefined).isSome() === false;
535
- * @params value: the value used to fill the MoveOption. If `value` is undefined
534
+ * @param value the value used to fill the MoveOption. If `value` is undefined
536
535
  * the resulting MoveOption's .isSome() method will return false.
537
536
  * @returns a MoveOption<Bool> with an inner value `value`
538
537
  */
@@ -548,7 +547,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
548
547
  * MoveOption.MoveString("").isSome() === true;
549
548
  * MoveOption.MoveString().isSome() === false;
550
549
  * MoveOption.MoveString(undefined).isSome() === false;
551
- * @params value: the value used to fill the MoveOption. If `value` is undefined
550
+ * @param value the value used to fill the MoveOption. If `value` is undefined
552
551
  * the resulting MoveOption's .isSome() method will return false.
553
552
  * @returns a MoveOption<MoveString> with an inner value `value`
554
553
  */
@@ -367,32 +367,42 @@ export class Serializer {
367
367
  }
368
368
 
369
369
  /**
370
- * Serializes a BCS Serializable value into a serializer instance or handles the case when the value is undefined.
371
- * This function allows you to efficiently add serialized data to the serializer's byte buffer.
370
+ * Serializes an optional value which can be a Serializable, string, or Uint8Array.
371
+ * For strings and Uint8Arrays, it uses the appropriate serialization method.
372
372
  *
373
- * @param value The BCS Serializable value to serialize, or undefined if there is no value.
373
+ * @param value The value to serialize (Serializable, string, Uint8Array, or undefined)
374
+ * @param len Optional fixed length for Uint8Array serialization. If provided, uses serializeFixedBytes instead of serializeBytes
374
375
  *
375
376
  * @example
376
377
  * ```typescript
377
378
  * const serializer = new Serializer();
378
- * serializer.serializeOption(new AccountAddress(...));
379
- * const serializedBytes = serializer.toUint8Array();
380
- * // serializedBytes is now the BCS-serialized byte representation of AccountAddress
381
- *
382
- * const serializer = new Serializer();
383
- * serializer.serializeOption(undefined);
384
- * assert(serializer.toUint8Array() === new Uint8Array([0x00]));
379
+ * serializer.serializeOption("hello"); // Serializes optional string
380
+ * serializer.serializeOption(new Uint8Array([1, 2, 3])); // Serializes optional bytes
381
+ * serializer.serializeOption(new Uint8Array([1, 2, 3]), 3); // Serializes optional fixed-length bytes
382
+ * serializer.serializeOption(new AccountAddress(...)); // Serializes optional Serializable
383
+ * serializer.serializeOption(undefined); // Serializes none case
385
384
  * ```
386
385
  */
387
- serializeOption<T extends Serializable>(value?: T): void {
386
+ serializeOption<T extends Serializable | string | Uint8Array>(value?: T, len?: number): void {
388
387
  const hasValue = value !== undefined;
389
388
  this.serializeBool(hasValue);
390
389
  if (hasValue) {
391
- value.serialize(this);
390
+ if (typeof value === "string") {
391
+ this.serializeStr(value);
392
+ } else if (value instanceof Uint8Array) {
393
+ if (len !== undefined) {
394
+ this.serializeFixedBytes(value);
395
+ } else {
396
+ this.serializeBytes(value);
397
+ }
398
+ } else {
399
+ value.serialize(this);
400
+ }
392
401
  }
393
402
  }
394
403
 
395
404
  /**
405
+ * @deprecated use `serializeOption` instead.
396
406
  * Serializes an optional string, supporting UTF8 encoding.
397
407
  * The function encodes the existence of the string first, followed by the length and content if it exists.
398
408
  *
@@ -2,10 +2,10 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { AptosConfig } from "../api/aptosConfig";
5
- import { AptosApiError, AptosResponse } from "./types";
6
5
  import { VERSION } from "../version";
7
- import { AnyNumber, AptosRequest, Client, ClientRequest, ClientResponse, MimeType } from "../types";
6
+ import { AnyNumber, AptosRequest, AptosResponse, Client, ClientRequest, ClientResponse, MimeType } from "../types";
8
7
  import { AptosApiType } from "../utils";
8
+ import { AptosApiError } from "../errors";
9
9
 
10
10
  /**
11
11
  * Sends a request using the specified options and returns the response.
package/src/client/get.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { AptosConfig } from "../api/aptosConfig";
2
2
  import { aptosRequest } from "./core";
3
- import { AptosResponse } from "./types";
4
- import { AnyNumber, ClientConfig, MimeType } from "../types";
3
+ import { AptosResponse, AnyNumber, ClientConfig, MimeType } from "../types";
5
4
  import { AptosApiType } from "../utils/const";
6
5
 
7
6
  /**
@@ -4,4 +4,3 @@
4
4
  export * from "./core";
5
5
  export * from "./get";
6
6
  export * from "./post";
7
- export * from "./types";
@@ -3,8 +3,7 @@
3
3
 
4
4
  import { AptosConfig } from "../api/aptosConfig";
5
5
  import { aptosRequest } from "./core";
6
- import { AptosResponse } from "./types";
7
- import { AnyNumber, ClientConfig, MimeType } from "../types";
6
+ import { AptosResponse, AnyNumber, ClientConfig, MimeType } from "../types";
8
7
  import { AptosApiType } from "../utils/const";
9
8
 
10
9
  /**
@@ -19,6 +19,7 @@ export enum AddressInvalidReason {
19
19
  LEADING_ZERO_X_REQUIRED = "leading_zero_x_required",
20
20
  LONG_FORM_REQUIRED_UNLESS_SPECIAL = "long_form_required_unless_special",
21
21
  INVALID_PADDING_ZEROES = "INVALID_PADDING_ZEROES",
22
+ INVALID_PADDING_STRICTNESS = "INVALID_PADDING_STRICTNESS",
22
23
  }
23
24
 
24
25
  /**
@@ -249,7 +250,9 @@ export class AccountAddress extends Serializable implements TransactionArgument
249
250
  *
250
251
  * @throws {ParsingError} If the hex string does not start with 0x or is not in a valid format.
251
252
  *
252
- * @note This function has strict parsing behavior. For relaxed behavior, please use the `fromString` function.
253
+ * @remarks
254
+ *
255
+ * This function has strict parsing behavior. For relaxed behavior, please use the `fromString` function.
253
256
  *
254
257
  * @see AIP-40 documentation for more details on address formats:
255
258
  * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.
@@ -288,7 +291,7 @@ export class AccountAddress extends Serializable implements TransactionArgument
288
291
  /**
289
292
  * NOTE: This function has relaxed parsing behavior. For strict behavior, please use
290
293
  * the `fromStringStrict` function. Where possible use `fromStringStrict` rather than this
291
- * function, `fromString` is only provided for backwards compatibility.
294
+ * function, `fromString`.
292
295
  *
293
296
  * Creates an instance of AccountAddress from a hex string.
294
297
  *
@@ -296,23 +299,24 @@ export class AccountAddress extends Serializable implements TransactionArgument
296
299
  * following formats are accepted:
297
300
  *
298
301
  * - LONG, with or without leading 0x
299
- * - SHORT, with or without leading 0x
302
+ * - SHORT*, with or without leading 0x
300
303
  *
301
304
  * Where:
302
305
  * - LONG is 64 hex characters.
303
- * - SHORT is 1 to 63 hex characters inclusive.
306
+ * - SHORT* is 1 to 63 hex characters inclusive. The address can have missing values up to `maxMissingChars` before it is padded.
304
307
  * - Padding zeroes are allowed, e.g. 0x0123 is valid.
305
308
  *
306
309
  * Learn more about the different address formats by reading AIP-40:
307
310
  * https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.
308
311
  *
309
- * @param input - A hex string representing an account address.
312
+ * @param input A hex string representing an account address.
313
+ * @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.
310
314
  *
311
315
  * @returns An instance of AccountAddress.
312
316
  *
313
317
  * @throws ParsingError if the hex string is too short, too long, or contains invalid characters.
314
318
  */
315
- static fromString(input: string): AccountAddress {
319
+ static fromString(input: string, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {
316
320
  let parsedInput = input;
317
321
  // Remove leading 0x for parsing.
318
322
  if (input.startsWith("0x")) {
@@ -335,6 +339,14 @@ export class AccountAddress extends Serializable implements TransactionArgument
335
339
  );
336
340
  }
337
341
 
342
+ // Ensure that the maxMissingChars is between or equal to 0 and 63.
343
+ if (maxMissingChars > 63 || maxMissingChars < 0) {
344
+ throw new ParsingError(
345
+ `maxMissingChars must be between or equal to 0 and 63. Received ${maxMissingChars}`,
346
+ AddressInvalidReason.INVALID_PADDING_STRICTNESS,
347
+ );
348
+ }
349
+
338
350
  let addressBytes: Uint8Array;
339
351
  try {
340
352
  // Pad the address with leading zeroes, so it is 64 chars long and then convert
@@ -347,7 +359,21 @@ export class AccountAddress extends Serializable implements TransactionArgument
347
359
  throw new ParsingError(`Hex characters are invalid: ${error?.message}`, AddressInvalidReason.INVALID_HEX_CHARS);
348
360
  }
349
361
 
350
- return new AccountAddress(addressBytes);
362
+ const address = new AccountAddress(addressBytes);
363
+
364
+ // Cannot pad the address if it has more than maxMissingChars missing.
365
+ if (parsedInput.length < 64 - maxMissingChars) {
366
+ if (!address.isSpecial()) {
367
+ throw new ParsingError(
368
+ `Hex string is too short, must be ${64 - maxMissingChars} to 64 chars long, excluding the leading 0x. You may need to fix
369
+ the addresss by padding it with 0s before passing it to \`fromString\` (e.g. <addressString>.padStart(64, '0')).
370
+ Received ${input}`,
371
+ AddressInvalidReason.TOO_SHORT,
372
+ );
373
+ }
374
+ }
375
+
376
+ return address;
351
377
  }
352
378
 
353
379
  /**
@@ -357,10 +383,11 @@ export class AccountAddress extends Serializable implements TransactionArgument
357
383
  *
358
384
  * @param input - The input to convert into an AccountAddress. This can be a string representation of an address, a Uint8Array,
359
385
  * or an existing AccountAddress.
386
+ * @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.
360
387
  */
361
- static from(input: AccountAddressInput): AccountAddress {
388
+ static from(input: AccountAddressInput, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {
362
389
  if (typeof input === "string") {
363
- return AccountAddress.fromString(input);
390
+ return AccountAddress.fromString(input, { maxMissingChars });
364
391
  }
365
392
  if (input instanceof Uint8Array) {
366
393
  return new AccountAddress(input);