@aptos-labs/ts-sdk 1.14.0-zeta.0 → 1.14.0-zeta.2

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 (482) hide show
  1. package/dist/common/{accountAddress-NPQwRmxn.d.ts → accountAddress-u9wEan9p.d.ts} +32 -4
  2. package/dist/common/chunk-QRI7EC4T.js +24 -0
  3. package/dist/common/chunk-QRI7EC4T.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +1 -1
  5. package/dist/common/cli/index.js +245 -1
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +290 -171
  8. package/dist/common/index.js +11786 -374
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/account/Account.mjs +55 -1
  11. package/dist/esm/account/Ed25519Account.mjs +53 -1
  12. package/dist/esm/account/EphemeralKeyPair.d.mts +38 -5
  13. package/dist/esm/account/EphemeralKeyPair.mjs +36 -1
  14. package/dist/esm/account/KeylessAccount.d.mts +75 -37
  15. package/dist/esm/account/KeylessAccount.mjs +56 -1
  16. package/dist/esm/account/MultiKeyAccount.d.mts +4 -0
  17. package/dist/esm/account/MultiKeyAccount.mjs +55 -1
  18. package/dist/esm/account/SingleKeyAccount.mjs +53 -1
  19. package/dist/esm/account/index.d.mts +2 -1
  20. package/dist/esm/account/index.mjs +76 -1
  21. package/dist/esm/api/account.mjs +76 -1
  22. package/dist/esm/api/ans.mjs +87 -1
  23. package/dist/esm/api/aptos.d.mts +1 -0
  24. package/dist/esm/api/aptos.mjs +116 -1
  25. package/dist/esm/api/aptosConfig.mjs +9 -1
  26. package/dist/esm/api/coin.mjs +86 -1
  27. package/dist/esm/api/digitalAsset.mjs +87 -1
  28. package/dist/esm/api/event.mjs +54 -1
  29. package/dist/esm/api/faucet.mjs +53 -1
  30. package/dist/esm/api/fungibleAsset.mjs +87 -1
  31. package/dist/esm/api/general.mjs +84 -1
  32. package/dist/esm/api/index.d.mts +1 -0
  33. package/dist/esm/api/index.mjs +120 -1
  34. package/dist/esm/api/keyless.d.mts +19 -5
  35. package/dist/esm/api/keyless.mjs +70 -1
  36. package/dist/esm/api/staking.mjs +54 -1
  37. package/dist/esm/api/transaction.mjs +94 -1
  38. package/dist/esm/api/transactionSubmission/build.mjs +85 -1
  39. package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
  40. package/dist/esm/api/transactionSubmission/management.mjs +89 -1
  41. package/dist/esm/api/transactionSubmission/sign.mjs +109 -1
  42. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  43. package/dist/esm/api/transactionSubmission/simulate.mjs +86 -1
  44. package/dist/esm/api/transactionSubmission/submit.mjs +86 -1
  45. package/dist/esm/api/utils.mjs +34 -1
  46. package/dist/esm/bcs/consts.mjs +17 -1
  47. package/dist/esm/bcs/deserializer.d.mts +26 -0
  48. package/dist/esm/bcs/deserializer.mjs +8 -1
  49. package/dist/esm/bcs/index.mjs +57 -1
  50. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
  51. package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
  52. package/dist/esm/bcs/serializable/movePrimitives.mjs +25 -1
  53. package/dist/esm/bcs/serializable/moveStructs.mjs +18 -1
  54. package/dist/esm/bcs/serializer.mjs +18 -1
  55. package/dist/esm/chunk-2JOCR2VL.mjs +32 -0
  56. package/dist/esm/chunk-2JOCR2VL.mjs.map +1 -0
  57. package/dist/esm/chunk-2OQW7BMN.mjs +129 -0
  58. package/dist/esm/{chunk-7WJTKYRG.mjs.map → chunk-2OQW7BMN.mjs.map} +1 -1
  59. package/dist/esm/chunk-2TJJWII2.mjs +23 -0
  60. package/dist/esm/{chunk-MGOHPDX4.mjs.map → chunk-2TJJWII2.mjs.map} +1 -1
  61. package/dist/esm/chunk-2ZEGJU43.mjs +252 -0
  62. package/dist/esm/{chunk-KWNBC5MF.mjs.map → chunk-2ZEGJU43.mjs.map} +1 -1
  63. package/dist/esm/chunk-4OYYOYSO.mjs +336 -0
  64. package/dist/esm/chunk-4OYYOYSO.mjs.map +1 -0
  65. package/dist/esm/{chunk-S4SEFF4K.mjs → chunk-4PJ5FYGQ.mjs} +302 -27
  66. package/dist/esm/{chunk-S4SEFF4K.mjs.map → chunk-4PJ5FYGQ.mjs.map} +1 -1
  67. package/dist/esm/chunk-55NODGHC.mjs +135 -0
  68. package/dist/esm/{chunk-G4XSNSOT.mjs.map → chunk-55NODGHC.mjs.map} +1 -1
  69. package/dist/esm/chunk-6LRQSBRH.mjs +130 -0
  70. package/dist/esm/{chunk-C5UVSNZW.mjs.map → chunk-6LRQSBRH.mjs.map} +1 -1
  71. package/dist/esm/chunk-6MSZMIFW.mjs +23 -0
  72. package/dist/esm/{chunk-MWUJCP27.mjs.map → chunk-6MSZMIFW.mjs.map} +1 -1
  73. package/dist/esm/chunk-76TSTAU4.mjs +120 -0
  74. package/dist/esm/{chunk-FLYEALDB.mjs.map → chunk-76TSTAU4.mjs.map} +1 -1
  75. package/dist/esm/chunk-7FO3S6IZ.mjs +324 -0
  76. package/dist/esm/{chunk-3VGX3TXH.mjs.map → chunk-7FO3S6IZ.mjs.map} +1 -1
  77. package/dist/esm/chunk-7FUHWL6A.mjs +42 -0
  78. package/dist/esm/{chunk-SRPTQ4VV.mjs.map → chunk-7FUHWL6A.mjs.map} +1 -1
  79. package/dist/esm/chunk-7IDBB4J4.mjs +33 -0
  80. package/dist/esm/{chunk-PINF6ZWP.mjs.map → chunk-7IDBB4J4.mjs.map} +1 -1
  81. package/dist/esm/chunk-7JRMOHBP.mjs +247 -0
  82. package/dist/esm/chunk-7JRMOHBP.mjs.map +1 -0
  83. package/dist/esm/chunk-7REUIYF4.mjs +63 -0
  84. package/dist/esm/chunk-7REUIYF4.mjs.map +1 -0
  85. package/dist/esm/chunk-AC3OGAL6.mjs +87 -0
  86. package/dist/esm/{chunk-U6Z4FNB7.mjs.map → chunk-AC3OGAL6.mjs.map} +1 -1
  87. package/dist/esm/chunk-AR7X6GWQ.mjs +356 -0
  88. package/dist/esm/{chunk-EB7AI4B4.mjs.map → chunk-AR7X6GWQ.mjs.map} +1 -1
  89. package/dist/esm/chunk-ASF2VWOX.mjs +142 -0
  90. package/dist/esm/{chunk-O34EOOVF.mjs.map → chunk-ASF2VWOX.mjs.map} +1 -1
  91. package/dist/esm/chunk-ATVFVXR6.mjs +43 -0
  92. package/dist/esm/{chunk-IXYXFDJZ.mjs.map → chunk-ATVFVXR6.mjs.map} +1 -1
  93. package/dist/esm/chunk-B5S6DDUD.mjs +120 -0
  94. package/dist/esm/chunk-B5S6DDUD.mjs.map +1 -0
  95. package/dist/esm/chunk-BXMHDQHW.mjs +512 -0
  96. package/dist/esm/{chunk-DLTC6PJP.mjs.map → chunk-BXMHDQHW.mjs.map} +1 -1
  97. package/dist/esm/chunk-CC4DQ6NH.mjs +19 -0
  98. package/dist/esm/{chunk-H3TFQ7K4.mjs.map → chunk-CC4DQ6NH.mjs.map} +1 -1
  99. package/dist/esm/chunk-CMNJG4NN.mjs +345 -0
  100. package/dist/esm/{chunk-T23OVRNF.mjs.map → chunk-CMNJG4NN.mjs.map} +1 -1
  101. package/dist/esm/chunk-CTJSZT5V.mjs +87 -0
  102. package/dist/esm/{chunk-J7J7ZTBF.mjs.map → chunk-CTJSZT5V.mjs.map} +1 -1
  103. package/dist/esm/chunk-CX3NAVRD.mjs +205 -0
  104. package/dist/esm/chunk-CX3NAVRD.mjs.map +1 -0
  105. package/dist/esm/chunk-CXUGZXED.mjs +307 -0
  106. package/dist/esm/{chunk-EKABTHUZ.mjs.map → chunk-CXUGZXED.mjs.map} +1 -1
  107. package/dist/esm/chunk-D2BVBXWO.mjs +7 -0
  108. package/dist/esm/{chunk-7PSX4LCV.mjs.map → chunk-D2BVBXWO.mjs.map} +1 -1
  109. package/dist/esm/chunk-DGV7DYU4.mjs +413 -0
  110. package/dist/esm/{chunk-7Q2NVO5M.mjs.map → chunk-DGV7DYU4.mjs.map} +1 -1
  111. package/dist/esm/chunk-DIYZRGR6.mjs +242 -0
  112. package/dist/esm/{chunk-UVOU6BW2.mjs.map → chunk-DIYZRGR6.mjs.map} +1 -1
  113. package/dist/esm/chunk-DNPMS2OF.mjs +236 -0
  114. package/dist/esm/{chunk-PFFAQZHT.mjs.map → chunk-DNPMS2OF.mjs.map} +1 -1
  115. package/dist/esm/chunk-DVPQGCFT.mjs +74 -0
  116. package/dist/esm/{chunk-RBPGL6YB.mjs.map → chunk-DVPQGCFT.mjs.map} +1 -1
  117. package/dist/esm/chunk-EYHRMZPO.mjs +34 -0
  118. package/dist/esm/{chunk-AH44UPM4.mjs.map → chunk-EYHRMZPO.mjs.map} +1 -1
  119. package/dist/esm/chunk-F2ZWA7B7.mjs +412 -0
  120. package/dist/esm/{chunk-RTSEMQCK.mjs.map → chunk-F2ZWA7B7.mjs.map} +1 -1
  121. package/dist/esm/chunk-FDWJNY4U.mjs +22 -0
  122. package/dist/esm/{chunk-STYDBDYL.mjs.map → chunk-FDWJNY4U.mjs.map} +1 -1
  123. package/dist/esm/chunk-FF4JPDKD.mjs +315 -0
  124. package/dist/esm/{chunk-5DW2AJPI.mjs.map → chunk-FF4JPDKD.mjs.map} +1 -1
  125. package/dist/esm/chunk-FQQW55X7.mjs +288 -0
  126. package/dist/esm/{chunk-TVRJ3M7B.mjs.map → chunk-FQQW55X7.mjs.map} +1 -1
  127. package/dist/esm/chunk-FXKSE3ZP.mjs +25 -0
  128. package/dist/esm/{chunk-COW5IGYC.mjs.map → chunk-FXKSE3ZP.mjs.map} +1 -1
  129. package/dist/esm/chunk-GBEVD2VM.mjs +99 -0
  130. package/dist/esm/chunk-GBEVD2VM.mjs.map +1 -0
  131. package/dist/esm/chunk-GGMTQAQP.mjs +11 -0
  132. package/dist/esm/{chunk-3JPVQHOR.mjs.map → chunk-GGMTQAQP.mjs.map} +1 -1
  133. package/dist/esm/chunk-GSVQ6EUD.mjs +649 -0
  134. package/dist/esm/{chunk-WOLIXKOK.mjs.map → chunk-GSVQ6EUD.mjs.map} +1 -1
  135. package/dist/esm/chunk-HBNSRCZN.mjs +100 -0
  136. package/dist/esm/{chunk-FKSACFCB.mjs.map → chunk-HBNSRCZN.mjs.map} +1 -1
  137. package/dist/esm/chunk-IC56GQFJ.mjs +127 -0
  138. package/dist/esm/{chunk-XN4SQWI5.mjs.map → chunk-IC56GQFJ.mjs.map} +1 -1
  139. package/dist/esm/chunk-IHNPN5CQ.mjs +256 -0
  140. package/dist/esm/chunk-IHNPN5CQ.mjs.map +1 -0
  141. package/dist/esm/chunk-JHDHNGJ3.mjs +126 -0
  142. package/dist/esm/{chunk-JVKMQ64G.mjs.map → chunk-JHDHNGJ3.mjs.map} +1 -1
  143. package/dist/esm/chunk-JL2JHVS4.mjs +49 -0
  144. package/dist/esm/{chunk-ZNEBMSNC.mjs.map → chunk-JL2JHVS4.mjs.map} +1 -1
  145. package/dist/esm/chunk-JV3GSIJW.mjs +268 -0
  146. package/dist/esm/chunk-JV3GSIJW.mjs.map +1 -0
  147. package/dist/esm/chunk-KK2BSALW.mjs +32 -0
  148. package/dist/esm/{chunk-3FVRXELT.mjs.map → chunk-KK2BSALW.mjs.map} +1 -1
  149. package/dist/esm/chunk-KMXSRHJ6.mjs +93 -0
  150. package/dist/esm/{chunk-NMECYE3D.mjs.map → chunk-KMXSRHJ6.mjs.map} +1 -1
  151. package/dist/esm/chunk-KVSQ57HU.mjs +45 -0
  152. package/dist/esm/{chunk-NNW6HWIO.mjs.map → chunk-KVSQ57HU.mjs.map} +1 -1
  153. package/dist/esm/chunk-LI2QV6RU.mjs +129 -0
  154. package/dist/esm/chunk-LI2QV6RU.mjs.map +1 -0
  155. package/dist/esm/chunk-LLLQJWRZ.mjs +35 -0
  156. package/dist/esm/{chunk-QNHDS64I.mjs.map → chunk-LLLQJWRZ.mjs.map} +1 -1
  157. package/dist/esm/chunk-LYK4TQZO.mjs +70 -0
  158. package/dist/esm/{chunk-OZC3FCJP.mjs.map → chunk-LYK4TQZO.mjs.map} +1 -1
  159. package/dist/esm/chunk-LYMY63SO.mjs +124 -0
  160. package/dist/esm/{chunk-UGIJHLL3.mjs.map → chunk-LYMY63SO.mjs.map} +1 -1
  161. package/dist/esm/chunk-MZZLEY6O.mjs +92 -0
  162. package/dist/esm/{chunk-NKCZ4KGO.mjs.map → chunk-MZZLEY6O.mjs.map} +1 -1
  163. package/dist/esm/chunk-N4WKFNQ6.mjs +156 -0
  164. package/dist/esm/{chunk-LDQ6JFEF.mjs.map → chunk-N4WKFNQ6.mjs.map} +1 -1
  165. package/dist/esm/chunk-NFJCQRVK.mjs +37 -0
  166. package/dist/esm/{chunk-YE5B2S5L.mjs.map → chunk-NFJCQRVK.mjs.map} +1 -1
  167. package/dist/esm/chunk-NMKCJNQM.mjs +20 -0
  168. package/dist/esm/{chunk-TJDC5PWD.mjs.map → chunk-NMKCJNQM.mjs.map} +1 -1
  169. package/dist/esm/chunk-NW45SCPY.mjs +36 -0
  170. package/dist/esm/{chunk-V7P6MLSY.mjs.map → chunk-NW45SCPY.mjs.map} +1 -1
  171. package/dist/esm/chunk-NXFO2W4G.mjs +84 -0
  172. package/dist/esm/{chunk-D22EMNIY.mjs.map → chunk-NXFO2W4G.mjs.map} +1 -1
  173. package/dist/esm/chunk-NYL77J4X.mjs +97 -0
  174. package/dist/esm/{chunk-43WARVT3.mjs.map → chunk-NYL77J4X.mjs.map} +1 -1
  175. package/dist/esm/chunk-O6PSHSN3.mjs +53 -0
  176. package/dist/esm/{chunk-6LOTZ4GY.mjs.map → chunk-O6PSHSN3.mjs.map} +1 -1
  177. package/dist/esm/chunk-OR7TEZ25.mjs +16 -0
  178. package/dist/esm/chunk-PCLNX6FS.mjs +17 -0
  179. package/dist/esm/{chunk-6FBKUTGF.mjs.map → chunk-PCLNX6FS.mjs.map} +1 -1
  180. package/dist/esm/chunk-PIMQHG2J.mjs +49 -0
  181. package/dist/esm/{chunk-C3L4ETUF.mjs.map → chunk-PIMQHG2J.mjs.map} +1 -1
  182. package/dist/esm/chunk-PU5AFUX3.mjs +52 -0
  183. package/dist/esm/chunk-PU5AFUX3.mjs.map +1 -0
  184. package/dist/esm/chunk-PYLOAMR2.mjs +29 -0
  185. package/dist/esm/{chunk-HGZGTBA4.mjs.map → chunk-PYLOAMR2.mjs.map} +1 -1
  186. package/dist/esm/chunk-QBBTUC66.mjs +15 -0
  187. package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-QBBTUC66.mjs.map} +1 -1
  188. package/dist/esm/chunk-QFOG4LIN.mjs +319 -0
  189. package/dist/esm/{chunk-RJ4PSGZ4.mjs.map → chunk-QFOG4LIN.mjs.map} +1 -1
  190. package/dist/esm/chunk-QMM2KL6C.mjs +12 -0
  191. package/dist/esm/{chunk-FBPNHF54.mjs.map → chunk-QMM2KL6C.mjs.map} +1 -1
  192. package/dist/esm/chunk-RCQMWXEW.mjs +35 -0
  193. package/dist/esm/{chunk-TXMPXZBG.mjs.map → chunk-RCQMWXEW.mjs.map} +1 -1
  194. package/dist/esm/chunk-RX4VG2AT.mjs +314 -0
  195. package/dist/esm/chunk-RX4VG2AT.mjs.map +1 -0
  196. package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
  197. package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
  198. package/dist/esm/chunk-SIJELMDP.mjs +29 -0
  199. package/dist/esm/{chunk-6EMN3BOV.mjs.map → chunk-SIJELMDP.mjs.map} +1 -1
  200. package/dist/esm/chunk-SS3NUM5L.mjs +94 -0
  201. package/dist/esm/{chunk-L54P6EGN.mjs.map → chunk-SS3NUM5L.mjs.map} +1 -1
  202. package/dist/esm/chunk-ST4QXIMI.mjs +37 -0
  203. package/dist/esm/{chunk-XMFPKHB5.mjs.map → chunk-ST4QXIMI.mjs.map} +1 -1
  204. package/dist/esm/chunk-TBHU6ZW6.mjs +215 -0
  205. package/dist/esm/{chunk-QHVZL3LZ.mjs.map → chunk-TBHU6ZW6.mjs.map} +1 -1
  206. package/dist/esm/chunk-TLNHRJB2.mjs +155 -0
  207. package/dist/esm/{chunk-H6LYW7HG.mjs.map → chunk-TLNHRJB2.mjs.map} +1 -1
  208. package/dist/esm/chunk-U3IUCR2G.mjs +54 -0
  209. package/dist/esm/{chunk-52ECIIIH.mjs.map → chunk-U3IUCR2G.mjs.map} +1 -1
  210. package/dist/esm/chunk-U7QBZ6PP.mjs +400 -0
  211. package/dist/esm/{chunk-ZM436N3W.mjs.map → chunk-U7QBZ6PP.mjs.map} +1 -1
  212. package/dist/esm/chunk-UEBBLQJ5.mjs +94 -0
  213. package/dist/esm/{chunk-7STYQ5ZE.mjs.map → chunk-UEBBLQJ5.mjs.map} +1 -1
  214. package/dist/esm/chunk-UKU6A2W2.mjs +232 -0
  215. package/dist/esm/{chunk-HXSW6X7K.mjs.map → chunk-UKU6A2W2.mjs.map} +1 -1
  216. package/dist/esm/chunk-UX5NSZEN.mjs +134 -0
  217. package/dist/esm/{chunk-WVIPPU2C.mjs.map → chunk-UX5NSZEN.mjs.map} +1 -1
  218. package/dist/esm/chunk-VDJBDX3A.mjs +79 -0
  219. package/dist/esm/{chunk-25N7RLBW.mjs.map → chunk-VDJBDX3A.mjs.map} +1 -1
  220. package/dist/esm/chunk-VJP2VWMF.mjs +58 -0
  221. package/dist/esm/{chunk-56NB52W6.mjs.map → chunk-VJP2VWMF.mjs.map} +1 -1
  222. package/dist/esm/chunk-VKJQORON.mjs +93 -0
  223. package/dist/esm/{chunk-3OELNIC6.mjs.map → chunk-VKJQORON.mjs.map} +1 -1
  224. package/dist/esm/chunk-VPWUODU4.mjs +51 -0
  225. package/dist/esm/{chunk-NNIHTVLA.mjs.map → chunk-VPWUODU4.mjs.map} +1 -1
  226. package/dist/esm/chunk-VZQXLVEP.mjs +197 -0
  227. package/dist/esm/{chunk-VJJN3GFD.mjs.map → chunk-VZQXLVEP.mjs.map} +1 -1
  228. package/dist/esm/chunk-W76MGKZB.mjs +33 -0
  229. package/dist/esm/{chunk-CLVAGDXO.mjs.map → chunk-W76MGKZB.mjs.map} +1 -1
  230. package/dist/esm/chunk-WDRH2URB.mjs +91 -0
  231. package/dist/esm/{chunk-65UZZNN2.mjs.map → chunk-WDRH2URB.mjs.map} +1 -1
  232. package/dist/esm/chunk-WHBWEN6N.mjs +206 -0
  233. package/dist/esm/{chunk-NGNETNK2.mjs.map → chunk-WHBWEN6N.mjs.map} +1 -1
  234. package/dist/esm/chunk-WK5ZSNE2.mjs +173 -0
  235. package/dist/esm/{chunk-6RBUXB5I.mjs.map → chunk-WK5ZSNE2.mjs.map} +1 -1
  236. package/dist/esm/chunk-WLTBF4DF.mjs +22 -0
  237. package/dist/esm/chunk-WLTBF4DF.mjs.map +1 -0
  238. package/dist/esm/chunk-WVGO4D7K.mjs +254 -0
  239. package/dist/esm/{chunk-OLGSIKFB.mjs.map → chunk-WVGO4D7K.mjs.map} +1 -1
  240. package/dist/esm/chunk-XANFAUBD.mjs +44 -0
  241. package/dist/esm/{chunk-NC5HHEEM.mjs.map → chunk-XANFAUBD.mjs.map} +1 -1
  242. package/dist/esm/chunk-Y2LV3S5W.mjs +410 -0
  243. package/dist/esm/{chunk-6SHLLRJA.mjs.map → chunk-Y2LV3S5W.mjs.map} +1 -1
  244. package/dist/esm/chunk-YV7M4CFP.mjs +137 -0
  245. package/dist/esm/{chunk-AOCNYMMX.mjs.map → chunk-YV7M4CFP.mjs.map} +1 -1
  246. package/dist/esm/chunk-YYOPNUX5.mjs +41 -0
  247. package/dist/esm/chunk-YYOPNUX5.mjs.map +1 -0
  248. package/dist/esm/chunk-ZAHJ7KXB.mjs +81 -0
  249. package/dist/esm/{chunk-Z5KKUXYI.mjs.map → chunk-ZAHJ7KXB.mjs.map} +1 -1
  250. package/dist/esm/chunk-ZMFKQUHL.mjs +117 -0
  251. package/dist/esm/{chunk-TICM455H.mjs.map → chunk-ZMFKQUHL.mjs.map} +1 -1
  252. package/dist/esm/cli/index.mjs +12 -1
  253. package/dist/esm/cli/localNode.mjs +8 -1
  254. package/dist/esm/cli/move.mjs +7 -1
  255. package/dist/esm/client/core.mjs +27 -1
  256. package/dist/esm/client/get.mjs +32 -1
  257. package/dist/esm/client/index.mjs +55 -1
  258. package/dist/esm/client/post.mjs +36 -1
  259. package/dist/esm/client/types.d.mts +5 -1
  260. package/dist/esm/client/types.mjs +7 -1
  261. package/dist/esm/core/account/index.mjs +19 -1
  262. package/dist/esm/core/account/utils/address.mjs +18 -1
  263. package/dist/esm/core/account/utils/index.mjs +19 -1
  264. package/dist/esm/core/accountAddress.mjs +15 -1
  265. package/dist/esm/core/authenticationKey.mjs +14 -1
  266. package/dist/esm/core/common.mjs +7 -1
  267. package/dist/esm/core/crypto/ed25519.d.mts +10 -0
  268. package/dist/esm/core/crypto/ed25519.mjs +29 -1
  269. package/dist/esm/core/crypto/ephemeral.d.mts +16 -20
  270. package/dist/esm/core/crypto/ephemeral.mjs +28 -1
  271. package/dist/esm/core/crypto/hdKey.d.mts +1 -15
  272. package/dist/esm/core/crypto/hdKey.mjs +25 -1
  273. package/dist/esm/core/crypto/index.d.mts +3 -2
  274. package/dist/esm/core/crypto/index.mjs +124 -1
  275. package/dist/esm/core/crypto/keyless.d.mts +121 -106
  276. package/dist/esm/core/crypto/keyless.mjs +55 -1
  277. package/dist/esm/core/crypto/multiEd25519.mjs +28 -1
  278. package/dist/esm/core/crypto/multiKey.mjs +34 -1
  279. package/dist/esm/core/crypto/poseidon.mjs +15 -1
  280. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  281. package/dist/esm/core/crypto/proof.d.mts +21 -0
  282. package/dist/esm/core/crypto/proof.mjs +20 -0
  283. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  284. package/dist/esm/core/crypto/publicKey.mjs +21 -1
  285. package/dist/esm/core/crypto/secp256k1.mjs +27 -1
  286. package/dist/esm/core/crypto/signature.mjs +19 -1
  287. package/dist/esm/core/crypto/singleKey.mjs +33 -1
  288. package/dist/esm/core/crypto/utils.mjs +9 -1
  289. package/dist/esm/core/hex.mjs +10 -1
  290. package/dist/esm/core/index.d.mts +3 -2
  291. package/dist/esm/core/index.mjs +141 -1
  292. package/dist/esm/index.d.mts +5 -4
  293. package/dist/esm/index.mjs +635 -1
  294. package/dist/esm/internal/account.mjs +106 -1
  295. package/dist/esm/internal/ans.mjs +120 -1
  296. package/dist/esm/internal/coin.mjs +85 -1
  297. package/dist/esm/internal/digitalAsset.mjs +127 -1
  298. package/dist/esm/internal/event.mjs +55 -1
  299. package/dist/esm/internal/faucet.mjs +52 -1
  300. package/dist/esm/internal/fungibleAsset.mjs +91 -1
  301. package/dist/esm/internal/general.mjs +46 -1
  302. package/dist/esm/internal/keyless.d.mts +4 -3
  303. package/dist/esm/internal/keyless.mjs +73 -1
  304. package/dist/esm/internal/staking.mjs +53 -1
  305. package/dist/esm/internal/transaction.mjs +51 -1
  306. package/dist/esm/internal/transactionSubmission.mjs +102 -1
  307. package/dist/esm/internal/view.mjs +83 -1
  308. package/dist/esm/transactions/authenticator/account.mjs +44 -1
  309. package/dist/esm/transactions/authenticator/index.mjs +60 -1
  310. package/dist/esm/transactions/authenticator/transaction.mjs +48 -1
  311. package/dist/esm/transactions/index.mjs +284 -1
  312. package/dist/esm/transactions/instances/chainId.mjs +11 -1
  313. package/dist/esm/transactions/instances/identifier.mjs +11 -1
  314. package/dist/esm/transactions/instances/index.mjs +96 -1
  315. package/dist/esm/transactions/instances/moduleId.mjs +38 -1
  316. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +43 -1
  317. package/dist/esm/transactions/instances/rawTransaction.mjs +48 -1
  318. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +20 -1
  319. package/dist/esm/transactions/instances/signedTransaction.mjs +45 -1
  320. package/dist/esm/transactions/instances/simpleTransaction.mjs +43 -1
  321. package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
  322. package/dist/esm/transactions/instances/transactionPayload.mjs +56 -1
  323. package/dist/esm/transactions/management/accountSequenceNumber.mjs +74 -1
  324. package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
  325. package/dist/esm/transactions/management/index.mjs +95 -1
  326. package/dist/esm/transactions/management/transactionWorker.mjs +91 -1
  327. package/dist/esm/transactions/transactionBuilder/helpers.mjs +75 -1
  328. package/dist/esm/transactions/transactionBuilder/index.mjs +162 -1
  329. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +85 -1
  330. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +58 -1
  331. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +98 -1
  332. package/dist/esm/transactions/typeTag/index.mjs +74 -1
  333. package/dist/esm/transactions/typeTag/parser.mjs +43 -1
  334. package/dist/esm/transactions/types.mjs +1 -1
  335. package/dist/esm/types/generated/queries.mjs +57 -1
  336. package/dist/esm/types/generated/types.mjs +809 -1
  337. package/dist/esm/types/generated/types.mjs.map +1 -1
  338. package/dist/esm/types/index.d.mts +6 -4
  339. package/dist/esm/types/index.mjs +68 -1
  340. package/dist/esm/types/indexer.mjs +1 -1
  341. package/dist/esm/types/keyless.d.mts +54 -1
  342. package/dist/esm/types/keyless.mjs +9 -0
  343. package/dist/esm/utils/apiEndpoints.mjs +21 -1
  344. package/dist/esm/utils/const.mjs +21 -1
  345. package/dist/esm/utils/helpers.mjs +7 -1
  346. package/dist/esm/utils/index.mjs +56 -1
  347. package/dist/esm/utils/memoize.mjs +9 -1
  348. package/dist/esm/utils/normalizeBundle.mjs +19 -1
  349. package/dist/esm/version.d.mts +1 -1
  350. package/dist/esm/version.mjs +7 -1
  351. package/package.json +5 -2
  352. package/src/account/EphemeralKeyPair.ts +45 -7
  353. package/src/account/KeylessAccount.ts +152 -113
  354. package/src/account/MultiKeyAccount.ts +4 -0
  355. package/src/api/keyless.ts +17 -4
  356. package/src/bcs/deserializer.ts +40 -0
  357. package/src/client/core.ts +1 -1
  358. package/src/client/types.ts +1 -1
  359. package/src/core/account/index.ts +0 -1
  360. package/src/core/crypto/ed25519.ts +24 -4
  361. package/src/core/crypto/ephemeral.ts +17 -28
  362. package/src/core/crypto/hdKey.ts +0 -31
  363. package/src/core/crypto/keyless.ts +231 -286
  364. package/src/core/crypto/proof.ts +16 -0
  365. package/src/internal/keyless.ts +16 -15
  366. package/src/internal/transactionSubmission.ts +16 -6
  367. package/src/transactions/management/transactionWorker.ts +1 -7
  368. package/src/types/index.ts +5 -2
  369. package/src/types/keyless.ts +31 -0
  370. package/src/utils/apiEndpoints.ts +6 -6
  371. package/src/version.ts +1 -1
  372. package/dist/common/chunk-KSEUZTKY.js +0 -2
  373. package/dist/common/chunk-KSEUZTKY.js.map +0 -1
  374. package/dist/esm/chunk-25N7RLBW.mjs +0 -2
  375. package/dist/esm/chunk-32355KGV.mjs +0 -2
  376. package/dist/esm/chunk-32355KGV.mjs.map +0 -1
  377. package/dist/esm/chunk-3FVRXELT.mjs +0 -2
  378. package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
  379. package/dist/esm/chunk-3OELNIC6.mjs +0 -2
  380. package/dist/esm/chunk-3U5VRZLS.mjs +0 -2
  381. package/dist/esm/chunk-3U5VRZLS.mjs.map +0 -1
  382. package/dist/esm/chunk-3VGX3TXH.mjs +0 -2
  383. package/dist/esm/chunk-43WARVT3.mjs +0 -2
  384. package/dist/esm/chunk-52ECIIIH.mjs +0 -2
  385. package/dist/esm/chunk-56CNRT2K.mjs +0 -2
  386. package/dist/esm/chunk-56NB52W6.mjs +0 -2
  387. package/dist/esm/chunk-5DW2AJPI.mjs +0 -2
  388. package/dist/esm/chunk-5QWUIVAQ.mjs +0 -2
  389. package/dist/esm/chunk-5QWUIVAQ.mjs.map +0 -1
  390. package/dist/esm/chunk-6456EI2E.mjs +0 -2
  391. package/dist/esm/chunk-6456EI2E.mjs.map +0 -1
  392. package/dist/esm/chunk-65UZZNN2.mjs +0 -2
  393. package/dist/esm/chunk-6EMN3BOV.mjs +0 -2
  394. package/dist/esm/chunk-6FBKUTGF.mjs +0 -2
  395. package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
  396. package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
  397. package/dist/esm/chunk-6LOTZ4GY.mjs +0 -2
  398. package/dist/esm/chunk-6RBUXB5I.mjs +0 -2
  399. package/dist/esm/chunk-6SHLLRJA.mjs +0 -2
  400. package/dist/esm/chunk-73Y4NTDU.mjs +0 -2
  401. package/dist/esm/chunk-73Y4NTDU.mjs.map +0 -1
  402. package/dist/esm/chunk-7PSX4LCV.mjs +0 -2
  403. package/dist/esm/chunk-7Q2NVO5M.mjs +0 -2
  404. package/dist/esm/chunk-7STYQ5ZE.mjs +0 -2
  405. package/dist/esm/chunk-7WJTKYRG.mjs +0 -2
  406. package/dist/esm/chunk-AH44UPM4.mjs +0 -2
  407. package/dist/esm/chunk-AOCNYMMX.mjs +0 -2
  408. package/dist/esm/chunk-C3L4ETUF.mjs +0 -2
  409. package/dist/esm/chunk-C5UVSNZW.mjs +0 -2
  410. package/dist/esm/chunk-CLVAGDXO.mjs +0 -2
  411. package/dist/esm/chunk-COW5IGYC.mjs +0 -2
  412. package/dist/esm/chunk-D22EMNIY.mjs +0 -2
  413. package/dist/esm/chunk-DLTC6PJP.mjs +0 -2
  414. package/dist/esm/chunk-EB7AI4B4.mjs +0 -2
  415. package/dist/esm/chunk-EKABTHUZ.mjs +0 -2
  416. package/dist/esm/chunk-EOMDZYSJ.mjs +0 -2
  417. package/dist/esm/chunk-EOMDZYSJ.mjs.map +0 -1
  418. package/dist/esm/chunk-FBPNHF54.mjs +0 -2
  419. package/dist/esm/chunk-FKSACFCB.mjs +0 -2
  420. package/dist/esm/chunk-FLYEALDB.mjs +0 -2
  421. package/dist/esm/chunk-FVA2OPG4.mjs +0 -2
  422. package/dist/esm/chunk-G4XSNSOT.mjs +0 -2
  423. package/dist/esm/chunk-H3TFQ7K4.mjs +0 -2
  424. package/dist/esm/chunk-H6LYW7HG.mjs +0 -2
  425. package/dist/esm/chunk-HCGWCB5E.mjs +0 -2
  426. package/dist/esm/chunk-HCGWCB5E.mjs.map +0 -1
  427. package/dist/esm/chunk-HGZGTBA4.mjs +0 -2
  428. package/dist/esm/chunk-HXSW6X7K.mjs +0 -2
  429. package/dist/esm/chunk-IXYXFDJZ.mjs +0 -2
  430. package/dist/esm/chunk-J7J7ZTBF.mjs +0 -2
  431. package/dist/esm/chunk-JVKMQ64G.mjs +0 -2
  432. package/dist/esm/chunk-KWNBC5MF.mjs +0 -2
  433. package/dist/esm/chunk-L54P6EGN.mjs +0 -2
  434. package/dist/esm/chunk-LDQ6JFEF.mjs +0 -2
  435. package/dist/esm/chunk-MGOHPDX4.mjs +0 -2
  436. package/dist/esm/chunk-MWUJCP27.mjs +0 -2
  437. package/dist/esm/chunk-NC5HHEEM.mjs +0 -2
  438. package/dist/esm/chunk-NGNETNK2.mjs +0 -2
  439. package/dist/esm/chunk-NKCZ4KGO.mjs +0 -2
  440. package/dist/esm/chunk-NMECYE3D.mjs +0 -2
  441. package/dist/esm/chunk-NNIHTVLA.mjs +0 -2
  442. package/dist/esm/chunk-NNW6HWIO.mjs +0 -2
  443. package/dist/esm/chunk-O34EOOVF.mjs +0 -2
  444. package/dist/esm/chunk-OBEVVLF7.mjs +0 -2
  445. package/dist/esm/chunk-OBEVVLF7.mjs.map +0 -1
  446. package/dist/esm/chunk-OKRUEVF3.mjs +0 -2
  447. package/dist/esm/chunk-OKRUEVF3.mjs.map +0 -1
  448. package/dist/esm/chunk-OLGSIKFB.mjs +0 -2
  449. package/dist/esm/chunk-OZC3FCJP.mjs +0 -2
  450. package/dist/esm/chunk-PFFAQZHT.mjs +0 -2
  451. package/dist/esm/chunk-PINF6ZWP.mjs +0 -2
  452. package/dist/esm/chunk-PJXRQBF6.mjs +0 -2
  453. package/dist/esm/chunk-PJXRQBF6.mjs.map +0 -1
  454. package/dist/esm/chunk-QHVZL3LZ.mjs +0 -2
  455. package/dist/esm/chunk-QNHDS64I.mjs +0 -2
  456. package/dist/esm/chunk-RBPGL6YB.mjs +0 -2
  457. package/dist/esm/chunk-RJ4PSGZ4.mjs +0 -2
  458. package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
  459. package/dist/esm/chunk-RTSEMQCK.mjs +0 -2
  460. package/dist/esm/chunk-SRPTQ4VV.mjs +0 -2
  461. package/dist/esm/chunk-STYDBDYL.mjs +0 -2
  462. package/dist/esm/chunk-T23OVRNF.mjs +0 -2
  463. package/dist/esm/chunk-TICM455H.mjs +0 -2
  464. package/dist/esm/chunk-TJDC5PWD.mjs +0 -2
  465. package/dist/esm/chunk-TVRJ3M7B.mjs +0 -2
  466. package/dist/esm/chunk-TXMPXZBG.mjs +0 -2
  467. package/dist/esm/chunk-U6Z4FNB7.mjs +0 -2
  468. package/dist/esm/chunk-UGIJHLL3.mjs +0 -2
  469. package/dist/esm/chunk-UVOU6BW2.mjs +0 -2
  470. package/dist/esm/chunk-V7P6MLSY.mjs +0 -2
  471. package/dist/esm/chunk-VJJN3GFD.mjs +0 -2
  472. package/dist/esm/chunk-WOLIXKOK.mjs +0 -2
  473. package/dist/esm/chunk-WVIPPU2C.mjs +0 -2
  474. package/dist/esm/chunk-XCR3YNHW.mjs +0 -2
  475. package/dist/esm/chunk-XCR3YNHW.mjs.map +0 -1
  476. package/dist/esm/chunk-XMFPKHB5.mjs +0 -2
  477. package/dist/esm/chunk-XN4SQWI5.mjs +0 -2
  478. package/dist/esm/chunk-YE5B2S5L.mjs +0 -2
  479. package/dist/esm/chunk-Z5KKUXYI.mjs +0 -2
  480. package/dist/esm/chunk-ZM436N3W.mjs +0 -2
  481. package/dist/esm/chunk-ZNEBMSNC.mjs +0 -2
  482. /package/dist/esm/{chunk-FVA2OPG4.mjs.map → chunk-OR7TEZ25.mjs.map} +0 -0
