@aptos-labs/ts-sdk 1.30.0 → 1.32.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 (549) 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 +546 -112
  9. package/dist/common/index.js +37 -28
  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 +86 -14
  13. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
  14. package/dist/esm/account/Account.d.mts +5 -4
  15. package/dist/esm/account/Account.mjs +1 -1
  16. package/dist/esm/account/Ed25519Account.d.mts +5 -4
  17. package/dist/esm/account/Ed25519Account.mjs +1 -1
  18. package/dist/esm/account/EphemeralKeyPair.d.mts +4 -3
  19. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  20. package/dist/esm/account/FederatedKeylessAccount.d.mts +57 -8
  21. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
  22. package/dist/esm/account/KeylessAccount.d.mts +29 -11
  23. package/dist/esm/account/KeylessAccount.mjs +1 -1
  24. package/dist/esm/account/MultiKeyAccount.d.mts +23 -10
  25. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  26. package/dist/esm/account/SingleKeyAccount.d.mts +5 -4
  27. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  28. package/dist/esm/account/index.d.mts +6 -5
  29. package/dist/esm/account/index.mjs +1 -1
  30. package/dist/esm/api/account.d.mts +9 -6
  31. package/dist/esm/api/account.mjs +1 -1
  32. package/dist/esm/api/ans.d.mts +4 -3
  33. package/dist/esm/api/ans.mjs +1 -1
  34. package/dist/esm/api/aptos.d.mts +6 -4
  35. package/dist/esm/api/aptos.mjs +1 -1
  36. package/dist/esm/api/aptosConfig.d.mts +2 -1
  37. package/dist/esm/api/coin.d.mts +6 -5
  38. package/dist/esm/api/coin.mjs +1 -1
  39. package/dist/esm/api/digitalAsset.d.mts +7 -6
  40. package/dist/esm/api/digitalAsset.mjs +1 -1
  41. package/dist/esm/api/event.d.mts +4 -3
  42. package/dist/esm/api/event.mjs +1 -1
  43. package/dist/esm/api/faucet.d.mts +3 -2
  44. package/dist/esm/api/faucet.mjs +1 -1
  45. package/dist/esm/api/fungibleAsset.d.mts +6 -5
  46. package/dist/esm/api/fungibleAsset.mjs +1 -1
  47. package/dist/esm/api/general.d.mts +6 -5
  48. package/dist/esm/api/general.mjs +1 -1
  49. package/dist/esm/api/index.d.mts +6 -4
  50. package/dist/esm/api/index.mjs +1 -1
  51. package/dist/esm/api/keyless.d.mts +11 -9
  52. package/dist/esm/api/keyless.mjs +1 -1
  53. package/dist/esm/api/object.d.mts +5 -4
  54. package/dist/esm/api/object.mjs +1 -1
  55. package/dist/esm/api/staking.d.mts +5 -4
  56. package/dist/esm/api/staking.mjs +1 -1
  57. package/dist/esm/api/table.d.mts +4 -3
  58. package/dist/esm/api/table.mjs +1 -1
  59. package/dist/esm/api/transaction.d.mts +5 -3
  60. package/dist/esm/api/transaction.mjs +1 -1
  61. package/dist/esm/api/transactionSubmission/build.d.mts +69 -3
  62. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  63. package/dist/esm/api/transactionSubmission/management.d.mts +5 -4
  64. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  65. package/dist/esm/api/transactionSubmission/sign.d.mts +5 -4
  66. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  67. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  68. package/dist/esm/api/transactionSubmission/simulate.d.mts +4 -3
  69. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  70. package/dist/esm/api/transactionSubmission/submit.d.mts +4 -3
  71. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  72. package/dist/esm/api/utils.d.mts +3 -2
  73. package/dist/esm/api/utils.mjs +1 -1
  74. package/dist/esm/bcs/consts.d.mts +3 -2
  75. package/dist/esm/bcs/deserializer.d.mts +36 -27
  76. package/dist/esm/bcs/deserializer.mjs +1 -1
  77. package/dist/esm/bcs/index.d.mts +3 -2
  78. package/dist/esm/bcs/index.mjs +1 -1
  79. package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +3 -2
  80. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
  81. package/dist/esm/bcs/serializable/fixedBytes.d.mts +3 -2
  82. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
  83. package/dist/esm/bcs/serializable/movePrimitives.d.mts +3 -2
  84. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  85. package/dist/esm/bcs/serializable/moveStructs.d.mts +12 -12
  86. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  87. package/dist/esm/bcs/serializer.d.mts +14 -13
  88. package/dist/esm/bcs/serializer.mjs +1 -1
  89. package/dist/esm/{chunk-OV5UQ75K.mjs → chunk-2NHQQQZK.mjs} +2 -2
  90. package/dist/esm/{chunk-EF2PUPUH.mjs → chunk-2QBCTW67.mjs} +2 -2
  91. package/dist/esm/chunk-2QBCTW67.mjs.map +1 -0
  92. package/dist/esm/{chunk-JY3JJ55D.mjs → chunk-37Y54PJ5.mjs} +2 -2
  93. package/dist/esm/chunk-3DQVGPFE.mjs +2 -0
  94. package/dist/esm/chunk-3DQVGPFE.mjs.map +1 -0
  95. package/dist/esm/{chunk-XHCALZ7X.mjs → chunk-3XCYCFYI.mjs} +2 -2
  96. package/dist/esm/{chunk-6FLHGOKP.mjs → chunk-42H7WETG.mjs} +2 -2
  97. package/dist/esm/{chunk-RNAKZVRN.mjs → chunk-46L6BAJG.mjs} +2 -2
  98. package/dist/esm/{chunk-EN2HDNFE.mjs → chunk-4DNCQM3S.mjs} +2 -2
  99. package/dist/esm/chunk-4O5XDQDO.mjs +2 -0
  100. package/dist/esm/chunk-4PBXTMN3.mjs +2 -0
  101. package/dist/esm/chunk-4PBXTMN3.mjs.map +1 -0
  102. package/dist/esm/chunk-4YEOOZ2N.mjs +4 -0
  103. package/dist/esm/{chunk-KFSVKIFO.mjs.map → chunk-4YEOOZ2N.mjs.map} +1 -1
  104. package/dist/esm/{chunk-D3KBNFZR.mjs → chunk-5AKSORBJ.mjs} +2 -2
  105. package/dist/esm/chunk-5B3SMBXQ.mjs +2 -0
  106. package/dist/esm/{chunk-EKZQ3EYX.mjs → chunk-5NJWJXSS.mjs} +2 -2
  107. package/dist/esm/{chunk-2QRWGJJA.mjs → chunk-6K4TOFCO.mjs} +2 -2
  108. package/dist/esm/{chunk-OLPI7QAH.mjs → chunk-6LLGRGCN.mjs} +2 -2
  109. package/dist/esm/chunk-6LLGRGCN.mjs.map +1 -0
  110. package/dist/esm/{chunk-R3Y6WH2U.mjs → chunk-6PJH53CK.mjs} +2 -2
  111. package/dist/esm/{chunk-PCLU4KLY.mjs → chunk-6ZOVTYLJ.mjs} +2 -2
  112. package/dist/esm/chunk-7ECCT6PK.mjs +1 -0
  113. package/dist/esm/chunk-7WXDXBXK.mjs +2 -0
  114. package/dist/esm/{chunk-UKAXCARD.mjs.map → chunk-7WXDXBXK.mjs.map} +1 -1
  115. package/dist/esm/{chunk-JNHFQTFC.mjs → chunk-AAATWCJT.mjs} +2 -2
  116. package/dist/esm/{chunk-NODYW7DM.mjs → chunk-ACVIE7IE.mjs} +2 -2
  117. package/dist/esm/chunk-AHWZA3GD.mjs +2 -0
  118. package/dist/esm/chunk-AHWZA3GD.mjs.map +1 -0
  119. package/dist/esm/chunk-AITN3DO4.mjs +2 -0
  120. package/dist/esm/chunk-AITN3DO4.mjs.map +1 -0
  121. package/dist/esm/{chunk-QQIVWB6G.mjs → chunk-AJ5JHBAE.mjs} +2 -2
  122. package/dist/esm/{chunk-QQIVWB6G.mjs.map → chunk-AJ5JHBAE.mjs.map} +1 -1
  123. package/dist/esm/{chunk-PRZ7AIGA.mjs → chunk-AKIO3OIT.mjs} +2 -2
  124. package/dist/esm/chunk-AMCJQIOT.mjs +2 -0
  125. package/dist/esm/{chunk-UI3AKMZX.mjs.map → chunk-AMCJQIOT.mjs.map} +1 -1
  126. package/dist/esm/{chunk-KRVLR3L4.mjs → chunk-AOROYJ74.mjs} +2 -2
  127. package/dist/esm/chunk-AVPQOD67.mjs +2 -0
  128. package/dist/esm/chunk-AVPQOD67.mjs.map +1 -0
  129. package/dist/esm/chunk-AVZYJAXR.mjs +2 -0
  130. package/dist/esm/chunk-AVZYJAXR.mjs.map +1 -0
  131. package/dist/esm/{chunk-6AGTDRNM.mjs → chunk-BLLHTGAP.mjs} +2 -2
  132. package/dist/esm/{chunk-JGNMNCQB.mjs → chunk-BRV3RLKW.mjs} +2 -2
  133. package/dist/esm/{chunk-GIQQF2PD.mjs → chunk-CA3Q2X6B.mjs} +2 -2
  134. package/dist/esm/chunk-D52UKPQF.mjs +2 -0
  135. package/dist/esm/chunk-D52UKPQF.mjs.map +1 -0
  136. package/dist/esm/{chunk-FPF4KZ5M.mjs → chunk-DDVOBEJA.mjs} +2 -2
  137. package/dist/esm/chunk-DDVOBEJA.mjs.map +1 -0
  138. package/dist/esm/{chunk-QRTZYRH2.mjs → chunk-DP3YPGIK.mjs} +2 -2
  139. package/dist/esm/{chunk-DXQT55L3.mjs → chunk-DSKAMBBL.mjs} +2 -2
  140. package/dist/esm/{chunk-RAXP3STS.mjs → chunk-E2NYQVP3.mjs} +2 -2
  141. package/dist/esm/chunk-EEB7EZFO.mjs +2 -0
  142. package/dist/esm/chunk-EEB7EZFO.mjs.map +1 -0
  143. package/dist/esm/{chunk-WUCPTRXU.mjs → chunk-F2AIWA7L.mjs} +2 -2
  144. package/dist/esm/chunk-F45G3GP3.mjs +7 -0
  145. package/dist/esm/chunk-F45G3GP3.mjs.map +1 -0
  146. package/dist/esm/{chunk-VQTEGTUQ.mjs → chunk-FXUI3SSD.mjs} +2 -2
  147. package/dist/esm/chunk-G2GN4LH5.mjs +2 -0
  148. package/dist/esm/chunk-G2GN4LH5.mjs.map +1 -0
  149. package/dist/esm/chunk-GBVRCWCD.mjs +2 -0
  150. package/dist/esm/chunk-GBVRCWCD.mjs.map +1 -0
  151. package/dist/esm/chunk-H457BI3I.mjs +2 -0
  152. package/dist/esm/chunk-H457BI3I.mjs.map +1 -0
  153. package/dist/esm/{chunk-5AAFF2PV.mjs → chunk-HEHVWRMO.mjs} +2 -2
  154. package/dist/esm/{chunk-ZUTOMGB7.mjs → chunk-HFWFDS6Y.mjs} +2 -2
  155. package/dist/esm/{chunk-QBWGWHJK.mjs → chunk-HXXELLHN.mjs} +2 -2
  156. package/dist/esm/{chunk-LD5MUWGW.mjs → chunk-IBMZYDAR.mjs} +2 -2
  157. package/dist/esm/{chunk-QBP4XJT5.mjs → chunk-IDNDUJOK.mjs} +2 -2
  158. package/dist/esm/{chunk-HCV3NGLS.mjs → chunk-II654QZU.mjs} +2 -2
  159. package/dist/esm/{chunk-XIY2VORC.mjs → chunk-JDNI5VIJ.mjs} +2 -2
  160. package/dist/esm/{chunk-HAMXSLWF.mjs → chunk-JJUINAQE.mjs} +2 -2
  161. package/dist/esm/{chunk-K6MZXKVV.mjs → chunk-JLD7DLKM.mjs} +2 -2
  162. package/dist/esm/chunk-JNO7KPMG.mjs +4 -0
  163. package/dist/esm/chunk-JNO7KPMG.mjs.map +1 -0
  164. package/dist/esm/chunk-K4TJRYGQ.mjs +2 -0
  165. package/dist/esm/chunk-K4TJRYGQ.mjs.map +1 -0
  166. package/dist/esm/{chunk-NV6DHDM3.mjs → chunk-KA5FX53Q.mjs} +2 -2
  167. package/dist/esm/{chunk-CRL4WGOH.mjs → chunk-KT3DT5GV.mjs} +2 -2
  168. package/dist/esm/chunk-KT3DT5GV.mjs.map +1 -0
  169. package/dist/esm/chunk-KUL55M2H.mjs +2 -0
  170. package/dist/esm/chunk-KUL55M2H.mjs.map +1 -0
  171. package/dist/esm/{chunk-JDYASF3E.mjs → chunk-L2QVUMBV.mjs} +2 -2
  172. package/dist/esm/chunk-L2SDI7PI.mjs +2 -0
  173. package/dist/esm/chunk-L2SDI7PI.mjs.map +1 -0
  174. package/dist/esm/chunk-L56DQ4N3.mjs +2 -0
  175. package/dist/esm/chunk-L56DQ4N3.mjs.map +1 -0
  176. package/dist/esm/{chunk-S3FVA55H.mjs → chunk-LAAFLCDM.mjs} +2 -2
  177. package/dist/esm/{chunk-AGBA3Y7A.mjs → chunk-LGTOOAQI.mjs} +2 -2
  178. package/dist/esm/chunk-MHN6XY4Z.mjs +2 -0
  179. package/dist/esm/{chunk-PHG2IWZW.mjs → chunk-MOGPSSTD.mjs} +2 -2
  180. package/dist/esm/{chunk-KSKQVOBA.mjs → chunk-NARS3JDH.mjs} +2 -2
  181. package/dist/esm/{chunk-KSUZS6EL.mjs → chunk-NHKAQRJB.mjs} +2 -2
  182. package/dist/esm/{chunk-PHP47DI4.mjs → chunk-OIOGOW6I.mjs} +1 -1
  183. package/dist/esm/{chunk-PHP47DI4.mjs.map → chunk-OIOGOW6I.mjs.map} +1 -1
  184. package/dist/esm/{chunk-DCUVV3VY.mjs → chunk-OJBMR5CT.mjs} +2 -2
  185. package/dist/esm/chunk-OJBMR5CT.mjs.map +1 -0
  186. package/dist/esm/{chunk-TIZL5YVP.mjs → chunk-OKE3FXIP.mjs} +2 -2
  187. package/dist/esm/chunk-ONFKJ57C.mjs +2 -0
  188. package/dist/esm/chunk-ONFKJ57C.mjs.map +1 -0
  189. package/dist/esm/{chunk-ZINOJTLU.mjs → chunk-OPO5EYF7.mjs} +2 -2
  190. package/dist/esm/{chunk-HDTKBFRX.mjs → chunk-PW3ISXPN.mjs} +2 -2
  191. package/dist/esm/{chunk-WIXNX7HY.mjs → chunk-QQM47PHZ.mjs} +2 -2
  192. package/dist/esm/{chunk-5XXIIWG7.mjs → chunk-SBCLBDCP.mjs} +2 -2
  193. package/dist/esm/chunk-SPRNSFUV.mjs +2 -0
  194. package/dist/esm/chunk-SPRNSFUV.mjs.map +1 -0
  195. package/dist/esm/{chunk-Z36WHOZV.mjs → chunk-SU2WB34N.mjs} +2 -2
  196. package/dist/esm/{chunk-OTY3NO7Q.mjs → chunk-T6ADNZE5.mjs} +2 -2
  197. package/dist/esm/{chunk-IECDO22V.mjs → chunk-TM7OZT3W.mjs} +2 -2
  198. package/dist/esm/chunk-TM7OZT3W.mjs.map +1 -0
  199. package/dist/esm/chunk-UGTIALNW.mjs +2 -0
  200. package/dist/esm/chunk-UIRAXHDH.mjs +1 -0
  201. package/dist/esm/chunk-UZTJWOLS.mjs +2 -0
  202. package/dist/esm/chunk-V4FKFCBL.mjs +2 -0
  203. package/dist/esm/chunk-V4FKFCBL.mjs.map +1 -0
  204. package/dist/esm/{chunk-7V6RL27I.mjs → chunk-VCY3JGZM.mjs} +2 -2
  205. package/dist/esm/{chunk-XOCRDV2V.mjs → chunk-VQZMI3EZ.mjs} +2 -2
  206. package/dist/esm/chunk-WGIYSLH6.mjs +2 -0
  207. package/dist/esm/chunk-WGIYSLH6.mjs.map +1 -0
  208. package/dist/esm/{chunk-WOOH5MMX.mjs → chunk-WKNX43KN.mjs} +2 -2
  209. package/dist/esm/chunk-WKNX43KN.mjs.map +1 -0
  210. package/dist/esm/chunk-WQF3IOXC.mjs +2 -0
  211. package/dist/esm/chunk-WQF3IOXC.mjs.map +1 -0
  212. package/dist/esm/{chunk-N3OYD6VZ.mjs → chunk-WSFHH3BK.mjs} +2 -2
  213. package/dist/esm/{chunk-7PVIWKGT.mjs → chunk-X3JPX7T6.mjs} +2 -2
  214. package/dist/esm/{chunk-HGVZ7ULA.mjs → chunk-XKOSS5KC.mjs} +2 -2
  215. package/dist/esm/{chunk-TRU3EK64.mjs → chunk-XT5T5LAP.mjs} +2 -2
  216. package/dist/esm/chunk-XUP6VABV.mjs +2 -0
  217. package/dist/esm/chunk-XUP6VABV.mjs.map +1 -0
  218. package/dist/esm/{chunk-FO4F3OJJ.mjs → chunk-YNT7JHMS.mjs} +2 -2
  219. package/dist/esm/{chunk-37UZKMJI.mjs → chunk-YPBNYKOD.mjs} +2 -2
  220. package/dist/esm/{chunk-IFHQSZLK.mjs → chunk-YZ3YPLEU.mjs} +2 -2
  221. package/dist/esm/{chunk-OZN3OOJV.mjs → chunk-ZMBXHMVQ.mjs} +2 -2
  222. package/dist/esm/{chunk-BQXVHY7J.mjs → chunk-ZRWZIAF5.mjs} +2 -2
  223. package/dist/esm/cli/index.d.mts +3 -2
  224. package/dist/esm/cli/index.mjs +1 -1
  225. package/dist/esm/cli/localNode.mjs +1 -1
  226. package/dist/esm/cli/move.d.mts +2 -1
  227. package/dist/esm/cli/move.mjs +1 -1
  228. package/dist/esm/client/core.d.mts +2 -2
  229. package/dist/esm/client/core.mjs +1 -1
  230. package/dist/esm/client/get.d.mts +2 -2
  231. package/dist/esm/client/get.mjs +1 -1
  232. package/dist/esm/client/index.d.mts +3 -3
  233. package/dist/esm/client/index.mjs +1 -1
  234. package/dist/esm/client/post.d.mts +2 -2
  235. package/dist/esm/client/post.mjs +1 -1
  236. package/dist/esm/core/account/index.d.mts +3 -2
  237. package/dist/esm/core/account/index.mjs +1 -1
  238. package/dist/esm/core/account/utils/address.d.mts +3 -2
  239. package/dist/esm/core/account/utils/address.mjs +1 -1
  240. package/dist/esm/core/account/utils/index.d.mts +3 -2
  241. package/dist/esm/core/account/utils/index.mjs +1 -1
  242. package/dist/esm/core/accountAddress.d.mts +20 -10
  243. package/dist/esm/core/accountAddress.mjs +1 -1
  244. package/dist/esm/core/authenticationKey.d.mts +4 -3
  245. package/dist/esm/core/authenticationKey.mjs +1 -1
  246. package/dist/esm/core/crypto/ed25519.d.mts +27 -12
  247. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  248. package/dist/esm/core/crypto/ephemeral.d.mts +4 -3
  249. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  250. package/dist/esm/core/crypto/federatedKeyless.d.mts +5 -4
  251. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
  252. package/dist/esm/core/crypto/hdKey.d.mts +0 -1
  253. package/dist/esm/core/crypto/hdKey.mjs +1 -1
  254. package/dist/esm/core/crypto/index.d.mts +5 -4
  255. package/dist/esm/core/crypto/index.mjs +1 -1
  256. package/dist/esm/core/crypto/keyless.d.mts +73 -11
  257. package/dist/esm/core/crypto/keyless.mjs +1 -1
  258. package/dist/esm/core/crypto/multiEd25519.d.mts +4 -3
  259. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  260. package/dist/esm/core/crypto/multiKey.d.mts +4 -3
  261. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  262. package/dist/esm/core/crypto/privateKey.d.mts +38 -10
  263. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  264. package/dist/esm/core/crypto/proof.d.mts +3 -2
  265. package/dist/esm/core/crypto/proof.mjs +1 -1
  266. package/dist/esm/core/crypto/publicKey.d.mts +4 -3
  267. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  268. package/dist/esm/core/crypto/secp256k1.d.mts +24 -9
  269. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  270. package/dist/esm/core/crypto/signature.d.mts +3 -2
  271. package/dist/esm/core/crypto/signature.mjs +1 -1
  272. package/dist/esm/core/crypto/singleKey.d.mts +4 -3
  273. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  274. package/dist/esm/core/crypto/utils.d.mts +3 -2
  275. package/dist/esm/core/crypto/utils.mjs +1 -1
  276. package/dist/esm/core/hex.d.mts +40 -3
  277. package/dist/esm/core/hex.mjs +1 -1
  278. package/dist/esm/core/index.d.mts +6 -5
  279. package/dist/esm/core/index.mjs +1 -1
  280. package/dist/esm/errors/index.d.mts +123 -0
  281. package/dist/esm/errors/index.mjs +2 -0
  282. package/dist/esm/index.d.mts +13 -11
  283. package/dist/esm/index.mjs +1 -1
  284. package/dist/esm/internal/account.d.mts +5 -4
  285. package/dist/esm/internal/account.mjs +1 -1
  286. package/dist/esm/internal/ans.d.mts +5 -4
  287. package/dist/esm/internal/ans.mjs +1 -1
  288. package/dist/esm/internal/coin.d.mts +3 -2
  289. package/dist/esm/internal/coin.mjs +1 -1
  290. package/dist/esm/internal/digitalAsset.d.mts +5 -4
  291. package/dist/esm/internal/digitalAsset.mjs +1 -1
  292. package/dist/esm/internal/event.d.mts +3 -2
  293. package/dist/esm/internal/event.mjs +1 -1
  294. package/dist/esm/internal/faucet.d.mts +2 -1
  295. package/dist/esm/internal/faucet.mjs +1 -1
  296. package/dist/esm/internal/fungibleAsset.d.mts +5 -4
  297. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  298. package/dist/esm/internal/general.d.mts +3 -2
  299. package/dist/esm/internal/general.mjs +1 -1
  300. package/dist/esm/internal/keyless.d.mts +13 -7
  301. package/dist/esm/internal/keyless.mjs +1 -1
  302. package/dist/esm/internal/object.d.mts +3 -2
  303. package/dist/esm/internal/object.mjs +1 -1
  304. package/dist/esm/internal/staking.d.mts +2 -1
  305. package/dist/esm/internal/staking.mjs +1 -1
  306. package/dist/esm/internal/table.d.mts +3 -2
  307. package/dist/esm/internal/table.mjs +1 -1
  308. package/dist/esm/internal/transaction.d.mts +2 -1
  309. package/dist/esm/internal/transaction.mjs +1 -1
  310. package/dist/esm/internal/transactionSubmission.d.mts +4 -3
  311. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  312. package/dist/esm/internal/view.d.mts +4 -3
  313. package/dist/esm/internal/view.mjs +1 -1
  314. package/dist/esm/{publicKey-_tPa99ea.d.mts → publicKey-BVXX1nVl.d.mts} +2 -2
  315. package/dist/esm/transactions/authenticator/account.d.mts +4 -3
  316. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  317. package/dist/esm/transactions/authenticator/index.d.mts +4 -3
  318. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  319. package/dist/esm/transactions/authenticator/transaction.d.mts +10 -4
  320. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  321. package/dist/esm/transactions/index.d.mts +7 -5
  322. package/dist/esm/transactions/index.mjs +1 -1
  323. package/dist/esm/transactions/instances/chainId.d.mts +3 -2
  324. package/dist/esm/transactions/instances/chainId.mjs +1 -1
  325. package/dist/esm/transactions/instances/identifier.d.mts +3 -2
  326. package/dist/esm/transactions/instances/identifier.mjs +1 -1
  327. package/dist/esm/transactions/instances/index.d.mts +4 -3
  328. package/dist/esm/transactions/instances/index.mjs +1 -1
  329. package/dist/esm/transactions/instances/moduleId.d.mts +3 -2
  330. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  331. package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +3 -2
  332. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  333. package/dist/esm/transactions/instances/rawTransaction.d.mts +3 -2
  334. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  335. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +4 -3
  336. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  337. package/dist/esm/transactions/instances/signedTransaction.d.mts +4 -3
  338. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  339. package/dist/esm/transactions/instances/simpleTransaction.d.mts +3 -2
  340. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  341. package/dist/esm/transactions/instances/transactionArgument.d.mts +3 -2
  342. package/dist/esm/transactions/instances/transactionPayload.d.mts +3 -2
  343. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  344. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +5 -4
  345. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  346. package/dist/esm/transactions/management/index.d.mts +5 -4
  347. package/dist/esm/transactions/management/index.mjs +1 -1
  348. package/dist/esm/transactions/management/transactionWorker.d.mts +5 -4
  349. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  350. package/dist/esm/transactions/script-composer/index.d.mts +44 -0
  351. package/dist/esm/transactions/script-composer/index.mjs +2 -0
  352. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +3 -2
  353. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  354. package/dist/esm/transactions/transactionBuilder/index.d.mts +5 -4
  355. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  356. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +26 -5
  357. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  358. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +4 -3
  359. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  360. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +4 -3
  361. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  362. package/dist/esm/transactions/typeTag/index.d.mts +3 -2
  363. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  364. package/dist/esm/transactions/typeTag/parser.d.mts +3 -2
  365. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  366. package/dist/esm/transactions/types.d.mts +12 -3
  367. package/dist/esm/types/index.d.mts +4 -1260
  368. package/dist/esm/types/index.mjs +1 -1
  369. package/dist/esm/types/keyless.d.mts +22 -1
  370. package/dist/esm/types/types.d.mts +1290 -0
  371. package/dist/esm/types/types.mjs +2 -0
  372. package/dist/esm/types/types.mjs.map +1 -0
  373. package/dist/esm/utils/helpers.d.mts +11 -3
  374. package/dist/esm/utils/helpers.mjs +1 -1
  375. package/dist/esm/utils/index.d.mts +3 -2
  376. package/dist/esm/utils/index.mjs +1 -1
  377. package/dist/esm/utils/normalizeBundle.d.mts +3 -2
  378. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  379. package/dist/esm/version.d.mts +1 -1
  380. package/dist/esm/version.mjs +1 -1
  381. package/package.json +3 -2
  382. package/src/account/AbstractKeylessAccount.ts +203 -10
  383. package/src/account/FederatedKeylessAccount.ts +83 -35
  384. package/src/account/KeylessAccount.ts +44 -37
  385. package/src/account/MultiKeyAccount.ts +18 -5
  386. package/src/api/account.ts +12 -2
  387. package/src/api/keyless.ts +4 -3
  388. package/src/api/transactionSubmission/build.ts +82 -1
  389. package/src/bcs/deserializer.ts +53 -30
  390. package/src/bcs/serializable/moveStructs.ts +16 -17
  391. package/src/bcs/serializer.ts +22 -12
  392. package/src/cli/move.ts +20 -5
  393. package/src/client/core.ts +2 -2
  394. package/src/client/get.ts +1 -2
  395. package/src/client/index.ts +0 -1
  396. package/src/client/post.ts +1 -2
  397. package/src/core/accountAddress.ts +36 -9
  398. package/src/core/crypto/ed25519.ts +34 -14
  399. package/src/core/crypto/hdKey.ts +0 -1
  400. package/src/core/crypto/keyless.ts +245 -38
  401. package/src/core/crypto/privateKey.ts +81 -5
  402. package/src/core/crypto/secp256k1.ts +31 -11
  403. package/src/core/hex.ts +47 -0
  404. package/src/errors/index.ts +406 -0
  405. package/src/index.ts +1 -0
  406. package/src/internal/account.ts +6 -6
  407. package/src/internal/ans.ts +2 -1
  408. package/src/internal/keyless.ts +50 -20
  409. package/src/internal/transaction.ts +2 -1
  410. package/src/internal/transactionSubmission.ts +36 -18
  411. package/src/transactions/authenticator/transaction.ts +20 -0
  412. package/src/transactions/index.ts +1 -0
  413. package/src/transactions/script-composer/index.ts +76 -0
  414. package/src/transactions/transactionBuilder/remoteAbi.ts +55 -1
  415. package/src/transactions/types.ts +11 -0
  416. package/src/types/index.ts +2 -1483
  417. package/src/types/keyless.ts +19 -0
  418. package/src/types/types.ts +1512 -0
  419. package/src/utils/helpers.ts +10 -0
  420. package/src/version.ts +1 -1
  421. package/dist/common/chunk-7IYTZDXV.js +0 -2
  422. package/dist/common/chunk-7IYTZDXV.js.map +0 -1
  423. package/dist/esm/chunk-2I56E4T2.mjs +0 -2
  424. package/dist/esm/chunk-2I56E4T2.mjs.map +0 -1
  425. package/dist/esm/chunk-4CDDWSKZ.mjs +0 -2
  426. package/dist/esm/chunk-4OV7QU2U.mjs +0 -2
  427. package/dist/esm/chunk-5CCHECTE.mjs +0 -2
  428. package/dist/esm/chunk-5CCHECTE.mjs.map +0 -1
  429. package/dist/esm/chunk-5ZBHIUWG.mjs +0 -2
  430. package/dist/esm/chunk-5ZBHIUWG.mjs.map +0 -1
  431. package/dist/esm/chunk-7D3RY73L.mjs +0 -2
  432. package/dist/esm/chunk-7D3RY73L.mjs.map +0 -1
  433. package/dist/esm/chunk-7XS45O6M.mjs +0 -2
  434. package/dist/esm/chunk-7XS45O6M.mjs.map +0 -1
  435. package/dist/esm/chunk-CRL4WGOH.mjs.map +0 -1
  436. package/dist/esm/chunk-DCUVV3VY.mjs.map +0 -1
  437. package/dist/esm/chunk-DZJXOL64.mjs +0 -2
  438. package/dist/esm/chunk-DZJXOL64.mjs.map +0 -1
  439. package/dist/esm/chunk-EF2PUPUH.mjs.map +0 -1
  440. package/dist/esm/chunk-FPF4KZ5M.mjs.map +0 -1
  441. package/dist/esm/chunk-FY7TSOUU.mjs +0 -2
  442. package/dist/esm/chunk-FY7TSOUU.mjs.map +0 -1
  443. package/dist/esm/chunk-GPZRGLU2.mjs +0 -2
  444. package/dist/esm/chunk-GPZRGLU2.mjs.map +0 -1
  445. package/dist/esm/chunk-GQABU3RQ.mjs +0 -2
  446. package/dist/esm/chunk-GQABU3RQ.mjs.map +0 -1
  447. package/dist/esm/chunk-I5OYNCZS.mjs +0 -1
  448. package/dist/esm/chunk-IBLZ6MZU.mjs +0 -2
  449. package/dist/esm/chunk-IECDO22V.mjs.map +0 -1
  450. package/dist/esm/chunk-KFNDDPOW.mjs +0 -2
  451. package/dist/esm/chunk-KFNDDPOW.mjs.map +0 -1
  452. package/dist/esm/chunk-KFSVKIFO.mjs +0 -2
  453. package/dist/esm/chunk-KIW54KWR.mjs +0 -2
  454. package/dist/esm/chunk-KM6UXNC7.mjs +0 -2
  455. package/dist/esm/chunk-KM6UXNC7.mjs.map +0 -1
  456. package/dist/esm/chunk-KUX6GQ2E.mjs +0 -1
  457. package/dist/esm/chunk-L5I7F3NZ.mjs +0 -2
  458. package/dist/esm/chunk-L5I7F3NZ.mjs.map +0 -1
  459. package/dist/esm/chunk-LEKBJ2EG.mjs +0 -2
  460. package/dist/esm/chunk-LEKBJ2EG.mjs.map +0 -1
  461. package/dist/esm/chunk-LZS7BQ2B.mjs +0 -2
  462. package/dist/esm/chunk-LZS7BQ2B.mjs.map +0 -1
  463. package/dist/esm/chunk-N2FKVZ4D.mjs +0 -1
  464. package/dist/esm/chunk-N47FTRYO.mjs +0 -2
  465. package/dist/esm/chunk-N47FTRYO.mjs.map +0 -1
  466. package/dist/esm/chunk-OLPI7QAH.mjs.map +0 -1
  467. package/dist/esm/chunk-ONBFUPEC.mjs +0 -2
  468. package/dist/esm/chunk-OS2EG6AE.mjs +0 -2
  469. package/dist/esm/chunk-OS2EG6AE.mjs.map +0 -1
  470. package/dist/esm/chunk-PGZWRY7A.mjs +0 -2
  471. package/dist/esm/chunk-PGZWRY7A.mjs.map +0 -1
  472. package/dist/esm/chunk-RUDS7RSB.mjs +0 -2
  473. package/dist/esm/chunk-RUDS7RSB.mjs.map +0 -1
  474. package/dist/esm/chunk-UI3AKMZX.mjs +0 -2
  475. package/dist/esm/chunk-UKAXCARD.mjs +0 -2
  476. package/dist/esm/chunk-WOOH5MMX.mjs.map +0 -1
  477. package/dist/esm/chunk-WSVOJSAC.mjs +0 -2
  478. package/dist/esm/chunk-WSVOJSAC.mjs.map +0 -1
  479. package/dist/esm/chunk-ZS3EWM5A.mjs +0 -2
  480. package/dist/esm/chunk-ZS3EWM5A.mjs.map +0 -1
  481. package/dist/esm/client/types.d.mts +0 -66
  482. package/dist/esm/client/types.mjs +0 -2
  483. package/src/client/types.ts +0 -138
  484. /package/dist/esm/{chunk-OV5UQ75K.mjs.map → chunk-2NHQQQZK.mjs.map} +0 -0
  485. /package/dist/esm/{chunk-JY3JJ55D.mjs.map → chunk-37Y54PJ5.mjs.map} +0 -0
  486. /package/dist/esm/{chunk-XHCALZ7X.mjs.map → chunk-3XCYCFYI.mjs.map} +0 -0
  487. /package/dist/esm/{chunk-6FLHGOKP.mjs.map → chunk-42H7WETG.mjs.map} +0 -0
  488. /package/dist/esm/{chunk-RNAKZVRN.mjs.map → chunk-46L6BAJG.mjs.map} +0 -0
  489. /package/dist/esm/{chunk-EN2HDNFE.mjs.map → chunk-4DNCQM3S.mjs.map} +0 -0
  490. /package/dist/esm/{chunk-IBLZ6MZU.mjs.map → chunk-4O5XDQDO.mjs.map} +0 -0
  491. /package/dist/esm/{chunk-D3KBNFZR.mjs.map → chunk-5AKSORBJ.mjs.map} +0 -0
  492. /package/dist/esm/{chunk-KIW54KWR.mjs.map → chunk-5B3SMBXQ.mjs.map} +0 -0
  493. /package/dist/esm/{chunk-EKZQ3EYX.mjs.map → chunk-5NJWJXSS.mjs.map} +0 -0
  494. /package/dist/esm/{chunk-2QRWGJJA.mjs.map → chunk-6K4TOFCO.mjs.map} +0 -0
  495. /package/dist/esm/{chunk-R3Y6WH2U.mjs.map → chunk-6PJH53CK.mjs.map} +0 -0
  496. /package/dist/esm/{chunk-PCLU4KLY.mjs.map → chunk-6ZOVTYLJ.mjs.map} +0 -0
  497. /package/dist/esm/{chunk-I5OYNCZS.mjs.map → chunk-7ECCT6PK.mjs.map} +0 -0
  498. /package/dist/esm/{chunk-JNHFQTFC.mjs.map → chunk-AAATWCJT.mjs.map} +0 -0
  499. /package/dist/esm/{chunk-NODYW7DM.mjs.map → chunk-ACVIE7IE.mjs.map} +0 -0
  500. /package/dist/esm/{chunk-PRZ7AIGA.mjs.map → chunk-AKIO3OIT.mjs.map} +0 -0
  501. /package/dist/esm/{chunk-KRVLR3L4.mjs.map → chunk-AOROYJ74.mjs.map} +0 -0
  502. /package/dist/esm/{chunk-6AGTDRNM.mjs.map → chunk-BLLHTGAP.mjs.map} +0 -0
  503. /package/dist/esm/{chunk-JGNMNCQB.mjs.map → chunk-BRV3RLKW.mjs.map} +0 -0
  504. /package/dist/esm/{chunk-GIQQF2PD.mjs.map → chunk-CA3Q2X6B.mjs.map} +0 -0
  505. /package/dist/esm/{chunk-QRTZYRH2.mjs.map → chunk-DP3YPGIK.mjs.map} +0 -0
  506. /package/dist/esm/{chunk-DXQT55L3.mjs.map → chunk-DSKAMBBL.mjs.map} +0 -0
  507. /package/dist/esm/{chunk-RAXP3STS.mjs.map → chunk-E2NYQVP3.mjs.map} +0 -0
  508. /package/dist/esm/{chunk-WUCPTRXU.mjs.map → chunk-F2AIWA7L.mjs.map} +0 -0
  509. /package/dist/esm/{chunk-VQTEGTUQ.mjs.map → chunk-FXUI3SSD.mjs.map} +0 -0
  510. /package/dist/esm/{chunk-5AAFF2PV.mjs.map → chunk-HEHVWRMO.mjs.map} +0 -0
  511. /package/dist/esm/{chunk-ZUTOMGB7.mjs.map → chunk-HFWFDS6Y.mjs.map} +0 -0
  512. /package/dist/esm/{chunk-QBWGWHJK.mjs.map → chunk-HXXELLHN.mjs.map} +0 -0
  513. /package/dist/esm/{chunk-LD5MUWGW.mjs.map → chunk-IBMZYDAR.mjs.map} +0 -0
  514. /package/dist/esm/{chunk-QBP4XJT5.mjs.map → chunk-IDNDUJOK.mjs.map} +0 -0
  515. /package/dist/esm/{chunk-HCV3NGLS.mjs.map → chunk-II654QZU.mjs.map} +0 -0
  516. /package/dist/esm/{chunk-XIY2VORC.mjs.map → chunk-JDNI5VIJ.mjs.map} +0 -0
  517. /package/dist/esm/{chunk-HAMXSLWF.mjs.map → chunk-JJUINAQE.mjs.map} +0 -0
  518. /package/dist/esm/{chunk-K6MZXKVV.mjs.map → chunk-JLD7DLKM.mjs.map} +0 -0
  519. /package/dist/esm/{chunk-NV6DHDM3.mjs.map → chunk-KA5FX53Q.mjs.map} +0 -0
  520. /package/dist/esm/{chunk-JDYASF3E.mjs.map → chunk-L2QVUMBV.mjs.map} +0 -0
  521. /package/dist/esm/{chunk-S3FVA55H.mjs.map → chunk-LAAFLCDM.mjs.map} +0 -0
  522. /package/dist/esm/{chunk-AGBA3Y7A.mjs.map → chunk-LGTOOAQI.mjs.map} +0 -0
  523. /package/dist/esm/{chunk-4OV7QU2U.mjs.map → chunk-MHN6XY4Z.mjs.map} +0 -0
  524. /package/dist/esm/{chunk-PHG2IWZW.mjs.map → chunk-MOGPSSTD.mjs.map} +0 -0
  525. /package/dist/esm/{chunk-KSKQVOBA.mjs.map → chunk-NARS3JDH.mjs.map} +0 -0
  526. /package/dist/esm/{chunk-KSUZS6EL.mjs.map → chunk-NHKAQRJB.mjs.map} +0 -0
  527. /package/dist/esm/{chunk-TIZL5YVP.mjs.map → chunk-OKE3FXIP.mjs.map} +0 -0
  528. /package/dist/esm/{chunk-ZINOJTLU.mjs.map → chunk-OPO5EYF7.mjs.map} +0 -0
  529. /package/dist/esm/{chunk-HDTKBFRX.mjs.map → chunk-PW3ISXPN.mjs.map} +0 -0
  530. /package/dist/esm/{chunk-WIXNX7HY.mjs.map → chunk-QQM47PHZ.mjs.map} +0 -0
  531. /package/dist/esm/{chunk-5XXIIWG7.mjs.map → chunk-SBCLBDCP.mjs.map} +0 -0
  532. /package/dist/esm/{chunk-Z36WHOZV.mjs.map → chunk-SU2WB34N.mjs.map} +0 -0
  533. /package/dist/esm/{chunk-OTY3NO7Q.mjs.map → chunk-T6ADNZE5.mjs.map} +0 -0
  534. /package/dist/esm/{chunk-ONBFUPEC.mjs.map → chunk-UGTIALNW.mjs.map} +0 -0
  535. /package/dist/esm/{chunk-KUX6GQ2E.mjs.map → chunk-UIRAXHDH.mjs.map} +0 -0
  536. /package/dist/esm/{chunk-4CDDWSKZ.mjs.map → chunk-UZTJWOLS.mjs.map} +0 -0
  537. /package/dist/esm/{chunk-7V6RL27I.mjs.map → chunk-VCY3JGZM.mjs.map} +0 -0
  538. /package/dist/esm/{chunk-XOCRDV2V.mjs.map → chunk-VQZMI3EZ.mjs.map} +0 -0
  539. /package/dist/esm/{chunk-N3OYD6VZ.mjs.map → chunk-WSFHH3BK.mjs.map} +0 -0
  540. /package/dist/esm/{chunk-7PVIWKGT.mjs.map → chunk-X3JPX7T6.mjs.map} +0 -0
  541. /package/dist/esm/{chunk-HGVZ7ULA.mjs.map → chunk-XKOSS5KC.mjs.map} +0 -0
  542. /package/dist/esm/{chunk-TRU3EK64.mjs.map → chunk-XT5T5LAP.mjs.map} +0 -0
  543. /package/dist/esm/{chunk-FO4F3OJJ.mjs.map → chunk-YNT7JHMS.mjs.map} +0 -0
  544. /package/dist/esm/{chunk-37UZKMJI.mjs.map → chunk-YPBNYKOD.mjs.map} +0 -0
  545. /package/dist/esm/{chunk-IFHQSZLK.mjs.map → chunk-YZ3YPLEU.mjs.map} +0 -0
  546. /package/dist/esm/{chunk-OZN3OOJV.mjs.map → chunk-ZMBXHMVQ.mjs.map} +0 -0
  547. /package/dist/esm/{chunk-BQXVHY7J.mjs.map → chunk-ZRWZIAF5.mjs.map} +0 -0
  548. /package/dist/esm/{chunk-N2FKVZ4D.mjs.map → errors/index.mjs.map} +0 -0
  549. /package/dist/esm/{client/types.mjs.map → transactions/script-composer/index.mjs.map} +0 -0
