@aptos-labs/ts-sdk 1.15.0 → 1.16.0-zeta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/dist/common/{accountAddress-ccLvlUQe.d.ts → accountAddress-OUd5ov6z.d.ts} +97 -5
  2. package/dist/common/chunk-VLEH6QBR.js +2 -0
  3. package/dist/common/chunk-VLEH6QBR.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +1 -1
  5. package/dist/common/cli/index.js +1 -1
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +757 -58
  8. package/dist/common/index.js +28 -28
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/{Ed25519Account-B1VMJOY2.d.mts → Ed25519Account-9zBaZEnp.d.mts} +1 -1
  11. package/dist/esm/account/Account.d.mts +2 -2
  12. package/dist/esm/account/Account.mjs +1 -1
  13. package/dist/esm/account/Ed25519Account.d.mts +2 -2
  14. package/dist/esm/account/Ed25519Account.mjs +1 -1
  15. package/dist/esm/account/EphemeralKeyPair.d.mts +85 -0
  16. package/dist/esm/account/EphemeralKeyPair.mjs +2 -0
  17. package/dist/esm/account/KeylessAccount.d.mts +225 -0
  18. package/dist/esm/account/KeylessAccount.mjs +2 -0
  19. package/dist/esm/account/MultiKeyAccount.d.mts +13 -7
  20. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  21. package/dist/esm/account/SingleKeyAccount.d.mts +2 -2
  22. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  23. package/dist/esm/account/index.d.mts +10 -2
  24. package/dist/esm/account/index.mjs +1 -1
  25. package/dist/esm/api/account.d.mts +2 -2
  26. package/dist/esm/api/account.mjs +1 -1
  27. package/dist/esm/api/ans.d.mts +2 -2
  28. package/dist/esm/api/ans.mjs +1 -1
  29. package/dist/esm/api/aptos.d.mts +13 -3
  30. package/dist/esm/api/aptos.mjs +1 -1
  31. package/dist/esm/api/aptosConfig.d.mts +20 -0
  32. package/dist/esm/api/aptosConfig.mjs +1 -1
  33. package/dist/esm/api/coin.d.mts +1 -1
  34. package/dist/esm/api/coin.mjs +1 -1
  35. package/dist/esm/api/digitalAsset.d.mts +2 -2
  36. package/dist/esm/api/digitalAsset.mjs +1 -1
  37. package/dist/esm/api/event.mjs +1 -1
  38. package/dist/esm/api/faucet.mjs +1 -1
  39. package/dist/esm/api/fungibleAsset.d.mts +2 -2
  40. package/dist/esm/api/fungibleAsset.mjs +1 -1
  41. package/dist/esm/api/general.d.mts +1 -1
  42. package/dist/esm/api/general.mjs +1 -1
  43. package/dist/esm/api/index.d.mts +11 -2
  44. package/dist/esm/api/index.mjs +1 -1
  45. package/dist/esm/api/keyless.d.mts +88 -0
  46. package/dist/esm/api/keyless.mjs +2 -0
  47. package/dist/esm/api/keyless.mjs.map +1 -0
  48. package/dist/esm/api/staking.mjs +1 -1
  49. package/dist/esm/api/table.mjs +1 -1
  50. package/dist/esm/api/transaction.d.mts +2 -2
  51. package/dist/esm/api/transaction.mjs +1 -1
  52. package/dist/esm/api/transactionSubmission/build.d.mts +1 -1
  53. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  54. package/dist/esm/api/transactionSubmission/management.d.mts +2 -2
  55. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  56. package/dist/esm/api/transactionSubmission/sign.d.mts +2 -2
  57. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  58. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  59. package/dist/esm/api/transactionSubmission/simulate.d.mts +1 -1
  60. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  61. package/dist/esm/api/transactionSubmission/submit.d.mts +1 -1
  62. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  63. package/dist/esm/api/utils.mjs +1 -1
  64. package/dist/esm/bcs/deserializer.d.mts +32 -0
  65. package/dist/esm/bcs/deserializer.mjs +1 -1
  66. package/dist/esm/bcs/index.mjs +1 -1
  67. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
  68. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
  69. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  70. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  71. package/dist/esm/bcs/serializer.d.mts +42 -0
  72. package/dist/esm/bcs/serializer.mjs +1 -1
  73. package/dist/esm/{chunk-36QXVFR5.mjs → chunk-272NA6H5.mjs} +2 -2
  74. package/dist/esm/{chunk-36QXVFR5.mjs.map → chunk-272NA6H5.mjs.map} +1 -1
  75. package/dist/esm/{chunk-R5ST36VJ.mjs → chunk-34WI7I3Z.mjs} +2 -2
  76. package/dist/esm/chunk-3DP4R3FI.mjs +2 -0
  77. package/dist/esm/{chunk-FFGY7Z4B.mjs → chunk-3J53BCEQ.mjs} +2 -2
  78. package/dist/esm/chunk-3SXTTG2X.mjs +2 -0
  79. package/dist/esm/chunk-3SXTTG2X.mjs.map +1 -0
  80. package/dist/esm/{chunk-4GWNWSZP.mjs → chunk-3YIUOKWW.mjs} +2 -2
  81. package/dist/esm/{chunk-EA2DKJPX.mjs → chunk-45ESRYGP.mjs} +2 -2
  82. package/dist/esm/chunk-4RXGVY2H.mjs +2 -0
  83. package/dist/esm/chunk-4RXGVY2H.mjs.map +1 -0
  84. package/dist/esm/chunk-4VAYXBD2.mjs +2 -0
  85. package/dist/esm/chunk-5SGIYAB7.mjs +2 -0
  86. package/dist/esm/chunk-5SGIYAB7.mjs.map +1 -0
  87. package/dist/esm/chunk-5VLCYHNJ.mjs +2 -0
  88. package/dist/esm/chunk-5VLCYHNJ.mjs.map +1 -0
  89. package/dist/esm/{chunk-JGSOTNJ5.mjs → chunk-6F3HFDL3.mjs} +2 -2
  90. package/dist/esm/{chunk-BN22EYXR.mjs → chunk-6MDYCC7P.mjs} +2 -2
  91. package/dist/esm/{chunk-F7NLNWHN.mjs → chunk-7CJAEAQZ.mjs} +2 -2
  92. package/dist/esm/chunk-7QGIAVW4.mjs +2 -0
  93. package/dist/esm/chunk-7QGIAVW4.mjs.map +1 -0
  94. package/dist/esm/chunk-7UBKXR37.mjs +2 -0
  95. package/dist/esm/chunk-7UBKXR37.mjs.map +1 -0
  96. package/dist/esm/{chunk-JQIGQMNZ.mjs → chunk-7Y6AWDBZ.mjs} +2 -2
  97. package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
  98. package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
  99. package/dist/esm/{chunk-BCUSI3N6.mjs → chunk-AOCNYMMX.mjs} +2 -2
  100. package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
  101. package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
  102. package/dist/esm/chunk-AUAL3H36.mjs +2 -0
  103. package/dist/esm/{chunk-I5T6PHDV.mjs → chunk-AUV4VAXK.mjs} +2 -2
  104. package/dist/esm/{chunk-2X7A4HUS.mjs → chunk-AVWAYKNS.mjs} +2 -2
  105. package/dist/esm/{chunk-EZPUVLME.mjs → chunk-BNA3SGG6.mjs} +2 -2
  106. package/dist/esm/chunk-CEGCSC3T.mjs +2 -0
  107. package/dist/esm/chunk-CIPPNT3W.mjs +2 -0
  108. package/dist/esm/chunk-CIPPNT3W.mjs.map +1 -0
  109. package/dist/esm/{chunk-F4GDEXZ6.mjs → chunk-CZOUSIAD.mjs} +2 -2
  110. package/dist/esm/chunk-D76FE35G.mjs +2 -0
  111. package/dist/esm/chunk-D76FE35G.mjs.map +1 -0
  112. package/dist/esm/{chunk-A4JUQZXI.mjs → chunk-DSVNXD5A.mjs} +2 -2
  113. package/dist/esm/chunk-EJ7ODMDA.mjs +2 -0
  114. package/dist/esm/{chunk-UR3JTLIT.mjs → chunk-EJURLI4L.mjs} +2 -2
  115. package/dist/esm/chunk-FBPNHF54.mjs +2 -0
  116. package/dist/esm/chunk-FUQDDIKQ.mjs +2 -0
  117. package/dist/esm/chunk-FUQDDIKQ.mjs.map +1 -0
  118. package/dist/esm/chunk-FWTJQHJR.mjs +2 -0
  119. package/dist/esm/chunk-FWTJQHJR.mjs.map +1 -0
  120. package/dist/esm/{chunk-AHW3SKT7.mjs → chunk-GHHIUWPP.mjs} +2 -2
  121. package/dist/esm/{chunk-G56GPLTB.mjs → chunk-GS5Z3HO7.mjs} +2 -2
  122. package/dist/esm/chunk-HGRU3HWY.mjs +2 -0
  123. package/dist/esm/{chunk-P5TZBE3L.mjs.map → chunk-HGRU3HWY.mjs.map} +1 -1
  124. package/dist/esm/{chunk-XFSDV3ND.mjs → chunk-HOX6Q6ZP.mjs} +2 -2
  125. package/dist/esm/chunk-HQK6MF3G.mjs +2 -0
  126. package/dist/esm/chunk-IMVC2JKU.mjs +2 -0
  127. package/dist/esm/{chunk-2XK53QFA.mjs.map → chunk-IMVC2JKU.mjs.map} +1 -1
  128. package/dist/esm/chunk-ISXBJPLD.mjs +2 -0
  129. package/dist/esm/{chunk-JX75UKJX.mjs → chunk-IU6REVKX.mjs} +2 -2
  130. package/dist/esm/{chunk-ERIPXWXJ.mjs → chunk-IWKIZLFW.mjs} +2 -2
  131. package/dist/esm/{chunk-PIVZMT5D.mjs → chunk-J534ICWA.mjs} +2 -2
  132. package/dist/esm/chunk-J577ODDM.mjs +2 -0
  133. package/dist/esm/chunk-JBTLE33X.mjs +2 -0
  134. package/dist/esm/{chunk-CJDEPZ4J.mjs.map → chunk-JBTLE33X.mjs.map} +1 -1
  135. package/dist/esm/chunk-JCDZ2WXX.mjs +2 -0
  136. package/dist/esm/chunk-JCDZ2WXX.mjs.map +1 -0
  137. package/dist/esm/{chunk-YK63A5T6.mjs → chunk-LLRWILVZ.mjs} +2 -2
  138. package/dist/esm/chunk-M4Q4XDVR.mjs +2 -0
  139. package/dist/esm/chunk-M4Q4XDVR.mjs.map +1 -0
  140. package/dist/esm/chunk-MEOBWD6V.mjs +2 -0
  141. package/dist/esm/chunk-MEOBWD6V.mjs.map +1 -0
  142. package/dist/esm/{chunk-35EWRSDK.mjs → chunk-MLQT5I6K.mjs} +2 -2
  143. package/dist/esm/chunk-MSGHGK52.mjs +2 -0
  144. package/dist/esm/{chunk-5EN52MUT.mjs → chunk-NGTNMV6Q.mjs} +2 -2
  145. package/dist/esm/{chunk-P46OPJB4.mjs → chunk-NH466YFP.mjs} +2 -2
  146. package/dist/esm/chunk-NMD45OTM.mjs +2 -0
  147. package/dist/esm/chunk-NMD45OTM.mjs.map +1 -0
  148. package/dist/esm/{chunk-ZM33M6QO.mjs → chunk-NUBYALZP.mjs} +2 -2
  149. package/dist/esm/{chunk-CHWE77CR.mjs → chunk-OFC75EWS.mjs} +2 -2
  150. package/dist/esm/{chunk-H6FEXRTK.mjs → chunk-OOYRJQPD.mjs} +2 -2
  151. package/dist/esm/chunk-OZ3GSAFK.mjs +2 -0
  152. package/dist/esm/chunk-OZ3GSAFK.mjs.map +1 -0
  153. package/dist/esm/chunk-PENBUSGL.mjs +2 -0
  154. package/dist/esm/chunk-PENBUSGL.mjs.map +1 -0
  155. package/dist/esm/{chunk-WN3JL7ZT.mjs → chunk-PG7KSUMN.mjs} +2 -2
  156. package/dist/esm/{chunk-KAGLWBIJ.mjs → chunk-PGP2XMDE.mjs} +2 -2
  157. package/dist/esm/chunk-Q6LFIZ3L.mjs +2 -0
  158. package/dist/esm/chunk-Q6LFIZ3L.mjs.map +1 -0
  159. package/dist/esm/{chunk-CYTRYBWN.mjs → chunk-QJIMZI32.mjs} +2 -2
  160. package/dist/esm/{chunk-E56MTU2U.mjs → chunk-QLE5JL4X.mjs} +2 -2
  161. package/dist/esm/{chunk-WNPL4SEJ.mjs → chunk-QOOHLRRJ.mjs} +2 -2
  162. package/dist/esm/chunk-QYEJOEWB.mjs +2 -0
  163. package/dist/esm/chunk-QYEJOEWB.mjs.map +1 -0
  164. package/dist/esm/{chunk-TM7NDDT3.mjs → chunk-R4HLV32L.mjs} +2 -2
  165. package/dist/esm/chunk-RAHMGSBW.mjs +2 -0
  166. package/dist/esm/chunk-RAHMGSBW.mjs.map +1 -0
  167. package/dist/esm/{chunk-GHYE26Q5.mjs → chunk-RKHPXZM6.mjs} +2 -2
  168. package/dist/esm/{chunk-GHYE26Q5.mjs.map → chunk-RKHPXZM6.mjs.map} +1 -1
  169. package/dist/esm/{chunk-MCRRHBFQ.mjs → chunk-RWYPGTNL.mjs} +2 -2
  170. package/dist/esm/chunk-SCHMTP4N.mjs +2 -0
  171. package/dist/esm/chunk-SCHZ67F3.mjs +2 -0
  172. package/dist/esm/chunk-SCHZ67F3.mjs.map +1 -0
  173. package/dist/esm/{chunk-GP6Z47HM.mjs → chunk-SCRIQQV3.mjs} +2 -2
  174. package/dist/esm/{chunk-NGQR5UQ3.mjs → chunk-SNBE5YAC.mjs} +2 -2
  175. package/dist/esm/chunk-SSDWEOF7.mjs +2 -0
  176. package/dist/esm/chunk-SSDWEOF7.mjs.map +1 -0
  177. package/dist/esm/chunk-SZ6KR73C.mjs +2 -0
  178. package/dist/esm/chunk-SZ6KR73C.mjs.map +1 -0
  179. package/dist/esm/{chunk-UW2FPXYA.mjs → chunk-THURV6CN.mjs} +2 -2
  180. package/dist/esm/chunk-TJDC5PWD.mjs +2 -0
  181. package/dist/esm/{chunk-GUALXVFI.mjs → chunk-TU6VKYDC.mjs} +2 -2
  182. package/dist/esm/{chunk-DZSDCUP2.mjs → chunk-UFMIMN7W.mjs} +2 -2
  183. package/dist/esm/{chunk-3Y46WJUR.mjs → chunk-ULW5LX5H.mjs} +2 -2
  184. package/dist/esm/chunk-V6M7FGQT.mjs +2 -0
  185. package/dist/esm/chunk-V6M7FGQT.mjs.map +1 -0
  186. package/dist/esm/{chunk-U3YYSIIT.mjs → chunk-VBODXPT3.mjs} +2 -2
  187. package/dist/esm/chunk-VMVSUH2K.mjs +2 -0
  188. package/dist/esm/{chunk-QRS4DGP3.mjs → chunk-WHSN42R2.mjs} +2 -2
  189. package/dist/esm/{chunk-QRS4DGP3.mjs.map → chunk-WHSN42R2.mjs.map} +1 -1
  190. package/dist/esm/{chunk-ZCG6WBLE.mjs → chunk-WJIICWOB.mjs} +2 -2
  191. package/dist/esm/{chunk-T2AGN5YT.mjs → chunk-WOLLRMXR.mjs} +2 -2
  192. package/dist/esm/chunk-WSVJNBSJ.mjs +2 -0
  193. package/dist/esm/{chunk-YMB2XW2O.mjs.map → chunk-WSVJNBSJ.mjs.map} +1 -1
  194. package/dist/esm/chunk-WXLSJF4A.mjs +2 -0
  195. package/dist/esm/chunk-WXLSJF4A.mjs.map +1 -0
  196. package/dist/esm/{chunk-GM56MMNJ.mjs → chunk-XQ7I34AL.mjs} +2 -2
  197. package/dist/esm/{chunk-RT6LEYHZ.mjs → chunk-Y24BMR2W.mjs} +2 -2
  198. package/dist/esm/chunk-YE5B2S5L.mjs +2 -0
  199. package/dist/esm/chunk-YE5B2S5L.mjs.map +1 -0
  200. package/dist/esm/{chunk-HSJTQLI2.mjs → chunk-YLQJBXUF.mjs} +2 -2
  201. package/dist/esm/chunk-ZAXWW7VW.mjs +2 -0
  202. package/dist/esm/chunk-ZAXWW7VW.mjs.map +1 -0
  203. package/dist/esm/chunk-ZV5P2GSJ.mjs +2 -0
  204. package/dist/esm/{chunk-SRDIYE3M.mjs.map → chunk-ZV5P2GSJ.mjs.map} +1 -1
  205. package/dist/esm/cli/index.mjs +1 -1
  206. package/dist/esm/cli/localNode.mjs +1 -1
  207. package/dist/esm/cli/move.mjs +1 -1
  208. package/dist/esm/client/core.mjs +1 -1
  209. package/dist/esm/client/get.d.mts +8 -1
  210. package/dist/esm/client/get.mjs +1 -1
  211. package/dist/esm/client/index.d.mts +2 -2
  212. package/dist/esm/client/index.mjs +1 -1
  213. package/dist/esm/client/post.d.mts +9 -1
  214. package/dist/esm/client/post.mjs +1 -1
  215. package/dist/esm/client/types.d.mts +5 -1
  216. package/dist/esm/client/types.mjs +1 -1
  217. package/dist/esm/core/account/index.mjs +1 -1
  218. package/dist/esm/core/account/utils/address.mjs +1 -1
  219. package/dist/esm/core/account/utils/index.mjs +1 -1
  220. package/dist/esm/core/accountAddress.mjs +1 -1
  221. package/dist/esm/core/authenticationKey.d.mts +1 -1
  222. package/dist/esm/core/authenticationKey.mjs +1 -1
  223. package/dist/esm/core/common.mjs +1 -1
  224. package/dist/esm/core/crypto/cryptoHasher.d.mts +21 -0
  225. package/dist/esm/core/crypto/cryptoHasher.mjs +2 -0
  226. package/dist/esm/core/crypto/cryptoHasher.mjs.map +1 -0
  227. package/dist/esm/core/crypto/ed25519.d.mts +1 -1
  228. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  229. package/dist/esm/core/crypto/ephemeral.d.mts +73 -0
  230. package/dist/esm/core/crypto/ephemeral.mjs +2 -0
  231. package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
  232. package/dist/esm/core/crypto/index.d.mts +5 -1
  233. package/dist/esm/core/crypto/index.mjs +1 -1
  234. package/dist/esm/core/crypto/keyless.d.mts +276 -0
  235. package/dist/esm/core/crypto/keyless.mjs +2 -0
  236. package/dist/esm/core/crypto/keyless.mjs.map +1 -0
  237. package/dist/esm/core/crypto/multiEd25519.d.mts +1 -1
  238. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  239. package/dist/esm/core/crypto/multiKey.d.mts +1 -1
  240. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  241. package/dist/esm/core/crypto/poseidon.d.mts +19 -0
  242. package/dist/esm/core/crypto/poseidon.mjs +2 -0
  243. package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
  244. package/dist/esm/core/crypto/privateKey.d.mts +1 -1
  245. package/dist/esm/core/crypto/proof.d.mts +21 -0
  246. package/dist/esm/core/crypto/proof.mjs +2 -0
  247. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  248. package/dist/esm/core/crypto/publicKey.d.mts +1 -1
  249. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  250. package/dist/esm/core/crypto/secp256k1.d.mts +1 -1
  251. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  252. package/dist/esm/core/crypto/signature.mjs +1 -1
  253. package/dist/esm/core/crypto/singleKey.d.mts +1 -1
  254. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  255. package/dist/esm/core/crypto/utils.mjs +1 -1
  256. package/dist/esm/core/hex.mjs +1 -1
  257. package/dist/esm/core/index.d.mts +5 -1
  258. package/dist/esm/core/index.mjs +1 -1
  259. package/dist/esm/index.d.mts +16 -8
  260. package/dist/esm/index.mjs +1 -1
  261. package/dist/esm/internal/account.d.mts +2 -2
  262. package/dist/esm/internal/account.mjs +1 -1
  263. package/dist/esm/internal/ans.d.mts +2 -2
  264. package/dist/esm/internal/ans.mjs +1 -1
  265. package/dist/esm/internal/coin.d.mts +1 -1
  266. package/dist/esm/internal/coin.mjs +1 -1
  267. package/dist/esm/internal/digitalAsset.d.mts +2 -2
  268. package/dist/esm/internal/digitalAsset.mjs +1 -1
  269. package/dist/esm/internal/event.mjs +1 -1
  270. package/dist/esm/internal/faucet.mjs +1 -1
  271. package/dist/esm/internal/fungibleAsset.d.mts +2 -2
  272. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  273. package/dist/esm/internal/general.mjs +1 -1
  274. package/dist/esm/internal/keyless.d.mts +78 -0
  275. package/dist/esm/internal/keyless.mjs +2 -0
  276. package/dist/esm/internal/keyless.mjs.map +1 -0
  277. package/dist/esm/internal/staking.mjs +1 -1
  278. package/dist/esm/internal/table.mjs +1 -1
  279. package/dist/esm/internal/transaction.mjs +1 -1
  280. package/dist/esm/internal/transactionSubmission.d.mts +2 -2
  281. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  282. package/dist/esm/internal/view.d.mts +1 -1
  283. package/dist/esm/internal/view.mjs +1 -1
  284. package/dist/esm/transactions/authenticator/account.d.mts +1 -1
  285. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  286. package/dist/esm/transactions/authenticator/index.d.mts +1 -1
  287. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  288. package/dist/esm/transactions/authenticator/transaction.d.mts +1 -1
  289. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  290. package/dist/esm/transactions/index.d.mts +3 -3
  291. package/dist/esm/transactions/index.mjs +1 -1
  292. package/dist/esm/transactions/instances/chainId.mjs +1 -1
  293. package/dist/esm/transactions/instances/identifier.mjs +1 -1
  294. package/dist/esm/transactions/instances/index.d.mts +1 -1
  295. package/dist/esm/transactions/instances/index.mjs +1 -1
  296. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  297. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  298. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  299. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +1 -1
  300. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  301. package/dist/esm/transactions/instances/signedTransaction.d.mts +1 -1
  302. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  303. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  304. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  305. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
  306. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  307. package/dist/esm/transactions/management/index.d.mts +2 -2
  308. package/dist/esm/transactions/management/index.mjs +1 -1
  309. package/dist/esm/transactions/management/transactionWorker.d.mts +2 -2
  310. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  311. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +1 -1
  312. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  313. package/dist/esm/transactions/transactionBuilder/index.d.mts +2 -2
  314. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  315. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +3 -3
  316. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  317. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +4 -13
  318. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  319. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +1 -1
  320. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  321. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  322. package/dist/esm/transactions/typeTag/parser.d.mts +3 -1
  323. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  324. package/dist/esm/transactions/types.d.mts +23 -5
  325. package/dist/esm/types/index.d.mts +21 -5
  326. package/dist/esm/types/index.mjs +1 -1
  327. package/dist/esm/types/keyless.d.mts +52 -0
  328. package/dist/esm/types/keyless.mjs +1 -0
  329. package/dist/esm/types/keyless.mjs.map +1 -0
  330. package/dist/esm/utils/apiEndpoints.d.mts +3 -1
  331. package/dist/esm/utils/apiEndpoints.mjs +1 -1
  332. package/dist/esm/utils/const.d.mts +3 -1
  333. package/dist/esm/utils/const.mjs +1 -1
  334. package/dist/esm/utils/helpers.d.mts +4 -1
  335. package/dist/esm/utils/helpers.mjs +1 -1
  336. package/dist/esm/utils/index.d.mts +1 -1
  337. package/dist/esm/utils/index.mjs +1 -1
  338. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  339. package/dist/esm/version.d.mts +1 -1
  340. package/dist/esm/version.mjs +1 -1
  341. package/package.json +11 -3
  342. package/src/account/EphemeralKeyPair.ts +157 -0
  343. package/src/account/KeylessAccount.ts +404 -0
  344. package/src/account/MultiKeyAccount.ts +11 -0
  345. package/src/account/index.ts +2 -0
  346. package/src/api/aptos.ts +6 -0
  347. package/src/api/aptosConfig.ts +46 -1
  348. package/src/api/keyless.ts +59 -0
  349. package/src/bcs/deserializer.ts +46 -0
  350. package/src/bcs/serializer.ts +58 -0
  351. package/src/cli/localNode.ts +11 -1
  352. package/src/cli/move.ts +11 -1
  353. package/src/client/core.ts +5 -0
  354. package/src/client/get.ts +12 -0
  355. package/src/client/post.ts +18 -0
  356. package/src/client/types.ts +1 -1
  357. package/src/core/crypto/cryptoHasher.ts +16 -0
  358. package/src/core/crypto/ephemeral.ts +138 -0
  359. package/src/core/crypto/index.ts +2 -0
  360. package/src/core/crypto/keyless.ts +589 -0
  361. package/src/core/crypto/poseidon.ts +142 -0
  362. package/src/core/crypto/proof.ts +16 -0
  363. package/src/core/crypto/singleKey.ts +11 -0
  364. package/src/internal/keyless.ts +175 -0
  365. package/src/internal/transactionSubmission.ts +7 -2
  366. package/src/transactions/transactionBuilder/remoteAbi.ts +16 -2
  367. package/src/transactions/transactionBuilder/signingMessage.ts +0 -13
  368. package/src/transactions/transactionBuilder/transactionBuilder.ts +22 -2
  369. package/src/transactions/typeTag/parser.ts +98 -52
  370. package/src/transactions/types.ts +22 -3
  371. package/src/types/index.ts +24 -2
  372. package/src/types/keyless.ts +42 -0
  373. package/src/utils/apiEndpoints.ts +16 -0
  374. package/src/utils/const.ts +2 -0
  375. package/src/utils/helpers.ts +25 -0
  376. package/src/version.ts +1 -1
  377. package/dist/common/chunk-KSEUZTKY.js +0 -2
  378. package/dist/common/chunk-KSEUZTKY.js.map +0 -1
  379. package/dist/esm/chunk-2XK53QFA.mjs +0 -2
  380. package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
  381. package/dist/esm/chunk-3JPVQHOR.mjs.map +0 -1
  382. package/dist/esm/chunk-4NHWV5AI.mjs +0 -2
  383. package/dist/esm/chunk-53INTTOI.mjs +0 -2
  384. package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
  385. package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
  386. package/dist/esm/chunk-AF5WNJOP.mjs +0 -2
  387. package/dist/esm/chunk-B7X6PSE7.mjs +0 -2
  388. package/dist/esm/chunk-BBKE2QJU.mjs +0 -2
  389. package/dist/esm/chunk-BBKE2QJU.mjs.map +0 -1
  390. package/dist/esm/chunk-CEHCDA3G.mjs +0 -2
  391. package/dist/esm/chunk-CJDEPZ4J.mjs +0 -2
  392. package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
  393. package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
  394. package/dist/esm/chunk-F7EMGK4M.mjs +0 -2
  395. package/dist/esm/chunk-GPEM3JVU.mjs +0 -2
  396. package/dist/esm/chunk-HYCGMFC2.mjs +0 -2
  397. package/dist/esm/chunk-HYCGMFC2.mjs.map +0 -1
  398. package/dist/esm/chunk-IENCDVPF.mjs +0 -2
  399. package/dist/esm/chunk-IENCDVPF.mjs.map +0 -1
  400. package/dist/esm/chunk-L54P6EGN.mjs +0 -2
  401. package/dist/esm/chunk-L54P6EGN.mjs.map +0 -1
  402. package/dist/esm/chunk-LDQ6JFEF.mjs +0 -2
  403. package/dist/esm/chunk-LDQ6JFEF.mjs.map +0 -1
  404. package/dist/esm/chunk-LG7RJQ57.mjs +0 -2
  405. package/dist/esm/chunk-LQNPI3IR.mjs +0 -2
  406. package/dist/esm/chunk-LQNPI3IR.mjs.map +0 -1
  407. package/dist/esm/chunk-MJPUASSD.mjs +0 -2
  408. package/dist/esm/chunk-MJPUASSD.mjs.map +0 -1
  409. package/dist/esm/chunk-N3U47Y6Y.mjs +0 -2
  410. package/dist/esm/chunk-O2K7RZWM.mjs +0 -2
  411. package/dist/esm/chunk-O2K7RZWM.mjs.map +0 -1
  412. package/dist/esm/chunk-O4WVPLUX.mjs +0 -2
  413. package/dist/esm/chunk-OWW6SIDP.mjs +0 -2
  414. package/dist/esm/chunk-OWW6SIDP.mjs.map +0 -1
  415. package/dist/esm/chunk-P5TZBE3L.mjs +0 -2
  416. package/dist/esm/chunk-PF57EOJY.mjs +0 -2
  417. package/dist/esm/chunk-PZ4SAXY7.mjs +0 -2
  418. package/dist/esm/chunk-PZ4SAXY7.mjs.map +0 -1
  419. package/dist/esm/chunk-RFZ5LTGP.mjs +0 -2
  420. package/dist/esm/chunk-RFZ5LTGP.mjs.map +0 -1
  421. package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
  422. package/dist/esm/chunk-RTSWVT2Q.mjs +0 -2
  423. package/dist/esm/chunk-RTSWVT2Q.mjs.map +0 -1
  424. package/dist/esm/chunk-S2VSJJRJ.mjs +0 -2
  425. package/dist/esm/chunk-S2VSJJRJ.mjs.map +0 -1
  426. package/dist/esm/chunk-SRDIYE3M.mjs +0 -2
  427. package/dist/esm/chunk-UGPALAPN.mjs +0 -2
  428. package/dist/esm/chunk-UO3NZ5AH.mjs +0 -1
  429. package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
  430. package/dist/esm/chunk-YCC6HN74.mjs +0 -2
  431. package/dist/esm/chunk-YCC6HN74.mjs.map +0 -1
  432. package/dist/esm/chunk-YMB2XW2O.mjs +0 -2
  433. /package/dist/esm/{chunk-UO3NZ5AH.mjs.map → account/EphemeralKeyPair.mjs.map} +0 -0
  434. /package/dist/esm/{chunk-UVSRX4SV.mjs.map → account/KeylessAccount.mjs.map} +0 -0
  435. /package/dist/esm/{chunk-R5ST36VJ.mjs.map → chunk-34WI7I3Z.mjs.map} +0 -0
  436. /package/dist/esm/{chunk-53INTTOI.mjs.map → chunk-3DP4R3FI.mjs.map} +0 -0
  437. /package/dist/esm/{chunk-FFGY7Z4B.mjs.map → chunk-3J53BCEQ.mjs.map} +0 -0
  438. /package/dist/esm/{chunk-4GWNWSZP.mjs.map → chunk-3YIUOKWW.mjs.map} +0 -0
  439. /package/dist/esm/{chunk-EA2DKJPX.mjs.map → chunk-45ESRYGP.mjs.map} +0 -0
  440. /package/dist/esm/{chunk-PF57EOJY.mjs.map → chunk-4VAYXBD2.mjs.map} +0 -0
  441. /package/dist/esm/{chunk-JGSOTNJ5.mjs.map → chunk-6F3HFDL3.mjs.map} +0 -0
  442. /package/dist/esm/{chunk-BN22EYXR.mjs.map → chunk-6MDYCC7P.mjs.map} +0 -0
  443. /package/dist/esm/{chunk-F7NLNWHN.mjs.map → chunk-7CJAEAQZ.mjs.map} +0 -0
  444. /package/dist/esm/{chunk-JQIGQMNZ.mjs.map → chunk-7Y6AWDBZ.mjs.map} +0 -0
  445. /package/dist/esm/{chunk-BCUSI3N6.mjs.map → chunk-AOCNYMMX.mjs.map} +0 -0
  446. /package/dist/esm/{chunk-4NHWV5AI.mjs.map → chunk-AUAL3H36.mjs.map} +0 -0
  447. /package/dist/esm/{chunk-I5T6PHDV.mjs.map → chunk-AUV4VAXK.mjs.map} +0 -0
  448. /package/dist/esm/{chunk-2X7A4HUS.mjs.map → chunk-AVWAYKNS.mjs.map} +0 -0
  449. /package/dist/esm/{chunk-EZPUVLME.mjs.map → chunk-BNA3SGG6.mjs.map} +0 -0
  450. /package/dist/esm/{chunk-GPEM3JVU.mjs.map → chunk-CEGCSC3T.mjs.map} +0 -0
  451. /package/dist/esm/{chunk-F4GDEXZ6.mjs.map → chunk-CZOUSIAD.mjs.map} +0 -0
  452. /package/dist/esm/{chunk-A4JUQZXI.mjs.map → chunk-DSVNXD5A.mjs.map} +0 -0
  453. /package/dist/esm/{chunk-AF5WNJOP.mjs.map → chunk-EJ7ODMDA.mjs.map} +0 -0
  454. /package/dist/esm/{chunk-UR3JTLIT.mjs.map → chunk-EJURLI4L.mjs.map} +0 -0
  455. /package/dist/esm/{chunk-LG7RJQ57.mjs.map → chunk-FBPNHF54.mjs.map} +0 -0
  456. /package/dist/esm/{chunk-AHW3SKT7.mjs.map → chunk-GHHIUWPP.mjs.map} +0 -0
  457. /package/dist/esm/{chunk-G56GPLTB.mjs.map → chunk-GS5Z3HO7.mjs.map} +0 -0
  458. /package/dist/esm/{chunk-XFSDV3ND.mjs.map → chunk-HOX6Q6ZP.mjs.map} +0 -0
  459. /package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-HQK6MF3G.mjs.map} +0 -0
  460. /package/dist/esm/{chunk-O4WVPLUX.mjs.map → chunk-ISXBJPLD.mjs.map} +0 -0
  461. /package/dist/esm/{chunk-JX75UKJX.mjs.map → chunk-IU6REVKX.mjs.map} +0 -0
  462. /package/dist/esm/{chunk-ERIPXWXJ.mjs.map → chunk-IWKIZLFW.mjs.map} +0 -0
  463. /package/dist/esm/{chunk-PIVZMT5D.mjs.map → chunk-J534ICWA.mjs.map} +0 -0
  464. /package/dist/esm/{chunk-UGPALAPN.mjs.map → chunk-J577ODDM.mjs.map} +0 -0
  465. /package/dist/esm/{chunk-YK63A5T6.mjs.map → chunk-LLRWILVZ.mjs.map} +0 -0
  466. /package/dist/esm/{chunk-35EWRSDK.mjs.map → chunk-MLQT5I6K.mjs.map} +0 -0
  467. /package/dist/esm/{chunk-N3U47Y6Y.mjs.map → chunk-MSGHGK52.mjs.map} +0 -0
  468. /package/dist/esm/{chunk-5EN52MUT.mjs.map → chunk-NGTNMV6Q.mjs.map} +0 -0
  469. /package/dist/esm/{chunk-P46OPJB4.mjs.map → chunk-NH466YFP.mjs.map} +0 -0
  470. /package/dist/esm/{chunk-ZM33M6QO.mjs.map → chunk-NUBYALZP.mjs.map} +0 -0
  471. /package/dist/esm/{chunk-CHWE77CR.mjs.map → chunk-OFC75EWS.mjs.map} +0 -0
  472. /package/dist/esm/{chunk-H6FEXRTK.mjs.map → chunk-OOYRJQPD.mjs.map} +0 -0
  473. /package/dist/esm/{chunk-WN3JL7ZT.mjs.map → chunk-PG7KSUMN.mjs.map} +0 -0
  474. /package/dist/esm/{chunk-KAGLWBIJ.mjs.map → chunk-PGP2XMDE.mjs.map} +0 -0
  475. /package/dist/esm/{chunk-CYTRYBWN.mjs.map → chunk-QJIMZI32.mjs.map} +0 -0
  476. /package/dist/esm/{chunk-E56MTU2U.mjs.map → chunk-QLE5JL4X.mjs.map} +0 -0
  477. /package/dist/esm/{chunk-WNPL4SEJ.mjs.map → chunk-QOOHLRRJ.mjs.map} +0 -0
  478. /package/dist/esm/{chunk-TM7NDDT3.mjs.map → chunk-R4HLV32L.mjs.map} +0 -0
  479. /package/dist/esm/{chunk-MCRRHBFQ.mjs.map → chunk-RWYPGTNL.mjs.map} +0 -0
  480. /package/dist/esm/{chunk-CEHCDA3G.mjs.map → chunk-SCHMTP4N.mjs.map} +0 -0
  481. /package/dist/esm/{chunk-GP6Z47HM.mjs.map → chunk-SCRIQQV3.mjs.map} +0 -0
  482. /package/dist/esm/{chunk-NGQR5UQ3.mjs.map → chunk-SNBE5YAC.mjs.map} +0 -0
  483. /package/dist/esm/{chunk-UW2FPXYA.mjs.map → chunk-THURV6CN.mjs.map} +0 -0
  484. /package/dist/esm/{chunk-F7EMGK4M.mjs.map → chunk-TJDC5PWD.mjs.map} +0 -0
  485. /package/dist/esm/{chunk-GUALXVFI.mjs.map → chunk-TU6VKYDC.mjs.map} +0 -0
  486. /package/dist/esm/{chunk-DZSDCUP2.mjs.map → chunk-UFMIMN7W.mjs.map} +0 -0
  487. /package/dist/esm/{chunk-3Y46WJUR.mjs.map → chunk-ULW5LX5H.mjs.map} +0 -0
  488. /package/dist/esm/{chunk-U3YYSIIT.mjs.map → chunk-VBODXPT3.mjs.map} +0 -0
  489. /package/dist/esm/{chunk-B7X6PSE7.mjs.map → chunk-VMVSUH2K.mjs.map} +0 -0
  490. /package/dist/esm/{chunk-ZCG6WBLE.mjs.map → chunk-WJIICWOB.mjs.map} +0 -0
  491. /package/dist/esm/{chunk-T2AGN5YT.mjs.map → chunk-WOLLRMXR.mjs.map} +0 -0
  492. /package/dist/esm/{chunk-GM56MMNJ.mjs.map → chunk-XQ7I34AL.mjs.map} +0 -0
  493. /package/dist/esm/{chunk-RT6LEYHZ.mjs.map → chunk-Y24BMR2W.mjs.map} +0 -0
  494. /package/dist/esm/{chunk-HSJTQLI2.mjs.map → chunk-YLQJBXUF.mjs.map} +0 -0
  495. /package/dist/esm/{publicKey-B3XRNhHO.d.mts → publicKey-lq5djCIY.d.mts} +0 -0
