@aptos-labs/ts-sdk 1.15.0-win.2 → 1.16.0-zeta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/dist/common/{accountAddress-ccLvlUQe.d.ts → accountAddress-BtD_TE5q.d.ts} +49 -3
  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 +627 -52
  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 +166 -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 +12 -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 +10 -2
  44. package/dist/esm/api/index.mjs +1 -1
  45. package/dist/esm/api/keyless.d.mts +83 -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/cryptoHasher.d.mts +15 -0
  65. package/dist/esm/bcs/cryptoHasher.mjs +2 -0
  66. package/dist/esm/bcs/cryptoHasher.mjs.map +1 -0
  67. package/dist/esm/bcs/deserializer.d.mts +26 -0
  68. package/dist/esm/bcs/deserializer.mjs +1 -1
  69. package/dist/esm/bcs/index.mjs +1 -1
  70. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
  71. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
  72. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  73. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  74. package/dist/esm/bcs/serializer.d.mts +2 -0
  75. package/dist/esm/bcs/serializer.mjs +1 -1
  76. package/dist/esm/chunk-3FVRXELT.mjs +2 -0
  77. package/dist/esm/{chunk-U3YYSIIT.mjs → chunk-3VGX3TXH.mjs} +2 -2
  78. package/dist/esm/{chunk-4W3ZDREO.mjs → chunk-3Y6JNFPD.mjs} +2 -2
  79. package/dist/esm/chunk-4KEEUDZA.mjs +2 -0
  80. package/dist/esm/chunk-4KEEUDZA.mjs.map +1 -0
  81. package/dist/esm/chunk-4USAUOCE.mjs +2 -0
  82. package/dist/esm/{chunk-C4RK5AB6.mjs.map → chunk-4USAUOCE.mjs.map} +1 -1
  83. package/dist/esm/chunk-5ADNWXP2.mjs +2 -0
  84. package/dist/esm/chunk-5ADNWXP2.mjs.map +1 -0
  85. package/dist/esm/{chunk-JP4W2YJF.mjs → chunk-5RRZMXND.mjs} +2 -2
  86. package/dist/esm/chunk-5V2RGYYK.mjs +2 -0
  87. package/dist/esm/chunk-5V2RGYYK.mjs.map +1 -0
  88. package/dist/esm/chunk-5YI2GEG5.mjs +2 -0
  89. package/dist/esm/chunk-5YI2GEG5.mjs.map +1 -0
  90. package/dist/esm/chunk-6KNAIXZ3.mjs +2 -0
  91. package/dist/esm/chunk-6KNAIXZ3.mjs.map +1 -0
  92. package/dist/esm/{chunk-64MINNG2.mjs → chunk-6M53MDWB.mjs} +2 -2
  93. package/dist/esm/chunk-6RBUXB5I.mjs +2 -0
  94. package/dist/esm/{chunk-SRDIYE3M.mjs.map → chunk-6RBUXB5I.mjs.map} +1 -1
  95. package/dist/esm/{chunk-UPSCPEEE.mjs → chunk-7H3HRFVM.mjs} +2 -2
  96. package/dist/esm/chunk-7QGIAVW4.mjs +2 -0
  97. package/dist/esm/chunk-7QGIAVW4.mjs.map +1 -0
  98. package/dist/esm/{chunk-5EN52MUT.mjs → chunk-7STYQ5ZE.mjs} +2 -2
  99. package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
  100. package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
  101. package/dist/esm/{chunk-J77BLQCV.mjs → chunk-A3UVZHDJ.mjs} +2 -2
  102. package/dist/esm/{chunk-BCUSI3N6.mjs → chunk-AOCNYMMX.mjs} +2 -2
  103. package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
  104. package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
  105. package/dist/esm/{chunk-2O5VFH5O.mjs → chunk-C34M4T77.mjs} +2 -2
  106. package/dist/esm/chunk-C3L4ETUF.mjs +2 -0
  107. package/dist/esm/chunk-CNH2RAJQ.mjs +2 -0
  108. package/dist/esm/chunk-CNH2RAJQ.mjs.map +1 -0
  109. package/dist/esm/chunk-COW5IGYC.mjs +2 -0
  110. package/dist/esm/{chunk-TLLWFCCP.mjs → chunk-EADBYPUD.mjs} +2 -2
  111. package/dist/esm/{chunk-G56GPLTB.mjs → chunk-EB7AI4B4.mjs} +2 -2
  112. package/dist/esm/{chunk-AJU3EBVX.mjs → chunk-EIRSA5UU.mjs} +2 -2
  113. package/dist/esm/{chunk-SSSWFYAX.mjs → chunk-EPTCPBVW.mjs} +2 -2
  114. package/dist/esm/chunk-EU6CX56Q.mjs +2 -0
  115. package/dist/esm/chunk-EU6CX56Q.mjs.map +1 -0
  116. package/dist/esm/{chunk-AG3TUKNI.mjs → chunk-F5C4SZZ7.mjs} +2 -2
  117. package/dist/esm/{chunk-ECVKW776.mjs → chunk-FBLSW5TB.mjs} +2 -2
  118. package/dist/esm/chunk-FBPNHF54.mjs +2 -0
  119. package/dist/esm/{chunk-KAGLWBIJ.mjs → chunk-HGZGTBA4.mjs} +2 -2
  120. package/dist/esm/chunk-I5JWDZIP.mjs +2 -0
  121. package/dist/esm/chunk-I5JWDZIP.mjs.map +1 -0
  122. package/dist/esm/chunk-IEZO4PIG.mjs +2 -0
  123. package/dist/esm/{chunk-BZCARW2P.mjs → chunk-IJE5YSXW.mjs} +2 -2
  124. package/dist/esm/chunk-JCDZ2WXX.mjs +2 -0
  125. package/dist/esm/chunk-JCDZ2WXX.mjs.map +1 -0
  126. package/dist/esm/chunk-JKZHPY24.mjs +2 -0
  127. package/dist/esm/{chunk-CJDEPZ4J.mjs.map → chunk-JKZHPY24.mjs.map} +1 -1
  128. package/dist/esm/chunk-JM2B5E2I.mjs +2 -0
  129. package/dist/esm/chunk-JM2B5E2I.mjs.map +1 -0
  130. package/dist/esm/{chunk-DZJ2RMX3.mjs → chunk-KFUOOBMJ.mjs} +2 -2
  131. package/dist/esm/{chunk-CWO2JAUL.mjs → chunk-KKP4FBWZ.mjs} +2 -2
  132. package/dist/esm/chunk-KPZDC5ZE.mjs +2 -0
  133. package/dist/esm/chunk-KPZDC5ZE.mjs.map +1 -0
  134. package/dist/esm/{chunk-OUTRV57V.mjs → chunk-LEBJNW6Y.mjs} +2 -2
  135. package/dist/esm/chunk-LECNIPW7.mjs +2 -0
  136. package/dist/esm/chunk-LECNIPW7.mjs.map +1 -0
  137. package/dist/esm/{chunk-UEELI2FS.mjs → chunk-LO7B3CWN.mjs} +2 -2
  138. package/dist/esm/{chunk-EU7EBOVD.mjs → chunk-LQH7T3TE.mjs} +2 -2
  139. package/dist/esm/{chunk-VC4A47VQ.mjs → chunk-M7HZOQ6A.mjs} +2 -2
  140. package/dist/esm/chunk-MGOHPDX4.mjs +2 -0
  141. package/dist/esm/{chunk-P6GWG2CY.mjs → chunk-MKUAW7KW.mjs} +2 -2
  142. package/dist/esm/{chunk-I6ST47U7.mjs → chunk-MTLETLKV.mjs} +2 -2
  143. package/dist/esm/{chunk-QYJF7C23.mjs → chunk-MWN63XBE.mjs} +2 -2
  144. package/dist/esm/chunk-MWUJCP27.mjs +2 -0
  145. package/dist/esm/chunk-N466X3S6.mjs +2 -0
  146. package/dist/esm/chunk-N466X3S6.mjs.map +1 -0
  147. package/dist/esm/chunk-N7CE244N.mjs +2 -0
  148. package/dist/esm/{chunk-2XK53QFA.mjs.map → chunk-N7CE244N.mjs.map} +1 -1
  149. package/dist/esm/{chunk-GM56MMNJ.mjs → chunk-NC5HHEEM.mjs} +2 -2
  150. package/dist/esm/chunk-NCDP26DV.mjs +2 -0
  151. package/dist/esm/chunk-NCDP26DV.mjs.map +1 -0
  152. package/dist/esm/{chunk-EKOTTHRQ.mjs → chunk-NQMF46E5.mjs} +2 -2
  153. package/dist/esm/chunk-NWWXZ7EW.mjs +2 -0
  154. package/dist/esm/chunk-NWWXZ7EW.mjs.map +1 -0
  155. package/dist/esm/{chunk-AJIDUBBG.mjs → chunk-ONIYM7IU.mjs} +2 -2
  156. package/dist/esm/{chunk-GWPTNJTQ.mjs → chunk-OT37OTT7.mjs} +2 -2
  157. package/dist/esm/{chunk-7FIS3GNZ.mjs → chunk-OX5GWFHX.mjs} +2 -2
  158. package/dist/esm/{chunk-SGTNW5YI.mjs → chunk-PYUU4OEL.mjs} +2 -2
  159. package/dist/esm/{chunk-T4J32V4F.mjs → chunk-Q3AUNZDW.mjs} +2 -2
  160. package/dist/esm/chunk-QZRWRX6P.mjs +2 -0
  161. package/dist/esm/{chunk-YMB2XW2O.mjs.map → chunk-QZRWRX6P.mjs.map} +1 -1
  162. package/dist/esm/chunk-R2P2XANA.mjs +2 -0
  163. package/dist/esm/chunk-R2P2XANA.mjs.map +1 -0
  164. package/dist/esm/{chunk-25HG3O2C.mjs → chunk-REBMGDZ5.mjs} +2 -2
  165. package/dist/esm/{chunk-GHYE26Q5.mjs → chunk-RKHPXZM6.mjs} +2 -2
  166. package/dist/esm/{chunk-GHYE26Q5.mjs.map → chunk-RKHPXZM6.mjs.map} +1 -1
  167. package/dist/esm/chunk-RUSWW265.mjs +2 -0
  168. package/dist/esm/{chunk-M3YZNSJI.mjs → chunk-SBQRBBRS.mjs} +2 -2
  169. package/dist/esm/chunk-STYDBDYL.mjs +2 -0
  170. package/dist/esm/{chunk-QRS4DGP3.mjs → chunk-T23OVRNF.mjs} +2 -2
  171. package/dist/esm/{chunk-QRS4DGP3.mjs.map → chunk-T23OVRNF.mjs.map} +1 -1
  172. package/dist/esm/{chunk-TUMYQZ27.mjs → chunk-T6OEZ4KP.mjs} +2 -2
  173. package/dist/esm/{chunk-L7LLGJRG.mjs → chunk-TEJ7BXJK.mjs} +2 -2
  174. package/dist/esm/chunk-TJDC5PWD.mjs +2 -0
  175. package/dist/esm/{chunk-36QXVFR5.mjs → chunk-TVRJ3M7B.mjs} +2 -2
  176. package/dist/esm/{chunk-36QXVFR5.mjs.map → chunk-TVRJ3M7B.mjs.map} +1 -1
  177. package/dist/esm/{chunk-UQU5WAX2.mjs → chunk-UDU5L4XH.mjs} +2 -2
  178. package/dist/esm/{chunk-Y3RPWX6U.mjs → chunk-UFJGYMEB.mjs} +2 -2
  179. package/dist/esm/chunk-UO5LUYGO.mjs +2 -0
  180. package/dist/esm/chunk-UO5LUYGO.mjs.map +1 -0
  181. package/dist/esm/chunk-UTXJOB3O.mjs +2 -0
  182. package/dist/esm/{chunk-DQOIESL4.mjs → chunk-UWI5D7FD.mjs} +2 -2
  183. package/dist/esm/chunk-VT6XJSRO.mjs +2 -0
  184. package/dist/esm/chunk-VT6XJSRO.mjs.map +1 -0
  185. package/dist/esm/{chunk-GCBRNHAO.mjs → chunk-W36IQO5K.mjs} +2 -2
  186. package/dist/esm/chunk-W4IWORPF.mjs +2 -0
  187. package/dist/esm/chunk-W4IWORPF.mjs.map +1 -0
  188. package/dist/esm/{chunk-BHLICYAI.mjs → chunk-W637YAND.mjs} +2 -2
  189. package/dist/esm/{chunk-NNUKSGEX.mjs → chunk-WAXCU6D6.mjs} +2 -2
  190. package/dist/esm/chunk-WDE54GRQ.mjs +2 -0
  191. package/dist/esm/chunk-WDE54GRQ.mjs.map +1 -0
  192. package/dist/esm/{chunk-2ZGHK5BB.mjs → chunk-Y33VGXNI.mjs} +2 -2
  193. package/dist/esm/chunk-Y5BON557.mjs +2 -0
  194. package/dist/esm/chunk-YE5B2S5L.mjs +2 -0
  195. package/dist/esm/chunk-YE5B2S5L.mjs.map +1 -0
  196. package/dist/esm/{chunk-ZJMW5Z76.mjs → chunk-YHO2EBXH.mjs} +2 -2
  197. package/dist/esm/chunk-YZPQVZ7S.mjs +2 -0
  198. package/dist/esm/chunk-YZPQVZ7S.mjs.map +1 -0
  199. package/dist/esm/chunk-Z2ZR4PTF.mjs +2 -0
  200. package/dist/esm/{chunk-5WFN54GV.mjs → chunk-Z6JERVLX.mjs} +2 -2
  201. package/dist/esm/chunk-ZCCYHFPK.mjs +2 -0
  202. package/dist/esm/chunk-ZCCYHFPK.mjs.map +1 -0
  203. package/dist/esm/{chunk-35EWRSDK.mjs → chunk-ZNEBMSNC.mjs} +2 -2
  204. package/dist/esm/chunk-ZUQJLFR2.mjs +2 -0
  205. package/dist/esm/chunk-ZUQJLFR2.mjs.map +1 -0
  206. package/dist/esm/cli/index.mjs +1 -1
  207. package/dist/esm/cli/localNode.mjs +1 -1
  208. package/dist/esm/client/core.mjs +1 -1
  209. package/dist/esm/client/get.d.mts +2 -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 +3 -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/ed25519.d.mts +1 -1
  225. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  226. package/dist/esm/core/crypto/ephemeral.d.mts +73 -0
  227. package/dist/esm/core/crypto/ephemeral.mjs +2 -0
  228. package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
  229. package/dist/esm/core/crypto/index.d.mts +4 -1
  230. package/dist/esm/core/crypto/index.mjs +1 -1
  231. package/dist/esm/core/crypto/keyless.d.mts +232 -0
  232. package/dist/esm/core/crypto/keyless.mjs +2 -0
  233. package/dist/esm/core/crypto/keyless.mjs.map +1 -0
  234. package/dist/esm/core/crypto/multiEd25519.d.mts +1 -1
  235. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  236. package/dist/esm/core/crypto/multiKey.d.mts +1 -1
  237. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  238. package/dist/esm/core/crypto/poseidon.d.mts +7 -0
  239. package/dist/esm/core/crypto/poseidon.mjs +2 -0
  240. package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
  241. package/dist/esm/core/crypto/privateKey.d.mts +1 -1
  242. package/dist/esm/core/crypto/proof.d.mts +21 -0
  243. package/dist/esm/core/crypto/proof.mjs +2 -0
  244. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  245. package/dist/esm/core/crypto/publicKey.d.mts +1 -1
  246. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  247. package/dist/esm/core/crypto/secp256k1.d.mts +1 -1
  248. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  249. package/dist/esm/core/crypto/signature.mjs +1 -1
  250. package/dist/esm/core/crypto/singleKey.d.mts +1 -1
  251. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  252. package/dist/esm/core/crypto/utils.mjs +1 -1
  253. package/dist/esm/core/hex.mjs +1 -1
  254. package/dist/esm/core/index.d.mts +4 -1
  255. package/dist/esm/core/index.mjs +1 -1
  256. package/dist/esm/index.d.mts +16 -9
  257. package/dist/esm/index.mjs +1 -1
  258. package/dist/esm/internal/account.d.mts +2 -2
  259. package/dist/esm/internal/account.mjs +1 -1
  260. package/dist/esm/internal/ans.d.mts +2 -2
  261. package/dist/esm/internal/ans.mjs +1 -1
  262. package/dist/esm/internal/coin.d.mts +1 -1
  263. package/dist/esm/internal/coin.mjs +1 -1
  264. package/dist/esm/internal/digitalAsset.d.mts +2 -2
  265. package/dist/esm/internal/digitalAsset.mjs +1 -1
  266. package/dist/esm/internal/event.mjs +1 -1
  267. package/dist/esm/internal/faucet.mjs +1 -1
  268. package/dist/esm/internal/fungibleAsset.d.mts +2 -2
  269. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  270. package/dist/esm/internal/general.mjs +1 -1
  271. package/dist/esm/internal/keyless.d.mts +76 -0
  272. package/dist/esm/internal/keyless.mjs +2 -0
  273. package/dist/esm/internal/keyless.mjs.map +1 -0
  274. package/dist/esm/internal/staking.mjs +1 -1
  275. package/dist/esm/internal/table.mjs +1 -1
  276. package/dist/esm/internal/transaction.mjs +1 -1
  277. package/dist/esm/internal/transactionSubmission.d.mts +2 -2
  278. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  279. package/dist/esm/internal/view.d.mts +1 -1
  280. package/dist/esm/internal/view.mjs +1 -1
  281. package/dist/esm/transactions/authenticator/account.d.mts +1 -1
  282. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  283. package/dist/esm/transactions/authenticator/index.d.mts +1 -1
  284. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  285. package/dist/esm/transactions/authenticator/transaction.d.mts +1 -1
  286. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  287. package/dist/esm/transactions/index.d.mts +4 -3
  288. package/dist/esm/transactions/index.mjs +1 -1
  289. package/dist/esm/transactions/instances/chainId.mjs +1 -1
  290. package/dist/esm/transactions/instances/identifier.mjs +1 -1
  291. package/dist/esm/transactions/instances/index.d.mts +1 -1
  292. package/dist/esm/transactions/instances/index.mjs +1 -1
  293. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  294. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  295. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  296. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +1 -1
  297. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  298. package/dist/esm/transactions/instances/signedTransaction.d.mts +1 -1
  299. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  300. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  301. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  302. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
  303. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  304. package/dist/esm/transactions/management/index.d.mts +2 -2
  305. package/dist/esm/transactions/management/index.mjs +1 -1
  306. package/dist/esm/transactions/management/transactionWorker.d.mts +2 -2
  307. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  308. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +1 -1
  309. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  310. package/dist/esm/transactions/transactionBuilder/index.d.mts +3 -2
  311. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  312. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +3 -3
  313. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  314. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +7 -6
  315. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  316. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +2 -2
  317. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  318. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  319. package/dist/esm/transactions/typeTag/parser.d.mts +3 -1
  320. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  321. package/dist/esm/transactions/types.d.mts +23 -5
  322. package/dist/esm/types/index.d.mts +19 -3
  323. package/dist/esm/types/index.mjs +1 -1
  324. package/dist/esm/types/keyless.d.mts +16 -0
  325. package/dist/esm/types/keyless.mjs +1 -0
  326. package/dist/esm/types/keyless.mjs.map +1 -0
  327. package/dist/esm/utils/apiEndpoints.d.mts +3 -1
  328. package/dist/esm/utils/apiEndpoints.mjs +1 -1
  329. package/dist/esm/utils/const.d.mts +3 -1
  330. package/dist/esm/utils/const.mjs +1 -1
  331. package/dist/esm/utils/helpers.d.mts +4 -1
  332. package/dist/esm/utils/helpers.mjs +1 -1
  333. package/dist/esm/utils/index.d.mts +1 -1
  334. package/dist/esm/utils/index.mjs +1 -1
  335. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  336. package/dist/esm/version.d.mts +1 -1
  337. package/dist/esm/version.mjs +1 -1
  338. package/package.json +11 -3
  339. package/src/account/EphemeralKeyPair.ts +157 -0
  340. package/src/account/KeylessAccount.ts +366 -0
  341. package/src/account/MultiKeyAccount.ts +11 -0
  342. package/src/account/index.ts +2 -0
  343. package/src/api/aptos.ts +6 -0
  344. package/src/api/aptosConfig.ts +46 -1
  345. package/src/api/keyless.ts +48 -0
  346. package/src/bcs/cryptoHasher.ts +6 -0
  347. package/src/bcs/deserializer.ts +40 -0
  348. package/src/bcs/serializer.ts +18 -0
  349. package/src/cli/localNode.ts +11 -1
  350. package/src/client/core.ts +8 -0
  351. package/src/client/get.ts +6 -0
  352. package/src/client/post.ts +12 -0
  353. package/src/client/types.ts +1 -1
  354. package/src/core/crypto/ephemeral.ts +138 -0
  355. package/src/core/crypto/index.ts +2 -0
  356. package/src/core/crypto/keyless.ts +453 -0
  357. package/src/core/crypto/poseidon.ts +133 -0
  358. package/src/core/crypto/proof.ts +16 -0
  359. package/src/core/crypto/singleKey.ts +11 -0
  360. package/src/internal/keyless.ts +109 -0
  361. package/src/internal/transactionSubmission.ts +7 -2
  362. package/src/transactions/transactionBuilder/remoteAbi.ts +16 -2
  363. package/src/transactions/transactionBuilder/signingMessage.ts +4 -4
  364. package/src/transactions/transactionBuilder/transactionBuilder.ts +21 -3
  365. package/src/transactions/typeTag/parser.ts +98 -52
  366. package/src/transactions/types.ts +22 -3
  367. package/src/types/index.ts +22 -0
  368. package/src/types/keyless.ts +6 -0
  369. package/src/utils/apiEndpoints.ts +14 -0
  370. package/src/utils/const.ts +2 -0
  371. package/src/utils/helpers.ts +25 -0
  372. package/src/version.ts +1 -1
  373. package/dist/common/chunk-KSEUZTKY.js +0 -2
  374. package/dist/common/chunk-KSEUZTKY.js.map +0 -1
  375. package/dist/esm/chunk-2XK53QFA.mjs +0 -2
  376. package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
  377. package/dist/esm/chunk-3JPVQHOR.mjs.map +0 -1
  378. package/dist/esm/chunk-4NHWV5AI.mjs +0 -2
  379. package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
  380. package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
  381. package/dist/esm/chunk-6QJOCI5Y.mjs +0 -2
  382. package/dist/esm/chunk-7VRZLDIJ.mjs +0 -2
  383. package/dist/esm/chunk-B7X6PSE7.mjs +0 -2
  384. package/dist/esm/chunk-BO2TLWNT.mjs +0 -2
  385. package/dist/esm/chunk-BVV56I3P.mjs +0 -2
  386. package/dist/esm/chunk-BVV56I3P.mjs.map +0 -1
  387. package/dist/esm/chunk-C4RK5AB6.mjs +0 -2
  388. package/dist/esm/chunk-C6HODGUS.mjs +0 -2
  389. package/dist/esm/chunk-CEHCDA3G.mjs +0 -2
  390. package/dist/esm/chunk-CJDEPZ4J.mjs +0 -2
  391. package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
  392. package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
  393. package/dist/esm/chunk-DCF2OTJS.mjs +0 -2
  394. package/dist/esm/chunk-DCF2OTJS.mjs.map +0 -1
  395. package/dist/esm/chunk-EW3AR5V3.mjs +0 -2
  396. package/dist/esm/chunk-EW3AR5V3.mjs.map +0 -1
  397. package/dist/esm/chunk-F7EMGK4M.mjs +0 -2
  398. package/dist/esm/chunk-HYCGMFC2.mjs +0 -2
  399. package/dist/esm/chunk-HYCGMFC2.mjs.map +0 -1
  400. package/dist/esm/chunk-JDDYOCHY.mjs +0 -2
  401. package/dist/esm/chunk-JDDYOCHY.mjs.map +0 -1
  402. package/dist/esm/chunk-JFIAWBCK.mjs +0 -2
  403. package/dist/esm/chunk-JFIAWBCK.mjs.map +0 -1
  404. package/dist/esm/chunk-L54P6EGN.mjs +0 -2
  405. package/dist/esm/chunk-L54P6EGN.mjs.map +0 -1
  406. package/dist/esm/chunk-LG7RJQ57.mjs +0 -2
  407. package/dist/esm/chunk-MJPUASSD.mjs +0 -2
  408. package/dist/esm/chunk-MJPUASSD.mjs.map +0 -1
  409. package/dist/esm/chunk-MV6ORORF.mjs +0 -2
  410. package/dist/esm/chunk-MV6ORORF.mjs.map +0 -1
  411. package/dist/esm/chunk-N3U47Y6Y.mjs +0 -2
  412. package/dist/esm/chunk-OWW6SIDP.mjs +0 -2
  413. package/dist/esm/chunk-OWW6SIDP.mjs.map +0 -1
  414. package/dist/esm/chunk-PF57EOJY.mjs +0 -2
  415. package/dist/esm/chunk-PYGUW7SU.mjs +0 -2
  416. package/dist/esm/chunk-PYGUW7SU.mjs.map +0 -1
  417. package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
  418. package/dist/esm/chunk-RTSWVT2Q.mjs +0 -2
  419. package/dist/esm/chunk-RTSWVT2Q.mjs.map +0 -1
  420. package/dist/esm/chunk-S2VSJJRJ.mjs +0 -2
  421. package/dist/esm/chunk-S2VSJJRJ.mjs.map +0 -1
  422. package/dist/esm/chunk-SRDIYE3M.mjs +0 -2
  423. package/dist/esm/chunk-UGPALAPN.mjs +0 -2
  424. package/dist/esm/chunk-UO3NZ5AH.mjs +0 -1
  425. package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
  426. package/dist/esm/chunk-YMB2XW2O.mjs +0 -2
  427. /package/dist/esm/{chunk-UO3NZ5AH.mjs.map → account/EphemeralKeyPair.mjs.map} +0 -0
  428. /package/dist/esm/{chunk-UVSRX4SV.mjs.map → account/KeylessAccount.mjs.map} +0 -0
  429. /package/dist/esm/{chunk-CEHCDA3G.mjs.map → chunk-3FVRXELT.mjs.map} +0 -0
  430. /package/dist/esm/{chunk-U3YYSIIT.mjs.map → chunk-3VGX3TXH.mjs.map} +0 -0
  431. /package/dist/esm/{chunk-4W3ZDREO.mjs.map → chunk-3Y6JNFPD.mjs.map} +0 -0
  432. /package/dist/esm/{chunk-JP4W2YJF.mjs.map → chunk-5RRZMXND.mjs.map} +0 -0
  433. /package/dist/esm/{chunk-64MINNG2.mjs.map → chunk-6M53MDWB.mjs.map} +0 -0
  434. /package/dist/esm/{chunk-UPSCPEEE.mjs.map → chunk-7H3HRFVM.mjs.map} +0 -0
  435. /package/dist/esm/{chunk-5EN52MUT.mjs.map → chunk-7STYQ5ZE.mjs.map} +0 -0
  436. /package/dist/esm/{chunk-J77BLQCV.mjs.map → chunk-A3UVZHDJ.mjs.map} +0 -0
  437. /package/dist/esm/{chunk-BCUSI3N6.mjs.map → chunk-AOCNYMMX.mjs.map} +0 -0
  438. /package/dist/esm/{chunk-2O5VFH5O.mjs.map → chunk-C34M4T77.mjs.map} +0 -0
  439. /package/dist/esm/{chunk-N3U47Y6Y.mjs.map → chunk-C3L4ETUF.mjs.map} +0 -0
  440. /package/dist/esm/{chunk-4NHWV5AI.mjs.map → chunk-COW5IGYC.mjs.map} +0 -0
  441. /package/dist/esm/{chunk-TLLWFCCP.mjs.map → chunk-EADBYPUD.mjs.map} +0 -0
  442. /package/dist/esm/{chunk-G56GPLTB.mjs.map → chunk-EB7AI4B4.mjs.map} +0 -0
  443. /package/dist/esm/{chunk-AJU3EBVX.mjs.map → chunk-EIRSA5UU.mjs.map} +0 -0
  444. /package/dist/esm/{chunk-SSSWFYAX.mjs.map → chunk-EPTCPBVW.mjs.map} +0 -0
  445. /package/dist/esm/{chunk-AG3TUKNI.mjs.map → chunk-F5C4SZZ7.mjs.map} +0 -0
  446. /package/dist/esm/{chunk-ECVKW776.mjs.map → chunk-FBLSW5TB.mjs.map} +0 -0
  447. /package/dist/esm/{chunk-LG7RJQ57.mjs.map → chunk-FBPNHF54.mjs.map} +0 -0
  448. /package/dist/esm/{chunk-KAGLWBIJ.mjs.map → chunk-HGZGTBA4.mjs.map} +0 -0
  449. /package/dist/esm/{chunk-7VRZLDIJ.mjs.map → chunk-IEZO4PIG.mjs.map} +0 -0
  450. /package/dist/esm/{chunk-BZCARW2P.mjs.map → chunk-IJE5YSXW.mjs.map} +0 -0
  451. /package/dist/esm/{chunk-DZJ2RMX3.mjs.map → chunk-KFUOOBMJ.mjs.map} +0 -0
  452. /package/dist/esm/{chunk-CWO2JAUL.mjs.map → chunk-KKP4FBWZ.mjs.map} +0 -0
  453. /package/dist/esm/{chunk-OUTRV57V.mjs.map → chunk-LEBJNW6Y.mjs.map} +0 -0
  454. /package/dist/esm/{chunk-UEELI2FS.mjs.map → chunk-LO7B3CWN.mjs.map} +0 -0
  455. /package/dist/esm/{chunk-EU7EBOVD.mjs.map → chunk-LQH7T3TE.mjs.map} +0 -0
  456. /package/dist/esm/{chunk-VC4A47VQ.mjs.map → chunk-M7HZOQ6A.mjs.map} +0 -0
  457. /package/dist/esm/{chunk-B7X6PSE7.mjs.map → chunk-MGOHPDX4.mjs.map} +0 -0
  458. /package/dist/esm/{chunk-P6GWG2CY.mjs.map → chunk-MKUAW7KW.mjs.map} +0 -0
  459. /package/dist/esm/{chunk-I6ST47U7.mjs.map → chunk-MTLETLKV.mjs.map} +0 -0
  460. /package/dist/esm/{chunk-QYJF7C23.mjs.map → chunk-MWN63XBE.mjs.map} +0 -0
  461. /package/dist/esm/{chunk-PF57EOJY.mjs.map → chunk-MWUJCP27.mjs.map} +0 -0
  462. /package/dist/esm/{chunk-GM56MMNJ.mjs.map → chunk-NC5HHEEM.mjs.map} +0 -0
  463. /package/dist/esm/{chunk-EKOTTHRQ.mjs.map → chunk-NQMF46E5.mjs.map} +0 -0
  464. /package/dist/esm/{chunk-AJIDUBBG.mjs.map → chunk-ONIYM7IU.mjs.map} +0 -0
  465. /package/dist/esm/{chunk-GWPTNJTQ.mjs.map → chunk-OT37OTT7.mjs.map} +0 -0
  466. /package/dist/esm/{chunk-7FIS3GNZ.mjs.map → chunk-OX5GWFHX.mjs.map} +0 -0
  467. /package/dist/esm/{chunk-SGTNW5YI.mjs.map → chunk-PYUU4OEL.mjs.map} +0 -0
  468. /package/dist/esm/{chunk-T4J32V4F.mjs.map → chunk-Q3AUNZDW.mjs.map} +0 -0
  469. /package/dist/esm/{chunk-25HG3O2C.mjs.map → chunk-REBMGDZ5.mjs.map} +0 -0
  470. /package/dist/esm/{chunk-6QJOCI5Y.mjs.map → chunk-RUSWW265.mjs.map} +0 -0
  471. /package/dist/esm/{chunk-M3YZNSJI.mjs.map → chunk-SBQRBBRS.mjs.map} +0 -0
  472. /package/dist/esm/{chunk-UGPALAPN.mjs.map → chunk-STYDBDYL.mjs.map} +0 -0
  473. /package/dist/esm/{chunk-TUMYQZ27.mjs.map → chunk-T6OEZ4KP.mjs.map} +0 -0
  474. /package/dist/esm/{chunk-L7LLGJRG.mjs.map → chunk-TEJ7BXJK.mjs.map} +0 -0
  475. /package/dist/esm/{chunk-F7EMGK4M.mjs.map → chunk-TJDC5PWD.mjs.map} +0 -0
  476. /package/dist/esm/{chunk-UQU5WAX2.mjs.map → chunk-UDU5L4XH.mjs.map} +0 -0
  477. /package/dist/esm/{chunk-Y3RPWX6U.mjs.map → chunk-UFJGYMEB.mjs.map} +0 -0
  478. /package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-UTXJOB3O.mjs.map} +0 -0
  479. /package/dist/esm/{chunk-DQOIESL4.mjs.map → chunk-UWI5D7FD.mjs.map} +0 -0
  480. /package/dist/esm/{chunk-GCBRNHAO.mjs.map → chunk-W36IQO5K.mjs.map} +0 -0
  481. /package/dist/esm/{chunk-BHLICYAI.mjs.map → chunk-W637YAND.mjs.map} +0 -0
  482. /package/dist/esm/{chunk-NNUKSGEX.mjs.map → chunk-WAXCU6D6.mjs.map} +0 -0
  483. /package/dist/esm/{chunk-2ZGHK5BB.mjs.map → chunk-Y33VGXNI.mjs.map} +0 -0
  484. /package/dist/esm/{chunk-C6HODGUS.mjs.map → chunk-Y5BON557.mjs.map} +0 -0
  485. /package/dist/esm/{chunk-ZJMW5Z76.mjs.map → chunk-YHO2EBXH.mjs.map} +0 -0
  486. /package/dist/esm/{chunk-BO2TLWNT.mjs.map → chunk-Z2ZR4PTF.mjs.map} +0 -0
  487. /package/dist/esm/{chunk-5WFN54GV.mjs.map → chunk-Z6JERVLX.mjs.map} +0 -0
  488. /package/dist/esm/{chunk-35EWRSDK.mjs.map → chunk-ZNEBMSNC.mjs.map} +0 -0
  489. /package/dist/esm/{publicKey-B3XRNhHO.d.mts → publicKey-lq5djCIY.d.mts} +0 -0