@@ -5,10 +5,11 @@ import { AccountPublicKey, PublicKey } from "./publicKey";
5
5
  import { Signature } from "./signature";
6
6
  import { Deserializer, Serializable, Serializer } from "../../bcs";
7
7
  import { Hex } from "../hex";
8
- import { HexInput, EphemeralCertificate, AnyPublicKeyVariant, SigningScheme } from "../../types";
8
+ import { HexInput, EphemeralCertificateVariant, AnyPublicKeyVariant, SigningScheme, ZkpVariant } from "../../types";
9
9
  import { EphemeralPublicKey, EphemeralSignature } from "./ephemeral";
10
10
  import { bigIntToBytesLE, bytesToBigIntLE, hashASCIIStrToField, poseidonHash } from "./poseidon";
11
11
  import { AuthenticationKey } from "../authenticationKey";
12
+ import { Proof } from "./proof";
12
13
 
13
14
  export const EPK_HORIZON_SECS = 10000000;
14
15
  export const MAX_AUD_VAL_BYTES = 120;
@@ -25,23 +26,27 @@ export const MAX_COMMITED_EPK_BYTES = 93;
25
26
  * KeylessPublicKey authentication key is represented in the SDK as `AnyPublicKey`.
26
27
  */
27
28
  export class KeylessPublicKey extends AccountPublicKey {
28
- static readonly ADDRESS_SEED_LENGTH: number = 32;
29
+ static readonly ID_COMMITMENT_LENGTH: number = 32;
29
30
 
30
31
  readonly iss: string;
31
32
 
32
- readonly addressSeed: Uint8Array;
33
+ readonly idCommitment: Uint8Array;
33
34
 
34
- constructor(iss: string, addressSeed: HexInput) {
35
+ constructor(iss: string, idCommitment: HexInput) {
35
36
  super();
36
- const addressSeedBytes = Hex.fromHexInput(addressSeed).toUint8Array();
37
- if (addressSeedBytes.length !== KeylessPublicKey.ADDRESS_SEED_LENGTH) {
38
- throw new Error(`Address seed length in bytes should be ${KeylessPublicKey.ADDRESS_SEED_LENGTH}`);
37
+ const idcBytes = Hex.fromHexInput(idCommitment).toUint8Array();
38
+ if (idcBytes.length !== KeylessPublicKey.ID_COMMITMENT_LENGTH) {
39
+ throw new Error(`Address seed length in bytes should be ${KeylessPublicKey.ID_COMMITMENT_LENGTH}`);
39
40
  }
40
-
41
41
  this.iss = iss;
42
- this.addressSeed = addressSeedBytes;
42
+ this.idCommitment = idcBytes;
43
43
  }
44
44
 
45
+ /**
46
+ * Get the authentication key for the keyless public key
47
+ *
48
+ * @returns AuthenticationKey
49
+ */
45
50
  authKey(): AuthenticationKey {
46
51
  const serializer = new Serializer();
47
52
  serializer.serializeU32AsUleb128(AnyPublicKeyVariant.Keyless);
@@ -77,15 +82,14 @@ export class KeylessPublicKey extends AccountPublicKey {
77
82
  * @param args.signature The signature
78
83
  * @returns true if the signature is valid
79
84
  */
80
- // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars
85
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
81
86
  verifySignature(args: { message: HexInput; signature: KeylessSignature }): boolean {
82
- // TODO
83
- return true;
87
+ throw new Error("Not yet implemented");
84
88
  }
85
89
 
86
90
  serialize(serializer: Serializer): void {
87
91
  serializer.serializeStr(this.iss);
88
- serializer.serializeBytes(this.addressSeed);
92
+ serializer.serializeBytes(this.idCommitment);
89
93
  }
90
94
 
91
95
  static deserialize(deserializer: Deserializer): KeylessPublicKey {
@@ -104,6 +108,16 @@ export class KeylessPublicKey extends AccountPublicKey {
104
108
  return publicKey instanceof KeylessPublicKey;
105
109
  }
106
110
 
111
+ /**
112
+ * Creates a KeylessPublicKey from the JWT components plus pepper
113
+ *
114
+ * @param args.iss the iss of the identity
115
+ * @param args.uidKey the key to use to get the uidVal in the JWT token
116
+ * @param args.uidVal the value of the uidKey in the JWT token
117
+ * @param args.aud the client ID of the application
118
+ * @param args.pepper The pepper used to maintain privacy of the account
119
+ * @returns KeylessPublicKey
120
+ */
107
121
  static create(args: {
108
122
  iss: string;
109
123
  uidKey: string;
@@ -111,17 +125,12 @@ export class KeylessPublicKey extends AccountPublicKey {
111
125
  aud: string;
112
126
  pepper: HexInput;
113
127
  }): KeylessPublicKey {
114
- computeAddressSeed(args);
115
- return new KeylessPublicKey(args.iss, computeAddressSeed(args));
128
+ computeIdCommitment(args);
129
+ return new KeylessPublicKey(args.iss, computeIdCommitment(args));
116
130
  }
117
131
  }
118
132
 
119
- export function computeAddressSeed(args: {
120
- uidKey: string;
121
- uidVal: string;
122
- aud: string;
123
- pepper: HexInput;
124
- }): Uint8Array {
133
+ function computeIdCommitment(args: { uidKey: string; uidVal: string; aud: string; pepper: HexInput }): Uint8Array {
125
134
  const { uidKey, uidVal, aud, pepper } = args;
126
135
 
127
136
  const fields = [
@@ -131,65 +140,165 @@ export function computeAddressSeed(args: {
131
140
  hashASCIIStrToField(uidKey, MAX_UID_KEY_BYTES),
132
141
  ];
133
142
 
134
- return bigIntToBytesLE(poseidonHash(fields), KeylessPublicKey.ADDRESS_SEED_LENGTH);
143
+ return bigIntToBytesLE(poseidonHash(fields), KeylessPublicKey.ID_COMMITMENT_LENGTH);
135
144
  }
136
145
 
137
- export class OpenIdSignatureOrZkProof extends Signature {
138
- public readonly signature: Signature;
146
+ /**
147
+ * A signature of a message signed via Keyless Accounnt that uses proofs or the jwt token to authenticate.
148
+ */
149
+ export class KeylessSignature extends Signature {
150
+ /**
151
+ * The inner signature ZeroKnowledgeSigniature or OpenIdSignature
152
+ */
153
+ readonly ephemeralCertificate: EphemeralCertificate;
154
+
155
+ /**
156
+ * The jwt header in the token used to create the proof/signature. In json string representation.
157
+ */
158
+ readonly jwtHeader: string;
139
159
 
140
- constructor(signature: Signature) {
160
+ /**
161
+ * The expiry timestamp in seconds of the EphemeralKeyPair used to sign
162
+ */
163
+ readonly expiryDateSecs: bigint | number;
164
+
165
+ /**
166
+ * The ephemeral public key used to verify the signature
167
+ */
168
+ readonly ephemeralPublicKey: EphemeralPublicKey;
169
+
170
+ /**
171
+ * The signature resulting from signing with the private key of the EphemeralKeyPair
172
+ */
173
+ readonly ephemeralSignature: EphemeralSignature;
174
+
175
+ constructor(args: {
176
+ jwtHeader: string;
177
+ ephemeralCertificate: EphemeralCertificate;
178
+ expiryDateSecs: bigint | number;
179
+ ephemeralPublicKey: EphemeralPublicKey;
180
+ ephemeralSignature: EphemeralSignature;
181
+ }) {
141
182
  super();
142
- this.signature = signature;
183
+ const { jwtHeader, ephemeralCertificate, expiryDateSecs, ephemeralPublicKey, ephemeralSignature } = args;
184
+ this.jwtHeader = jwtHeader;
185
+ this.ephemeralCertificate = ephemeralCertificate;
186
+ this.expiryDateSecs = expiryDateSecs;
187
+ this.ephemeralPublicKey = ephemeralPublicKey;
188
+ this.ephemeralSignature = ephemeralSignature;
143
189
  }
144
190
 
145
191
  /**
146
- * Get the public key in bytes (Uint8Array).
192
+ * Get the signature in bytes (Uint8Array).
147
193
  *
148
- * @returns Uint8Array representation of the public key
194
+ * @returns Uint8Array representation of the signature
149
195
  */
150
196
  toUint8Array(): Uint8Array {
151
- return this.signature.toUint8Array();
197
+ return this.bcsToBytes();
152
198
  }
153
199
 
200
+ serialize(serializer: Serializer): void {
201
+ this.ephemeralCertificate.serialize(serializer);
202
+ serializer.serializeStr(this.jwtHeader);
203
+ serializer.serializeU64(this.expiryDateSecs);
204
+ this.ephemeralPublicKey.serialize(serializer);
205
+ this.ephemeralSignature.serialize(serializer);
206
+ }
207
+
208
+ static deserialize(deserializer: Deserializer): KeylessSignature {
209
+ const ephemeralCertificate = EphemeralCertificate.deserialize(deserializer);
210
+ const jwtHeader = deserializer.deserializeStr();
211
+ const expiryDateSecs = deserializer.deserializeU64();
212
+ const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);
213
+ const ephemeralSignature = EphemeralSignature.deserialize(deserializer);
214
+ return new KeylessSignature({
215
+ jwtHeader,
216
+ expiryDateSecs,
217
+ ephemeralCertificate,
218
+ ephemeralPublicKey,
219
+ ephemeralSignature,
220
+ });
221
+ }
222
+
223
+ static load(deserializer: Deserializer): KeylessSignature {
224
+ const ephemeralCertificate = EphemeralCertificate.deserialize(deserializer);
225
+ const jwtHeader = deserializer.deserializeStr();
226
+ const expiryDateSecs = deserializer.deserializeU64();
227
+ const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);
228
+ const ephemeralSignature = EphemeralSignature.deserialize(deserializer);
229
+ return new KeylessSignature({
230
+ jwtHeader,
231
+ expiryDateSecs,
232
+ ephemeralCertificate,
233
+ ephemeralPublicKey,
234
+ ephemeralSignature,
235
+ });
236
+ }
237
+
238
+ static isSignature(signature: Signature): signature is KeylessSignature {
239
+ return signature instanceof KeylessSignature;
240
+ }
241
+ }
242
+
243
+ /**
244
+ * A container for a signature that is a ZeroKnowledgeSig. Can be expanded to support OpenIdSignature.
245
+ */
246
+ export class EphemeralCertificate extends Signature {
247
+ public readonly signature: Signature;
248
+
154
249
  /**
155
- * Get the public key as a hex string with the 0x prefix.
250
+ * Index of the underlying enum variant
251
+ */
252
+ private readonly variant: EphemeralCertificateVariant;
253
+
254
+ constructor(signature: Signature, variant: EphemeralCertificateVariant) {
255
+ super();
256
+ this.signature = signature;
257
+ this.variant = variant;
258
+ }
259
+
260
+ /**
261
+ * Get the public key in bytes (Uint8Array).
156
262
  *
157
- * @returns string representation of the public key
263
+ * @returns Uint8Array representation of the public key
158
264
  */
159
- toString(): string {
160
- return this.signature.toString();
265
+ toUint8Array(): Uint8Array {
266
+ return this.signature.toUint8Array();
161
267
  }
162
268
 
163
269
  serialize(serializer: Serializer): void {
164
- if (this.signature instanceof OpenIdSignature) {
165
- serializer.serializeU32AsUleb128(EphemeralCertificate.OpenIdSignature);
166
- this.signature.serialize(serializer);
167
- } else if (this.signature instanceof SignedGroth16Signature) {
168
- serializer.serializeU32AsUleb128(EphemeralCertificate.ZkProof);
169
- this.signature.serialize(serializer);
170
- } else {
171
- throw new Error("Not a valid OIDB signature");
172
- }
270
+ serializer.serializeU32AsUleb128(this.variant);
271
+ this.signature.serialize(serializer);
173
272
  }
174
273
 
175
- static deserialize(deserializer: Deserializer): OpenIdSignatureOrZkProof {
176
- const index = deserializer.deserializeUleb128AsU32();
177
- switch (index) {
178
- case EphemeralCertificate.ZkProof:
179
- return new OpenIdSignatureOrZkProof(SignedGroth16Signature.load(deserializer));
180
- case EphemeralCertificate.OpenIdSignature:
181
- return new OpenIdSignatureOrZkProof(OpenIdSignature.load(deserializer));
274
+ static deserialize(deserializer: Deserializer): EphemeralCertificate {
275
+ const variant = deserializer.deserializeUleb128AsU32();
276
+ switch (variant) {
277
+ case EphemeralCertificateVariant.ZkProof:
278
+ return new EphemeralCertificate(ZeroKnowledgeSig.deserialize(deserializer), variant);
182
279
  default:
183
- throw new Error(`Unknown variant index for EphemeralCertificate: ${index}`);
280
+ throw new Error(`Unknown variant index for EphemeralCertificate: ${variant}`);
184
281
  }
185
282
  }
186
283
  }
187
284
 
188
- export class Groth16Zkp extends Serializable {
285
+ /**
286
+ * A representation of a Groth16 proof. The points are the compressed serialization of affine reprentation of the proof.
287
+ */
288
+ export class Groth16Zkp extends Proof {
289
+ /**
290
+ * The bytes of G1 proof point a
291
+ */
189
292
  a: Uint8Array;
190
293
 
294
+ /**
295
+ * The bytes of G2 proof point b
296
+ */
191
297
  b: Uint8Array;
192
298
 
299
+ /**
300
+ * The bytes of G1 proof point c
301
+ */
193
302
  c: Uint8Array;
194
303
 
195
304
  constructor(args: { a: HexInput; b: HexInput; c: HexInput }) {
@@ -200,23 +309,13 @@ export class Groth16Zkp extends Serializable {
200
309
  this.c = Hex.fromHexInput(c).toUint8Array();
201
310
  }
202
311
 
203
- toUint8Array(): Uint8Array {
204
- const serializer = new Serializer();
205
- this.serialize(serializer);
206
- return serializer.toUint8Array();
207
- }
208
-
209
312
  serialize(serializer: Serializer): void {
210
- // There's currently only one variant
211
- serializer.serializeU32AsUleb128(0);
212
313
  serializer.serializeFixedBytes(this.a);
213
314
  serializer.serializeFixedBytes(this.b);
214
315
  serializer.serializeFixedBytes(this.c);
215
316
  }
216
317
 
217
318
  static deserialize(deserializer: Deserializer): Groth16Zkp {
218
- // Ignored, as there's currently only one possible ZKP variant
219
- deserializer.deserializeUleb128AsU32();
220
319
  const a = deserializer.deserializeFixedBytes(32);
221
320
  const b = deserializer.deserializeFixedBytes(64);
222
321
  const c = deserializer.deserializeFixedBytes(32);
@@ -224,19 +323,70 @@ export class Groth16Zkp extends Serializable {
224
323
  }
225
324
  }
226
325
 
227
- export class SignedGroth16Signature extends Signature {
228
- readonly proof: Groth16Zkp;
326
+ /**
327
+ * A container for a different zero knowledge proof types
328
+ */
329
+ export class ZkProof extends Serializable {
330
+ public readonly proof: Proof;
331
+
332
+ /**
333
+ * Index of the underlying enum variant
334
+ */
335
+ private readonly variant: ZkpVariant;
336
+
337
+ constructor(proof: Proof, variant: ZkpVariant) {
338
+ super();
339
+ this.proof = proof;
340
+ this.variant = variant;
341
+ }
342
+
343
+ serialize(serializer: Serializer): void {
344
+ serializer.serializeU32AsUleb128(this.variant);
345
+ this.proof.serialize(serializer);
346
+ }
347
+
348
+ static deserialize(deserializer: Deserializer): ZkProof {
349
+ const variant = deserializer.deserializeUleb128AsU32();
350
+ switch (variant) {
351
+ case ZkpVariant.Groth16:
352
+ return new ZkProof(Groth16Zkp.deserialize(deserializer), variant);
353
+ default:
354
+ throw new Error(`Unknown variant index for ZkProof: ${variant}`);
355
+ }
356
+ }
357
+ }
229
358
 
359
+ /**
360
+ * The signature representation of a proof
361
+ */
362
+ export class ZeroKnowledgeSig extends Signature {
363
+ /**
364
+ * The proof
365
+ */
366
+ readonly proof: ZkProof;
367
+
368
+ /**
369
+ * The max lifespan of the proof
370
+ */
230
371
  readonly expHorizonSecs: bigint;
231
372
 
373
+ /**
374
+ * A key value pair on the JWT token that can be made public
375
+ */
232
376
  readonly extraField?: string;
233
377
 
378
+ /**
379
+ * Set in the case of signing by recovery services
380
+ */
234
381
  readonly overrideAudVal?: string;
235
382
 
383
+ /**
384
+ * The training wheels signature
385
+ */
236
386
  readonly trainingWheelsSignature?: EphemeralSignature;
237
387
 
238
388
  constructor(args: {
239
- proof: Groth16Zkp;
389
+ proof: ZkProof;
240
390
  expHorizonSecs?: bigint;
241
391
  extraField?: string;
242
392
  overrideAudVal?: string;
@@ -263,18 +413,16 @@ export class SignedGroth16Signature extends Signature {
263
413
  * @returns Uint8Array representation of the signature
264
414
  */
265
415
  toUint8Array(): Uint8Array {
266
- const serializer = new Serializer();
267
- this.serialize(serializer);
268
- return serializer.toUint8Array();
416
+ return this.bcsToBytes();
269
417
  }
270
418
 
271
419
  /**
272
- * Get the signature as a hex string with the 0x prefix.
420
+ * Return a ZeroKnowledgeSig object from its bcs serialization in bytes.
273
421
  *
274
- * @returns string representation of the signature
422
+ * @returns ZeroKnowledgeSig
275
423
  */
276
- toString(): string {
277
- return this.toString();
424
+ static fromBytes(bytes: Uint8Array): ZeroKnowledgeSig {
425
+ return ZeroKnowledgeSig.deserialize(new Deserializer(bytes));
278
426
  }
279
427
 
280
428
  serialize(serializer: Serializer): void {
@@ -285,224 +433,21 @@ export class SignedGroth16Signature extends Signature {
285
433
  serializer.serializeOption(this.trainingWheelsSignature);
286
434
  }
287
435
 
288
- static deserialize(deserializer: Deserializer): SignedGroth16Signature {
289
- const proof = Groth16Zkp.deserialize(deserializer);
436
+ static deserialize(deserializer: Deserializer): ZeroKnowledgeSig {
437
+ const proof = ZkProof.deserialize(deserializer);
290
438
  const expHorizonSecs = deserializer.deserializeU64();
291
- const hasExtraField = deserializer.deserializeUleb128AsU32();
292
- const extraField = hasExtraField ? deserializer.deserializeStr() : undefined;
293
- const hasOverrideAudVal = deserializer.deserializeUleb128AsU32();
294
- const overrideAudVal = hasOverrideAudVal ? deserializer.deserializeStr() : undefined;
295
- const [trainingWheelsSignature] = deserializer.deserializeVector(EphemeralSignature);
296
- return new SignedGroth16Signature({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });
439
+ const extraField = deserializer.deserializeOptionStr();
440
+ const overrideAudVal = deserializer.deserializeOptionStr();
441
+ const trainingWheelsSignature = deserializer.deserializeOption(EphemeralSignature);
442
+ return new ZeroKnowledgeSig({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });
297
443
  }
298
444
 
299
- static load(deserializer: Deserializer): SignedGroth16Signature {
300
- const proof = Groth16Zkp.deserialize(deserializer);
445
+ static load(deserializer: Deserializer): ZeroKnowledgeSig {
446
+ const proof = ZkProof.deserialize(deserializer);
301
447
  const expHorizonSecs = deserializer.deserializeU64();
302
- const hasExtraField = deserializer.deserializeUleb128AsU32();
303
- const extraField = hasExtraField ? deserializer.deserializeStr() : undefined;
304
- const hasOverrideAudVal = deserializer.deserializeUleb128AsU32();
305
- const overrideAudVal = hasOverrideAudVal ? deserializer.deserializeStr() : undefined;
306
- const [trainingWheelsSignature] = deserializer.deserializeVector(EphemeralSignature);
307
- return new SignedGroth16Signature({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });
308
- }
309
-
310
- // static isSignature(signature: Signature): signature is OpenIdSignature {
311
- // return signature instanceof OpenIdSignature;
312
- // }
313
- }
314
-
315
- /**
316
- * A OpenId signature which contains the private inputs to an OIDB proof.
317
- */
318
- export class OpenIdSignature extends Signature {
319
- readonly jwtSignature: string;
320
-
321
- readonly jwtPayloadJson: string;
322
-
323
- readonly uidKey: string;
324
-
325
- readonly epkBlinder: Uint8Array;
326
-
327
- readonly pepper: Uint8Array;
328
-
329
- readonly overrideAudValue?: string;
330
-
331
- /**
332
- * Create a new Signature instance from a Uint8Array or String.
333
- *
334
- * @param hexInput A HexInput (string or Uint8Array)
335
- */
336
- constructor(args: {
337
- jwtSignature: string;
338
- jwtPayloadJson: string;
339
- uidKey?: string;
340
- epkBlinder: Uint8Array;
341
- pepper: Uint8Array;
342
- overrideAudValue?: string;
343
- }) {
344
- super();
345
- const { jwtSignature, uidKey, jwtPayloadJson, epkBlinder, pepper, overrideAudValue } = args;
346
- this.jwtSignature = jwtSignature;
347
- this.jwtPayloadJson = jwtPayloadJson;
348
- this.uidKey = uidKey ?? "sub";
349
- this.epkBlinder = epkBlinder;
350
- this.pepper = pepper;
351
- this.overrideAudValue = overrideAudValue;
352
- }
353
-
354
- /**
355
- * Get the signature in bytes (Uint8Array).
356
- *
357
- * @returns Uint8Array representation of the signature
358
- */
359
- toUint8Array(): Uint8Array {
360
- // const textEncoder = new TextEncoder();
361
- // const jwtSigBytes = textEncoder.encode(this.jwtSignature);
362
- // const jwtPayloadJsonBytes = textEncoder.encode(this.jwtPayloadJson);
363
- // const uidKeyBytes = textEncoder.encode(this.jwtSignature);
364
- // const uidKeyBytes = textEncoder.encode(this.jwtSignature);
365
-
366
- return this.epkBlinder;
367
- }
368
-
369
- /**
370
- * Get the signature as a hex string with the 0x prefix.
371
- *
372
- * @returns string representation of the signature
373
- */
374
- toString(): string {
375
- return this.toString();
376
- }
377
-
378
- serialize(serializer: Serializer): void {
379
- serializer.serializeStr(this.jwtSignature);
380
- serializer.serializeStr(this.jwtPayloadJson);
381
- serializer.serializeStr(this.uidKey);
382
- serializer.serializeFixedBytes(this.epkBlinder);
383
- serializer.serializeFixedBytes(this.pepper);
384
- serializer.serializeOptionStr(this.overrideAudValue);
385
- }
386
-
387
- static deserialize(deserializer: Deserializer): OpenIdSignature {
388
- const jwtSignature = deserializer.deserializeStr();
389
- const jwtPayloadJson = deserializer.deserializeStr();
390
- const uidKey = deserializer.deserializeStr();
391
- const epkBlinder = deserializer.deserializeFixedBytes(31);
392
- const pepper = deserializer.deserializeFixedBytes(31);
393
- const hasOverrideAudValue = deserializer.deserializeUleb128AsU32();
394
- const overrideAudValue = hasOverrideAudValue ? deserializer.deserializeStr() : undefined;
395
- return new OpenIdSignature({ jwtSignature, jwtPayloadJson, uidKey, epkBlinder, pepper, overrideAudValue });
396
- }
397
-
398
- static load(deserializer: Deserializer): OpenIdSignature {
399
- const jwtSignature = deserializer.deserializeStr();
400
- const jwtPayloadJson = deserializer.deserializeStr();
401
- const uidKey = deserializer.deserializeStr();
402
- const epkBlinder = deserializer.deserializeFixedBytes(31);
403
- const pepper = deserializer.deserializeFixedBytes(31);
404
- const hasOverrideAudValue = deserializer.deserializeUleb128AsU32();
405
- const overrideAudValue = hasOverrideAudValue ? deserializer.deserializeStr() : undefined;
406
- return new OpenIdSignature({ jwtSignature, jwtPayloadJson, uidKey, epkBlinder, pepper, overrideAudValue });
407
- }
408
-
409
- static isSignature(signature: Signature): signature is OpenIdSignature {
410
- return signature instanceof OpenIdSignature;
411
- }
412
- }
413
-
414
- /**
415
- * A signature of a message signed via OIDC that uses proofs or the jwt token to authenticate.
416
- */
417
- export class KeylessSignature extends Signature {
418
- readonly openIdSignatureOrZkProof: OpenIdSignatureOrZkProof;
419
-
420
- readonly jwtHeader: string;
421
-
422
- readonly expiryDateSecs: bigint | number;
423
-
424
- readonly ephemeralPublicKey: EphemeralPublicKey;
425
-
426
- readonly ephemeralSignature: EphemeralSignature;
427
-
428
- /**
429
- * Create a new Signature instance from a Uint8Array or String.
430
- *
431
- * @param hexInput A HexInput (string or Uint8Array)
432
- */
433
- constructor(args: {
434
- jwtHeader: string;
435
- openIdSignatureOrZkProof: OpenIdSignatureOrZkProof;
436
- expiryDateSecs: bigint | number;
437
- ephemeralPublicKey: EphemeralPublicKey;
438
- ephemeralSignature: EphemeralSignature;
439
- }) {
440
- super();
441
- const { jwtHeader, openIdSignatureOrZkProof, expiryDateSecs, ephemeralPublicKey, ephemeralSignature } = args;
442
- this.jwtHeader = jwtHeader;
443
- this.openIdSignatureOrZkProof = openIdSignatureOrZkProof;
444
- this.expiryDateSecs = expiryDateSecs;
445
- this.ephemeralPublicKey = ephemeralPublicKey;
446
- this.ephemeralSignature = ephemeralSignature;
447
- }
448
-
449
- /**
450
- * Get the signature in bytes (Uint8Array).
451
- *
452
- * @returns Uint8Array representation of the signature
453
- */
454
- toUint8Array(): Uint8Array {
455
- return this.ephemeralSignature.toUint8Array();
456
- }
457
-
458
- /**
459
- * Get the signature as a hex string with the 0x prefix.
460
- *
461
- * @returns string representation of the signature
462
- */
463
- toString(): string {
464
- return this.toString();
465
- }
466
-
467
- serialize(serializer: Serializer): void {
468
- this.openIdSignatureOrZkProof.serialize(serializer);
469
- serializer.serializeStr(this.jwtHeader);
470
- serializer.serializeU64(this.expiryDateSecs);
471
- this.ephemeralPublicKey.serialize(serializer);
472
- this.ephemeralSignature.serialize(serializer);
473
- }
474
-
475
- static deserialize(deserializer: Deserializer): KeylessSignature {
476
- const openIdSignatureOrZkProof = OpenIdSignatureOrZkProof.deserialize(deserializer);
477
- const jwtHeader = deserializer.deserializeStr();
478
- const expiryDateSecs = deserializer.deserializeU64();
479
- const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);
480
- const ephemeralSignature = EphemeralSignature.deserialize(deserializer);
481
- return new KeylessSignature({
482
- jwtHeader,
483
- expiryDateSecs,
484
- openIdSignatureOrZkProof,
485
- ephemeralPublicKey,
486
- ephemeralSignature,
487
- });
488
- }
489
-
490
- static load(deserializer: Deserializer): KeylessSignature {
491
- const jwtHeader = deserializer.deserializeStr();
492
- const expiryDateSecs = deserializer.deserializeU64();
493
- const openIdSignatureOrZkProof = OpenIdSignatureOrZkProof.deserialize(deserializer);
494
- const ephemeralPublicKey = EphemeralPublicKey.deserialize(deserializer);
495
- const ephemeralSignature = EphemeralSignature.deserialize(deserializer);
496
- return new KeylessSignature({
497
- jwtHeader,
498
- expiryDateSecs,
499
- openIdSignatureOrZkProof,
500
- ephemeralPublicKey,
501
- ephemeralSignature,
502
- });
503
- }
504
-
505
- static isSignature(signature: Signature): signature is KeylessSignature {
506
- return signature instanceof KeylessSignature;
448
+ const extraField = deserializer.deserializeOptionStr();
449
+ const overrideAudVal = deserializer.deserializeOptionStr();
450
+ const trainingWheelsSignature = deserializer.deserializeOption(EphemeralSignature);
451
+ return new ZeroKnowledgeSig({ proof, expHorizonSecs, trainingWheelsSignature, extraField, overrideAudVal });
507
452
  }
508
453
  }
@@ -0,0 +1,16 @@
1
+ import { Serializable } from "../../bcs";
2
+ import { Hex } from "../hex";
3
+
4
+ /**
5
+ * An abstract representation of a crypto proof.
6
+ * associated to a specific zero knowledge proof schemes e.g. Groth16, PLONK
7
+ */
8
+ export abstract class Proof extends Serializable {
9
+ /**
10
+ * Get the proof as a hex string with a 0x prefix e.g. 0x123456...
11
+ */
12
+ toString(): string {
13
+ const bytes = this.bcsToBytes();
14
+ return Hex.fromHexInput(bytes).toString();
15
+ }
16
+ }