@aptos-labs/ts-sdk 1.14.0-zeta.0 → 1.14.0-zeta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/{accountAddress-NPQwRmxn.d.ts → accountAddress-u9wEan9p.d.ts} +32 -4
- package/dist/common/chunk-QRI7EC4T.js +24 -0
- package/dist/common/chunk-QRI7EC4T.js.map +1 -0
- package/dist/common/cli/index.d.ts +1 -1
- package/dist/common/cli/index.js +245 -1
- package/dist/common/cli/index.js.map +1 -1
- package/dist/common/index.d.ts +290 -171
- package/dist/common/index.js +11786 -374
- package/dist/common/index.js.map +1 -1
- package/dist/esm/account/Account.mjs +55 -1
- package/dist/esm/account/Ed25519Account.mjs +53 -1
- package/dist/esm/account/EphemeralKeyPair.d.mts +38 -5
- package/dist/esm/account/EphemeralKeyPair.mjs +36 -1
- package/dist/esm/account/KeylessAccount.d.mts +75 -37
- package/dist/esm/account/KeylessAccount.mjs +56 -1
- package/dist/esm/account/MultiKeyAccount.d.mts +4 -0
- package/dist/esm/account/MultiKeyAccount.mjs +55 -1
- package/dist/esm/account/SingleKeyAccount.mjs +53 -1
- package/dist/esm/account/index.d.mts +2 -1
- package/dist/esm/account/index.mjs +76 -1
- package/dist/esm/api/account.mjs +76 -1
- package/dist/esm/api/ans.mjs +87 -1
- package/dist/esm/api/aptos.d.mts +1 -0
- package/dist/esm/api/aptos.mjs +116 -1
- package/dist/esm/api/aptosConfig.mjs +9 -1
- package/dist/esm/api/coin.mjs +86 -1
- package/dist/esm/api/digitalAsset.mjs +87 -1
- package/dist/esm/api/event.mjs +54 -1
- package/dist/esm/api/faucet.mjs +53 -1
- package/dist/esm/api/fungibleAsset.mjs +87 -1
- package/dist/esm/api/general.mjs +84 -1
- package/dist/esm/api/index.d.mts +1 -0
- package/dist/esm/api/index.mjs +120 -1
- package/dist/esm/api/keyless.d.mts +19 -5
- package/dist/esm/api/keyless.mjs +70 -1
- package/dist/esm/api/staking.mjs +54 -1
- package/dist/esm/api/transaction.mjs +94 -1
- package/dist/esm/api/transactionSubmission/build.mjs +85 -1
- package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
- package/dist/esm/api/transactionSubmission/management.mjs +89 -1
- package/dist/esm/api/transactionSubmission/sign.mjs +109 -1
- package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/simulate.mjs +86 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +86 -1
- package/dist/esm/api/utils.mjs +34 -1
- package/dist/esm/bcs/consts.mjs +17 -1
- package/dist/esm/bcs/deserializer.d.mts +26 -0
- package/dist/esm/bcs/deserializer.mjs +8 -1
- package/dist/esm/bcs/index.mjs +57 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +25 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +18 -1
- package/dist/esm/bcs/serializer.mjs +18 -1
- package/dist/esm/chunk-2JOCR2VL.mjs +32 -0
- package/dist/esm/chunk-2JOCR2VL.mjs.map +1 -0
- package/dist/esm/chunk-2OQW7BMN.mjs +129 -0
- package/dist/esm/{chunk-7WJTKYRG.mjs.map → chunk-2OQW7BMN.mjs.map} +1 -1
- package/dist/esm/chunk-2TJJWII2.mjs +23 -0
- package/dist/esm/{chunk-MGOHPDX4.mjs.map → chunk-2TJJWII2.mjs.map} +1 -1
- package/dist/esm/chunk-2ZEGJU43.mjs +252 -0
- package/dist/esm/{chunk-KWNBC5MF.mjs.map → chunk-2ZEGJU43.mjs.map} +1 -1
- package/dist/esm/chunk-4OYYOYSO.mjs +336 -0
- package/dist/esm/chunk-4OYYOYSO.mjs.map +1 -0
- package/dist/esm/{chunk-S4SEFF4K.mjs → chunk-4PJ5FYGQ.mjs} +302 -27
- package/dist/esm/{chunk-S4SEFF4K.mjs.map → chunk-4PJ5FYGQ.mjs.map} +1 -1
- package/dist/esm/chunk-55NODGHC.mjs +135 -0
- package/dist/esm/{chunk-G4XSNSOT.mjs.map → chunk-55NODGHC.mjs.map} +1 -1
- package/dist/esm/chunk-6LRQSBRH.mjs +130 -0
- package/dist/esm/{chunk-C5UVSNZW.mjs.map → chunk-6LRQSBRH.mjs.map} +1 -1
- package/dist/esm/chunk-6MSZMIFW.mjs +23 -0
- package/dist/esm/{chunk-MWUJCP27.mjs.map → chunk-6MSZMIFW.mjs.map} +1 -1
- package/dist/esm/chunk-76TSTAU4.mjs +120 -0
- package/dist/esm/{chunk-FLYEALDB.mjs.map → chunk-76TSTAU4.mjs.map} +1 -1
- package/dist/esm/chunk-7FO3S6IZ.mjs +324 -0
- package/dist/esm/{chunk-3VGX3TXH.mjs.map → chunk-7FO3S6IZ.mjs.map} +1 -1
- package/dist/esm/chunk-7FUHWL6A.mjs +42 -0
- package/dist/esm/{chunk-SRPTQ4VV.mjs.map → chunk-7FUHWL6A.mjs.map} +1 -1
- package/dist/esm/chunk-7IDBB4J4.mjs +33 -0
- package/dist/esm/{chunk-PINF6ZWP.mjs.map → chunk-7IDBB4J4.mjs.map} +1 -1
- package/dist/esm/chunk-7JRMOHBP.mjs +247 -0
- package/dist/esm/chunk-7JRMOHBP.mjs.map +1 -0
- package/dist/esm/chunk-7REUIYF4.mjs +63 -0
- package/dist/esm/chunk-7REUIYF4.mjs.map +1 -0
- package/dist/esm/chunk-AC3OGAL6.mjs +87 -0
- package/dist/esm/{chunk-U6Z4FNB7.mjs.map → chunk-AC3OGAL6.mjs.map} +1 -1
- package/dist/esm/chunk-AR7X6GWQ.mjs +356 -0
- package/dist/esm/{chunk-EB7AI4B4.mjs.map → chunk-AR7X6GWQ.mjs.map} +1 -1
- package/dist/esm/chunk-ASF2VWOX.mjs +142 -0
- package/dist/esm/{chunk-O34EOOVF.mjs.map → chunk-ASF2VWOX.mjs.map} +1 -1
- package/dist/esm/chunk-ATVFVXR6.mjs +43 -0
- package/dist/esm/{chunk-IXYXFDJZ.mjs.map → chunk-ATVFVXR6.mjs.map} +1 -1
- package/dist/esm/chunk-B5S6DDUD.mjs +120 -0
- package/dist/esm/chunk-B5S6DDUD.mjs.map +1 -0
- package/dist/esm/chunk-BXMHDQHW.mjs +512 -0
- package/dist/esm/{chunk-DLTC6PJP.mjs.map → chunk-BXMHDQHW.mjs.map} +1 -1
- package/dist/esm/chunk-CC4DQ6NH.mjs +19 -0
- package/dist/esm/{chunk-H3TFQ7K4.mjs.map → chunk-CC4DQ6NH.mjs.map} +1 -1
- package/dist/esm/chunk-CMNJG4NN.mjs +345 -0
- package/dist/esm/{chunk-T23OVRNF.mjs.map → chunk-CMNJG4NN.mjs.map} +1 -1
- package/dist/esm/chunk-CTJSZT5V.mjs +87 -0
- package/dist/esm/{chunk-J7J7ZTBF.mjs.map → chunk-CTJSZT5V.mjs.map} +1 -1
- package/dist/esm/chunk-CX3NAVRD.mjs +205 -0
- package/dist/esm/chunk-CX3NAVRD.mjs.map +1 -0
- package/dist/esm/chunk-CXUGZXED.mjs +307 -0
- package/dist/esm/{chunk-EKABTHUZ.mjs.map → chunk-CXUGZXED.mjs.map} +1 -1
- package/dist/esm/chunk-D2BVBXWO.mjs +7 -0
- package/dist/esm/{chunk-7PSX4LCV.mjs.map → chunk-D2BVBXWO.mjs.map} +1 -1
- package/dist/esm/chunk-DGV7DYU4.mjs +413 -0
- package/dist/esm/{chunk-7Q2NVO5M.mjs.map → chunk-DGV7DYU4.mjs.map} +1 -1
- package/dist/esm/chunk-DIYZRGR6.mjs +242 -0
- package/dist/esm/{chunk-UVOU6BW2.mjs.map → chunk-DIYZRGR6.mjs.map} +1 -1
- package/dist/esm/chunk-DNPMS2OF.mjs +236 -0
- package/dist/esm/{chunk-PFFAQZHT.mjs.map → chunk-DNPMS2OF.mjs.map} +1 -1
- package/dist/esm/chunk-DVPQGCFT.mjs +74 -0
- package/dist/esm/{chunk-RBPGL6YB.mjs.map → chunk-DVPQGCFT.mjs.map} +1 -1
- package/dist/esm/chunk-EYHRMZPO.mjs +34 -0
- package/dist/esm/{chunk-AH44UPM4.mjs.map → chunk-EYHRMZPO.mjs.map} +1 -1
- package/dist/esm/chunk-F2ZWA7B7.mjs +412 -0
- package/dist/esm/{chunk-RTSEMQCK.mjs.map → chunk-F2ZWA7B7.mjs.map} +1 -1
- package/dist/esm/chunk-FDWJNY4U.mjs +22 -0
- package/dist/esm/{chunk-STYDBDYL.mjs.map → chunk-FDWJNY4U.mjs.map} +1 -1
- package/dist/esm/chunk-FF4JPDKD.mjs +315 -0
- package/dist/esm/{chunk-5DW2AJPI.mjs.map → chunk-FF4JPDKD.mjs.map} +1 -1
- package/dist/esm/chunk-FQQW55X7.mjs +288 -0
- package/dist/esm/{chunk-TVRJ3M7B.mjs.map → chunk-FQQW55X7.mjs.map} +1 -1
- package/dist/esm/chunk-FXKSE3ZP.mjs +25 -0
- package/dist/esm/{chunk-COW5IGYC.mjs.map → chunk-FXKSE3ZP.mjs.map} +1 -1
- package/dist/esm/chunk-GBEVD2VM.mjs +99 -0
- package/dist/esm/chunk-GBEVD2VM.mjs.map +1 -0
- package/dist/esm/chunk-GGMTQAQP.mjs +11 -0
- package/dist/esm/{chunk-3JPVQHOR.mjs.map → chunk-GGMTQAQP.mjs.map} +1 -1
- package/dist/esm/chunk-GSVQ6EUD.mjs +649 -0
- package/dist/esm/{chunk-WOLIXKOK.mjs.map → chunk-GSVQ6EUD.mjs.map} +1 -1
- package/dist/esm/chunk-HBNSRCZN.mjs +100 -0
- package/dist/esm/{chunk-FKSACFCB.mjs.map → chunk-HBNSRCZN.mjs.map} +1 -1
- package/dist/esm/chunk-IC56GQFJ.mjs +127 -0
- package/dist/esm/{chunk-XN4SQWI5.mjs.map → chunk-IC56GQFJ.mjs.map} +1 -1
- package/dist/esm/chunk-IHNPN5CQ.mjs +256 -0
- package/dist/esm/chunk-IHNPN5CQ.mjs.map +1 -0
- package/dist/esm/chunk-JHDHNGJ3.mjs +126 -0
- package/dist/esm/{chunk-JVKMQ64G.mjs.map → chunk-JHDHNGJ3.mjs.map} +1 -1
- package/dist/esm/chunk-JL2JHVS4.mjs +49 -0
- package/dist/esm/{chunk-ZNEBMSNC.mjs.map → chunk-JL2JHVS4.mjs.map} +1 -1
- package/dist/esm/chunk-JV3GSIJW.mjs +268 -0
- package/dist/esm/chunk-JV3GSIJW.mjs.map +1 -0
- package/dist/esm/chunk-KK2BSALW.mjs +32 -0
- package/dist/esm/{chunk-3FVRXELT.mjs.map → chunk-KK2BSALW.mjs.map} +1 -1
- package/dist/esm/chunk-KMXSRHJ6.mjs +93 -0
- package/dist/esm/{chunk-NMECYE3D.mjs.map → chunk-KMXSRHJ6.mjs.map} +1 -1
- package/dist/esm/chunk-KVSQ57HU.mjs +45 -0
- package/dist/esm/{chunk-NNW6HWIO.mjs.map → chunk-KVSQ57HU.mjs.map} +1 -1
- package/dist/esm/chunk-LI2QV6RU.mjs +129 -0
- package/dist/esm/chunk-LI2QV6RU.mjs.map +1 -0
- package/dist/esm/chunk-LLLQJWRZ.mjs +35 -0
- package/dist/esm/{chunk-QNHDS64I.mjs.map → chunk-LLLQJWRZ.mjs.map} +1 -1
- package/dist/esm/chunk-LYK4TQZO.mjs +70 -0
- package/dist/esm/{chunk-OZC3FCJP.mjs.map → chunk-LYK4TQZO.mjs.map} +1 -1
- package/dist/esm/chunk-LYMY63SO.mjs +124 -0
- package/dist/esm/{chunk-UGIJHLL3.mjs.map → chunk-LYMY63SO.mjs.map} +1 -1
- package/dist/esm/chunk-MZZLEY6O.mjs +92 -0
- package/dist/esm/{chunk-NKCZ4KGO.mjs.map → chunk-MZZLEY6O.mjs.map} +1 -1
- package/dist/esm/chunk-N4WKFNQ6.mjs +156 -0
- package/dist/esm/{chunk-LDQ6JFEF.mjs.map → chunk-N4WKFNQ6.mjs.map} +1 -1
- package/dist/esm/chunk-NFJCQRVK.mjs +37 -0
- package/dist/esm/{chunk-YE5B2S5L.mjs.map → chunk-NFJCQRVK.mjs.map} +1 -1
- package/dist/esm/chunk-NMKCJNQM.mjs +20 -0
- package/dist/esm/{chunk-TJDC5PWD.mjs.map → chunk-NMKCJNQM.mjs.map} +1 -1
- package/dist/esm/chunk-NW45SCPY.mjs +36 -0
- package/dist/esm/{chunk-V7P6MLSY.mjs.map → chunk-NW45SCPY.mjs.map} +1 -1
- package/dist/esm/chunk-NXFO2W4G.mjs +84 -0
- package/dist/esm/{chunk-D22EMNIY.mjs.map → chunk-NXFO2W4G.mjs.map} +1 -1
- package/dist/esm/chunk-NYL77J4X.mjs +97 -0
- package/dist/esm/{chunk-43WARVT3.mjs.map → chunk-NYL77J4X.mjs.map} +1 -1
- package/dist/esm/chunk-O6PSHSN3.mjs +53 -0
- package/dist/esm/{chunk-6LOTZ4GY.mjs.map → chunk-O6PSHSN3.mjs.map} +1 -1
- package/dist/esm/chunk-OR7TEZ25.mjs +16 -0
- package/dist/esm/chunk-PCLNX6FS.mjs +17 -0
- package/dist/esm/{chunk-6FBKUTGF.mjs.map → chunk-PCLNX6FS.mjs.map} +1 -1
- package/dist/esm/chunk-PIMQHG2J.mjs +49 -0
- package/dist/esm/{chunk-C3L4ETUF.mjs.map → chunk-PIMQHG2J.mjs.map} +1 -1
- package/dist/esm/chunk-PU5AFUX3.mjs +52 -0
- package/dist/esm/chunk-PU5AFUX3.mjs.map +1 -0
- package/dist/esm/chunk-PYLOAMR2.mjs +29 -0
- package/dist/esm/{chunk-HGZGTBA4.mjs.map → chunk-PYLOAMR2.mjs.map} +1 -1
- package/dist/esm/chunk-QBBTUC66.mjs +15 -0
- package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-QBBTUC66.mjs.map} +1 -1
- package/dist/esm/chunk-QFOG4LIN.mjs +319 -0
- package/dist/esm/{chunk-RJ4PSGZ4.mjs.map → chunk-QFOG4LIN.mjs.map} +1 -1
- package/dist/esm/chunk-QMM2KL6C.mjs +12 -0
- package/dist/esm/{chunk-FBPNHF54.mjs.map → chunk-QMM2KL6C.mjs.map} +1 -1
- package/dist/esm/chunk-RCQMWXEW.mjs +35 -0
- package/dist/esm/{chunk-TXMPXZBG.mjs.map → chunk-RCQMWXEW.mjs.map} +1 -1
- package/dist/esm/chunk-RX4VG2AT.mjs +314 -0
- package/dist/esm/chunk-RX4VG2AT.mjs.map +1 -0
- package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
- package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
- package/dist/esm/chunk-SIJELMDP.mjs +29 -0
- package/dist/esm/{chunk-6EMN3BOV.mjs.map → chunk-SIJELMDP.mjs.map} +1 -1
- package/dist/esm/chunk-SS3NUM5L.mjs +94 -0
- package/dist/esm/{chunk-L54P6EGN.mjs.map → chunk-SS3NUM5L.mjs.map} +1 -1
- package/dist/esm/chunk-ST4QXIMI.mjs +37 -0
- package/dist/esm/{chunk-XMFPKHB5.mjs.map → chunk-ST4QXIMI.mjs.map} +1 -1
- package/dist/esm/chunk-TBHU6ZW6.mjs +215 -0
- package/dist/esm/{chunk-QHVZL3LZ.mjs.map → chunk-TBHU6ZW6.mjs.map} +1 -1
- package/dist/esm/chunk-TLNHRJB2.mjs +155 -0
- package/dist/esm/{chunk-H6LYW7HG.mjs.map → chunk-TLNHRJB2.mjs.map} +1 -1
- package/dist/esm/chunk-U3IUCR2G.mjs +54 -0
- package/dist/esm/{chunk-52ECIIIH.mjs.map → chunk-U3IUCR2G.mjs.map} +1 -1
- package/dist/esm/chunk-U7QBZ6PP.mjs +400 -0
- package/dist/esm/{chunk-ZM436N3W.mjs.map → chunk-U7QBZ6PP.mjs.map} +1 -1
- package/dist/esm/chunk-UEBBLQJ5.mjs +94 -0
- package/dist/esm/{chunk-7STYQ5ZE.mjs.map → chunk-UEBBLQJ5.mjs.map} +1 -1
- package/dist/esm/chunk-UKU6A2W2.mjs +232 -0
- package/dist/esm/{chunk-HXSW6X7K.mjs.map → chunk-UKU6A2W2.mjs.map} +1 -1
- package/dist/esm/chunk-UX5NSZEN.mjs +134 -0
- package/dist/esm/{chunk-WVIPPU2C.mjs.map → chunk-UX5NSZEN.mjs.map} +1 -1
- package/dist/esm/chunk-VDJBDX3A.mjs +79 -0
- package/dist/esm/{chunk-25N7RLBW.mjs.map → chunk-VDJBDX3A.mjs.map} +1 -1
- package/dist/esm/chunk-VJP2VWMF.mjs +58 -0
- package/dist/esm/{chunk-56NB52W6.mjs.map → chunk-VJP2VWMF.mjs.map} +1 -1
- package/dist/esm/chunk-VKJQORON.mjs +93 -0
- package/dist/esm/{chunk-3OELNIC6.mjs.map → chunk-VKJQORON.mjs.map} +1 -1
- package/dist/esm/chunk-VPWUODU4.mjs +51 -0
- package/dist/esm/{chunk-NNIHTVLA.mjs.map → chunk-VPWUODU4.mjs.map} +1 -1
- package/dist/esm/chunk-VZQXLVEP.mjs +197 -0
- package/dist/esm/{chunk-VJJN3GFD.mjs.map → chunk-VZQXLVEP.mjs.map} +1 -1
- package/dist/esm/chunk-W76MGKZB.mjs +33 -0
- package/dist/esm/{chunk-CLVAGDXO.mjs.map → chunk-W76MGKZB.mjs.map} +1 -1
- package/dist/esm/chunk-WDRH2URB.mjs +91 -0
- package/dist/esm/{chunk-65UZZNN2.mjs.map → chunk-WDRH2URB.mjs.map} +1 -1
- package/dist/esm/chunk-WHBWEN6N.mjs +206 -0
- package/dist/esm/{chunk-NGNETNK2.mjs.map → chunk-WHBWEN6N.mjs.map} +1 -1
- package/dist/esm/chunk-WK5ZSNE2.mjs +173 -0
- package/dist/esm/{chunk-6RBUXB5I.mjs.map → chunk-WK5ZSNE2.mjs.map} +1 -1
- package/dist/esm/chunk-WLTBF4DF.mjs +22 -0
- package/dist/esm/chunk-WLTBF4DF.mjs.map +1 -0
- package/dist/esm/chunk-WVGO4D7K.mjs +254 -0
- package/dist/esm/{chunk-OLGSIKFB.mjs.map → chunk-WVGO4D7K.mjs.map} +1 -1
- package/dist/esm/chunk-XANFAUBD.mjs +44 -0
- package/dist/esm/{chunk-NC5HHEEM.mjs.map → chunk-XANFAUBD.mjs.map} +1 -1
- package/dist/esm/chunk-Y2LV3S5W.mjs +410 -0
- package/dist/esm/{chunk-6SHLLRJA.mjs.map → chunk-Y2LV3S5W.mjs.map} +1 -1
- package/dist/esm/chunk-YV7M4CFP.mjs +137 -0
- package/dist/esm/{chunk-AOCNYMMX.mjs.map → chunk-YV7M4CFP.mjs.map} +1 -1
- package/dist/esm/chunk-YYOPNUX5.mjs +41 -0
- package/dist/esm/chunk-YYOPNUX5.mjs.map +1 -0
- package/dist/esm/chunk-ZAHJ7KXB.mjs +81 -0
- package/dist/esm/{chunk-Z5KKUXYI.mjs.map → chunk-ZAHJ7KXB.mjs.map} +1 -1
- package/dist/esm/chunk-ZMFKQUHL.mjs +117 -0
- package/dist/esm/{chunk-TICM455H.mjs.map → chunk-ZMFKQUHL.mjs.map} +1 -1
- package/dist/esm/cli/index.mjs +12 -1
- package/dist/esm/cli/localNode.mjs +8 -1
- package/dist/esm/cli/move.mjs +7 -1
- package/dist/esm/client/core.mjs +27 -1
- package/dist/esm/client/get.mjs +32 -1
- package/dist/esm/client/index.mjs +55 -1
- package/dist/esm/client/post.mjs +36 -1
- package/dist/esm/client/types.d.mts +5 -1
- package/dist/esm/client/types.mjs +7 -1
- package/dist/esm/core/account/index.mjs +19 -1
- package/dist/esm/core/account/utils/address.mjs +18 -1
- package/dist/esm/core/account/utils/index.mjs +19 -1
- package/dist/esm/core/accountAddress.mjs +15 -1
- package/dist/esm/core/authenticationKey.mjs +14 -1
- package/dist/esm/core/common.mjs +7 -1
- package/dist/esm/core/crypto/ed25519.d.mts +10 -0
- package/dist/esm/core/crypto/ed25519.mjs +29 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +16 -20
- package/dist/esm/core/crypto/ephemeral.mjs +28 -1
- package/dist/esm/core/crypto/hdKey.d.mts +1 -15
- package/dist/esm/core/crypto/hdKey.mjs +25 -1
- package/dist/esm/core/crypto/index.d.mts +3 -2
- package/dist/esm/core/crypto/index.mjs +124 -1
- package/dist/esm/core/crypto/keyless.d.mts +121 -106
- package/dist/esm/core/crypto/keyless.mjs +55 -1
- package/dist/esm/core/crypto/multiEd25519.mjs +28 -1
- package/dist/esm/core/crypto/multiKey.mjs +34 -1
- package/dist/esm/core/crypto/poseidon.mjs +15 -1
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/proof.d.mts +21 -0
- package/dist/esm/core/crypto/proof.mjs +20 -0
- package/dist/esm/core/crypto/proof.mjs.map +1 -0
- package/dist/esm/core/crypto/publicKey.mjs +21 -1
- package/dist/esm/core/crypto/secp256k1.mjs +27 -1
- package/dist/esm/core/crypto/signature.mjs +19 -1
- package/dist/esm/core/crypto/singleKey.mjs +33 -1
- package/dist/esm/core/crypto/utils.mjs +9 -1
- package/dist/esm/core/hex.mjs +10 -1
- package/dist/esm/core/index.d.mts +3 -2
- package/dist/esm/core/index.mjs +141 -1
- package/dist/esm/index.d.mts +5 -4
- package/dist/esm/index.mjs +635 -1
- package/dist/esm/internal/account.mjs +106 -1
- package/dist/esm/internal/ans.mjs +120 -1
- package/dist/esm/internal/coin.mjs +85 -1
- package/dist/esm/internal/digitalAsset.mjs +127 -1
- package/dist/esm/internal/event.mjs +55 -1
- package/dist/esm/internal/faucet.mjs +52 -1
- package/dist/esm/internal/fungibleAsset.mjs +91 -1
- package/dist/esm/internal/general.mjs +46 -1
- package/dist/esm/internal/keyless.d.mts +4 -3
- package/dist/esm/internal/keyless.mjs +73 -1
- package/dist/esm/internal/staking.mjs +53 -1
- package/dist/esm/internal/transaction.mjs +51 -1
- package/dist/esm/internal/transactionSubmission.mjs +102 -1
- package/dist/esm/internal/view.mjs +83 -1
- package/dist/esm/transactions/authenticator/account.mjs +44 -1
- package/dist/esm/transactions/authenticator/index.mjs +60 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +48 -1
- package/dist/esm/transactions/index.mjs +284 -1
- package/dist/esm/transactions/instances/chainId.mjs +11 -1
- package/dist/esm/transactions/instances/identifier.mjs +11 -1
- package/dist/esm/transactions/instances/index.mjs +96 -1
- package/dist/esm/transactions/instances/moduleId.mjs +38 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +43 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +48 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +20 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +45 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +43 -1
- package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +56 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +74 -1
- package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
- package/dist/esm/transactions/management/index.mjs +95 -1
- package/dist/esm/transactions/management/transactionWorker.mjs +91 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +75 -1
- package/dist/esm/transactions/transactionBuilder/index.mjs +162 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +85 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +58 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +98 -1
- package/dist/esm/transactions/typeTag/index.mjs +74 -1
- package/dist/esm/transactions/typeTag/parser.mjs +43 -1
- package/dist/esm/transactions/types.mjs +1 -1
- package/dist/esm/types/generated/queries.mjs +57 -1
- package/dist/esm/types/generated/types.mjs +809 -1
- package/dist/esm/types/generated/types.mjs.map +1 -1
- package/dist/esm/types/index.d.mts +6 -4
- package/dist/esm/types/index.mjs +68 -1
- package/dist/esm/types/indexer.mjs +1 -1
- package/dist/esm/types/keyless.d.mts +54 -1
- package/dist/esm/types/keyless.mjs +9 -0
- package/dist/esm/utils/apiEndpoints.mjs +21 -1
- package/dist/esm/utils/const.mjs +21 -1
- package/dist/esm/utils/helpers.mjs +7 -1
- package/dist/esm/utils/index.mjs +56 -1
- package/dist/esm/utils/memoize.mjs +9 -1
- package/dist/esm/utils/normalizeBundle.mjs +19 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +7 -1
- package/package.json +5 -2
- package/src/account/EphemeralKeyPair.ts +45 -7
- package/src/account/KeylessAccount.ts +152 -113
- package/src/account/MultiKeyAccount.ts +4 -0
- package/src/api/keyless.ts +17 -4
- package/src/bcs/deserializer.ts +40 -0
- package/src/client/core.ts +1 -1
- package/src/client/types.ts +1 -1
- package/src/core/account/index.ts +0 -1
- package/src/core/crypto/ed25519.ts +24 -4
- package/src/core/crypto/ephemeral.ts +17 -28
- package/src/core/crypto/hdKey.ts +0 -31
- package/src/core/crypto/keyless.ts +231 -286
- package/src/core/crypto/proof.ts +16 -0
- package/src/internal/keyless.ts +16 -15
- package/src/internal/transactionSubmission.ts +16 -6
- package/src/transactions/management/transactionWorker.ts +1 -7
- package/src/types/index.ts +5 -2
- package/src/types/keyless.ts +31 -0
- package/src/utils/apiEndpoints.ts +6 -6
- package/src/version.ts +1 -1
- package/dist/common/chunk-KSEUZTKY.js +0 -2
- package/dist/common/chunk-KSEUZTKY.js.map +0 -1
- package/dist/esm/chunk-25N7RLBW.mjs +0 -2
- package/dist/esm/chunk-32355KGV.mjs +0 -2
- package/dist/esm/chunk-32355KGV.mjs.map +0 -1
- package/dist/esm/chunk-3FVRXELT.mjs +0 -2
- package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
- package/dist/esm/chunk-3OELNIC6.mjs +0 -2
- package/dist/esm/chunk-3U5VRZLS.mjs +0 -2
- package/dist/esm/chunk-3U5VRZLS.mjs.map +0 -1
- package/dist/esm/chunk-3VGX3TXH.mjs +0 -2
- package/dist/esm/chunk-43WARVT3.mjs +0 -2
- package/dist/esm/chunk-52ECIIIH.mjs +0 -2
- package/dist/esm/chunk-56CNRT2K.mjs +0 -2
- package/dist/esm/chunk-56NB52W6.mjs +0 -2
- package/dist/esm/chunk-5DW2AJPI.mjs +0 -2
- package/dist/esm/chunk-5QWUIVAQ.mjs +0 -2
- package/dist/esm/chunk-5QWUIVAQ.mjs.map +0 -1
- package/dist/esm/chunk-6456EI2E.mjs +0 -2
- package/dist/esm/chunk-6456EI2E.mjs.map +0 -1
- package/dist/esm/chunk-65UZZNN2.mjs +0 -2
- package/dist/esm/chunk-6EMN3BOV.mjs +0 -2
- package/dist/esm/chunk-6FBKUTGF.mjs +0 -2
- package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
- package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
- package/dist/esm/chunk-6LOTZ4GY.mjs +0 -2
- package/dist/esm/chunk-6RBUXB5I.mjs +0 -2
- package/dist/esm/chunk-6SHLLRJA.mjs +0 -2
- package/dist/esm/chunk-73Y4NTDU.mjs +0 -2
- package/dist/esm/chunk-73Y4NTDU.mjs.map +0 -1
- package/dist/esm/chunk-7PSX4LCV.mjs +0 -2
- package/dist/esm/chunk-7Q2NVO5M.mjs +0 -2
- package/dist/esm/chunk-7STYQ5ZE.mjs +0 -2
- package/dist/esm/chunk-7WJTKYRG.mjs +0 -2
- package/dist/esm/chunk-AH44UPM4.mjs +0 -2
- package/dist/esm/chunk-AOCNYMMX.mjs +0 -2
- package/dist/esm/chunk-C3L4ETUF.mjs +0 -2
- package/dist/esm/chunk-C5UVSNZW.mjs +0 -2
- package/dist/esm/chunk-CLVAGDXO.mjs +0 -2
- package/dist/esm/chunk-COW5IGYC.mjs +0 -2
- package/dist/esm/chunk-D22EMNIY.mjs +0 -2
- package/dist/esm/chunk-DLTC6PJP.mjs +0 -2
- package/dist/esm/chunk-EB7AI4B4.mjs +0 -2
- package/dist/esm/chunk-EKABTHUZ.mjs +0 -2
- package/dist/esm/chunk-EOMDZYSJ.mjs +0 -2
- package/dist/esm/chunk-EOMDZYSJ.mjs.map +0 -1
- package/dist/esm/chunk-FBPNHF54.mjs +0 -2
- package/dist/esm/chunk-FKSACFCB.mjs +0 -2
- package/dist/esm/chunk-FLYEALDB.mjs +0 -2
- package/dist/esm/chunk-FVA2OPG4.mjs +0 -2
- package/dist/esm/chunk-G4XSNSOT.mjs +0 -2
- package/dist/esm/chunk-H3TFQ7K4.mjs +0 -2
- package/dist/esm/chunk-H6LYW7HG.mjs +0 -2
- package/dist/esm/chunk-HCGWCB5E.mjs +0 -2
- package/dist/esm/chunk-HCGWCB5E.mjs.map +0 -1
- package/dist/esm/chunk-HGZGTBA4.mjs +0 -2
- package/dist/esm/chunk-HXSW6X7K.mjs +0 -2
- package/dist/esm/chunk-IXYXFDJZ.mjs +0 -2
- package/dist/esm/chunk-J7J7ZTBF.mjs +0 -2
- package/dist/esm/chunk-JVKMQ64G.mjs +0 -2
- package/dist/esm/chunk-KWNBC5MF.mjs +0 -2
- package/dist/esm/chunk-L54P6EGN.mjs +0 -2
- package/dist/esm/chunk-LDQ6JFEF.mjs +0 -2
- package/dist/esm/chunk-MGOHPDX4.mjs +0 -2
- package/dist/esm/chunk-MWUJCP27.mjs +0 -2
- package/dist/esm/chunk-NC5HHEEM.mjs +0 -2
- package/dist/esm/chunk-NGNETNK2.mjs +0 -2
- package/dist/esm/chunk-NKCZ4KGO.mjs +0 -2
- package/dist/esm/chunk-NMECYE3D.mjs +0 -2
- package/dist/esm/chunk-NNIHTVLA.mjs +0 -2
- package/dist/esm/chunk-NNW6HWIO.mjs +0 -2
- package/dist/esm/chunk-O34EOOVF.mjs +0 -2
- package/dist/esm/chunk-OBEVVLF7.mjs +0 -2
- package/dist/esm/chunk-OBEVVLF7.mjs.map +0 -1
- package/dist/esm/chunk-OKRUEVF3.mjs +0 -2
- package/dist/esm/chunk-OKRUEVF3.mjs.map +0 -1
- package/dist/esm/chunk-OLGSIKFB.mjs +0 -2
- package/dist/esm/chunk-OZC3FCJP.mjs +0 -2
- package/dist/esm/chunk-PFFAQZHT.mjs +0 -2
- package/dist/esm/chunk-PINF6ZWP.mjs +0 -2
- package/dist/esm/chunk-PJXRQBF6.mjs +0 -2
- package/dist/esm/chunk-PJXRQBF6.mjs.map +0 -1
- package/dist/esm/chunk-QHVZL3LZ.mjs +0 -2
- package/dist/esm/chunk-QNHDS64I.mjs +0 -2
- package/dist/esm/chunk-RBPGL6YB.mjs +0 -2
- package/dist/esm/chunk-RJ4PSGZ4.mjs +0 -2
- package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
- package/dist/esm/chunk-RTSEMQCK.mjs +0 -2
- package/dist/esm/chunk-SRPTQ4VV.mjs +0 -2
- package/dist/esm/chunk-STYDBDYL.mjs +0 -2
- package/dist/esm/chunk-T23OVRNF.mjs +0 -2
- package/dist/esm/chunk-TICM455H.mjs +0 -2
- package/dist/esm/chunk-TJDC5PWD.mjs +0 -2
- package/dist/esm/chunk-TVRJ3M7B.mjs +0 -2
- package/dist/esm/chunk-TXMPXZBG.mjs +0 -2
- package/dist/esm/chunk-U6Z4FNB7.mjs +0 -2
- package/dist/esm/chunk-UGIJHLL3.mjs +0 -2
- package/dist/esm/chunk-UVOU6BW2.mjs +0 -2
- package/dist/esm/chunk-V7P6MLSY.mjs +0 -2
- package/dist/esm/chunk-VJJN3GFD.mjs +0 -2
- package/dist/esm/chunk-WOLIXKOK.mjs +0 -2
- package/dist/esm/chunk-WVIPPU2C.mjs +0 -2
- package/dist/esm/chunk-XCR3YNHW.mjs +0 -2
- package/dist/esm/chunk-XCR3YNHW.mjs.map +0 -1
- package/dist/esm/chunk-XMFPKHB5.mjs +0 -2
- package/dist/esm/chunk-XN4SQWI5.mjs +0 -2
- package/dist/esm/chunk-YE5B2S5L.mjs +0 -2
- package/dist/esm/chunk-Z5KKUXYI.mjs +0 -2
- package/dist/esm/chunk-ZM436N3W.mjs +0 -2
- package/dist/esm/chunk-ZNEBMSNC.mjs +0 -2
- /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,
|
|
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
|
|
29
|
+
static readonly ID_COMMITMENT_LENGTH: number = 32;
|
|
29
30
|
|
|
30
31
|
readonly iss: string;
|
|
31
32
|
|
|
32
|
-
readonly
|
|
33
|
+
readonly idCommitment: Uint8Array;
|
|
33
34
|
|
|
34
|
-
constructor(iss: string,
|
|
35
|
+
constructor(iss: string, idCommitment: HexInput) {
|
|
35
36
|
super();
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
38
|
-
throw new Error(`Address seed length in bytes should be ${KeylessPublicKey.
|
|
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.
|
|
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
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
|
|
81
86
|
verifySignature(args: { message: HexInput; signature: KeylessSignature }): boolean {
|
|
82
|
-
|
|
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.
|
|
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
|
-
|
|
115
|
-
return new KeylessPublicKey(args.iss,
|
|
128
|
+
computeIdCommitment(args);
|
|
129
|
+
return new KeylessPublicKey(args.iss, computeIdCommitment(args));
|
|
116
130
|
}
|
|
117
131
|
}
|
|
118
132
|
|
|
119
|
-
|
|
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.
|
|
143
|
+
return bigIntToBytesLE(poseidonHash(fields), KeylessPublicKey.ID_COMMITMENT_LENGTH);
|
|
135
144
|
}
|
|
136
145
|
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
192
|
+
* Get the signature in bytes (Uint8Array).
|
|
147
193
|
*
|
|
148
|
-
* @returns Uint8Array representation of the
|
|
194
|
+
* @returns Uint8Array representation of the signature
|
|
149
195
|
*/
|
|
150
196
|
toUint8Array(): Uint8Array {
|
|
151
|
-
return this.
|
|
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
|
-
*
|
|
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
|
|
263
|
+
* @returns Uint8Array representation of the public key
|
|
158
264
|
*/
|
|
159
|
-
|
|
160
|
-
return this.signature.
|
|
265
|
+
toUint8Array(): Uint8Array {
|
|
266
|
+
return this.signature.toUint8Array();
|
|
161
267
|
}
|
|
162
268
|
|
|
163
269
|
serialize(serializer: Serializer): void {
|
|
164
|
-
|
|
165
|
-
|
|
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):
|
|
176
|
-
const
|
|
177
|
-
switch (
|
|
178
|
-
case
|
|
179
|
-
return new
|
|
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: ${
|
|
280
|
+
throw new Error(`Unknown variant index for EphemeralCertificate: ${variant}`);
|
|
184
281
|
}
|
|
185
282
|
}
|
|
186
283
|
}
|
|
187
284
|
|
|
188
|
-
|
|
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
|
-
|
|
228
|
-
|
|
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:
|
|
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
|
-
|
|
267
|
-
this.serialize(serializer);
|
|
268
|
-
return serializer.toUint8Array();
|
|
416
|
+
return this.bcsToBytes();
|
|
269
417
|
}
|
|
270
418
|
|
|
271
419
|
/**
|
|
272
|
-
*
|
|
420
|
+
* Return a ZeroKnowledgeSig object from its bcs serialization in bytes.
|
|
273
421
|
*
|
|
274
|
-
* @returns
|
|
422
|
+
* @returns ZeroKnowledgeSig
|
|
275
423
|
*/
|
|
276
|
-
|
|
277
|
-
return
|
|
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):
|
|
289
|
-
const proof =
|
|
436
|
+
static deserialize(deserializer: Deserializer): ZeroKnowledgeSig {
|
|
437
|
+
const proof = ZkProof.deserialize(deserializer);
|
|
290
438
|
const expHorizonSecs = deserializer.deserializeU64();
|
|
291
|
-
const
|
|
292
|
-
const
|
|
293
|
-
const
|
|
294
|
-
|
|
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):
|
|
300
|
-
const proof =
|
|
445
|
+
static load(deserializer: Deserializer): ZeroKnowledgeSig {
|
|
446
|
+
const proof = ZkProof.deserialize(deserializer);
|
|
301
447
|
const expHorizonSecs = deserializer.deserializeU64();
|
|
302
|
-
const
|
|
303
|
-
const
|
|
304
|
-
const
|
|
305
|
-
|
|
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
|
+
}
|