@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.
- package/dist/common/{accountAddress-ccLvlUQe.d.ts → accountAddress-BtD_TE5q.d.ts} +49 -3
- package/dist/common/chunk-VLEH6QBR.js +2 -0
- package/dist/common/chunk-VLEH6QBR.js.map +1 -0
- package/dist/common/cli/index.d.ts +1 -1
- package/dist/common/cli/index.js +1 -1
- package/dist/common/cli/index.js.map +1 -1
- package/dist/common/index.d.ts +627 -52
- package/dist/common/index.js +28 -28
- package/dist/common/index.js.map +1 -1
- package/dist/esm/{Ed25519Account-B1VMJOY2.d.mts → Ed25519Account-9zBaZEnp.d.mts} +1 -1
- package/dist/esm/account/Account.d.mts +2 -2
- package/dist/esm/account/Account.mjs +1 -1
- package/dist/esm/account/Ed25519Account.d.mts +2 -2
- package/dist/esm/account/Ed25519Account.mjs +1 -1
- package/dist/esm/account/EphemeralKeyPair.d.mts +85 -0
- package/dist/esm/account/EphemeralKeyPair.mjs +2 -0
- package/dist/esm/account/KeylessAccount.d.mts +166 -0
- package/dist/esm/account/KeylessAccount.mjs +2 -0
- package/dist/esm/account/MultiKeyAccount.d.mts +13 -7
- package/dist/esm/account/MultiKeyAccount.mjs +1 -1
- package/dist/esm/account/SingleKeyAccount.d.mts +2 -2
- package/dist/esm/account/SingleKeyAccount.mjs +1 -1
- package/dist/esm/account/index.d.mts +10 -2
- package/dist/esm/account/index.mjs +1 -1
- package/dist/esm/api/account.d.mts +2 -2
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/ans.d.mts +2 -2
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/aptos.d.mts +12 -3
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/aptosConfig.d.mts +20 -0
- package/dist/esm/api/aptosConfig.mjs +1 -1
- package/dist/esm/api/coin.d.mts +1 -1
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/digitalAsset.d.mts +2 -2
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/event.mjs +1 -1
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/fungibleAsset.d.mts +2 -2
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/general.d.mts +1 -1
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/index.d.mts +10 -2
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/keyless.d.mts +83 -0
- package/dist/esm/api/keyless.mjs +2 -0
- package/dist/esm/api/keyless.mjs.map +1 -0
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/table.mjs +1 -1
- package/dist/esm/api/transaction.d.mts +2 -2
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.d.mts +2 -2
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.d.mts +2 -2
- package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/simulate.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/bcs/cryptoHasher.d.mts +15 -0
- package/dist/esm/bcs/cryptoHasher.mjs +2 -0
- package/dist/esm/bcs/cryptoHasher.mjs.map +1 -0
- package/dist/esm/bcs/deserializer.d.mts +26 -0
- package/dist/esm/bcs/deserializer.mjs +1 -1
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/bcs/serializer.d.mts +2 -0
- package/dist/esm/bcs/serializer.mjs +1 -1
- package/dist/esm/chunk-3FVRXELT.mjs +2 -0
- package/dist/esm/{chunk-U3YYSIIT.mjs → chunk-3VGX3TXH.mjs} +2 -2
- package/dist/esm/{chunk-4W3ZDREO.mjs → chunk-3Y6JNFPD.mjs} +2 -2
- package/dist/esm/chunk-4KEEUDZA.mjs +2 -0
- package/dist/esm/chunk-4KEEUDZA.mjs.map +1 -0
- package/dist/esm/chunk-4USAUOCE.mjs +2 -0
- package/dist/esm/{chunk-C4RK5AB6.mjs.map → chunk-4USAUOCE.mjs.map} +1 -1
- package/dist/esm/chunk-5ADNWXP2.mjs +2 -0
- package/dist/esm/chunk-5ADNWXP2.mjs.map +1 -0
- package/dist/esm/{chunk-JP4W2YJF.mjs → chunk-5RRZMXND.mjs} +2 -2
- package/dist/esm/chunk-5V2RGYYK.mjs +2 -0
- package/dist/esm/chunk-5V2RGYYK.mjs.map +1 -0
- package/dist/esm/chunk-5YI2GEG5.mjs +2 -0
- package/dist/esm/chunk-5YI2GEG5.mjs.map +1 -0
- package/dist/esm/chunk-6KNAIXZ3.mjs +2 -0
- package/dist/esm/chunk-6KNAIXZ3.mjs.map +1 -0
- package/dist/esm/{chunk-64MINNG2.mjs → chunk-6M53MDWB.mjs} +2 -2
- package/dist/esm/chunk-6RBUXB5I.mjs +2 -0
- package/dist/esm/{chunk-SRDIYE3M.mjs.map → chunk-6RBUXB5I.mjs.map} +1 -1
- package/dist/esm/{chunk-UPSCPEEE.mjs → chunk-7H3HRFVM.mjs} +2 -2
- package/dist/esm/chunk-7QGIAVW4.mjs +2 -0
- package/dist/esm/chunk-7QGIAVW4.mjs.map +1 -0
- package/dist/esm/{chunk-5EN52MUT.mjs → chunk-7STYQ5ZE.mjs} +2 -2
- package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
- package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
- package/dist/esm/{chunk-J77BLQCV.mjs → chunk-A3UVZHDJ.mjs} +2 -2
- package/dist/esm/{chunk-BCUSI3N6.mjs → chunk-AOCNYMMX.mjs} +2 -2
- package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
- package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
- package/dist/esm/{chunk-2O5VFH5O.mjs → chunk-C34M4T77.mjs} +2 -2
- package/dist/esm/chunk-C3L4ETUF.mjs +2 -0
- package/dist/esm/chunk-CNH2RAJQ.mjs +2 -0
- package/dist/esm/chunk-CNH2RAJQ.mjs.map +1 -0
- package/dist/esm/chunk-COW5IGYC.mjs +2 -0
- package/dist/esm/{chunk-TLLWFCCP.mjs → chunk-EADBYPUD.mjs} +2 -2
- package/dist/esm/{chunk-G56GPLTB.mjs → chunk-EB7AI4B4.mjs} +2 -2
- package/dist/esm/{chunk-AJU3EBVX.mjs → chunk-EIRSA5UU.mjs} +2 -2
- package/dist/esm/{chunk-SSSWFYAX.mjs → chunk-EPTCPBVW.mjs} +2 -2
- package/dist/esm/chunk-EU6CX56Q.mjs +2 -0
- package/dist/esm/chunk-EU6CX56Q.mjs.map +1 -0
- package/dist/esm/{chunk-AG3TUKNI.mjs → chunk-F5C4SZZ7.mjs} +2 -2
- package/dist/esm/{chunk-ECVKW776.mjs → chunk-FBLSW5TB.mjs} +2 -2
- package/dist/esm/chunk-FBPNHF54.mjs +2 -0
- package/dist/esm/{chunk-KAGLWBIJ.mjs → chunk-HGZGTBA4.mjs} +2 -2
- package/dist/esm/chunk-I5JWDZIP.mjs +2 -0
- package/dist/esm/chunk-I5JWDZIP.mjs.map +1 -0
- package/dist/esm/chunk-IEZO4PIG.mjs +2 -0
- package/dist/esm/{chunk-BZCARW2P.mjs → chunk-IJE5YSXW.mjs} +2 -2
- package/dist/esm/chunk-JCDZ2WXX.mjs +2 -0
- package/dist/esm/chunk-JCDZ2WXX.mjs.map +1 -0
- package/dist/esm/chunk-JKZHPY24.mjs +2 -0
- package/dist/esm/{chunk-CJDEPZ4J.mjs.map → chunk-JKZHPY24.mjs.map} +1 -1
- package/dist/esm/chunk-JM2B5E2I.mjs +2 -0
- package/dist/esm/chunk-JM2B5E2I.mjs.map +1 -0
- package/dist/esm/{chunk-DZJ2RMX3.mjs → chunk-KFUOOBMJ.mjs} +2 -2
- package/dist/esm/{chunk-CWO2JAUL.mjs → chunk-KKP4FBWZ.mjs} +2 -2
- package/dist/esm/chunk-KPZDC5ZE.mjs +2 -0
- package/dist/esm/chunk-KPZDC5ZE.mjs.map +1 -0
- package/dist/esm/{chunk-OUTRV57V.mjs → chunk-LEBJNW6Y.mjs} +2 -2
- package/dist/esm/chunk-LECNIPW7.mjs +2 -0
- package/dist/esm/chunk-LECNIPW7.mjs.map +1 -0
- package/dist/esm/{chunk-UEELI2FS.mjs → chunk-LO7B3CWN.mjs} +2 -2
- package/dist/esm/{chunk-EU7EBOVD.mjs → chunk-LQH7T3TE.mjs} +2 -2
- package/dist/esm/{chunk-VC4A47VQ.mjs → chunk-M7HZOQ6A.mjs} +2 -2
- package/dist/esm/chunk-MGOHPDX4.mjs +2 -0
- package/dist/esm/{chunk-P6GWG2CY.mjs → chunk-MKUAW7KW.mjs} +2 -2
- package/dist/esm/{chunk-I6ST47U7.mjs → chunk-MTLETLKV.mjs} +2 -2
- package/dist/esm/{chunk-QYJF7C23.mjs → chunk-MWN63XBE.mjs} +2 -2
- package/dist/esm/chunk-MWUJCP27.mjs +2 -0
- package/dist/esm/chunk-N466X3S6.mjs +2 -0
- package/dist/esm/chunk-N466X3S6.mjs.map +1 -0
- package/dist/esm/chunk-N7CE244N.mjs +2 -0
- package/dist/esm/{chunk-2XK53QFA.mjs.map → chunk-N7CE244N.mjs.map} +1 -1
- package/dist/esm/{chunk-GM56MMNJ.mjs → chunk-NC5HHEEM.mjs} +2 -2
- package/dist/esm/chunk-NCDP26DV.mjs +2 -0
- package/dist/esm/chunk-NCDP26DV.mjs.map +1 -0
- package/dist/esm/{chunk-EKOTTHRQ.mjs → chunk-NQMF46E5.mjs} +2 -2
- package/dist/esm/chunk-NWWXZ7EW.mjs +2 -0
- package/dist/esm/chunk-NWWXZ7EW.mjs.map +1 -0
- package/dist/esm/{chunk-AJIDUBBG.mjs → chunk-ONIYM7IU.mjs} +2 -2
- package/dist/esm/{chunk-GWPTNJTQ.mjs → chunk-OT37OTT7.mjs} +2 -2
- package/dist/esm/{chunk-7FIS3GNZ.mjs → chunk-OX5GWFHX.mjs} +2 -2
- package/dist/esm/{chunk-SGTNW5YI.mjs → chunk-PYUU4OEL.mjs} +2 -2
- package/dist/esm/{chunk-T4J32V4F.mjs → chunk-Q3AUNZDW.mjs} +2 -2
- package/dist/esm/chunk-QZRWRX6P.mjs +2 -0
- package/dist/esm/{chunk-YMB2XW2O.mjs.map → chunk-QZRWRX6P.mjs.map} +1 -1
- package/dist/esm/chunk-R2P2XANA.mjs +2 -0
- package/dist/esm/chunk-R2P2XANA.mjs.map +1 -0
- package/dist/esm/{chunk-25HG3O2C.mjs → chunk-REBMGDZ5.mjs} +2 -2
- package/dist/esm/{chunk-GHYE26Q5.mjs → chunk-RKHPXZM6.mjs} +2 -2
- package/dist/esm/{chunk-GHYE26Q5.mjs.map → chunk-RKHPXZM6.mjs.map} +1 -1
- package/dist/esm/chunk-RUSWW265.mjs +2 -0
- package/dist/esm/{chunk-M3YZNSJI.mjs → chunk-SBQRBBRS.mjs} +2 -2
- package/dist/esm/chunk-STYDBDYL.mjs +2 -0
- package/dist/esm/{chunk-QRS4DGP3.mjs → chunk-T23OVRNF.mjs} +2 -2
- package/dist/esm/{chunk-QRS4DGP3.mjs.map → chunk-T23OVRNF.mjs.map} +1 -1
- package/dist/esm/{chunk-TUMYQZ27.mjs → chunk-T6OEZ4KP.mjs} +2 -2
- package/dist/esm/{chunk-L7LLGJRG.mjs → chunk-TEJ7BXJK.mjs} +2 -2
- package/dist/esm/chunk-TJDC5PWD.mjs +2 -0
- package/dist/esm/{chunk-36QXVFR5.mjs → chunk-TVRJ3M7B.mjs} +2 -2
- package/dist/esm/{chunk-36QXVFR5.mjs.map → chunk-TVRJ3M7B.mjs.map} +1 -1
- package/dist/esm/{chunk-UQU5WAX2.mjs → chunk-UDU5L4XH.mjs} +2 -2
- package/dist/esm/{chunk-Y3RPWX6U.mjs → chunk-UFJGYMEB.mjs} +2 -2
- package/dist/esm/chunk-UO5LUYGO.mjs +2 -0
- package/dist/esm/chunk-UO5LUYGO.mjs.map +1 -0
- package/dist/esm/chunk-UTXJOB3O.mjs +2 -0
- package/dist/esm/{chunk-DQOIESL4.mjs → chunk-UWI5D7FD.mjs} +2 -2
- package/dist/esm/chunk-VT6XJSRO.mjs +2 -0
- package/dist/esm/chunk-VT6XJSRO.mjs.map +1 -0
- package/dist/esm/{chunk-GCBRNHAO.mjs → chunk-W36IQO5K.mjs} +2 -2
- package/dist/esm/chunk-W4IWORPF.mjs +2 -0
- package/dist/esm/chunk-W4IWORPF.mjs.map +1 -0
- package/dist/esm/{chunk-BHLICYAI.mjs → chunk-W637YAND.mjs} +2 -2
- package/dist/esm/{chunk-NNUKSGEX.mjs → chunk-WAXCU6D6.mjs} +2 -2
- package/dist/esm/chunk-WDE54GRQ.mjs +2 -0
- package/dist/esm/chunk-WDE54GRQ.mjs.map +1 -0
- package/dist/esm/{chunk-2ZGHK5BB.mjs → chunk-Y33VGXNI.mjs} +2 -2
- package/dist/esm/chunk-Y5BON557.mjs +2 -0
- package/dist/esm/chunk-YE5B2S5L.mjs +2 -0
- package/dist/esm/chunk-YE5B2S5L.mjs.map +1 -0
- package/dist/esm/{chunk-ZJMW5Z76.mjs → chunk-YHO2EBXH.mjs} +2 -2
- package/dist/esm/chunk-YZPQVZ7S.mjs +2 -0
- package/dist/esm/chunk-YZPQVZ7S.mjs.map +1 -0
- package/dist/esm/chunk-Z2ZR4PTF.mjs +2 -0
- package/dist/esm/{chunk-5WFN54GV.mjs → chunk-Z6JERVLX.mjs} +2 -2
- package/dist/esm/chunk-ZCCYHFPK.mjs +2 -0
- package/dist/esm/chunk-ZCCYHFPK.mjs.map +1 -0
- package/dist/esm/{chunk-35EWRSDK.mjs → chunk-ZNEBMSNC.mjs} +2 -2
- package/dist/esm/chunk-ZUQJLFR2.mjs +2 -0
- package/dist/esm/chunk-ZUQJLFR2.mjs.map +1 -0
- package/dist/esm/cli/index.mjs +1 -1
- package/dist/esm/cli/localNode.mjs +1 -1
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/get.d.mts +2 -1
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/index.d.mts +2 -2
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/post.d.mts +3 -1
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/client/types.d.mts +5 -1
- package/dist/esm/client/types.mjs +1 -1
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/accountAddress.mjs +1 -1
- package/dist/esm/core/authenticationKey.d.mts +1 -1
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/common.mjs +1 -1
- package/dist/esm/core/crypto/ed25519.d.mts +1 -1
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +73 -0
- package/dist/esm/core/crypto/ephemeral.mjs +2 -0
- package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
- package/dist/esm/core/crypto/index.d.mts +4 -1
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/keyless.d.mts +232 -0
- package/dist/esm/core/crypto/keyless.mjs +2 -0
- package/dist/esm/core/crypto/keyless.mjs.map +1 -0
- package/dist/esm/core/crypto/multiEd25519.d.mts +1 -1
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiKey.d.mts +1 -1
- package/dist/esm/core/crypto/multiKey.mjs +1 -1
- package/dist/esm/core/crypto/poseidon.d.mts +7 -0
- package/dist/esm/core/crypto/poseidon.mjs +2 -0
- package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
- package/dist/esm/core/crypto/privateKey.d.mts +1 -1
- package/dist/esm/core/crypto/proof.d.mts +21 -0
- package/dist/esm/core/crypto/proof.mjs +2 -0
- package/dist/esm/core/crypto/proof.mjs.map +1 -0
- package/dist/esm/core/crypto/publicKey.d.mts +1 -1
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.d.mts +1 -1
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.d.mts +1 -1
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/crypto/utils.mjs +1 -1
- package/dist/esm/core/hex.mjs +1 -1
- package/dist/esm/core/index.d.mts +4 -1
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/index.d.mts +16 -9
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal/account.d.mts +2 -2
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/ans.d.mts +2 -2
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/coin.d.mts +1 -1
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/digitalAsset.d.mts +2 -2
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/event.mjs +1 -1
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.d.mts +2 -2
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/keyless.d.mts +76 -0
- package/dist/esm/internal/keyless.mjs +2 -0
- package/dist/esm/internal/keyless.mjs.map +1 -0
- package/dist/esm/internal/staking.mjs +1 -1
- package/dist/esm/internal/table.mjs +1 -1
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.d.mts +2 -2
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/view.d.mts +1 -1
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/transactions/authenticator/account.d.mts +1 -1
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.d.mts +1 -1
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.d.mts +1 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/index.d.mts +4 -3
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/instances/chainId.mjs +1 -1
- package/dist/esm/transactions/instances/identifier.mjs +1 -1
- package/dist/esm/transactions/instances/index.d.mts +1 -1
- package/dist/esm/transactions/instances/index.mjs +1 -1
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.d.mts +1 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/index.d.mts +2 -2
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.d.mts +2 -2
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.d.mts +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.d.mts +3 -2
- package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +3 -3
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +7 -6
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +2 -2
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.d.mts +3 -1
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/transactions/types.d.mts +23 -5
- package/dist/esm/types/index.d.mts +19 -3
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/types/keyless.d.mts +16 -0
- package/dist/esm/types/keyless.mjs +1 -0
- package/dist/esm/types/keyless.mjs.map +1 -0
- package/dist/esm/utils/apiEndpoints.d.mts +3 -1
- package/dist/esm/utils/apiEndpoints.mjs +1 -1
- package/dist/esm/utils/const.d.mts +3 -1
- package/dist/esm/utils/const.mjs +1 -1
- package/dist/esm/utils/helpers.d.mts +4 -1
- package/dist/esm/utils/helpers.mjs +1 -1
- package/dist/esm/utils/index.d.mts +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.mjs +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +11 -3
- package/src/account/EphemeralKeyPair.ts +157 -0
- package/src/account/KeylessAccount.ts +366 -0
- package/src/account/MultiKeyAccount.ts +11 -0
- package/src/account/index.ts +2 -0
- package/src/api/aptos.ts +6 -0
- package/src/api/aptosConfig.ts +46 -1
- package/src/api/keyless.ts +48 -0
- package/src/bcs/cryptoHasher.ts +6 -0
- package/src/bcs/deserializer.ts +40 -0
- package/src/bcs/serializer.ts +18 -0
- package/src/cli/localNode.ts +11 -1
- package/src/client/core.ts +8 -0
- package/src/client/get.ts +6 -0
- package/src/client/post.ts +12 -0
- package/src/client/types.ts +1 -1
- package/src/core/crypto/ephemeral.ts +138 -0
- package/src/core/crypto/index.ts +2 -0
- package/src/core/crypto/keyless.ts +453 -0
- package/src/core/crypto/poseidon.ts +133 -0
- package/src/core/crypto/proof.ts +16 -0
- package/src/core/crypto/singleKey.ts +11 -0
- package/src/internal/keyless.ts +109 -0
- package/src/internal/transactionSubmission.ts +7 -2
- package/src/transactions/transactionBuilder/remoteAbi.ts +16 -2
- package/src/transactions/transactionBuilder/signingMessage.ts +4 -4
- package/src/transactions/transactionBuilder/transactionBuilder.ts +21 -3
- package/src/transactions/typeTag/parser.ts +98 -52
- package/src/transactions/types.ts +22 -3
- package/src/types/index.ts +22 -0
- package/src/types/keyless.ts +6 -0
- package/src/utils/apiEndpoints.ts +14 -0
- package/src/utils/const.ts +2 -0
- package/src/utils/helpers.ts +25 -0
- 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-2XK53QFA.mjs +0 -2
- package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
- package/dist/esm/chunk-3JPVQHOR.mjs.map +0 -1
- package/dist/esm/chunk-4NHWV5AI.mjs +0 -2
- package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
- package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
- package/dist/esm/chunk-6QJOCI5Y.mjs +0 -2
- package/dist/esm/chunk-7VRZLDIJ.mjs +0 -2
- package/dist/esm/chunk-B7X6PSE7.mjs +0 -2
- package/dist/esm/chunk-BO2TLWNT.mjs +0 -2
- package/dist/esm/chunk-BVV56I3P.mjs +0 -2
- package/dist/esm/chunk-BVV56I3P.mjs.map +0 -1
- package/dist/esm/chunk-C4RK5AB6.mjs +0 -2
- package/dist/esm/chunk-C6HODGUS.mjs +0 -2
- package/dist/esm/chunk-CEHCDA3G.mjs +0 -2
- package/dist/esm/chunk-CJDEPZ4J.mjs +0 -2
- package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
- package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
- package/dist/esm/chunk-DCF2OTJS.mjs +0 -2
- package/dist/esm/chunk-DCF2OTJS.mjs.map +0 -1
- package/dist/esm/chunk-EW3AR5V3.mjs +0 -2
- package/dist/esm/chunk-EW3AR5V3.mjs.map +0 -1
- package/dist/esm/chunk-F7EMGK4M.mjs +0 -2
- package/dist/esm/chunk-HYCGMFC2.mjs +0 -2
- package/dist/esm/chunk-HYCGMFC2.mjs.map +0 -1
- package/dist/esm/chunk-JDDYOCHY.mjs +0 -2
- package/dist/esm/chunk-JDDYOCHY.mjs.map +0 -1
- package/dist/esm/chunk-JFIAWBCK.mjs +0 -2
- package/dist/esm/chunk-JFIAWBCK.mjs.map +0 -1
- package/dist/esm/chunk-L54P6EGN.mjs +0 -2
- package/dist/esm/chunk-L54P6EGN.mjs.map +0 -1
- package/dist/esm/chunk-LG7RJQ57.mjs +0 -2
- package/dist/esm/chunk-MJPUASSD.mjs +0 -2
- package/dist/esm/chunk-MJPUASSD.mjs.map +0 -1
- package/dist/esm/chunk-MV6ORORF.mjs +0 -2
- package/dist/esm/chunk-MV6ORORF.mjs.map +0 -1
- package/dist/esm/chunk-N3U47Y6Y.mjs +0 -2
- package/dist/esm/chunk-OWW6SIDP.mjs +0 -2
- package/dist/esm/chunk-OWW6SIDP.mjs.map +0 -1
- package/dist/esm/chunk-PF57EOJY.mjs +0 -2
- package/dist/esm/chunk-PYGUW7SU.mjs +0 -2
- package/dist/esm/chunk-PYGUW7SU.mjs.map +0 -1
- package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
- package/dist/esm/chunk-RTSWVT2Q.mjs +0 -2
- package/dist/esm/chunk-RTSWVT2Q.mjs.map +0 -1
- package/dist/esm/chunk-S2VSJJRJ.mjs +0 -2
- package/dist/esm/chunk-S2VSJJRJ.mjs.map +0 -1
- package/dist/esm/chunk-SRDIYE3M.mjs +0 -2
- package/dist/esm/chunk-UGPALAPN.mjs +0 -2
- package/dist/esm/chunk-UO3NZ5AH.mjs +0 -1
- package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
- package/dist/esm/chunk-YMB2XW2O.mjs +0 -2
- /package/dist/esm/{chunk-UO3NZ5AH.mjs.map → account/EphemeralKeyPair.mjs.map} +0 -0
- /package/dist/esm/{chunk-UVSRX4SV.mjs.map → account/KeylessAccount.mjs.map} +0 -0
- /package/dist/esm/{chunk-CEHCDA3G.mjs.map → chunk-3FVRXELT.mjs.map} +0 -0
- /package/dist/esm/{chunk-U3YYSIIT.mjs.map → chunk-3VGX3TXH.mjs.map} +0 -0
- /package/dist/esm/{chunk-4W3ZDREO.mjs.map → chunk-3Y6JNFPD.mjs.map} +0 -0
- /package/dist/esm/{chunk-JP4W2YJF.mjs.map → chunk-5RRZMXND.mjs.map} +0 -0
- /package/dist/esm/{chunk-64MINNG2.mjs.map → chunk-6M53MDWB.mjs.map} +0 -0
- /package/dist/esm/{chunk-UPSCPEEE.mjs.map → chunk-7H3HRFVM.mjs.map} +0 -0
- /package/dist/esm/{chunk-5EN52MUT.mjs.map → chunk-7STYQ5ZE.mjs.map} +0 -0
- /package/dist/esm/{chunk-J77BLQCV.mjs.map → chunk-A3UVZHDJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-BCUSI3N6.mjs.map → chunk-AOCNYMMX.mjs.map} +0 -0
- /package/dist/esm/{chunk-2O5VFH5O.mjs.map → chunk-C34M4T77.mjs.map} +0 -0
- /package/dist/esm/{chunk-N3U47Y6Y.mjs.map → chunk-C3L4ETUF.mjs.map} +0 -0
- /package/dist/esm/{chunk-4NHWV5AI.mjs.map → chunk-COW5IGYC.mjs.map} +0 -0
- /package/dist/esm/{chunk-TLLWFCCP.mjs.map → chunk-EADBYPUD.mjs.map} +0 -0
- /package/dist/esm/{chunk-G56GPLTB.mjs.map → chunk-EB7AI4B4.mjs.map} +0 -0
- /package/dist/esm/{chunk-AJU3EBVX.mjs.map → chunk-EIRSA5UU.mjs.map} +0 -0
- /package/dist/esm/{chunk-SSSWFYAX.mjs.map → chunk-EPTCPBVW.mjs.map} +0 -0
- /package/dist/esm/{chunk-AG3TUKNI.mjs.map → chunk-F5C4SZZ7.mjs.map} +0 -0
- /package/dist/esm/{chunk-ECVKW776.mjs.map → chunk-FBLSW5TB.mjs.map} +0 -0
- /package/dist/esm/{chunk-LG7RJQ57.mjs.map → chunk-FBPNHF54.mjs.map} +0 -0
- /package/dist/esm/{chunk-KAGLWBIJ.mjs.map → chunk-HGZGTBA4.mjs.map} +0 -0
- /package/dist/esm/{chunk-7VRZLDIJ.mjs.map → chunk-IEZO4PIG.mjs.map} +0 -0
- /package/dist/esm/{chunk-BZCARW2P.mjs.map → chunk-IJE5YSXW.mjs.map} +0 -0
- /package/dist/esm/{chunk-DZJ2RMX3.mjs.map → chunk-KFUOOBMJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-CWO2JAUL.mjs.map → chunk-KKP4FBWZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-OUTRV57V.mjs.map → chunk-LEBJNW6Y.mjs.map} +0 -0
- /package/dist/esm/{chunk-UEELI2FS.mjs.map → chunk-LO7B3CWN.mjs.map} +0 -0
- /package/dist/esm/{chunk-EU7EBOVD.mjs.map → chunk-LQH7T3TE.mjs.map} +0 -0
- /package/dist/esm/{chunk-VC4A47VQ.mjs.map → chunk-M7HZOQ6A.mjs.map} +0 -0
- /package/dist/esm/{chunk-B7X6PSE7.mjs.map → chunk-MGOHPDX4.mjs.map} +0 -0
- /package/dist/esm/{chunk-P6GWG2CY.mjs.map → chunk-MKUAW7KW.mjs.map} +0 -0
- /package/dist/esm/{chunk-I6ST47U7.mjs.map → chunk-MTLETLKV.mjs.map} +0 -0
- /package/dist/esm/{chunk-QYJF7C23.mjs.map → chunk-MWN63XBE.mjs.map} +0 -0
- /package/dist/esm/{chunk-PF57EOJY.mjs.map → chunk-MWUJCP27.mjs.map} +0 -0
- /package/dist/esm/{chunk-GM56MMNJ.mjs.map → chunk-NC5HHEEM.mjs.map} +0 -0
- /package/dist/esm/{chunk-EKOTTHRQ.mjs.map → chunk-NQMF46E5.mjs.map} +0 -0
- /package/dist/esm/{chunk-AJIDUBBG.mjs.map → chunk-ONIYM7IU.mjs.map} +0 -0
- /package/dist/esm/{chunk-GWPTNJTQ.mjs.map → chunk-OT37OTT7.mjs.map} +0 -0
- /package/dist/esm/{chunk-7FIS3GNZ.mjs.map → chunk-OX5GWFHX.mjs.map} +0 -0
- /package/dist/esm/{chunk-SGTNW5YI.mjs.map → chunk-PYUU4OEL.mjs.map} +0 -0
- /package/dist/esm/{chunk-T4J32V4F.mjs.map → chunk-Q3AUNZDW.mjs.map} +0 -0
- /package/dist/esm/{chunk-25HG3O2C.mjs.map → chunk-REBMGDZ5.mjs.map} +0 -0
- /package/dist/esm/{chunk-6QJOCI5Y.mjs.map → chunk-RUSWW265.mjs.map} +0 -0
- /package/dist/esm/{chunk-M3YZNSJI.mjs.map → chunk-SBQRBBRS.mjs.map} +0 -0
- /package/dist/esm/{chunk-UGPALAPN.mjs.map → chunk-STYDBDYL.mjs.map} +0 -0
- /package/dist/esm/{chunk-TUMYQZ27.mjs.map → chunk-T6OEZ4KP.mjs.map} +0 -0
- /package/dist/esm/{chunk-L7LLGJRG.mjs.map → chunk-TEJ7BXJK.mjs.map} +0 -0
- /package/dist/esm/{chunk-F7EMGK4M.mjs.map → chunk-TJDC5PWD.mjs.map} +0 -0
- /package/dist/esm/{chunk-UQU5WAX2.mjs.map → chunk-UDU5L4XH.mjs.map} +0 -0
- /package/dist/esm/{chunk-Y3RPWX6U.mjs.map → chunk-UFJGYMEB.mjs.map} +0 -0
- /package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-UTXJOB3O.mjs.map} +0 -0
- /package/dist/esm/{chunk-DQOIESL4.mjs.map → chunk-UWI5D7FD.mjs.map} +0 -0
- /package/dist/esm/{chunk-GCBRNHAO.mjs.map → chunk-W36IQO5K.mjs.map} +0 -0
- /package/dist/esm/{chunk-BHLICYAI.mjs.map → chunk-W637YAND.mjs.map} +0 -0
- /package/dist/esm/{chunk-NNUKSGEX.mjs.map → chunk-WAXCU6D6.mjs.map} +0 -0
- /package/dist/esm/{chunk-2ZGHK5BB.mjs.map → chunk-Y33VGXNI.mjs.map} +0 -0
- /package/dist/esm/{chunk-C6HODGUS.mjs.map → chunk-Y5BON557.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZJMW5Z76.mjs.map → chunk-YHO2EBXH.mjs.map} +0 -0
- /package/dist/esm/{chunk-BO2TLWNT.mjs.map → chunk-Z2ZR4PTF.mjs.map} +0 -0
- /package/dist/esm/{chunk-5WFN54GV.mjs.map → chunk-Z6JERVLX.mjs.map} +0 -0
- /package/dist/esm/{chunk-35EWRSDK.mjs.map → chunk-ZNEBMSNC.mjs.map} +0 -0
- /package/dist/esm/{publicKey-B3XRNhHO.d.mts → publicKey-lq5djCIY.d.mts} +0 -0
package/src/client/post.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/client/types.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/core/crypto/index.ts
CHANGED
|
@@ -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
|
+
}
|