@@ -135,3 +135,15 @@ export async function postAptosFaucet<Req extends {}, Res extends {}>(
135
135
  },
136
136
  });
137
137
  }
138
+
139
+ export async function postAptosPepperService<Req extends {}, Res extends {}>(
140
+ options: PostAptosRequestOptions,
141
+ ): Promise<AptosResponse<Req, Res>> {
142
+ return post<Req, Res>({ ...options, type: AptosApiType.PEPPER });
143
+ }
144
+
145
+ export async function postAptosProvingService<Req extends {}, Res extends {}>(
146
+ options: PostAptosRequestOptions,
147
+ ): Promise<AptosResponse<Req, Res>> {
148
+ return post<Req, Res>({ ...options, type: AptosApiType.PROVER });
149
+ }
@@ -41,7 +41,7 @@ export class AptosApiError extends Error {
41
41
 
42
42
  readonly statusText: string;
43
43
 
44
- readonly data: any;
44
+ readonly data: { message: string; error_code?: string; vm_error_code?: number };
45
45
 
46
46
  readonly request: AptosRequest;
47
47
 
@@ -0,0 +1,138 @@
1
+ import { Serializer, Deserializer } from "../../bcs";
2
+ import { EphemeralPublicKeyVariant, EphemeralSignatureVariant, HexInput } from "../../types";
3
+ import { PublicKey } from "./publicKey";
4
+ import { Signature } from "./signature";
5
+ import { Ed25519PublicKey, Ed25519Signature } from "./ed25519";
6
+ import { Hex } from "../hex";
7
+
8
+ /**
9
+ * Represents ephemeral public keys for Aptos Keyless accounts.
10
+ *
11
+ * These are not public keys used as a public key on an account. They are only used ephemerally on Keyless accounts.
12
+ */
13
+ export class EphemeralPublicKey extends PublicKey {
14
+ /**
15
+ * The public key itself
16
+ */
17
+ public readonly publicKey: PublicKey;
18
+
19
+ /**
20
+ * An enum indicating the scheme of the ephemeral public key
21
+ */
22
+ public readonly variant: EphemeralPublicKeyVariant;
23
+
24
+ constructor(publicKey: PublicKey) {
25
+ super();
26
+ const publicKeyType = publicKey.constructor.name;
27
+ switch (publicKeyType) {
28
+ case Ed25519PublicKey.name:
29
+ this.publicKey = publicKey;
30
+ this.variant = EphemeralPublicKeyVariant.Ed25519;
31
+ break;
32
+ default:
33
+ throw new Error(`Unsupported key for EphemeralPublicKey - ${publicKeyType}`);
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Get the public key in bytes (Uint8Array).
39
+ *
40
+ * @returns Uint8Array representation of the public key
41
+ */
42
+ toUint8Array(): Uint8Array {
43
+ return this.bcsToBytes();
44
+ }
45
+
46
+ /**
47
+ * Verifies a signed data with a the ephemeral public key
48
+ *
49
+ * @param args.message message
50
+ * @param args.signature The signature that was signed by the private key of the ephemeral public key
51
+ * @returns true if the signature is valid
52
+ */
53
+ verifySignature(args: { message: HexInput; signature: EphemeralSignature }): boolean {
54
+ const { message, signature } = args;
55
+ return this.publicKey.verifySignature({ message, signature });
56
+ }
57
+
58
+ serialize(serializer: Serializer): void {
59
+ if (this.publicKey instanceof Ed25519PublicKey) {
60
+ serializer.serializeU32AsUleb128(EphemeralPublicKeyVariant.Ed25519);
61
+ this.publicKey.serialize(serializer);
62
+ } else {
63
+ throw new Error("Unknown public key type");
64
+ }
65
+ }
66
+
67
+ static deserialize(deserializer: Deserializer): EphemeralPublicKey {
68
+ const index = deserializer.deserializeUleb128AsU32();
69
+ switch (index) {
70
+ case EphemeralPublicKeyVariant.Ed25519:
71
+ return new EphemeralPublicKey(Ed25519PublicKey.deserialize(deserializer));
72
+ default:
73
+ throw new Error(`Unknown variant index for EphemeralPublicKey: ${index}`);
74
+ }
75
+ }
76
+
77
+ static isPublicKey(publicKey: PublicKey): publicKey is EphemeralPublicKey {
78
+ return publicKey instanceof EphemeralPublicKey;
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Represents ephemeral signatures used in Aptos Keyless accounts.
84
+ *
85
+ * These signatures are used inside of KeylessSignature
86
+ */
87
+ export class EphemeralSignature extends Signature {
88
+ /**
89
+ * The signature signed by the private key of an EphemeralKeyPair
90
+ */
91
+ public readonly signature: Signature;
92
+
93
+ constructor(signature: Signature) {
94
+ super();
95
+ const signatureType = signature.constructor.name;
96
+ switch (signatureType) {
97
+ case Ed25519Signature.name:
98
+ this.signature = signature;
99
+ break;
100
+ default:
101
+ throw new Error(`Unsupported signature for EphemeralSignature - ${signatureType}`);
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Get the public key in bytes (Uint8Array).
107
+ *
108
+ * @returns Uint8Array representation of the public key
109
+ */
110
+ toUint8Array(): Uint8Array {
111
+ return this.bcsToBytes();
112
+ }
113
+
114
+ static fromHex(hexInput: HexInput): EphemeralSignature {
115
+ const data = Hex.fromHexInput(hexInput);
116
+ const deserializer = new Deserializer(data.toUint8Array());
117
+ return EphemeralSignature.deserialize(deserializer);
118
+ }
119
+
120
+ serialize(serializer: Serializer): void {
121
+ if (this.signature instanceof Ed25519Signature) {
122
+ serializer.serializeU32AsUleb128(EphemeralSignatureVariant.Ed25519);
123
+ this.signature.serialize(serializer);
124
+ } else {
125
+ throw new Error("Unknown signature type");
126
+ }
127
+ }
128
+
129
+ static deserialize(deserializer: Deserializer): EphemeralSignature {
130
+ const index = deserializer.deserializeUleb128AsU32();
131
+ switch (index) {
132
+ case EphemeralSignatureVariant.Ed25519:
133
+ return new EphemeralSignature(Ed25519Signature.deserialize(deserializer));
134
+ default:
135
+ throw new Error(`Unknown variant index for EphemeralSignature: ${index}`);
136
+ }
137
+ }
138
+ }
@@ -5,6 +5,8 @@ export * from "./ed25519";
5
5
  export * from "./hdKey";
6
6
  export * from "./multiEd25519";
7
7
  export * from "./multiKey";
8
+ export * from "./ephemeral";
9
+ export * from "./keyless";
8
10
  export * from "./privateKey";
9
11
  export * from "./publicKey";
10
12
  export * from "./secp256k1";
@@ -0,0 +1,453 @@
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, hashASCIIStrToField, poseidonHash } from "./poseidon";
11
+ import { AuthenticationKey } from "../authenticationKey";
12
+ import { Proof } from "./proof";
13
+
14
+ export const EPK_HORIZON_SECS = 10000000;
15
+ export const MAX_AUD_VAL_BYTES = 120;
16
+ export const MAX_UID_KEY_BYTES = 30;
17
+ export const MAX_UID_VAL_BYTES = 330;
18
+ export const MAX_ISS_VAL_BYTES = 120;
19
+ export const MAX_EXTRA_FIELD_BYTES = 350;
20
+ export const MAX_JWT_HEADER_B64_BYTES = 300;
21
+ export const MAX_COMMITED_EPK_BYTES = 93;
22
+
23
+ /**
24
+ * Represents the KeylessPublicKey public key
25
+ *
26
+ * KeylessPublicKey authentication key is represented in the SDK as `AnyPublicKey`.
27
+ */
28
+ export class KeylessPublicKey extends AccountPublicKey {
29
+ static readonly ID_COMMITMENT_LENGTH: number = 32;
30
+
31
+ readonly iss: string;
32
+
33
+ readonly idCommitment: Uint8Array;
34
+
35
+ constructor(iss: string, idCommitment: HexInput) {
36
+ super();
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}`);
40
+ }
41
+ this.iss = iss;
42
+ this.idCommitment = idcBytes;
43
+ }
44
+
45
+ /**
46
+ * Get the authentication key for the keyless public key
47
+ *
48
+ * @returns AuthenticationKey
49
+ */
50
+ authKey(): AuthenticationKey {
51
+ const serializer = new Serializer();
52
+ serializer.serializeU32AsUleb128(AnyPublicKeyVariant.Keyless);
53
+ serializer.serializeFixedBytes(this.bcsToBytes());
54
+ return AuthenticationKey.fromSchemeAndBytes({
55
+ scheme: SigningScheme.SingleKey,
56
+ input: serializer.toUint8Array(),
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Get the public key in bytes (Uint8Array).
62
+ *
63
+ * @returns Uint8Array representation of the public key
64
+ */
65
+ toUint8Array(): Uint8Array {
66
+ return this.bcsToBytes();
67
+ }
68
+
69
+ /**
70
+ * Get the public key as a hex string with the 0x prefix.
71
+ *
72
+ * @returns string representation of the public key
73
+ */
74
+ toString(): string {
75
+ return Hex.fromHexInput(this.toUint8Array()).toString();
76
+ }
77
+
78
+ /**
79
+ * Verifies a signed data with a public key
80
+ *
81
+ * @param args.message message
82
+ * @param args.signature The signature
83
+ * @returns true if the signature is valid
84
+ */
85
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
86
+ verifySignature(args: { message: HexInput; signature: KeylessSignature }): boolean {
87
+ throw new Error("Not yet implemented");
88
+ }
89
+
90
+ serialize(serializer: Serializer): void {
91
+ serializer.serializeStr(this.iss);
92
+ serializer.serializeBytes(this.idCommitment);
93
+ }
94
+
95
+ static deserialize(deserializer: Deserializer): KeylessPublicKey {
96
+ const iss = deserializer.deserializeStr();
97
+ const addressSeed = deserializer.deserializeBytes();
98
+ return new KeylessPublicKey(iss, addressSeed);
99
+ }
100
+
101
+ static load(deserializer: Deserializer): KeylessPublicKey {
102
+ const iss = deserializer.deserializeStr();
103
+ const addressSeed = deserializer.deserializeBytes();
104
+ return new KeylessPublicKey(iss, addressSeed);
105
+ }
106
+
107
+ static isPublicKey(publicKey: PublicKey): publicKey is KeylessPublicKey {
108
+ return publicKey instanceof KeylessPublicKey;
109
+ }
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
+ */
121
+ static create(args: {
122
+ iss: string;
123
+ uidKey: string;
124
+ uidVal: string;
125
+ aud: string;
126
+ pepper: HexInput;
127
+ }): KeylessPublicKey {
128
+ computeIdCommitment(args);
129
+ return new KeylessPublicKey(args.iss, computeIdCommitment(args));
130
+ }
131
+ }
132
+
133
+ function computeIdCommitment(args: { uidKey: string; uidVal: string; aud: string; pepper: HexInput }): Uint8Array {
134
+ const { uidKey, uidVal, aud, pepper } = args;
135
+
136
+ const fields = [
137
+ bytesToBigIntLE(Hex.fromHexInput(pepper).toUint8Array()),
138
+ hashASCIIStrToField(aud, MAX_AUD_VAL_BYTES),
139
+ hashASCIIStrToField(uidVal, MAX_UID_VAL_BYTES),
140
+ hashASCIIStrToField(uidKey, MAX_UID_KEY_BYTES),
141
+ ];
142
+
143
+ return bigIntToBytesLE(poseidonHash(fields), KeylessPublicKey.ID_COMMITMENT_LENGTH);
144
+ }
145
+
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;
159
+
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
+ }) {
182
+ super();
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;
189
+ }
190
+
191
+ /**
192
+ * Get the signature in bytes (Uint8Array).
193
+ *
194
+ * @returns Uint8Array representation of the signature
195
+ */
196
+ toUint8Array(): Uint8Array {
197
+ return this.bcsToBytes();
198
+ }
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
+
249
+ /**
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).
262
+ *
263
+ * @returns Uint8Array representation of the public key
264
+ */
265
+ toUint8Array(): Uint8Array {
266
+ return this.signature.toUint8Array();
267
+ }
268
+
269
+ serialize(serializer: Serializer): void {
270
+ serializer.serializeU32AsUleb128(this.variant);
271
+ this.signature.serialize(serializer);
272
+ }
273
+
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);
279
+ default:
280
+ throw new Error(`Unknown variant index for EphemeralCertificate: ${variant}`);
281
+ }
282
+ }
283
+ }
284
+
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
+ */
292
+ a: Uint8Array;
293
+
294
+ /**
295
+ * The bytes of G2 proof point b
296
+ */
297
+ b: Uint8Array;
298
+
299
+ /**
300
+ * The bytes of G1 proof point c
301
+ */
302
+ c: Uint8Array;
303
+
304
+ constructor(args: { a: HexInput; b: HexInput; c: HexInput }) {
305
+ super();
306
+ const { a, b, c } = args;
307
+ this.a = Hex.fromHexInput(a).toUint8Array();
308
+ this.b = Hex.fromHexInput(b).toUint8Array();
309
+ this.c = Hex.fromHexInput(c).toUint8Array();
310
+ }
311
+
312
+ serialize(serializer: Serializer): void {
313
+ serializer.serializeFixedBytes(this.a);
314
+ serializer.serializeFixedBytes(this.b);
315
+ serializer.serializeFixedBytes(this.c);
316
+ }
317
+
318
+ static deserialize(deserializer: Deserializer): Groth16Zkp {
319
+ const a = deserializer.deserializeFixedBytes(32);
320
+ const b = deserializer.deserializeFixedBytes(64);
321
+ const c = deserializer.deserializeFixedBytes(32);
322
+ return new Groth16Zkp({ a, b, c });
323
+ }
324
+ }
325
+
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
+ }
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
+ */
371
+ readonly expHorizonSecs: bigint;
372
+
373
+ /**
374
+ * A key value pair on the JWT token that can be made public
375
+ */
376
+ readonly extraField?: string;
377
+
378
+ /**
379
+ * Set in the case of signing by recovery services
380
+ */
381
+ readonly overrideAudVal?: string;
382
+
383
+ /**
384
+ * The training wheels signature
385
+ */
386
+ readonly trainingWheelsSignature?: EphemeralSignature;
387
+
388
+ constructor(args: {
389
+ proof: ZkProof;
390
+ expHorizonSecs?: bigint;
391
+ extraField?: string;
392
+ overrideAudVal?: string;
393
+ trainingWheelsSignature?: EphemeralSignature;
394
+ }) {
395
+ super();
396
+ const {
397
+ proof,
398
+ expHorizonSecs = BigInt(EPK_HORIZON_SECS),
399
+ trainingWheelsSignature,
400
+ extraField,
401
+ overrideAudVal,
402
+ } = args;
403
+ this.proof = proof;
404
+ this.expHorizonSecs = expHorizonSecs;
405
+ this.trainingWheelsSignature = trainingWheelsSignature;
406
+ this.extraField = extraField;
407
+ this.overrideAudVal = overrideAudVal;
408
+ }
409
+
410
+ /**
411
+ * Get the signature in bytes (Uint8Array).
412
+ *
413
+ * @returns Uint8Array representation of the signature
414
+ */
415
+ toUint8Array(): Uint8Array {
416
+ return this.bcsToBytes();
417
+ }
418
+
419
+ /**
420
+ * Return a ZeroKnowledgeSig object from its bcs serialization in bytes.
421
+ *
422
+ * @returns ZeroKnowledgeSig
423
+ */
424
+ static fromBytes(bytes: Uint8Array): ZeroKnowledgeSig {
425
+ return ZeroKnowledgeSig.deserialize(new Deserializer(bytes));
426
+ }
427
+
428
+ serialize(serializer: Serializer): void {
429
+ this.proof.serialize(serializer);
430
+ serializer.serializeU64(this.expHorizonSecs);
431
+ serializer.serializeOptionStr(this.extraField);
432
+ serializer.serializeOptionStr(this.overrideAudVal);
433
+ serializer.serializeOption(this.trainingWheelsSignature);
434
+ }
435
+
436
+ static deserialize(deserializer: Deserializer): ZeroKnowledgeSig {
437
+ const proof = ZkProof.deserialize(deserializer);
438
+ const expHorizonSecs = deserializer.deserializeU64();
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 });
443
+ }
444
+
445
+ static load(deserializer: Deserializer): ZeroKnowledgeSig {
446
+ const proof = ZkProof.deserialize(deserializer);
447
+ const expHorizonSecs = deserializer.deserializeU64();
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 });
452
+ }
453
+ }