@@ -0,0 +1,406 @@
1
+ import { AptosApiType } from "../utils/const";
2
+ import { getErrorMessage } from "../utils/helpers";
3
+ import { AptosRequest, AptosResponse } from "../types";
4
+
5
+ export enum KeylessErrorCategory {
6
+ API_ERROR,
7
+ EXTERNAL_API_ERROR,
8
+ SESSION_EXPIRED,
9
+ INVALID_STATE,
10
+ UNKNOWN,
11
+ }
12
+
13
+ export enum KeylessErrorResolutionTip {
14
+ REAUTHENTICATE = "Re-authentiate to continue using your keyless account",
15
+ // eslint-disable-next-line max-len
16
+ REAUTHENTICATE_UNSURE = "Try re-authentiating. If the error persists join the telegram group at https://t.me/+h5CN-W35yUFiYzkx for further support",
17
+ UPDATE_REQUEST_PARAMS = "Update the invalid request parameters and reauthenticate.",
18
+ // eslint-disable-next-line max-len
19
+ RATE_LIMIT_EXCEEDED = "Cache the keyless account and reuse it to avoid making too many requests. Keyless accounts are valid until either the EphemeralKeyPair expires, when the JWK is rotated, or when the proof verifying key is changed, whichever comes soonest.",
20
+ // eslint-disable-next-line max-len
21
+ SERVER_ERROR = "Try again later. See aptosApiError error for more context. For additional support join the telegram group at https://t.me/+h5CN-W35yUFiYzkx",
22
+ // eslint-disable-next-line max-len
23
+ CALL_PRECHECK = "Call `await account.checkKeylessAccountValidity()` to wait for asyncronous changes and check for account validity before signing or serializing.",
24
+ REINSTANTIATE = "Try instantiating the account again. Avoid manipulating the account object directly",
25
+ JOIN_SUPPORT_GROUP = "For support join the telegram group at https://t.me/+h5CN-W35yUFiYzkx",
26
+ UNKNOWN = "Error unknown. For support join the telegram group at https://t.me/+h5CN-W35yUFiYzkx",
27
+ }
28
+
29
+ export enum KeylessErrorType {
30
+ EPHEMERAL_KEY_PAIR_EXPIRED,
31
+
32
+ PROOF_NOT_FOUND,
33
+
34
+ ASYNC_PROOF_FETCH_FAILED,
35
+
36
+ INVALID_PROOF_VERIFICATION_FAILED,
37
+
38
+ INVALID_PROOF_VERIFICATION_KEY_NOT_FOUND,
39
+
40
+ INVALID_JWT_SIG,
41
+
42
+ INVALID_JWT_JWK_NOT_FOUND,
43
+
44
+ INVALID_JWT_ISS_NOT_RECOGNIZED,
45
+
46
+ INVALID_JWT_FEDERATED_ISS_NOT_SUPPORTED,
47
+
48
+ INVALID_TW_SIG_VERIFICATION_FAILED,
49
+
50
+ INVALID_TW_SIG_PUBLIC_KEY_NOT_FOUND,
51
+
52
+ INVALID_EXPIRY_HORIZON,
53
+
54
+ JWT_PARSING_ERROR,
55
+
56
+ JWK_FETCH_FAILED,
57
+
58
+ JWK_FETCH_FAILED_FEDERATED,
59
+
60
+ RATE_LIMIT_EXCEEDED,
61
+
62
+ PEPPER_SERVICE_INTERNAL_ERROR,
63
+
64
+ PEPPER_SERVICE_BAD_REQUEST,
65
+
66
+ PEPPER_SERVICE_OTHER,
67
+
68
+ PROVER_SERVICE_INTERNAL_ERROR,
69
+
70
+ PROVER_SERVICE_BAD_REQUEST,
71
+
72
+ PROVER_SERVICE_OTHER,
73
+
74
+ FULL_NODE_CONFIG_LOOKUP_ERROR,
75
+
76
+ FULL_NODE_VERIFICATION_KEY_LOOKUP_ERROR,
77
+
78
+ FULL_NODE_JWKS_LOOKUP_ERROR,
79
+
80
+ FULL_NODE_OTHER,
81
+
82
+ UNKNOWN,
83
+ }
84
+
85
+ const KeylessErrors: { [key in KeylessErrorType]: [string, KeylessErrorCategory, KeylessErrorResolutionTip] } = {
86
+ [KeylessErrorType.EPHEMERAL_KEY_PAIR_EXPIRED]: [
87
+ "The ephemeral keypair has expired.",
88
+ KeylessErrorCategory.SESSION_EXPIRED,
89
+ KeylessErrorResolutionTip.REAUTHENTICATE,
90
+ ],
91
+ [KeylessErrorType.PROOF_NOT_FOUND]: [
92
+ "The required proof could not be found.",
93
+ KeylessErrorCategory.INVALID_STATE,
94
+ KeylessErrorResolutionTip.CALL_PRECHECK,
95
+ ],
96
+ [KeylessErrorType.ASYNC_PROOF_FETCH_FAILED]: [
97
+ "The required proof failed to fetch.",
98
+ KeylessErrorCategory.INVALID_STATE,
99
+ KeylessErrorResolutionTip.REAUTHENTICATE_UNSURE,
100
+ ],
101
+ [KeylessErrorType.INVALID_PROOF_VERIFICATION_FAILED]: [
102
+ "The provided proof is invalid.",
103
+ KeylessErrorCategory.INVALID_STATE,
104
+ KeylessErrorResolutionTip.REAUTHENTICATE_UNSURE,
105
+ ],
106
+ [KeylessErrorType.INVALID_PROOF_VERIFICATION_KEY_NOT_FOUND]: [
107
+ "The verification key used to authenticate was updated.",
108
+ KeylessErrorCategory.SESSION_EXPIRED,
109
+ KeylessErrorResolutionTip.REAUTHENTICATE,
110
+ ],
111
+ [KeylessErrorType.INVALID_JWT_SIG]: [
112
+ "The JWK was found, but JWT failed verification",
113
+ KeylessErrorCategory.INVALID_STATE,
114
+ KeylessErrorResolutionTip.REAUTHENTICATE_UNSURE,
115
+ ],
116
+ [KeylessErrorType.INVALID_JWT_JWK_NOT_FOUND]: [
117
+ "The JWK required to verify the JWT could not be found. The JWK may have been rotated out.",
118
+ KeylessErrorCategory.SESSION_EXPIRED,
119
+ KeylessErrorResolutionTip.REAUTHENTICATE,
120
+ ],
121
+ [KeylessErrorType.INVALID_JWT_ISS_NOT_RECOGNIZED]: [
122
+ "The JWT issuer is not recognized.",
123
+ KeylessErrorCategory.INVALID_STATE,
124
+ KeylessErrorResolutionTip.UPDATE_REQUEST_PARAMS,
125
+ ],
126
+ [KeylessErrorType.INVALID_JWT_FEDERATED_ISS_NOT_SUPPORTED]: [
127
+ "The JWT issuer is not supported by the Federated Keyless ",
128
+ KeylessErrorCategory.API_ERROR,
129
+ KeylessErrorResolutionTip.REAUTHENTICATE_UNSURE,
130
+ ],
131
+ [KeylessErrorType.INVALID_TW_SIG_VERIFICATION_FAILED]: [
132
+ "The training wheels signature is invalid.",
133
+ KeylessErrorCategory.INVALID_STATE,
134
+ KeylessErrorResolutionTip.REAUTHENTICATE_UNSURE,
135
+ ],
136
+ [KeylessErrorType.INVALID_TW_SIG_PUBLIC_KEY_NOT_FOUND]: [
137
+ "The public key used to verify the training wheels signature was not found.",
138
+ KeylessErrorCategory.SESSION_EXPIRED,
139
+ KeylessErrorResolutionTip.REAUTHENTICATE,
140
+ ],
141
+ [KeylessErrorType.INVALID_EXPIRY_HORIZON]: [
142
+ "The expiry horizon is invalid.",
143
+ KeylessErrorCategory.SESSION_EXPIRED,
144
+ KeylessErrorResolutionTip.REAUTHENTICATE,
145
+ ],
146
+ [KeylessErrorType.JWK_FETCH_FAILED]: [
147
+ "Failed to fetch JWKS.",
148
+ KeylessErrorCategory.EXTERNAL_API_ERROR,
149
+ KeylessErrorResolutionTip.JOIN_SUPPORT_GROUP,
150
+ ],
151
+ [KeylessErrorType.JWK_FETCH_FAILED_FEDERATED]: [
152
+ "Failed to fetch JWKS for Federated Keyless provider.",
153
+ KeylessErrorCategory.EXTERNAL_API_ERROR,
154
+ KeylessErrorResolutionTip.JOIN_SUPPORT_GROUP,
155
+ ],
156
+ [KeylessErrorType.RATE_LIMIT_EXCEEDED]: [
157
+ "Rate limit exceeded. Too many requests in a short period.",
158
+ KeylessErrorCategory.API_ERROR,
159
+ KeylessErrorResolutionTip.RATE_LIMIT_EXCEEDED,
160
+ ],
161
+ [KeylessErrorType.PEPPER_SERVICE_INTERNAL_ERROR]: [
162
+ "Internal error from Pepper service.",
163
+ KeylessErrorCategory.API_ERROR,
164
+ KeylessErrorResolutionTip.SERVER_ERROR,
165
+ ],
166
+ [KeylessErrorType.PEPPER_SERVICE_BAD_REQUEST]: [
167
+ "Bad request sent to Pepper service.",
168
+ KeylessErrorCategory.API_ERROR,
169
+ KeylessErrorResolutionTip.UPDATE_REQUEST_PARAMS,
170
+ ],
171
+ [KeylessErrorType.PEPPER_SERVICE_OTHER]: [
172
+ "Unknown error from Pepper service.",
173
+ KeylessErrorCategory.API_ERROR,
174
+ KeylessErrorResolutionTip.SERVER_ERROR,
175
+ ],
176
+ [KeylessErrorType.PROVER_SERVICE_INTERNAL_ERROR]: [
177
+ "Internal error from Prover service.",
178
+ KeylessErrorCategory.API_ERROR,
179
+ KeylessErrorResolutionTip.SERVER_ERROR,
180
+ ],
181
+ [KeylessErrorType.PROVER_SERVICE_BAD_REQUEST]: [
182
+ "Bad request sent to Prover service.",
183
+ KeylessErrorCategory.API_ERROR,
184
+ KeylessErrorResolutionTip.UPDATE_REQUEST_PARAMS,
185
+ ],
186
+ [KeylessErrorType.PROVER_SERVICE_OTHER]: [
187
+ "Unknown error from Prover service.",
188
+ KeylessErrorCategory.API_ERROR,
189
+ KeylessErrorResolutionTip.SERVER_ERROR,
190
+ ],
191
+ [KeylessErrorType.JWT_PARSING_ERROR]: [
192
+ "Error when parsing JWT. This should never happen. Join https://t.me/+h5CN-W35yUFiYzkx for support",
193
+ KeylessErrorCategory.INVALID_STATE,
194
+ KeylessErrorResolutionTip.REINSTANTIATE,
195
+ ],
196
+ [KeylessErrorType.FULL_NODE_CONFIG_LOOKUP_ERROR]: [
197
+ "Error when looking up on-chain keyless configuration.",
198
+ KeylessErrorCategory.API_ERROR,
199
+ KeylessErrorResolutionTip.SERVER_ERROR,
200
+ ],
201
+ [KeylessErrorType.FULL_NODE_VERIFICATION_KEY_LOOKUP_ERROR]: [
202
+ "Error when looking up on-chain verification key.",
203
+ KeylessErrorCategory.API_ERROR,
204
+ KeylessErrorResolutionTip.SERVER_ERROR,
205
+ ],
206
+ [KeylessErrorType.FULL_NODE_JWKS_LOOKUP_ERROR]: [
207
+ "Error when looking up on-chain JWKS.",
208
+ KeylessErrorCategory.API_ERROR,
209
+ KeylessErrorResolutionTip.SERVER_ERROR,
210
+ ],
211
+ [KeylessErrorType.FULL_NODE_OTHER]: [
212
+ "Unknown error from full node.",
213
+ KeylessErrorCategory.API_ERROR,
214
+ KeylessErrorResolutionTip.SERVER_ERROR,
215
+ ],
216
+ [KeylessErrorType.UNKNOWN]: [
217
+ "An unknown error has occurred.",
218
+ KeylessErrorCategory.UNKNOWN,
219
+ KeylessErrorResolutionTip.UNKNOWN,
220
+ ],
221
+ };
222
+
223
+ export class KeylessError extends Error {
224
+ readonly innerError?: unknown;
225
+
226
+ readonly category: KeylessErrorCategory;
227
+
228
+ readonly resolutionTip: KeylessErrorResolutionTip;
229
+
230
+ readonly type: KeylessErrorType;
231
+
232
+ readonly details?: string;
233
+
234
+ /** @internal this constructor is for sdk internal use - do not instantiate outside of the SDK codebase */
235
+ constructor(args: {
236
+ innerError?: unknown;
237
+ category: KeylessErrorCategory;
238
+ resolutionTip: KeylessErrorResolutionTip;
239
+ type: KeylessErrorType;
240
+ message?: string;
241
+ details?: string;
242
+ }) {
243
+ const { innerError, category, resolutionTip, type, message = KeylessErrors[type][0], details } = args;
244
+ super(message);
245
+ this.name = "KeylessError";
246
+ this.innerError = innerError;
247
+ this.category = category;
248
+ this.resolutionTip = resolutionTip;
249
+ this.type = type;
250
+ this.details = details;
251
+ this.message = KeylessError.constructMessage(message, resolutionTip, innerError, details);
252
+ }
253
+
254
+ static constructMessage(
255
+ message: string,
256
+ tip: KeylessErrorResolutionTip,
257
+ innerError?: unknown,
258
+ details?: string,
259
+ ): string {
260
+ let result = `\nMessage: ${message}`;
261
+ if (details) {
262
+ result += `\nDetails: ${details}`;
263
+ }
264
+ if (innerError instanceof AptosApiError) {
265
+ result += `\nAptosApiError: ${innerError.message}`;
266
+ } else if (innerError !== undefined) {
267
+ result += `\nError: ${getErrorMessage(innerError)}`;
268
+ }
269
+ result += `\nKeylessErrorResolutionTip: ${tip}`;
270
+ return result;
271
+ }
272
+
273
+ /**
274
+ * Static constructor that creates a KeylessError instance using the KeylessErrors constant
275
+ * @param args.type The type of KeylessError
276
+ * @param args.aptosApiError optional AptosApiError supplied for api errors
277
+ * @param args.details optional details to include in the error message
278
+ * @returns A new KeylessError instance
279
+ */
280
+ static fromErrorType(args: { type: KeylessErrorType; error?: unknown; details?: string }): KeylessError {
281
+ const { error, type, details } = args;
282
+
283
+ const [message, category, resolutionTip] = KeylessErrors[type];
284
+ return new KeylessError({
285
+ message,
286
+ details,
287
+ innerError: error,
288
+ category,
289
+ resolutionTip,
290
+ type,
291
+ });
292
+ }
293
+ }
294
+
295
+ /**
296
+ * Options for handling errors in the Aptos API.
297
+ */
298
+ type AptosApiErrorOpts = {
299
+ apiType: AptosApiType;
300
+ aptosRequest: AptosRequest;
301
+ aptosResponse: AptosResponse<any, any>;
302
+ };
303
+
304
+ /**
305
+ * Represents an error returned from the Aptos API.
306
+ * This class encapsulates the details of the error, including the request URL, response status, and additional data.
307
+ *
308
+ * @param name - The name of the error, which is always "AptosApiError".
309
+ * @param url - The URL to which the request was made.
310
+ * @param status - The HTTP response status code (e.g., 400).
311
+ * @param statusText - The message associated with the response status.
312
+ * @param data - The response data returned from the API.
313
+ * @param request - The original AptosRequest that triggered the error.
314
+ */
315
+ export class AptosApiError extends Error {
316
+ readonly url: string;
317
+
318
+ readonly status: number;
319
+
320
+ readonly statusText: string;
321
+
322
+ readonly data: any;
323
+
324
+ readonly request: AptosRequest;
325
+
326
+ /**
327
+ * Constructs an instance of AptosApiError with relevant error details.
328
+ *
329
+ * @param opts - The options for creating the AptosApiError.
330
+ * @param opts.apiType - The type of API that generated the error.
331
+ * @param opts.aptosRequest - The request object that caused the error.
332
+ * @param opts.aptosResponse - The response object containing error details.
333
+ *
334
+ * @internal This constructor is for SDK internal use - do not instantiate outside the SDK codebase.
335
+ */
336
+ constructor({ apiType, aptosRequest, aptosResponse }: AptosApiErrorOpts) {
337
+ super(deriveErrorMessage({ apiType, aptosRequest, aptosResponse }));
338
+
339
+ this.name = "AptosApiError";
340
+ this.url = aptosResponse.url;
341
+ this.status = aptosResponse.status;
342
+ this.statusText = aptosResponse.statusText;
343
+ this.data = aptosResponse.data;
344
+ this.request = aptosRequest;
345
+ }
346
+ }
347
+
348
+ /**
349
+ * Derives an error message from the Aptos API response, providing context for debugging.
350
+ * This function helps in understanding the nature of the error encountered during an API request.
351
+ *
352
+ * @param {AptosApiErrorOpts} opts - The options for deriving the error message.
353
+ * @param {AptosApiType} opts.apiType - The type of API being called.
354
+ * @param {AptosRequest} opts.aptosRequest - The original request made to the Aptos API.
355
+ * @param {AptosResponse} opts.aptosResponse - The response received from the Aptos API.
356
+ */
357
+ function deriveErrorMessage({ apiType, aptosRequest, aptosResponse }: AptosApiErrorOpts): string {
358
+ // eslint-disable-next-line max-len
359
+ // extract the W3C trace_id from the response headers if it exists. Some services set this in the response, and it's useful for debugging.
360
+ // See https://www.w3.org/TR/trace-context/#relationship-between-the-headers .
361
+ const traceId = aptosResponse.headers?.traceparent?.split("-")[1];
362
+ const traceIdString = traceId ? `(trace_id:${traceId}) ` : "";
363
+
364
+ const errorPrelude: string = `Request to [${apiType}]: ${aptosRequest.method} ${
365
+ aptosResponse.url ?? aptosRequest.url
366
+ } ${traceIdString}failed with`;
367
+
368
+ // handle graphql responses from indexer api and extract the error message of the first error
369
+ if (apiType === AptosApiType.INDEXER && aptosResponse.data?.errors?.[0]?.message != null) {
370
+ return `${errorPrelude}: ${aptosResponse.data.errors[0].message}`;
371
+ }
372
+
373
+ // Received well-known structured error response body - simply serialize and return it.
374
+ // We don't need http status codes etc. in this case.
375
+ if (aptosResponse.data?.message != null && aptosResponse.data?.error_code != null) {
376
+ return `${errorPrelude}: ${JSON.stringify(aptosResponse.data)}`;
377
+ }
378
+
379
+ // This is the generic/catch-all case. We received some response from the API, but it doesn't appear to be a well-known structure.
380
+ // We print http status codes and the response body (after some trimming),
381
+ // in the hope that this gives enough context what went wrong without printing overly huge messages.
382
+ return `${errorPrelude} status: ${aptosResponse.statusText}(code:${
383
+ aptosResponse.status
384
+ }) and response body: ${serializeAnyPayloadForErrorMessage(aptosResponse.data)}`;
385
+ }
386
+
387
+ const SERIALIZED_PAYLOAD_TRIM_TO_MAX_LENGTH = 400;
388
+
389
+ /**
390
+ * This function accepts a payload of any type (probably an object) and serializes it to a string
391
+ * Since we don't know the type or size of the payload, and we don't want to add a huge object in full to the error message
392
+ * we limit the to the first 200 and last 200 characters of the serialized payload and put a "..." in the middle.
393
+ * @param payload - The payload to serialize, which can be of any type.
394
+ *
395
+ * @returns A string representation of the serialized payload, potentially truncated.
396
+ */
397
+ function serializeAnyPayloadForErrorMessage(payload: any): string {
398
+ const serializedPayload = JSON.stringify(payload);
399
+ if (serializedPayload.length <= SERIALIZED_PAYLOAD_TRIM_TO_MAX_LENGTH) {
400
+ return serializedPayload;
401
+ }
402
+ return `truncated(original_size:${serializedPayload.length}): ${serializedPayload.slice(
403
+ 0,
404
+ SERIALIZED_PAYLOAD_TRIM_TO_MAX_LENGTH / 2,
405
+ )}...${serializedPayload.slice(-SERIALIZED_PAYLOAD_TRIM_TO_MAX_LENGTH / 2)}`;
406
+ }
package/src/index.ts CHANGED
@@ -6,6 +6,7 @@ export * from "./api";
6
6
  export * from "./bcs";