@@ -0,0 +1,589 @@
1
+ // Copyright © Aptos Foundation
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { AccountPublicKey, PublicKey } from "./publicKey";
5
+ import { Signature } from "./signature";
6
+ import { Deserializer, Serializable, Serializer } from "../../bcs";
7
+ import { Hex } from "../hex";
8
+ import { HexInput, EphemeralCertificateVariant, AnyPublicKeyVariant, SigningScheme, ZkpVariant } from "../../types";
9
+ import { EphemeralPublicKey, EphemeralSignature } from "./ephemeral";
10
+ import { bigIntToBytesLE, bytesToBigIntLE, hashStrToField, poseidonHash } from "./poseidon";
11
+ import { AuthenticationKey } from "../authenticationKey";
12
+ import { Proof } from "./proof";
13
+ import { Ed25519PublicKey, Ed25519Signature } from "./ed25519";
14
+ import { Groth16VerificationKeyResponse } from "../../types/keyless";
15
+
16
+ export const EPK_HORIZON_SECS = 10000000;
17
+ export const MAX_AUD_VAL_BYTES = 120;
18
+ export const MAX_UID_KEY_BYTES = 30;
19
+ export const MAX_UID_VAL_BYTES = 330;
20
+ export const MAX_ISS_VAL_BYTES = 120;
21
+ export const MAX_EXTRA_FIELD_BYTES = 350;
22
+ export const MAX_JWT_HEADER_B64_BYTES = 300;
23
+ export const MAX_COMMITED_EPK_BYTES = 93;
24
+
25
+ /**
26
+ * Represents the KeylessPublicKey public key
27
+ *
28
+ * KeylessPublicKey authentication key is represented in the SDK as `AnyPublicKey`.
29
+ */
30
+ export class KeylessPublicKey extends AccountPublicKey {
31
+ static readonly ID_COMMITMENT_LENGTH: number = 32;
32
+
33
+ /**
34
+ * The value of the 'iss' claim on the JWT which identifies the OIDC provider.
35
+ */
36
+ readonly iss: string;
37
+
38
+ /**
39
+ * A value representing a cryptographic commitment to a user identity.
40
+ *
41
+ * It is calculated from the aud, uidKey, uidVal, pepper.
42
+ */
43
+ readonly idCommitment: Uint8Array;
44
+
45
+ constructor(iss: string, idCommitment: HexInput) {
46
+ super();
47
+ const idcBytes = Hex.fromHexInput(idCommitment).toUint8Array();
48
+ if (idcBytes.length !== KeylessPublicKey.ID_COMMITMENT_LENGTH) {
49
+ throw new Error(`Id Commitment length in bytes should be ${KeylessPublicKey.ID_COMMITMENT_LENGTH}`);
50
+ }
51
+ this.iss = iss;
52
+ this.idCommitment = idcBytes;
53
+ }
54
+
55
+ /**
56
+ * Get the authentication key for the keyless public key
57
+ *
58
+ * @returns AuthenticationKey
59
+ */
60
+ authKey(): AuthenticationKey {
61
+ const serializer = new Serializer();
62
+ serializer.serializeU32AsUleb128(AnyPublicKeyVariant.Keyless);
63
+ serializer.serializeFixedBytes(this.bcsToBytes());
64
+ return AuthenticationKey.fromSchemeAndBytes({
65
+ scheme: SigningScheme.SingleKey,
66
+ input: serializer.toUint8Array(),
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Get the public key in bytes (Uint8Array).
72
+ *
73
+ * @returns Uint8Array representation of the public key
74
+ */
75
+ toUint8Array(): Uint8Array {
76
+ return this.bcsToBytes();
77
+ }
78
+
79
+ /**
80
+ * Get the public key as a hex string with the 0x prefix.
81
+ *
82
+ * @returns string representation of the public key
83
+ */
84
+ toString(): string {
85
+ return Hex.fromHexInput(this.toUint8Array()).toString();
86
+ }
87
+
88
+ /**
89
+ * Verifies a signed data with a public key
90
+ *
91
+ * @param args.message message
92
+ * @param args.signature The signature
93
+ * @returns true if the signature is valid
94
+ */
95
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
96
+ verifySignature(args: { message: HexInput; signature: KeylessSignature }): boolean {
97
+ throw new Error("Not yet implemented");
98
+ }
99
+
100
+ serialize(serializer: Serializer): void {
101
+ serializer.serializeStr(this.iss);
102
+ serializer.serializeBytes(this.idCommitment);
103
+ }
104
+
105
+ static deserialize(deserializer: Deserializer): KeylessPublicKey {
106
+ const iss = deserializer.deserializeStr();
107
+ const addressSeed = deserializer.deserializeBytes();
108
+ return new KeylessPublicKey(iss, addressSeed);
109
+ }
110
+
111
+ static load(deserializer: Deserializer): KeylessPublicKey {
112
+ const iss = deserializer.deserializeStr();
113
+ const addressSeed = deserializer.deserializeBytes();
114
+ return new KeylessPublicKey(iss, addressSeed);
115
+ }
116
+
117
+ static isPublicKey(publicKey: PublicKey): publicKey is KeylessPublicKey {
118
+ return publicKey instanceof KeylessPublicKey;
119
+ }
120
+
121
+ /**
122
+ * Creates a KeylessPublicKey from the JWT components plus pepper
123
+ *
124
+ * @param args.iss the iss of the identity
125
+ * @param args.uidKey the key to use to get the uidVal in the JWT token
126
+ * @param args.uidVal the value of the uidKey in the JWT token
127
+ * @param args.aud the client ID of the application
128
+ * @param args.pepper The pepper used to maintain privacy of the account
129
+ * @returns KeylessPublicKey
130
+ */
131
+ static create(args: {
132
+ iss: string;
133
+ uidKey: string;
134
+ uidVal: string;
135
+ aud: string;
136
+ pepper: HexInput;
137
+ }): KeylessPublicKey {
138
+ computeIdCommitment(args);
139
+ return new KeylessPublicKey(args.iss, computeIdCommitment(args));
140
+ }
141
+ }
142
+
143
+ function computeIdCommitment(args: { uidKey: string; uidVal: string; aud: string; pepper: HexInput }): Uint8Array {
144
+ const { uidKey, uidVal, aud, pepper } = args;
145
+
146
+ const fields = [
147
+ bytesToBigIntLE(Hex.fromHexInput(pepper).toUint8Array()),
148
+ hashStrToField(aud, MAX_AUD_VAL_BYTES),
149
+ hashStrToField(uidVal, MAX_UID_VAL_BYTES),
150
+ hashStrToField(uidKey, MAX_UID_KEY_BYTES),
151
+ ];
152
+
153
+ return bigIntToBytesLE(poseidonHash(fields), KeylessPublicKey.ID_COMMITMENT_LENGTH);
154
+ }
155
+
156
+ /**
157
+ * A signature of a message signed via Keyless Accounnt that uses proofs or the jwt token to authenticate.
158
+ */
159
+ export class KeylessSignature extends Signature {
160
+ /**
161
+ * The inner signature ZeroKnowledgeSigniature or OpenIdSignature
162
+ */
163
+ readonly ephemeralCertificate: EphemeralCertificate;
164
+
165
+ /**
166
+ * The jwt header in the token used to create the proof/signature. In json string representation.
167
+ */
168
+ readonly jwtHeader: string;
169
+
170
+ /**
171
+ * The expiry timestamp in seconds of the EphemeralKeyPair used to sign
172
+ */
173
+ readonly expiryDateSecs: number;
174
+
175
+ /**
176
+ * The ephemeral public key used to verify the signature
177
+ */
178
+ readonly ephemeralPublicKey: EphemeralPublicKey;
179
+
180
+ /**
181
+ * The signature resulting from signing with the private key of the EphemeralKeyPair
182
+ */
183
+ readonly ephemeralSignature: EphemeralSignature;
184
+
185
+ constructor(args: {
186
+ jwtHeader: string;
187
+ ephemeralCertificate: EphemeralCertificate;
188
+ expiryDateSecs: number;
189
+ ephemeralPublicKey: EphemeralPublicKey;
190
+ ephemeralSignature: EphemeralSignature;
191
+ }) {
192
+ super();
193
+ const { jwtHeader, ephemeralCertificate, expiryDateSecs, ephemeralPublicKey, ephemeralSignature } = args;
194
+ this.jwtHeader = jwtHeader;
195
+ this.ephemeralCertificate = ephemeralCertificate;
196
+ this.expiryDateSecs = expiryDateSecs;
197
+ this.ephemeralPublicKey = ephemeralPublicKey;
198
+ this.ephemeralSignature = ephemeralSignature;
199
+ }
200
+
201
+ /**
202
+ * Get the signature in bytes (Uint8Array).
203
+ *
204
+ * @returns Uint8Array representation of the signature
205
+ */
206
+ toUint8Array(): Uint8Array {
207
+ return this.bcsToBytes();
208
+ }
209
+
210
+ serialize(serializer: Serializer): void {
211
+ this.ephemeralCertificate.serialize(serializer);
212
+ serializer.serializeStr(this.jwtHeader);
213
+ serializer.serializeU64(this.expiryDateSecs);
214
+ this.ephemeralPublicKey.serialize(serializer);
215
+ this.ephemeralSignature.serialize(serializer);
216
+ }
217
+
218
+ static deserialize(deserializer: Deserializer): KeylessSignature {
219
+ const ephemeralCertificate = EphemeralCertificate.deserialize(deserializer);
220
+ const jwtHeader = deserializer.deserializeStr();
221
+ const expiryDateSecs = deserializer.deserializeU64();
222
+ const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);
223
+ const ephemeralSignature = EphemeralSignature.deserialize(deserializer);
224
+ return new KeylessSignature({
225
+ jwtHeader,
226
+ expiryDateSecs: Number(expiryDateSecs),
227
+ ephemeralCertificate,
228
+ ephemeralPublicKey,
229
+ ephemeralSignature,
230
+ });
231
+ }
232
+
233
+ static load(deserializer: Deserializer): KeylessSignature {
234
+ const ephemeralCertificate = EphemeralCertificate.deserialize(deserializer);
235
+ const jwtHeader = deserializer.deserializeStr();
236
+ const expiryDateSecs = deserializer.deserializeU64();
237
+ const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);
238
+ const ephemeralSignature = EphemeralSignature.deserialize(deserializer);
239
+ return new KeylessSignature({
240
+ jwtHeader,
241
+ expiryDateSecs: Number(expiryDateSecs),
242
+ ephemeralCertificate,
243
+ ephemeralPublicKey,
244
+ ephemeralSignature,
245
+ });
246
+ }
247
+
248
+ static getSimulationSignature(): KeylessSignature {
249
+ return new KeylessSignature({
250
+ jwtHeader: "{}",
251
+ ephemeralCertificate: new EphemeralCertificate(
252
+ new ZeroKnowledgeSig({
253
+ proof: new ZkProof(
254
+ new Groth16Zkp({ a: new Uint8Array(32), b: new Uint8Array(64), c: new Uint8Array(32) }),
255
+ ZkpVariant.Groth16,
256
+ ),
257
+ }),
258
+ EphemeralCertificateVariant.ZkProof,
259
+ ),
260
+ expiryDateSecs: 0,
261
+ ephemeralPublicKey: new EphemeralPublicKey(new Ed25519PublicKey(new Uint8Array(32))),
262
+ ephemeralSignature: new EphemeralSignature(new Ed25519Signature(new Uint8Array(64))),
263
+ });
264
+ }
265
+
266
+ static isSignature(signature: Signature): signature is KeylessSignature {
267
+ return signature instanceof KeylessSignature;
268
+ }
269
+ }
270
+
271
+ /**
272
+ * A container for a signature that is a ZeroKnowledgeSig. Can be expanded to support OpenIdSignature.
273
+ */
274
+ export class EphemeralCertificate extends Signature {
275
+ public readonly signature: Signature;
276
+
277
+ /**
278
+ * Index of the underlying enum variant
279
+ */
280
+ private readonly variant: EphemeralCertificateVariant;
281
+
282
+ constructor(signature: Signature, variant: EphemeralCertificateVariant) {
283
+ super();
284
+ this.signature = signature;
285
+ this.variant = variant;
286
+ }
287
+
288
+ /**
289
+ * Get the public key in bytes (Uint8Array).
290
+ *
291
+ * @returns Uint8Array representation of the public key
292
+ */
293
+ toUint8Array(): Uint8Array {
294
+ return this.signature.toUint8Array();
295
+ }
296
+
297
+ serialize(serializer: Serializer): void {
298
+ serializer.serializeU32AsUleb128(this.variant);
299
+ this.signature.serialize(serializer);
300
+ }
301
+
302
+ static deserialize(deserializer: Deserializer): EphemeralCertificate {
303
+ const variant = deserializer.deserializeUleb128AsU32();
304
+ switch (variant) {
305
+ case EphemeralCertificateVariant.ZkProof:
306
+ return new EphemeralCertificate(ZeroKnowledgeSig.deserialize(deserializer), variant);
307
+ default:
308
+ throw new Error(`Unknown variant index for EphemeralCertificate: ${variant}`);
309
+ }
310
+ }
311
+ }
312
+
313
+ class G1Bytes extends Serializable {
314
+ data: Uint8Array;
315
+
316
+ constructor(data: HexInput) {
317
+ super();
318
+ this.data = Hex.fromHexInput(data).toUint8Array();
319
+ if (this.data.length !== 32) {
320
+ throw new Error("Input needs to be 32 bytes");
321
+ }
322
+ }
323
+
324
+ serialize(serializer: Serializer): void {
325
+ serializer.serializeFixedBytes(this.data);
326
+ }
327
+
328
+ static deserialize(deserializer: Deserializer): G1Bytes {
329
+ const bytes = deserializer.deserializeFixedBytes(32);
330
+ return new G1Bytes(bytes);
331
+ }
332
+ }
333
+
334
+ class G2Bytes extends Serializable {
335
+ data: Uint8Array;
336
+
337
+ constructor(data: HexInput) {
338
+ super();
339
+ this.data = Hex.fromHexInput(data).toUint8Array();
340
+ if (this.data.length !== 64) {
341
+ throw new Error("Input needs to be 64 bytes");
342
+ }
343
+ }
344
+
345
+ serialize(serializer: Serializer): void {
346
+ serializer.serializeFixedBytes(this.data);
347
+ }
348
+
349
+ static deserialize(deserializer: Deserializer): G2Bytes {
350
+ const bytes = deserializer.deserializeFixedBytes(64);
351
+ return new G2Bytes(bytes);
352
+ }
353
+ }
354
+
355
+ /**
356
+ * A representation of a Groth16 proof. The points are the compressed serialization of affine reprentation of the proof.
357
+ */
358
+ export class Groth16Zkp extends Proof {
359
+ /**
360
+ * The bytes of G1 proof point a
361
+ */
362
+ a: G1Bytes;
363
+
364
+ /**
365
+ * The bytes of G2 proof point b
366
+ */
367
+ b: G2Bytes;
368
+
369
+ /**
370
+ * The bytes of G1 proof point c
371
+ */
372
+ c: G1Bytes;
373
+
374
+ constructor(args: { a: HexInput; b: HexInput; c: HexInput }) {
375
+ super();
376
+ const { a, b, c } = args;
377
+ this.a = new G1Bytes(a)
378
+ this.b = new G2Bytes(b)
379
+ this.c = new G1Bytes(c)
380
+ }
381
+
382
+ serialize(serializer: Serializer): void {
383
+ this.a.serialize(serializer);
384
+ this.b.serialize(serializer);
385
+ this.c.serialize(serializer);
386
+ }
387
+
388
+ static deserialize(deserializer: Deserializer): Groth16Zkp {
389
+ const a = G1Bytes.deserialize(deserializer).bcsToBytes();
390
+ const b = G2Bytes.deserialize(deserializer).bcsToBytes();
391
+ const c = G1Bytes.deserialize(deserializer).bcsToBytes();
392
+ return new Groth16Zkp({ a, b, c });
393
+ }
394
+ }
395
+
396
+ /**
397
+ * A container for a different zero knowledge proof types
398
+ */
399
+ export class ZkProof extends Serializable {
400
+ public readonly proof: Proof;
401
+
402
+ /**
403
+ * Index of the underlying enum variant
404
+ */
405
+ private readonly variant: ZkpVariant;
406
+
407
+ constructor(proof: Proof, variant: ZkpVariant) {
408
+ super();
409
+ this.proof = proof;
410
+ this.variant = variant;
411
+ }
412
+
413
+ serialize(serializer: Serializer): void {
414
+ serializer.serializeU32AsUleb128(this.variant);
415
+ this.proof.serialize(serializer);
416
+ }
417
+
418
+ static deserialize(deserializer: Deserializer): ZkProof {
419
+ const variant = deserializer.deserializeUleb128AsU32();
420
+ switch (variant) {
421
+ case ZkpVariant.Groth16:
422
+ return new ZkProof(Groth16Zkp.deserialize(deserializer), variant);
423
+ default:
424
+ throw new Error(`Unknown variant index for ZkProof: ${variant}`);
425
+ }
426
+ }
427
+ }
428
+
429
+ /**
430
+ * The signature representation of a proof
431
+ */
432
+ export class ZeroKnowledgeSig extends Signature {
433
+ /**
434
+ * The proof
435
+ */
436
+ readonly proof: ZkProof;
437
+
438
+ /**
439
+ * The max lifespan of the proof
440
+ */
441
+ readonly expHorizonSecs: bigint;
442
+
443
+ /**
444
+ * A key value pair on the JWT token that can be specified on the signature which would reveal the value on chain.
445
+ * Can be used to assert identity or other attributes.
446
+ */
447
+ readonly extraField?: string;
448
+
449
+ /**
450
+ * The 'aud' value of the recovery service which is set when recovering an account.
451
+ */
452
+ readonly overrideAudVal?: string;
453
+
454
+ /**
455
+ * The training wheels signature
456
+ */
457
+ readonly trainingWheelsSignature?: EphemeralSignature;
458
+
459
+ constructor(args: {
460
+ proof: ZkProof;
461
+ expHorizonSecs?: bigint;
462
+ extraField?: string;
463
+ overrideAudVal?: string;
464
+ trainingWheelsSignature?: EphemeralSignature;
465
+ }) {
466
+ super();
467
+ const {
468
+ proof,
469
+ expHorizonSecs = BigInt(EPK_HORIZON_SECS),
470
+ trainingWheelsSignature,
471
+ extraField,
472
+ overrideAudVal,
473
+ } = args;
474
+ this.proof = proof;
475
+ this.expHorizonSecs = expHorizonSecs;
476
+ this.trainingWheelsSignature = trainingWheelsSignature;
477
+ this.extraField = extraField;
478
+ this.overrideAudVal = overrideAudVal;
479
+ }
480
+
481
+ /**
482
+ * Get the signature in bytes (Uint8Array).
483
+ *
484
+ * @returns Uint8Array representation of the signature
485
+ */
486
+ toUint8Array(): Uint8Array {
487
+ return this.bcsToBytes();
488
+ }
489
+
490
+ /**
491
+ * Return a ZeroKnowledgeSig object from its bcs serialization in bytes.
492
+ *
493
+ * @returns ZeroKnowledgeSig
494
+ */
495
+ static fromBytes(bytes: Uint8Array): ZeroKnowledgeSig {
496
+ return ZeroKnowledgeSig.deserialize(new Deserializer(bytes));
497
+ }
498
+
499
+ serialize(serializer: Serializer): void {
500
+ this.proof.serialize(serializer);
501
+ serializer.serializeU64(this.expHorizonSecs);
502
+ serializer.serializeOptionStr(this.extraField);
503
+ serializer.serializeOptionStr(this.overrideAudVal);
504
+ serializer.serializeOption(this.trainingWheelsSignature);
505
+ }
506
+
507
+ static deserialize(deserializer: Deserializer): ZeroKnowledgeSig {
508
+ const proof = ZkProof.deserialize(deserializer);
509
+ const expHorizonSecs = deserializer.deserializeU64();
510
+ const extraField = deserializer.deserializeOptionStr();
511
+ const overrideAudVal = deserializer.deserializeOptionStr();
512
+ const trainingWheelsSignature = deserializer.deserializeOption(EphemeralSignature);
513
+ return new ZeroKnowledgeSig({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });
514
+ }
515
+
516
+ static load(deserializer: Deserializer): ZeroKnowledgeSig {
517
+ const proof = ZkProof.deserialize(deserializer);
518
+ const expHorizonSecs = deserializer.deserializeU64();
519
+ const extraField = deserializer.deserializeOptionStr();
520
+ const overrideAudVal = deserializer.deserializeOptionStr();
521
+ const trainingWheelsSignature = deserializer.deserializeOption(EphemeralSignature);
522
+ return new ZeroKnowledgeSig({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });
523
+ }
524
+ }
525
+
526
+ export class KeylessConfiguration {
527
+ readonly verficationKey: Groth16VerificationKey;
528
+
529
+ readonly maxExpHorizonSecs: number;
530
+
531
+ constructor(verficationKey: Groth16VerificationKey, maxExpHorizonSecs: number) {
532
+ this.verficationKey = verficationKey;
533
+ this.maxExpHorizonSecs = maxExpHorizonSecs;
534
+ }
535
+
536
+ static create(res: Groth16VerificationKeyResponse, maxExpHorizonSecs: number): KeylessConfiguration {
537
+ return new KeylessConfiguration(new Groth16VerificationKey({
538
+ alphaG1: res.alpha_g1,
539
+ betaG2: res.beta_g2,
540
+ deltaG2: res.delta_g2,
541
+ gammaAbcG1: res.gamma_abc_g1,
542
+ gammaG2: res.gamma_g2
543
+ }), maxExpHorizonSecs)
544
+ }
545
+
546
+ }
547
+
548
+ class Groth16VerificationKey {
549
+ readonly alphaG1: G1Bytes;
550
+
551
+ readonly betaG2: G2Bytes;
552
+
553
+ readonly deltaG2: G2Bytes;
554
+
555
+ readonly gammaAbcG1: G1Bytes[];
556
+
557
+ readonly gammaG2: G2Bytes;
558
+
559
+ constructor(args: {
560
+ alphaG1: HexInput;
561
+ betaG2: HexInput;
562
+ deltaG2: HexInput;
563
+ gammaAbcG1: [HexInput, HexInput];
564
+ gammaG2: HexInput;
565
+ }) {
566
+ const {
567
+ alphaG1,
568
+ betaG2,
569
+ deltaG2,
570
+ gammaAbcG1,
571
+ gammaG2,
572
+ } = args;
573
+ this.alphaG1 = new G1Bytes(alphaG1)
574
+ this.betaG2 = new G2Bytes(betaG2)
575
+ this.deltaG2 = new G2Bytes(deltaG2)
576
+ this.gammaAbcG1 = [new G1Bytes(gammaAbcG1[0]), new G1Bytes(gammaAbcG1[1])]
577
+ this.gammaG2 =new G2Bytes(gammaG2)
578
+ }
579
+
580
+ static fromGroth16VerificationKeyResponse(res: Groth16VerificationKeyResponse): Groth16VerificationKey {
581
+ return new Groth16VerificationKey({
582
+ alphaG1: res.alpha_g1,
583
+ betaG2: res.beta_g2,
584
+ deltaG2: res.delta_g2,
585
+ gammaAbcG1: res.gamma_abc_g1,
586
+ gammaG2: res.gamma_g2
587
+ })
588
+ }
589
+ }