7
7
  export * from "./client";
8
8
  export * from "./core";
9
+ export * from "./errors";
9
10
  export * from "./transactions";
10
11
  export * from "./transactions/management";
11
12
  export * from "./types";
@@ -7,13 +7,8 @@
7
7
  * other namespaces and processes can access these methods without depending on the entire
8
8
  * account namespace and without having a dependency cycle error.
9
9
  */
10
-
11
10
  import { AptosConfig } from "../api/aptosConfig";
12
- import { AptosApiError, getAptosFullNode, paginateWithCursor } from "../client";
13
- import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
14
- import { Account } from "../account";
15
- import { AnyPublicKey, Ed25519PublicKey, PrivateKey } from "../core/crypto";
16
- import { queryIndexer } from "./general";
11
+ import { getAptosFullNode, paginateWithCursor } from "../client";
17
12
  import {
18
13
  AccountData,
19
14
  GetAccountCoinsDataResponse,
@@ -31,6 +26,10 @@ import {
31
26
  TransactionResponse,
32
27
  WhereArg,
33
28
  } from "../types";
29
+ import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
30
+ import { Account } from "../account";
31
+ import { AnyPublicKey, Ed25519PublicKey, PrivateKey } from "../core/crypto";
32
+ import { queryIndexer } from "./general";
34
33
  import {
35
34
  GetAccountCoinsCountQuery,
36
35
  GetAccountCoinsDataQuery,
@@ -56,6 +55,7 @@ import { Secp256k1PrivateKey, AuthenticationKey, Ed25519PrivateKey, createObject
56
55
  import { CurrentFungibleAssetBalancesBoolExp } from "../types/generated/types";
57
56
  import { getTableItem } from "./table";
58
57
  import { APTOS_COIN } from "../utils";
58
+ import { AptosApiError } from "../errors";
59
59
 
60
60
  /**
61
61
  * Retrieves account information for a specified account address.
@@ -106,7 +106,8 @@ export function isActiveANSName(name: GetANSNameResponse[0]): boolean {
106
106
  }
107
107
 
108
108
  export const LOCAL_ANS_ACCOUNT_PK =
109
- process.env.ANS_TEST_ACCOUNT_PRIVATE_KEY ?? "0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221";
109
+ process.env.ANS_TEST_ACCOUNT_PRIVATE_KEY ??
110
+ "ed25519-priv-0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221";
110
111
  export const LOCAL_ANS_ACCOUNT_ADDRESS =
111
112
  process.env.ANS_TEST_ACCOUNT_ADDRESS ?? "0x585fc9f0f0c54183b039ffc770ca282ebd87307916c215a3e692f2f8e4305e82";
112
113
 
@@ -16,6 +16,7 @@ import {
16
16
  Groth16Zkp,
17
17
  Hex,
18
18
  KeylessPublicKey,
19
+ MoveJWK,
19
20
  ZeroKnowledgeSig,
20
21
  ZkProof,
21
22
  getKeylessConfig,
@@ -28,7 +29,8 @@ import { FederatedKeylessPublicKey } from "../core/crypto/federatedKeyless";
28
29
  import { FederatedKeylessAccount } from "../account/FederatedKeylessAccount";
29
30
  import { MoveVector } from "../bcs";
30
31
  import { generateTransaction } from "./transactionSubmission";
31
- import { SimpleTransaction } from "../transactions";
32
+ import { InputGenerateTransactionOptions, SimpleTransaction } from "../transactions";
33
+ import { KeylessError, KeylessErrorType } from "../errors";
32
34
 
33
35
  /**
34
36
  * Retrieves a pepper value based on the provided configuration and authentication details.
@@ -86,12 +88,19 @@ export async function getProof(args: {
86
88
  ephemeralKeyPair: EphemeralKeyPair;
87
89
  pepper?: HexInput;
88
90
  uidKey?: string;
91
+ maxExpHorizonSecs?: number;
89
92
  }): Promise<ZeroKnowledgeSig> {
90
- const { aptosConfig, jwt, ephemeralKeyPair, pepper = await getPepper(args), uidKey = "sub" } = args;
93
+ const {
94
+ aptosConfig,
95
+ jwt,
96
+ ephemeralKeyPair,
97
+ pepper = await getPepper(args),
98
+ uidKey = "sub",
99
+ maxExpHorizonSecs = (await getKeylessConfig({ aptosConfig })).maxExpHorizonSecs,
100
+ } = args;
91
101
  if (Hex.fromHexInput(pepper).toUint8Array().length !== KeylessAccount.PEPPER_LENGTH) {
92
102
  throw new Error(`Pepper needs to be ${KeylessAccount.PEPPER_LENGTH} bytes`);
93
103
  }
94
- const { maxExpHorizonSecs } = await getKeylessConfig({ aptosConfig });
95
104
  const decodedJwt = jwtDecode<JwtPayload>(jwt);
96
105
  if (typeof decodedJwt.iat !== "number") {
97
106
  throw new Error("iat was not found");
@@ -174,7 +183,9 @@ export async function deriveKeylessAccount(args: {
174
183
  proofFetchCallback?: ProofFetchCallback;
175
184
  }): Promise<KeylessAccount | FederatedKeylessAccount> {
176
185
  const { aptosConfig, jwt, jwkAddress, uidKey, proofFetchCallback, pepper = await getPepper(args) } = args;
177
- const proofPromise = getProof({ ...args, pepper });
186
+ const { verificationKey, maxExpHorizonSecs } = await getKeylessConfig({ aptosConfig });
187
+
188
+ const proofPromise = getProof({ ...args, pepper, maxExpHorizonSecs });
178
189
  // If a callback is provided, pass in the proof as a promise to KeylessAccount.create. This will make the proof be fetched in the
179
190
  // background and the callback will handle the outcome of the fetch. This allows the developer to not have to block on the proof fetch
180
191
  // allowing for faster rendering of UX.
@@ -190,7 +201,15 @@ export async function deriveKeylessAccount(args: {
190
201
  authenticationKey: publicKey.authKey().derivedAddress(),
191
202
  });
192
203
 
193
- return FederatedKeylessAccount.create({ ...args, address, proof, pepper, proofFetchCallback, jwkAddress });
204
+ return FederatedKeylessAccount.create({
205
+ ...args,
206
+ address,
207
+ proof,
208
+ pepper,
209
+ proofFetchCallback,
210
+ jwkAddress,
211
+ verificationKey,
212
+ });
194
213
  }
195
214
 
196
215
  const publicKey = KeylessPublicKey.fromJwtAndPepper({ jwt, pepper, uidKey });
@@ -198,19 +217,11 @@ export async function deriveKeylessAccount(args: {
198
217
  aptosConfig,
199
218
  authenticationKey: publicKey.authKey().derivedAddress(),
200
219
  });
201
- return KeylessAccount.create({ ...args, address, proof, pepper, proofFetchCallback });
202
- }
203
-
204
- interface JWK {
205
- kty: string; // Key type
206
- kid: string; // Key ID
207
- alg: string; // Algorithm used with the key
208
- n: string; // Modulus (for RSA keys)
209
- e: string; // Exponent (for RSA keys)
220
+ return KeylessAccount.create({ ...args, address, proof, pepper, proofFetchCallback, verificationKey });
210
221
  }
211
222
 
212
- interface JWKS {
213
- keys: JWK[];
223
+ export interface JWKS {
224
+ keys: MoveJWK[];
214
225
  }
215
226
 
216
227
  export async function updateFederatedKeylessJwkSetTransaction(args: {
@@ -218,13 +229,31 @@ export async function updateFederatedKeylessJwkSetTransaction(args: {
218
229
  sender: Account;
219
230
  iss: string;
220
231
  jwksUrl?: string;
232
+ options?: InputGenerateTransactionOptions;
221
233
  }): Promise<SimpleTransaction> {
222
- const { aptosConfig, sender, iss } = args;
234
+ const { aptosConfig, sender, iss, options } = args;
223
235
  const jwksUrl = args.jwksUrl ?? (iss.endsWith("/") ? `${iss}.well-known/jwks.json` : `${iss}/.well-known/jwks.json`);
224
- const response = await fetch(jwksUrl);
225
- if (!response.ok) {
226
- throw new Error(`Failed to fetch JWKS: ${response.status} ${response.statusText}`);
236
+
237
+ let response: Response;
238
+
239
+ try {
240
+ response = await fetch(jwksUrl);
241
+ if (!response.ok) {
242
+ throw new Error(`${response.status} ${response.statusText}`);
243
+ }
244
+ } catch (error) {
245
+ let errorMessage: string;
246
+ if (error instanceof Error) {
247
+ errorMessage = `${error.message}`;
248
+ } else {
249
+ errorMessage = `error unknown - ${error}`;
250
+ }
251
+ throw KeylessError.fromErrorType({
252
+ type: KeylessErrorType.JWK_FETCH_FAILED_FEDERATED,
253
+ details: `Failed to fetch JWKS at ${jwksUrl}: ${errorMessage}`,
254
+ });
227
255
  }
256
+
228
257
  const jwks: JWKS = await response.json();
229
258
  return generateTransaction({
230
259
  aptosConfig,
@@ -239,5 +268,6 @@ export async function updateFederatedKeylessJwkSetTransaction(args: {
239
268
  MoveVector.MoveString(jwks.keys.map((key) => key.n)),
240
269
  ],
241
270
  },
271
+ options,
242
272
  });
243
273
  }
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  import { AptosConfig } from "../api/aptosConfig";
12
- import { AptosApiError, getAptosFullNode, paginateWithCursor } from "../client";
12
+ import { getAptosFullNode, paginateWithCursor } from "../client";
13
+ import { AptosApiError } from "../errors";
13
14
  import {
14
15
  TransactionResponseType,
15
16
  type AnyNumber,