@aptos-labs/ts-sdk 1.31.0 → 1.32.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/README.md +1 -1
- package/dist/common/{accountAddress-DnSqjhSl.d.ts → accountAddress-6RqI8Aam.d.ts} +144 -63
- package/dist/common/chunk-F43XVDYJ.js +2 -0
- package/dist/common/chunk-F43XVDYJ.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 +446 -111
- package/dist/common/index.js +36 -29
- package/dist/common/index.js.map +1 -1
- package/dist/esm/{Ed25519Account-DpH9qAcg.d.mts → Ed25519Account-B3xHXAQe.d.mts} +2 -2
- package/dist/esm/account/AbstractKeylessAccount.d.mts +85 -14
- package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
- package/dist/esm/account/Account.d.mts +4 -4
- package/dist/esm/account/Account.mjs +1 -1
- package/dist/esm/account/Ed25519Account.d.mts +4 -4
- package/dist/esm/account/Ed25519Account.mjs +1 -1
- package/dist/esm/account/EphemeralKeyPair.d.mts +3 -3
- package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
- package/dist/esm/account/FederatedKeylessAccount.d.mts +56 -8
- package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
- package/dist/esm/account/KeylessAccount.d.mts +28 -11
- package/dist/esm/account/KeylessAccount.mjs +1 -1
- package/dist/esm/account/MultiKeyAccount.d.mts +22 -10
- package/dist/esm/account/MultiKeyAccount.mjs +1 -1
- package/dist/esm/account/SingleKeyAccount.d.mts +4 -4
- package/dist/esm/account/SingleKeyAccount.mjs +1 -1
- package/dist/esm/account/index.d.mts +5 -5
- package/dist/esm/account/index.mjs +1 -1
- package/dist/esm/api/account.d.mts +5 -5
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/ans.d.mts +3 -3
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/aptos.d.mts +4 -4
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/aptosConfig.d.mts +1 -1
- package/dist/esm/api/aptosConfig.mjs +1 -1
- package/dist/esm/api/coin.d.mts +5 -5
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/digitalAsset.d.mts +5 -5
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/event.d.mts +3 -3
- package/dist/esm/api/event.mjs +1 -1
- package/dist/esm/api/faucet.d.mts +2 -2
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/fungibleAsset.d.mts +5 -5
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/general.d.mts +3 -3
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/index.d.mts +4 -4
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/keyless.d.mts +7 -7
- package/dist/esm/api/keyless.mjs +1 -1
- package/dist/esm/api/object.d.mts +3 -3
- package/dist/esm/api/object.mjs +1 -1
- package/dist/esm/api/staking.d.mts +3 -3
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/table.d.mts +3 -3
- package/dist/esm/api/table.mjs +1 -1
- package/dist/esm/api/transaction.d.mts +3 -3
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.d.mts +3 -3
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.d.mts +4 -4
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.d.mts +4 -4
- 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 +3 -3
- package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.d.mts +3 -3
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/utils.d.mts +2 -2
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/bcs/consts.d.mts +2 -2
- package/dist/esm/bcs/deserializer.d.mts +35 -27
- package/dist/esm/bcs/deserializer.mjs +1 -1
- package/dist/esm/bcs/index.d.mts +2 -2
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +2 -2
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.d.mts +2 -2
- package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.d.mts +2 -2
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.d.mts +11 -12
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/bcs/serializer.d.mts +13 -13
- package/dist/esm/bcs/serializer.mjs +1 -1
- package/dist/esm/{chunk-22ZSW5EN.mjs → chunk-26WX3UFP.mjs} +2 -2
- package/dist/esm/{chunk-A2AEFKXS.mjs → chunk-2E3BT4YW.mjs} +2 -2
- package/dist/esm/{chunk-VYMRIKUV.mjs → chunk-2LQ4FTSR.mjs} +2 -2
- package/dist/esm/{chunk-L5J3V3HW.mjs → chunk-2REHS35S.mjs} +2 -2
- package/dist/esm/{chunk-CC7VOPYH.mjs → chunk-2YTHKFJZ.mjs} +2 -2
- package/dist/esm/{chunk-6FLHGOKP.mjs → chunk-42H7WETG.mjs} +2 -2
- package/dist/esm/{chunk-RBJNSUSU.mjs → chunk-4IQZOAN7.mjs} +2 -2
- package/dist/esm/{chunk-ZPQUCT22.mjs → chunk-4J2JYRV3.mjs} +2 -2
- package/dist/esm/chunk-4O5XDQDO.mjs +2 -0
- package/dist/esm/chunk-5B3SMBXQ.mjs +2 -0
- package/dist/esm/{chunk-5N6KJ7KS.mjs → chunk-5KCKWL2C.mjs} +2 -2
- package/dist/esm/{chunk-IFXUWUP2.mjs → chunk-5O3RHPER.mjs} +2 -2
- package/dist/esm/{chunk-PCLU4KLY.mjs → chunk-6ZOVTYLJ.mjs} +2 -2
- package/dist/esm/chunk-7ECCT6PK.mjs +1 -0
- package/dist/esm/{chunk-RAJTNQNL.mjs → chunk-7OHMMGS6.mjs} +2 -2
- package/dist/esm/{chunk-ZPIMARUG.mjs → chunk-A3USS2NC.mjs} +2 -2
- package/dist/esm/{chunk-NODYW7DM.mjs → chunk-ACVIE7IE.mjs} +2 -2
- package/dist/esm/{chunk-RNRNGJDA.mjs → chunk-AGEJNSEX.mjs} +2 -2
- package/dist/esm/{chunk-QQIVWB6G.mjs → chunk-AJ5JHBAE.mjs} +2 -2
- package/dist/esm/{chunk-QQIVWB6G.mjs.map → chunk-AJ5JHBAE.mjs.map} +1 -1
- package/dist/esm/{chunk-PRZ7AIGA.mjs → chunk-AKIO3OIT.mjs} +2 -2
- package/dist/esm/{chunk-KRVLR3L4.mjs → chunk-AOROYJ74.mjs} +2 -2
- package/dist/esm/chunk-AVZYJAXR.mjs +2 -0
- package/dist/esm/chunk-AVZYJAXR.mjs.map +1 -0
- package/dist/esm/{chunk-BG2TZI3H.mjs → chunk-BP45UJII.mjs} +2 -2
- package/dist/esm/{chunk-JGNMNCQB.mjs → chunk-BRV3RLKW.mjs} +2 -2
- package/dist/esm/{chunk-EE7GDBA5.mjs → chunk-CEW2NI3K.mjs} +2 -2
- package/dist/esm/{chunk-RNJHULIT.mjs → chunk-CPKG25HX.mjs} +2 -2
- package/dist/esm/chunk-CPKG25HX.mjs.map +1 -0
- package/dist/esm/chunk-D52UKPQF.mjs +2 -0
- package/dist/esm/chunk-D52UKPQF.mjs.map +1 -0
- package/dist/esm/{chunk-4LKLOUMG.mjs → chunk-D54FD6XE.mjs} +2 -2
- package/dist/esm/{chunk-MK2QAHXC.mjs → chunk-DYELAVMR.mjs} +2 -2
- package/dist/esm/{chunk-MSHZ4FWB.mjs → chunk-E2GPZCQI.mjs} +2 -2
- package/dist/esm/{chunk-MSHZ4FWB.mjs.map → chunk-E2GPZCQI.mjs.map} +1 -1
- package/dist/esm/chunk-EJKX6MGV.mjs +2 -0
- package/dist/esm/{chunk-WV2VJQDS.mjs.map → chunk-EJKX6MGV.mjs.map} +1 -1
- package/dist/esm/{chunk-OXM4BVAY.mjs → chunk-ERDYU5YQ.mjs} +2 -2
- package/dist/esm/{chunk-7JK7UG4E.mjs → chunk-ETF76XA3.mjs} +2 -2
- package/dist/esm/chunk-F45G3GP3.mjs +7 -0
- package/dist/esm/chunk-F45G3GP3.mjs.map +1 -0
- package/dist/esm/chunk-FD6FGKYY.mjs +1 -0
- package/dist/esm/{chunk-LDZPO76C.mjs → chunk-FFCCBAEZ.mjs} +2 -2
- package/dist/esm/chunk-FYYTCJS4.mjs +2 -0
- package/dist/esm/chunk-FYYTCJS4.mjs.map +1 -0
- package/dist/esm/{chunk-OAEDFM7T.mjs → chunk-GX4CYRK4.mjs} +2 -2
- package/dist/esm/{chunk-UCRROMZN.mjs → chunk-GZBVXXUL.mjs} +2 -2
- package/dist/esm/{chunk-AT2ZGTXQ.mjs → chunk-H7AALSJ7.mjs} +2 -2
- package/dist/esm/{chunk-EUGLLGYW.mjs → chunk-HBWIDPNN.mjs} +2 -2
- package/dist/esm/{chunk-BVVHGSWC.mjs → chunk-HPZQGMSH.mjs} +2 -2
- package/dist/esm/{chunk-T5BCTWGK.mjs → chunk-I5GENJBA.mjs} +2 -2
- package/dist/esm/chunk-I5GENJBA.mjs.map +1 -0
- package/dist/esm/{chunk-73GCGRFW.mjs → chunk-II26BNYA.mjs} +2 -2
- package/dist/esm/{chunk-BOWPP6YG.mjs → chunk-IQ4SCMB6.mjs} +2 -2
- package/dist/esm/chunk-IUSAYAEI.mjs +4 -0
- package/dist/esm/{chunk-HM5HITUC.mjs.map → chunk-IUSAYAEI.mjs.map} +1 -1
- package/dist/esm/{chunk-J245N3XF.mjs → chunk-J7PJSK3J.mjs} +2 -2
- package/dist/esm/{chunk-J245N3XF.mjs.map → chunk-J7PJSK3J.mjs.map} +1 -1
- package/dist/esm/{chunk-CL6EEMSL.mjs → chunk-JGLEKXFP.mjs} +2 -2
- package/dist/esm/{chunk-SOLWFAUY.mjs → chunk-JIT2FYGE.mjs} +2 -2
- package/dist/esm/chunk-JIT2FYGE.mjs.map +1 -0
- package/dist/esm/chunk-JNO7KPMG.mjs +4 -0
- package/dist/esm/chunk-JNO7KPMG.mjs.map +1 -0
- package/dist/esm/{chunk-AZ6LVQEG.mjs → chunk-JONEH52T.mjs} +2 -2
- package/dist/esm/chunk-K62JTXWQ.mjs +2 -0
- package/dist/esm/chunk-K62JTXWQ.mjs.map +1 -0
- package/dist/esm/{chunk-IAVI3H4V.mjs → chunk-KCEI5JYS.mjs} +2 -2
- package/dist/esm/{chunk-XFY4O2S3.mjs → chunk-KM6IOJ6Y.mjs} +2 -2
- package/dist/esm/{chunk-DMSHPWA5.mjs → chunk-KTM6KVUJ.mjs} +2 -2
- package/dist/esm/chunk-KX43GEAB.mjs +2 -0
- package/dist/esm/chunk-KX43GEAB.mjs.map +1 -0
- package/dist/esm/{chunk-KYJU5PWF.mjs → chunk-L25CRR2W.mjs} +2 -2
- package/dist/esm/{chunk-2652SPOM.mjs → chunk-LGHPJTF3.mjs} +2 -2
- package/dist/esm/chunk-LGHPJTF3.mjs.map +1 -0
- package/dist/esm/{chunk-AGBA3Y7A.mjs → chunk-LGTOOAQI.mjs} +2 -2
- package/dist/esm/chunk-LHBMBCFC.mjs +2 -0
- package/dist/esm/chunk-LHBMBCFC.mjs.map +1 -0
- package/dist/esm/{chunk-F2RY4YQ7.mjs → chunk-LYO22HMF.mjs} +2 -2
- package/dist/esm/{chunk-KW4FVBDD.mjs → chunk-MBEWPBGN.mjs} +2 -2
- package/dist/esm/chunk-MHN6XY4Z.mjs +2 -0
- package/dist/esm/{chunk-JVTDP4KV.mjs → chunk-ML7D2CVG.mjs} +2 -2
- package/dist/esm/chunk-NF7ZQQE3.mjs +2 -0
- package/dist/esm/chunk-NF7ZQQE3.mjs.map +1 -0
- package/dist/esm/{chunk-XQ7ONNII.mjs → chunk-O4MRRWRI.mjs} +2 -2
- package/dist/esm/{chunk-PHP47DI4.mjs → chunk-OIOGOW6I.mjs} +1 -1
- package/dist/esm/{chunk-PHP47DI4.mjs.map → chunk-OIOGOW6I.mjs.map} +1 -1
- package/dist/esm/{chunk-ZINOJTLU.mjs → chunk-OPO5EYF7.mjs} +2 -2
- package/dist/esm/{chunk-6DMDYBV6.mjs → chunk-OVI7L7OG.mjs} +2 -2
- package/dist/esm/{chunk-TPJLAYW6.mjs → chunk-P2FTRAK3.mjs} +2 -2
- package/dist/esm/{chunk-IECDO22V.mjs → chunk-Q3CWUEXI.mjs} +2 -2
- package/dist/esm/chunk-Q3CWUEXI.mjs.map +1 -0
- package/dist/esm/{chunk-4JXB6V5O.mjs → chunk-RC43EXC4.mjs} +2 -2
- package/dist/esm/{chunk-WZCKSN2U.mjs → chunk-RLH25IDA.mjs} +2 -2
- package/dist/esm/{chunk-UGL2GPGK.mjs → chunk-RSO5YIDW.mjs} +2 -2
- package/dist/esm/chunk-RZGTHCJY.mjs +2 -0
- package/dist/esm/{chunk-2CGJLPHP.mjs.map → chunk-RZGTHCJY.mjs.map} +1 -1
- package/dist/esm/chunk-SPRNSFUV.mjs +2 -0
- package/dist/esm/chunk-SPRNSFUV.mjs.map +1 -0
- package/dist/esm/{chunk-2GEIHUHT.mjs → chunk-SPX2YFZN.mjs} +2 -2
- package/dist/esm/chunk-SPX2YFZN.mjs.map +1 -0
- package/dist/esm/chunk-SY4HK6CC.mjs +2 -0
- package/dist/esm/chunk-SY4HK6CC.mjs.map +1 -0
- package/dist/esm/{chunk-OTY3NO7Q.mjs → chunk-T6ADNZE5.mjs} +2 -2
- package/dist/esm/{chunk-3H5DGQKX.mjs → chunk-TGW36YOD.mjs} +2 -2
- package/dist/esm/{chunk-WSZCPSV4.mjs → chunk-TQA6HY6A.mjs} +2 -2
- package/dist/esm/{chunk-XFJD6QIP.mjs → chunk-U3GE6IPF.mjs} +2 -2
- package/dist/esm/chunk-UGTIALNW.mjs +2 -0
- package/dist/esm/{chunk-JNRMHDRA.mjs → chunk-UKVH4UGL.mjs} +2 -2
- package/dist/esm/chunk-UWLW2VLZ.mjs +2 -0
- package/dist/esm/chunk-UWLW2VLZ.mjs.map +1 -0
- package/dist/esm/chunk-UZTJWOLS.mjs +2 -0
- package/dist/esm/chunk-V4FKFCBL.mjs +2 -0
- package/dist/esm/chunk-V4FKFCBL.mjs.map +1 -0
- package/dist/esm/{chunk-4ZK3JNQT.mjs → chunk-VGITSRT6.mjs} +2 -2
- package/dist/esm/chunk-VGJIATTB.mjs +2 -0
- package/dist/esm/chunk-VGJIATTB.mjs.map +1 -0
- package/dist/esm/{chunk-XOCRDV2V.mjs → chunk-VQZMI3EZ.mjs} +2 -2
- package/dist/esm/chunk-WQF3IOXC.mjs +2 -0
- package/dist/esm/chunk-WQF3IOXC.mjs.map +1 -0
- package/dist/esm/chunk-WYOFF5DJ.mjs +2 -0
- package/dist/esm/chunk-WYOFF5DJ.mjs.map +1 -0
- package/dist/esm/{chunk-YZ5BCOGI.mjs → chunk-X7JNNNMC.mjs} +2 -2
- package/dist/esm/{chunk-JN36BNWA.mjs → chunk-XIB6LX22.mjs} +2 -2
- package/dist/esm/chunk-YIQ3JFHW.mjs +2 -0
- package/dist/esm/chunk-YIQ3JFHW.mjs.map +1 -0
- package/dist/esm/chunk-YP3VO6GM.mjs +2 -0
- package/dist/esm/chunk-YP3VO6GM.mjs.map +1 -0
- package/dist/esm/{chunk-OZN3OOJV.mjs → chunk-ZMBXHMVQ.mjs} +2 -2
- package/dist/esm/cli/index.d.mts +2 -2
- package/dist/esm/cli/index.mjs +1 -1
- package/dist/esm/cli/localNode.mjs +1 -1
- package/dist/esm/cli/move.d.mts +1 -1
- package/dist/esm/client/core.d.mts +1 -2
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/get.d.mts +1 -2
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/index.d.mts +2 -3
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/post.d.mts +1 -2
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/core/account/index.d.mts +2 -2
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/utils/address.d.mts +2 -2
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/index.d.mts +2 -2
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/accountAddress.d.mts +19 -10
- package/dist/esm/core/accountAddress.mjs +1 -1
- package/dist/esm/core/authenticationKey.d.mts +3 -3
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/crypto/ed25519.d.mts +26 -12
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +3 -3
- package/dist/esm/core/crypto/ephemeral.mjs +1 -1
- package/dist/esm/core/crypto/federatedKeyless.d.mts +4 -4
- package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
- package/dist/esm/core/crypto/hdKey.d.mts +0 -1
- package/dist/esm/core/crypto/hdKey.mjs +1 -1
- package/dist/esm/core/crypto/index.d.mts +4 -4
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/keyless.d.mts +72 -11
- package/dist/esm/core/crypto/keyless.mjs +1 -1
- package/dist/esm/core/crypto/multiEd25519.d.mts +3 -3
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiKey.d.mts +3 -3
- package/dist/esm/core/crypto/multiKey.mjs +1 -1
- package/dist/esm/core/crypto/privateKey.d.mts +37 -10
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/proof.d.mts +2 -2
- package/dist/esm/core/crypto/proof.mjs +1 -1
- package/dist/esm/core/crypto/publicKey.d.mts +3 -3
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.d.mts +23 -9
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/signature.d.mts +2 -2
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.d.mts +3 -3
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/crypto/utils.d.mts +2 -2
- package/dist/esm/core/crypto/utils.mjs +1 -1
- package/dist/esm/core/hex.d.mts +39 -3
- package/dist/esm/core/hex.mjs +1 -1
- package/dist/esm/core/index.d.mts +5 -5
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/errors/index.d.mts +122 -0
- package/dist/esm/errors/index.mjs +2 -0
- package/dist/esm/index.d.mts +10 -10
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal/account.d.mts +4 -4
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/ans.d.mts +4 -4
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/coin.d.mts +2 -2
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/digitalAsset.d.mts +4 -4
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/event.d.mts +2 -2
- package/dist/esm/internal/event.mjs +1 -1
- package/dist/esm/internal/faucet.d.mts +1 -1
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.d.mts +4 -4
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/general.d.mts +2 -2
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/keyless.d.mts +9 -5
- package/dist/esm/internal/keyless.mjs +1 -1
- package/dist/esm/internal/object.d.mts +2 -2
- package/dist/esm/internal/object.mjs +1 -1
- package/dist/esm/internal/staking.d.mts +1 -1
- package/dist/esm/internal/staking.mjs +1 -1
- package/dist/esm/internal/table.d.mts +2 -2
- package/dist/esm/internal/table.mjs +1 -1
- package/dist/esm/internal/transaction.d.mts +1 -1
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.d.mts +3 -3
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/view.d.mts +3 -3
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/{publicKey-_tPa99ea.d.mts → publicKey-BVXX1nVl.d.mts} +2 -2
- package/dist/esm/transactions/authenticator/account.d.mts +3 -3
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.d.mts +3 -3
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.d.mts +9 -4
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/index.d.mts +3 -3
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/instances/chainId.d.mts +2 -2
- package/dist/esm/transactions/instances/chainId.mjs +1 -1
- package/dist/esm/transactions/instances/identifier.d.mts +2 -2
- package/dist/esm/transactions/instances/identifier.mjs +1 -1
- package/dist/esm/transactions/instances/index.d.mts +3 -3
- package/dist/esm/transactions/instances/index.mjs +1 -1
- package/dist/esm/transactions/instances/moduleId.d.mts +2 -2
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +2 -2
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.d.mts +2 -2
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +3 -3
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.d.mts +3 -3
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.d.mts +2 -2
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/transactionArgument.d.mts +2 -2
- package/dist/esm/transactions/instances/transactionPayload.d.mts +2 -2
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.d.mts +4 -4
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/index.d.mts +4 -4
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.d.mts +4 -4
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.d.mts +2 -2
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.d.mts +3 -3
- 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 +3 -3
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +3 -3
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.d.mts +2 -2
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.d.mts +2 -2
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/transactions/types.d.mts +2 -2
- package/dist/esm/types/index.d.mts +3 -1260
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/types/keyless.d.mts +22 -1
- package/dist/esm/types/types.d.mts +1289 -0
- package/dist/esm/types/types.mjs +2 -0
- package/dist/esm/types/types.mjs.map +1 -0
- package/dist/esm/utils/const.d.mts +7 -1
- package/dist/esm/utils/const.mjs +1 -1
- package/dist/esm/utils/helpers.d.mts +10 -3
- package/dist/esm/utils/helpers.mjs +1 -1
- package/dist/esm/utils/index.d.mts +3 -3
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.d.mts +2 -2
- 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 +1 -1
- package/src/account/AbstractKeylessAccount.ts +203 -10
- package/src/account/FederatedKeylessAccount.ts +83 -35
- package/src/account/KeylessAccount.ts +44 -37
- package/src/account/MultiKeyAccount.ts +18 -5
- package/src/api/keyless.ts +2 -2
- package/src/bcs/deserializer.ts +53 -30
- package/src/bcs/serializable/moveStructs.ts +16 -17
- package/src/bcs/serializer.ts +22 -12
- package/src/client/core.ts +2 -2
- package/src/client/get.ts +1 -2
- package/src/client/index.ts +0 -1
- package/src/client/post.ts +1 -2
- package/src/core/accountAddress.ts +36 -9
- package/src/core/crypto/ed25519.ts +34 -14
- package/src/core/crypto/hdKey.ts +0 -1
- package/src/core/crypto/keyless.ts +245 -38
- package/src/core/crypto/privateKey.ts +81 -5
- package/src/core/crypto/secp256k1.ts +31 -11
- package/src/core/hex.ts +47 -0
- package/src/errors/index.ts +406 -0
- package/src/index.ts +1 -0
- package/src/internal/account.ts +6 -6
- package/src/internal/ans.ts +2 -1
- package/src/internal/keyless.ts +57 -19
- package/src/internal/transaction.ts +2 -1
- package/src/internal/transactionSubmission.ts +36 -18
- package/src/transactions/authenticator/transaction.ts +20 -0
- package/src/types/index.ts +1 -1483
- package/src/types/keyless.ts +19 -0
- package/src/types/types.ts +1512 -0
- package/src/utils/const.ts +7 -0
- package/src/utils/helpers.ts +10 -0
- package/src/version.ts +1 -1
- package/dist/common/chunk-7IYTZDXV.js +0 -2
- package/dist/common/chunk-7IYTZDXV.js.map +0 -1
- package/dist/esm/chunk-2652SPOM.mjs.map +0 -1
- package/dist/esm/chunk-2CGJLPHP.mjs +0 -2
- package/dist/esm/chunk-2GEIHUHT.mjs.map +0 -1
- package/dist/esm/chunk-4CDDWSKZ.mjs +0 -2
- package/dist/esm/chunk-4OV7QU2U.mjs +0 -2
- package/dist/esm/chunk-4VU2ABLU.mjs +0 -2
- package/dist/esm/chunk-4VU2ABLU.mjs.map +0 -1
- package/dist/esm/chunk-5S3Z7MT4.mjs +0 -2
- package/dist/esm/chunk-5S3Z7MT4.mjs.map +0 -1
- package/dist/esm/chunk-5SGSPCOY.mjs +0 -2
- package/dist/esm/chunk-5SGSPCOY.mjs.map +0 -1
- package/dist/esm/chunk-7XS45O6M.mjs +0 -2
- package/dist/esm/chunk-7XS45O6M.mjs.map +0 -1
- package/dist/esm/chunk-BAGUHYFD.mjs +0 -2
- package/dist/esm/chunk-BAGUHYFD.mjs.map +0 -1
- package/dist/esm/chunk-CDQGPCHU.mjs +0 -2
- package/dist/esm/chunk-CDQGPCHU.mjs.map +0 -1
- package/dist/esm/chunk-FTZGP6XW.mjs +0 -2
- package/dist/esm/chunk-FTZGP6XW.mjs.map +0 -1
- package/dist/esm/chunk-GLATLXF6.mjs +0 -2
- package/dist/esm/chunk-GLATLXF6.mjs.map +0 -1
- package/dist/esm/chunk-GQABU3RQ.mjs +0 -2
- package/dist/esm/chunk-GQABU3RQ.mjs.map +0 -1
- package/dist/esm/chunk-HM5HITUC.mjs +0 -4
- package/dist/esm/chunk-IBLZ6MZU.mjs +0 -2
- package/dist/esm/chunk-IECDO22V.mjs.map +0 -1
- package/dist/esm/chunk-KFNDDPOW.mjs +0 -2
- package/dist/esm/chunk-KFNDDPOW.mjs.map +0 -1
- package/dist/esm/chunk-KIW54KWR.mjs +0 -2
- package/dist/esm/chunk-KM6UXNC7.mjs +0 -2
- package/dist/esm/chunk-KM6UXNC7.mjs.map +0 -1
- package/dist/esm/chunk-KUX6GQ2E.mjs +0 -1
- package/dist/esm/chunk-LEKBJ2EG.mjs +0 -2
- package/dist/esm/chunk-LEKBJ2EG.mjs.map +0 -1
- package/dist/esm/chunk-M22UGFQ5.mjs +0 -2
- package/dist/esm/chunk-M22UGFQ5.mjs.map +0 -1
- package/dist/esm/chunk-N2FKVZ4D.mjs +0 -1
- package/dist/esm/chunk-N47FTRYO.mjs +0 -2
- package/dist/esm/chunk-N47FTRYO.mjs.map +0 -1
- package/dist/esm/chunk-ONBFUPEC.mjs +0 -2
- package/dist/esm/chunk-P3J54CQG.mjs +0 -2
- package/dist/esm/chunk-P3J54CQG.mjs.map +0 -1
- package/dist/esm/chunk-RNJHULIT.mjs.map +0 -1
- package/dist/esm/chunk-SGQFWWLQ.mjs +0 -2
- package/dist/esm/chunk-SGQFWWLQ.mjs.map +0 -1
- package/dist/esm/chunk-SOLWFAUY.mjs.map +0 -1
- package/dist/esm/chunk-T5BCTWGK.mjs.map +0 -1
- package/dist/esm/chunk-WV2VJQDS.mjs +0 -2
- package/dist/esm/chunk-Y267I7DC.mjs +0 -2
- package/dist/esm/chunk-Y267I7DC.mjs.map +0 -1
- package/dist/esm/client/types.d.mts +0 -66
- package/dist/esm/client/types.mjs +0 -2
- package/src/client/types.ts +0 -138
- /package/dist/esm/{chunk-22ZSW5EN.mjs.map → chunk-26WX3UFP.mjs.map} +0 -0
- /package/dist/esm/{chunk-A2AEFKXS.mjs.map → chunk-2E3BT4YW.mjs.map} +0 -0
- /package/dist/esm/{chunk-VYMRIKUV.mjs.map → chunk-2LQ4FTSR.mjs.map} +0 -0
- /package/dist/esm/{chunk-L5J3V3HW.mjs.map → chunk-2REHS35S.mjs.map} +0 -0
- /package/dist/esm/{chunk-CC7VOPYH.mjs.map → chunk-2YTHKFJZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-6FLHGOKP.mjs.map → chunk-42H7WETG.mjs.map} +0 -0
- /package/dist/esm/{chunk-RBJNSUSU.mjs.map → chunk-4IQZOAN7.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZPQUCT22.mjs.map → chunk-4J2JYRV3.mjs.map} +0 -0
- /package/dist/esm/{chunk-IBLZ6MZU.mjs.map → chunk-4O5XDQDO.mjs.map} +0 -0
- /package/dist/esm/{chunk-KIW54KWR.mjs.map → chunk-5B3SMBXQ.mjs.map} +0 -0
- /package/dist/esm/{chunk-5N6KJ7KS.mjs.map → chunk-5KCKWL2C.mjs.map} +0 -0
- /package/dist/esm/{chunk-IFXUWUP2.mjs.map → chunk-5O3RHPER.mjs.map} +0 -0
- /package/dist/esm/{chunk-PCLU4KLY.mjs.map → chunk-6ZOVTYLJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-KUX6GQ2E.mjs.map → chunk-7ECCT6PK.mjs.map} +0 -0
- /package/dist/esm/{chunk-RAJTNQNL.mjs.map → chunk-7OHMMGS6.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZPIMARUG.mjs.map → chunk-A3USS2NC.mjs.map} +0 -0
- /package/dist/esm/{chunk-NODYW7DM.mjs.map → chunk-ACVIE7IE.mjs.map} +0 -0
- /package/dist/esm/{chunk-RNRNGJDA.mjs.map → chunk-AGEJNSEX.mjs.map} +0 -0
- /package/dist/esm/{chunk-PRZ7AIGA.mjs.map → chunk-AKIO3OIT.mjs.map} +0 -0
- /package/dist/esm/{chunk-KRVLR3L4.mjs.map → chunk-AOROYJ74.mjs.map} +0 -0
- /package/dist/esm/{chunk-BG2TZI3H.mjs.map → chunk-BP45UJII.mjs.map} +0 -0
- /package/dist/esm/{chunk-JGNMNCQB.mjs.map → chunk-BRV3RLKW.mjs.map} +0 -0
- /package/dist/esm/{chunk-EE7GDBA5.mjs.map → chunk-CEW2NI3K.mjs.map} +0 -0
- /package/dist/esm/{chunk-4LKLOUMG.mjs.map → chunk-D54FD6XE.mjs.map} +0 -0
- /package/dist/esm/{chunk-MK2QAHXC.mjs.map → chunk-DYELAVMR.mjs.map} +0 -0
- /package/dist/esm/{chunk-OXM4BVAY.mjs.map → chunk-ERDYU5YQ.mjs.map} +0 -0
- /package/dist/esm/{chunk-7JK7UG4E.mjs.map → chunk-ETF76XA3.mjs.map} +0 -0
- /package/dist/esm/{chunk-N2FKVZ4D.mjs.map → chunk-FD6FGKYY.mjs.map} +0 -0
- /package/dist/esm/{chunk-LDZPO76C.mjs.map → chunk-FFCCBAEZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-OAEDFM7T.mjs.map → chunk-GX4CYRK4.mjs.map} +0 -0
- /package/dist/esm/{chunk-UCRROMZN.mjs.map → chunk-GZBVXXUL.mjs.map} +0 -0
- /package/dist/esm/{chunk-AT2ZGTXQ.mjs.map → chunk-H7AALSJ7.mjs.map} +0 -0
- /package/dist/esm/{chunk-EUGLLGYW.mjs.map → chunk-HBWIDPNN.mjs.map} +0 -0
- /package/dist/esm/{chunk-BVVHGSWC.mjs.map → chunk-HPZQGMSH.mjs.map} +0 -0
- /package/dist/esm/{chunk-73GCGRFW.mjs.map → chunk-II26BNYA.mjs.map} +0 -0
- /package/dist/esm/{chunk-BOWPP6YG.mjs.map → chunk-IQ4SCMB6.mjs.map} +0 -0
- /package/dist/esm/{chunk-CL6EEMSL.mjs.map → chunk-JGLEKXFP.mjs.map} +0 -0
- /package/dist/esm/{chunk-AZ6LVQEG.mjs.map → chunk-JONEH52T.mjs.map} +0 -0
- /package/dist/esm/{chunk-IAVI3H4V.mjs.map → chunk-KCEI5JYS.mjs.map} +0 -0
- /package/dist/esm/{chunk-XFY4O2S3.mjs.map → chunk-KM6IOJ6Y.mjs.map} +0 -0
- /package/dist/esm/{chunk-DMSHPWA5.mjs.map → chunk-KTM6KVUJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-KYJU5PWF.mjs.map → chunk-L25CRR2W.mjs.map} +0 -0
- /package/dist/esm/{chunk-AGBA3Y7A.mjs.map → chunk-LGTOOAQI.mjs.map} +0 -0
- /package/dist/esm/{chunk-F2RY4YQ7.mjs.map → chunk-LYO22HMF.mjs.map} +0 -0
- /package/dist/esm/{chunk-KW4FVBDD.mjs.map → chunk-MBEWPBGN.mjs.map} +0 -0
- /package/dist/esm/{chunk-4OV7QU2U.mjs.map → chunk-MHN6XY4Z.mjs.map} +0 -0
- /package/dist/esm/{chunk-JVTDP4KV.mjs.map → chunk-ML7D2CVG.mjs.map} +0 -0
- /package/dist/esm/{chunk-XQ7ONNII.mjs.map → chunk-O4MRRWRI.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZINOJTLU.mjs.map → chunk-OPO5EYF7.mjs.map} +0 -0
- /package/dist/esm/{chunk-6DMDYBV6.mjs.map → chunk-OVI7L7OG.mjs.map} +0 -0
- /package/dist/esm/{chunk-TPJLAYW6.mjs.map → chunk-P2FTRAK3.mjs.map} +0 -0
- /package/dist/esm/{chunk-4JXB6V5O.mjs.map → chunk-RC43EXC4.mjs.map} +0 -0
- /package/dist/esm/{chunk-WZCKSN2U.mjs.map → chunk-RLH25IDA.mjs.map} +0 -0
- /package/dist/esm/{chunk-UGL2GPGK.mjs.map → chunk-RSO5YIDW.mjs.map} +0 -0
- /package/dist/esm/{chunk-OTY3NO7Q.mjs.map → chunk-T6ADNZE5.mjs.map} +0 -0
- /package/dist/esm/{chunk-3H5DGQKX.mjs.map → chunk-TGW36YOD.mjs.map} +0 -0
- /package/dist/esm/{chunk-WSZCPSV4.mjs.map → chunk-TQA6HY6A.mjs.map} +0 -0
- /package/dist/esm/{chunk-XFJD6QIP.mjs.map → chunk-U3GE6IPF.mjs.map} +0 -0
- /package/dist/esm/{chunk-ONBFUPEC.mjs.map → chunk-UGTIALNW.mjs.map} +0 -0
- /package/dist/esm/{chunk-JNRMHDRA.mjs.map → chunk-UKVH4UGL.mjs.map} +0 -0
- /package/dist/esm/{chunk-4CDDWSKZ.mjs.map → chunk-UZTJWOLS.mjs.map} +0 -0
- /package/dist/esm/{chunk-4ZK3JNQT.mjs.map → chunk-VGITSRT6.mjs.map} +0 -0
- /package/dist/esm/{chunk-XOCRDV2V.mjs.map → chunk-VQZMI3EZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-YZ5BCOGI.mjs.map → chunk-X7JNNNMC.mjs.map} +0 -0
- /package/dist/esm/{chunk-JN36BNWA.mjs.map → chunk-XIB6LX22.mjs.map} +0 -0
- /package/dist/esm/{chunk-OZN3OOJV.mjs.map → chunk-ZMBXHMVQ.mjs.map} +0 -0
- /package/dist/esm/{client/types.mjs.map → errors/index.mjs.map} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// Copyright © Aptos Foundation
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { JwtPayload, jwtDecode } from "jwt-decode";
|
|
5
4
|
import { HexInput } from "../types";
|
|
6
5
|
import { AccountAddress } from "../core/accountAddress";
|
|
7
|
-
import { KeylessPublicKey, ZeroKnowledgeSig } from "../core/crypto";
|
|
6
|
+
import { getIssAudAndUidVal, Groth16VerificationKey, KeylessPublicKey, ZeroKnowledgeSig } from "../core/crypto";
|
|
8
7
|
|
|
9
8
|
import { EphemeralKeyPair } from "./EphemeralKeyPair";
|
|
10
9
|
import { Deserializer, Serializer } from "../bcs";
|
|
11
10
|
import { AbstractKeylessAccount, ProofFetchCallback } from "./AbstractKeylessAccount";
|
|
11
|
+
import { Hex } from "../core/hex";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Account implementation for the Keyless authentication scheme.
|
|
@@ -19,9 +19,6 @@ import { AbstractKeylessAccount, ProofFetchCallback } from "./AbstractKeylessAcc
|
|
|
19
19
|
*
|
|
20
20
|
* When the proof expires or the JWT becomes invalid, the KeylessAccount must be instantiated again with a new JWT,
|
|
21
21
|
* EphemeralKeyPair, and corresponding proof.
|
|
22
|
-
*
|
|
23
|
-
* @static
|
|
24
|
-
* @readonly PEPPER_LENGTH - The length of the pepper used for privacy preservation.
|
|
25
22
|
*/
|
|
26
23
|
export class KeylessAccount extends AbstractKeylessAccount {
|
|
27
24
|
/**
|
|
@@ -32,11 +29,22 @@ export class KeylessAccount extends AbstractKeylessAccount {
|
|
|
32
29
|
// Use the static constructor 'create' instead.
|
|
33
30
|
|
|
34
31
|
/**
|
|
35
|
-
*
|
|
32
|
+
* Use the static generator `create(...)` instead.
|
|
33
|
+
* Creates an instance of the KeylessAccount with an optional proof.
|
|
36
34
|
*
|
|
37
|
-
* @param args
|
|
35
|
+
* @param args - The parameters for creating a KeylessAccount.
|
|
36
|
+
* @param args.address - Optional account address associated with the KeylessAccount.
|
|
37
|
+
* @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation.
|
|
38
|
+
* @param args.iss - A JWT issuer.
|
|
39
|
+
* @param args.uidKey - The claim on the JWT to identify a user. This is typically 'sub' or 'email'.
|
|
40
|
+
* @param args.uidVal - The unique id for this user, intended to be a stable user identifier.
|
|
41
|
+
* @param args.aud - The value of the 'aud' claim on the JWT, also known as client ID. This is the identifier for the dApp's
|
|
42
|
+
* OIDC registration with the identity provider.
|
|
43
|
+
* @param args.pepper - A hexadecimal input used for additional security.
|
|
44
|
+
* @param args.proof - A Zero Knowledge Signature or a promise that resolves to one.
|
|
45
|
+
* @param args.proofFetchCallback - Optional callback function for fetching proof.
|
|
46
|
+
* @param args.jwt - A JSON Web Token used for authentication.
|
|
38
47
|
*/
|
|
39
|
-
// TODO: Document rest of parameters
|
|
40
48
|
private constructor(args: {
|
|
41
49
|
address?: AccountAddress;
|
|
42
50
|
ephemeralKeyPair: EphemeralKeyPair;
|
|
@@ -48,6 +56,7 @@ export class KeylessAccount extends AbstractKeylessAccount {
|
|
|
48
56
|
proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;
|
|
49
57
|
proofFetchCallback?: ProofFetchCallback;
|
|
50
58
|
jwt: string;
|
|
59
|
+
verificationKeyHash?: HexInput;
|
|
51
60
|
}) {
|
|
52
61
|
const publicKey = KeylessPublicKey.create(args);
|
|
53
62
|
super({ publicKey, ...args });
|
|
@@ -61,14 +70,7 @@ export class KeylessAccount extends AbstractKeylessAccount {
|
|
|
61
70
|
* @param serializer - The serializer instance used to convert the transaction data into bytes.
|
|
62
71
|
*/
|
|
63
72
|
serialize(serializer: Serializer): void {
|
|
64
|
-
|
|
65
|
-
serializer.serializeStr(this.uidKey);
|
|
66
|
-
serializer.serializeFixedBytes(this.pepper);
|
|
67
|
-
this.ephemeralKeyPair.serialize(serializer);
|
|
68
|
-
if (this.proof === undefined) {
|
|
69
|
-
throw new Error("Cannot serialize - proof undefined");
|
|
70
|
-
}
|
|
71
|
-
this.proof.serialize(serializer);
|
|
73
|
+
super.serialize(serializer);
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
/**
|
|
@@ -79,27 +81,37 @@ export class KeylessAccount extends AbstractKeylessAccount {
|
|
|
79
81
|
* @returns A KeylessAccount instance created from the deserialized data.
|
|
80
82
|
*/
|
|
81
83
|
static deserialize(deserializer: Deserializer): KeylessAccount {
|
|
82
|
-
const jwt =
|
|
83
|
-
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return KeylessAccount.create({
|
|
84
|
+
const { address, proof, ephemeralKeyPair, jwt, uidKey, pepper, verificationKeyHash } =
|
|
85
|
+
AbstractKeylessAccount.partialDeserialize(deserializer);
|
|
86
|
+
const { iss, aud, uidVal } = getIssAudAndUidVal({ jwt, uidKey });
|
|
87
|
+
return new KeylessAccount({
|
|
88
|
+
address,
|
|
88
89
|
proof,
|
|
89
|
-
|
|
90
|
+
ephemeralKeyPair,
|
|
91
|
+
iss,
|
|
90
92
|
uidKey,
|
|
93
|
+
uidVal,
|
|
94
|
+
aud,
|
|
95
|
+
pepper,
|
|
91
96
|
jwt,
|
|
92
|
-
|
|
97
|
+
verificationKeyHash,
|
|
93
98
|
});
|
|
94
99
|
}
|
|
95
100
|
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Deserialize bytes using this account's information.
|
|
103
|
+
*
|
|
104
|
+
* @param bytes The bytes being interpreted.
|
|
105
|
+
* @returns
|
|
106
|
+
*/
|
|
107
|
+
static fromBytes(bytes: HexInput): KeylessAccount {
|
|
108
|
+
return KeylessAccount.deserialize(new Deserializer(Hex.hexInputToUint8Array(bytes)));
|
|
98
109
|
}
|
|
99
110
|
|
|
100
111
|
/**
|
|
101
112
|
* Creates a KeylessAccount instance using the provided parameters.
|
|
102
113
|
* This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT.
|
|
114
|
+
* This is used instead of the KeylessAccount constructor.
|
|
103
115
|
*
|
|
104
116
|
* @param args - The parameters for creating a KeylessAccount.
|
|
105
117
|
* @param args.address - Optional account address associated with the KeylessAccount.
|
|
@@ -118,28 +130,23 @@ export class KeylessAccount extends AbstractKeylessAccount {
|
|
|
118
130
|
pepper: HexInput;
|
|
119
131
|
uidKey?: string;
|
|
120
132
|
proofFetchCallback?: ProofFetchCallback;
|
|
133
|
+
verificationKey?: Groth16VerificationKey;
|
|
121
134
|
}): KeylessAccount {
|
|
122
|
-
const { address, proof, jwt, ephemeralKeyPair, pepper, uidKey = "sub", proofFetchCallback } = args;
|
|
135
|
+
const { address, proof, jwt, ephemeralKeyPair, pepper, uidKey = "sub", proofFetchCallback, verificationKey } = args;
|
|
123
136
|
|
|
124
|
-
const
|
|
125
|
-
if (typeof jwtPayload.iss !== "string") {
|
|
126
|
-
throw new Error("iss was not found");
|
|
127
|
-
}
|
|
128
|
-
if (typeof jwtPayload.aud !== "string") {
|
|
129
|
-
throw new Error("aud was not found or an array of values");
|
|
130
|
-
}
|
|
131
|
-
const uidVal = jwtPayload[uidKey];
|
|
137
|
+
const { iss, aud, uidVal } = getIssAudAndUidVal({ jwt, uidKey });
|
|
132
138
|
return new KeylessAccount({
|
|
133
139
|
address,
|
|
134
140
|
proof,
|
|
135
141
|
ephemeralKeyPair,
|
|
136
|
-
iss
|
|
142
|
+
iss,
|
|
137
143
|
uidKey,
|
|
138
144
|
uidVal,
|
|
139
|
-
aud
|
|
145
|
+
aud,
|
|
140
146
|
pepper,
|
|
141
147
|
jwt,
|
|
142
148
|
proofFetchCallback,
|
|
149
|
+
verificationKeyHash: verificationKey ? verificationKey.hash() : undefined,
|
|
143
150
|
});
|
|
144
151
|
}
|
|
145
152
|
}
|
|
@@ -7,7 +7,8 @@ import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
|
|
|
7
7
|
import { HexInput, SigningScheme } from "../types";
|
|
8
8
|
import { AccountAuthenticatorMultiKey } from "../transactions/authenticator/account";
|
|
9
9
|
import { AnyRawTransaction } from "../transactions/types";
|
|
10
|
-
import { AbstractKeylessAccount } from "./AbstractKeylessAccount";
|
|
10
|
+
import { AbstractKeylessAccount, KeylessSigner } from "./AbstractKeylessAccount";
|
|
11
|
+
import { AptosConfig } from "../api/aptosConfig";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Arguments required to verify a multi-key signature against a given message.
|
|
@@ -28,7 +29,7 @@ export interface VerifyMultiKeySignatureArgs {
|
|
|
28
29
|
*
|
|
29
30
|
* Note: Generating a signer instance does not create the account on-chain.
|
|
30
31
|
*/
|
|
31
|
-
export class MultiKeyAccount implements Account {
|
|
32
|
+
export class MultiKeyAccount implements Account, KeylessSigner {
|
|
32
33
|
/**
|
|
33
34
|
* Public key associated with the account
|
|
34
35
|
*/
|
|
@@ -154,9 +155,21 @@ export class MultiKeyAccount implements Account {
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
/**
|
|
157
|
-
*
|
|
158
|
-
* @
|
|
159
|
-
|
|
158
|
+
* Validates that the Keyless Account can be used to sign transactions.
|
|
159
|
+
* @return
|
|
160
|
+
*/
|
|
161
|
+
async checkKeylessAccountValidity(aptosConfig: AptosConfig): Promise<void> {
|
|
162
|
+
const keylessSigners = this.signers.filter(
|
|
163
|
+
(signer) => signer instanceof AbstractKeylessAccount,
|
|
164
|
+
) as AbstractKeylessAccount[];
|
|
165
|
+
const promises = keylessSigners.map((signer) => signer.checkKeylessAccountValidity(aptosConfig));
|
|
166
|
+
await Promise.all(promises);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Sign the given message using the MultiKeyAccount's signers
|
|
171
|
+
* @param message in HexInput format
|
|
172
|
+
* @returns MultiKeySignature
|
|
160
173
|
*/
|
|
161
174
|
sign(data: HexInput): MultiKeySignature {
|
|
162
175
|
const signatures = [];
|
package/src/api/keyless.ts
CHANGED
|
@@ -155,7 +155,7 @@ export class Keyless {
|
|
|
155
155
|
* @param args.jwt - The JWT token used for deriving the account.
|
|
156
156
|
* @param args.ephemeralKeyPair - The EphemeralKeyPair used to generate the nonce in the JWT token.
|
|
157
157
|
* @param args.jwkAddress - The address the where the JWKs used to verify signatures are found. Setting the value derives a
|
|
158
|
-
* FederatedKeylessAccount
|
|
158
|
+
* FederatedKeylessAccount.
|
|
159
159
|
* @param args.uidKey - An optional key in the JWT token to set the uidVal in the IdCommitment.
|
|
160
160
|
* @param args.pepper - An optional pepper value.
|
|
161
161
|
* @param args.proofFetchCallback - An optional callback function for fetching the proof in the background, allowing for a more
|
|
@@ -201,7 +201,7 @@ export class Keyless {
|
|
|
201
201
|
/**
|
|
202
202
|
* This installs a set of FederatedJWKs at an address for a given iss.
|
|
203
203
|
*
|
|
204
|
-
* It will fetch the JWK set from the well-known endpoint and update the FederatedJWKs at the sender's address
|
|
204
|
+
* It will fetch the JSON Web Keyset (JWK) set from the well-known endpoint and update the FederatedJWKs at the sender's address
|
|
205
205
|
* to reflect it.
|
|
206
206
|
*
|
|
207
207
|
* @param args.sender The account that will install the JWKs
|
package/src/bcs/deserializer.ts
CHANGED
|
@@ -82,6 +82,7 @@ export class Deserializer {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
+
* @deprecated use `deserializeOption` instead.
|
|
85
86
|
* Deserializes a UTF-8 encoded string from a byte array. It first reads the length of the string in bytes,
|
|
86
87
|
* followed by the actual byte content, and decodes it into a string.
|
|
87
88
|
*
|
|
@@ -101,44 +102,66 @@ export class Deserializer {
|
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
/**
|
|
104
|
-
* Deserializes an optional
|
|
105
|
+
* Deserializes an optional value from the buffer.
|
|
105
106
|
*
|
|
106
|
-
* The BCS layout for Optional<
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* assert(deserializer.deserializeOptionStr() === "1234abcd");
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
deserializeOptionStr(): string | undefined {
|
|
117
|
-
const exists = this.deserializeBool();
|
|
118
|
-
return exists ? this.deserializeStr() : undefined;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Deserializes an optional deserializable class.
|
|
107
|
+
* The BCS layout for Optional<T> starts with a boolean byte (0 if none, 1 if some),
|
|
108
|
+
* followed by the value if present.
|
|
109
|
+
*
|
|
110
|
+
* @template T - The type of the value to deserialize
|
|
111
|
+
* @param type - Either a Deserializable class or one of the string literals: "string", "bytes", or "fixedBytes"
|
|
112
|
+
* @param len - Required length when type is "fixedBytes", ignored otherwise
|
|
113
|
+
* @returns The deserialized value if present, undefined otherwise
|
|
123
114
|
*
|
|
124
|
-
*
|
|
115
|
+
* @throws {Error} When "fixedBytes" is specified without a length
|
|
125
116
|
*
|
|
126
117
|
* @example
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Deserialize an optional string
|
|
120
|
+
* const deserializer = new Deserializer(new Uint8Array([1, 3, 97, 98, 99]));
|
|
121
|
+
* const optStr = deserializer.deserializeOption("string");
|
|
122
|
+
* // optStr === "abc"
|
|
130
123
|
*
|
|
124
|
+
* // Deserialize an optional custom type
|
|
131
125
|
* const deserializer = new Deserializer(new Uint8Array([0]));
|
|
132
|
-
* const
|
|
133
|
-
* //
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
126
|
+
* const optValue = deserializer.deserializeOption(MyClass);
|
|
127
|
+
* // optValue === undefined
|
|
128
|
+
*
|
|
129
|
+
* // Deserialize optional bytes
|
|
130
|
+
* const deserializer = new Deserializer(new Uint8Array([1, 3, 1, 2, 3]));
|
|
131
|
+
* const optBytes = deserializer.deserializeOption("bytes");
|
|
132
|
+
* // optBytes === Uint8Array[1, 2, 3]
|
|
133
|
+
*
|
|
134
|
+
* // Deserialize optional fixed bytes
|
|
135
|
+
* const deserializer = new Deserializer(new Uint8Array([1, 1, 2, 3, 4]));
|
|
136
|
+
* const optBytes = deserializer.deserializeOption("fixedBytes", 4);
|
|
137
|
+
* // optBytes === Uint8Array[1, 2, 3, 4]
|
|
138
|
+
* ```
|
|
138
139
|
*/
|
|
139
|
-
deserializeOption
|
|
140
|
+
deserializeOption(type: "string"): string | undefined;
|
|
141
|
+
deserializeOption(type: "bytes"): Uint8Array | undefined;
|
|
142
|
+
deserializeOption(type: "fixedBytes", len: number): Uint8Array | undefined;
|
|
143
|
+
deserializeOption<T>(type: Deserializable<T>): T | undefined;
|
|
144
|
+
deserializeOption<T>(
|
|
145
|
+
type: Deserializable<T> | "string" | "bytes" | "fixedBytes",
|
|
146
|
+
len?: number,
|
|
147
|
+
): T | string | Uint8Array | undefined {
|
|
140
148
|
const exists = this.deserializeBool();
|
|
141
|
-
|
|
149
|
+
if (!exists) return undefined;
|
|
150
|
+
|
|
151
|
+
if (type === "string") {
|
|
152
|
+
return this.deserializeStr();
|
|
153
|
+
}
|
|
154
|
+
if (type === "bytes") {
|
|
155
|
+
return this.deserializeBytes();
|
|
156
|
+
}
|
|
157
|
+
if (type === "fixedBytes") {
|
|
158
|
+
if (len === undefined) {
|
|
159
|
+
throw new Error("Fixed bytes length not provided");
|
|
160
|
+
}
|
|
161
|
+
return this.deserializeFixedBytes(len);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return this.deserialize(type);
|
|
142
165
|
}
|
|
143
166
|
|
|
144
167
|
/**
|
|
@@ -42,8 +42,7 @@ import { EntryFunctionArgument, TransactionArgument } from "../../transactions/i
|
|
|
42
42
|
* const vecOfStrings = new MoveVector([new MoveString("hello"), new MoveString("world")]);
|
|
43
43
|
* const vecOfStrings2 = MoveVector.MoveString(["hello", "world"]);
|
|
44
44
|
*
|
|
45
|
-
* @
|
|
46
|
-
* values: an Array<T> of values where T is a class that implements Serializable
|
|
45
|
+
* @param values an Array<T> of values where T is a class that implements Serializable
|
|
47
46
|
* @returns a `MoveVector<T>` with the values `values`
|
|
48
47
|
*/
|
|
49
48
|
export class MoveVector<T extends Serializable & EntryFunctionArgument>
|
|
@@ -132,9 +131,9 @@ export class MoveVector<T extends Serializable & EntryFunctionArgument>
|
|
|
132
131
|
|
|
133
132
|
/**
|
|
134
133
|
* Factory method to generate a MoveOption<U16> from a `number` or `null`.
|
|
135
|
-
*
|
|
136
|
-
* This method allows you to create a MoveVector that can either hold a U16 value or be empty.
|
|
137
|
-
*
|
|
134
|
+
*
|
|
135
|
+
* This method allows you to create a MoveVector that can either hold a U16 value or be empty.
|
|
136
|
+
*
|
|
138
137
|
* @param values - The value used to fill the MoveVector. If `value` is null or undefined, the resulting MoveVector's
|
|
139
138
|
* `.isSome()` method will return false.
|
|
140
139
|
* @returns A MoveVector<U16> with an inner value `value`.
|
|
@@ -150,13 +149,13 @@ export class MoveVector<T extends Serializable & EntryFunctionArgument>
|
|
|
150
149
|
|
|
151
150
|
/**
|
|
152
151
|
* Factory method to generate a MoveVector<U32> from a `number` or `null`.
|
|
153
|
-
*
|
|
154
|
-
* This method allows you to create a MoveVector that can either hold a U32 value or be empty.
|
|
155
|
-
*
|
|
152
|
+
*
|
|
153
|
+
* This method allows you to create a MoveVector that can either hold a U32 value or be empty.
|
|
154
|
+
*
|
|
156
155
|
* @param values - The value used to fill the MoveVector. If `value` is null or undefined,
|
|
157
156
|
* the resulting MoveVector's .isSome() method will return false.
|
|
158
157
|
* @returns A MoveVector<U32> with an inner value `value`.
|
|
159
|
-
*
|
|
158
|
+
*
|
|
160
159
|
* @example
|
|
161
160
|
* ```
|
|
162
161
|
* const v = MoveVector.U32([1, 2, 3, 4]);
|
|
@@ -442,7 +441,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
442
441
|
* MoveOption.U8(1).isSome() === true;
|
|
443
442
|
* MoveOption.U8().isSome() === false;
|
|
444
443
|
* MoveOption.U8(undefined).isSome() === false;
|
|
445
|
-
* @
|
|
444
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
446
445
|
* the resulting MoveOption's .isSome() method will return false.
|
|
447
446
|
* @returns a MoveOption<U8> with an inner value `value`
|
|
448
447
|
*/
|
|
@@ -457,7 +456,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
457
456
|
* MoveOption.U16(1).isSome() === true;
|
|
458
457
|
* MoveOption.U16().isSome() === false;
|
|
459
458
|
* MoveOption.U16(undefined).isSome() === false;
|
|
460
|
-
* @
|
|
459
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
461
460
|
* the resulting MoveOption's .isSome() method will return false.
|
|
462
461
|
* @returns a MoveOption<U16> with an inner value `value`
|
|
463
462
|
*/
|
|
@@ -472,7 +471,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
472
471
|
* MoveOption.U32(1).isSome() === true;
|
|
473
472
|
* MoveOption.U32().isSome() === false;
|
|
474
473
|
* MoveOption.U32(undefined).isSome() === false;
|
|
475
|
-
* @
|
|
474
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
476
475
|
* the resulting MoveOption's .isSome() method will return false.
|
|
477
476
|
* @returns a MoveOption<U32> with an inner value `value`
|
|
478
477
|
*/
|
|
@@ -487,7 +486,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
487
486
|
* MoveOption.U64(1).isSome() === true;
|
|
488
487
|
* MoveOption.U64().isSome() === false;
|
|
489
488
|
* MoveOption.U64(undefined).isSome() === false;
|
|
490
|
-
* @
|
|
489
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
491
490
|
* the resulting MoveOption's .isSome() method will return false.
|
|
492
491
|
* @returns a MoveOption<U64> with an inner value `value`
|
|
493
492
|
*/
|
|
@@ -502,7 +501,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
502
501
|
* MoveOption.U128(1).isSome() === true;
|
|
503
502
|
* MoveOption.U128().isSome() === false;
|
|
504
503
|
* MoveOption.U128(undefined).isSome() === false;
|
|
505
|
-
* @
|
|
504
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
506
505
|
* the resulting MoveOption's .isSome() method will return false.
|
|
507
506
|
* @returns a MoveOption<U128> with an inner value `value`
|
|
508
507
|
*/
|
|
@@ -517,7 +516,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
517
516
|
* MoveOption.U256(1).isSome() === true;
|
|
518
517
|
* MoveOption.U256().isSome() === false;
|
|
519
518
|
* MoveOption.U256(undefined).isSome() === false;
|
|
520
|
-
* @
|
|
519
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
521
520
|
* the resulting MoveOption's .isSome() method will return false.
|
|
522
521
|
* @returns a MoveOption<U256> with an inner value `value`
|
|
523
522
|
*/
|
|
@@ -532,7 +531,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
532
531
|
* MoveOption.Bool(true).isSome() === true;
|
|
533
532
|
* MoveOption.Bool().isSome() === false;
|
|
534
533
|
* MoveOption.Bool(undefined).isSome() === false;
|
|
535
|
-
* @
|
|
534
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
536
535
|
* the resulting MoveOption's .isSome() method will return false.
|
|
537
536
|
* @returns a MoveOption<Bool> with an inner value `value`
|
|
538
537
|
*/
|
|
@@ -548,7 +547,7 @@ export class MoveOption<T extends Serializable & EntryFunctionArgument>
|
|
|
548
547
|
* MoveOption.MoveString("").isSome() === true;
|
|
549
548
|
* MoveOption.MoveString().isSome() === false;
|
|
550
549
|
* MoveOption.MoveString(undefined).isSome() === false;
|
|
551
|
-
* @
|
|
550
|
+
* @param value the value used to fill the MoveOption. If `value` is undefined
|
|
552
551
|
* the resulting MoveOption's .isSome() method will return false.
|
|
553
552
|
* @returns a MoveOption<MoveString> with an inner value `value`
|
|
554
553
|
*/
|
package/src/bcs/serializer.ts
CHANGED
|
@@ -367,32 +367,42 @@ export class Serializer {
|
|
|
367
367
|
}
|
|
368
368
|
|
|
369
369
|
/**
|
|
370
|
-
* Serializes
|
|
371
|
-
*
|
|
370
|
+
* Serializes an optional value which can be a Serializable, string, or Uint8Array.
|
|
371
|
+
* For strings and Uint8Arrays, it uses the appropriate serialization method.
|
|
372
372
|
*
|
|
373
|
-
* @param value The
|
|
373
|
+
* @param value The value to serialize (Serializable, string, Uint8Array, or undefined)
|
|
374
|
+
* @param len Optional fixed length for Uint8Array serialization. If provided, uses serializeFixedBytes instead of serializeBytes
|
|
374
375
|
*
|
|
375
376
|
* @example
|
|
376
377
|
* ```typescript
|
|
377
378
|
* const serializer = new Serializer();
|
|
378
|
-
* serializer.serializeOption(
|
|
379
|
-
*
|
|
380
|
-
*
|
|
381
|
-
*
|
|
382
|
-
*
|
|
383
|
-
* serializer.serializeOption(undefined);
|
|
384
|
-
* assert(serializer.toUint8Array() === new Uint8Array([0x00]));
|
|
379
|
+
* serializer.serializeOption("hello"); // Serializes optional string
|
|
380
|
+
* serializer.serializeOption(new Uint8Array([1, 2, 3])); // Serializes optional bytes
|
|
381
|
+
* serializer.serializeOption(new Uint8Array([1, 2, 3]), 3); // Serializes optional fixed-length bytes
|
|
382
|
+
* serializer.serializeOption(new AccountAddress(...)); // Serializes optional Serializable
|
|
383
|
+
* serializer.serializeOption(undefined); // Serializes none case
|
|
385
384
|
* ```
|
|
386
385
|
*/
|
|
387
|
-
serializeOption<T extends Serializable>(value?: T): void {
|
|
386
|
+
serializeOption<T extends Serializable | string | Uint8Array>(value?: T, len?: number): void {
|
|
388
387
|
const hasValue = value !== undefined;
|
|
389
388
|
this.serializeBool(hasValue);
|
|
390
389
|
if (hasValue) {
|
|
391
|
-
value
|
|
390
|
+
if (typeof value === "string") {
|
|
391
|
+
this.serializeStr(value);
|
|
392
|
+
} else if (value instanceof Uint8Array) {
|
|
393
|
+
if (len !== undefined) {
|
|
394
|
+
this.serializeFixedBytes(value);
|
|
395
|
+
} else {
|
|
396
|
+
this.serializeBytes(value);
|
|
397
|
+
}
|
|
398
|
+
} else {
|
|
399
|
+
value.serialize(this);
|
|
400
|
+
}
|
|
392
401
|
}
|
|
393
402
|
}
|
|
394
403
|
|
|
395
404
|
/**
|
|
405
|
+
* @deprecated use `serializeOption` instead.
|
|
396
406
|
* Serializes an optional string, supporting UTF8 encoding.
|
|
397
407
|
* The function encodes the existence of the string first, followed by the length and content if it exists.
|
|
398
408
|
*
|
package/src/client/core.ts
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { AptosConfig } from "../api/aptosConfig";
|
|
5
|
-
import { AptosApiError, AptosResponse } from "./types";
|
|
6
5
|
import { VERSION } from "../version";
|
|
7
|
-
import { AnyNumber, AptosRequest, Client, ClientRequest, ClientResponse, MimeType } from "../types";
|
|
6
|
+
import { AnyNumber, AptosRequest, AptosResponse, Client, ClientRequest, ClientResponse, MimeType } from "../types";
|
|
8
7
|
import { AptosApiType } from "../utils";
|
|
8
|
+
import { AptosApiError } from "../errors";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Sends a request using the specified options and returns the response.
|
package/src/client/get.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { AptosConfig } from "../api/aptosConfig";
|
|
2
2
|
import { aptosRequest } from "./core";
|
|
3
|
-
import { AptosResponse } from "
|
|
4
|
-
import { AnyNumber, ClientConfig, MimeType } from "../types";
|
|
3
|
+
import { AptosResponse, AnyNumber, ClientConfig, MimeType } from "../types";
|
|
5
4
|
import { AptosApiType } from "../utils/const";
|
|
6
5
|
|
|
7
6
|
/**
|
package/src/client/index.ts
CHANGED
package/src/client/post.ts
CHANGED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { AptosConfig } from "../api/aptosConfig";
|
|
5
5
|
import { aptosRequest } from "./core";
|
|
6
|
-
import { AptosResponse } from "
|
|
7
|
-
import { AnyNumber, ClientConfig, MimeType } from "../types";
|
|
6
|
+
import { AptosResponse, AnyNumber, ClientConfig, MimeType } from "../types";
|
|
8
7
|
import { AptosApiType } from "../utils/const";
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -19,6 +19,7 @@ export enum AddressInvalidReason {
|
|
|
19
19
|
LEADING_ZERO_X_REQUIRED = "leading_zero_x_required",
|
|
20
20
|
LONG_FORM_REQUIRED_UNLESS_SPECIAL = "long_form_required_unless_special",
|
|
21
21
|
INVALID_PADDING_ZEROES = "INVALID_PADDING_ZEROES",
|
|
22
|
+
INVALID_PADDING_STRICTNESS = "INVALID_PADDING_STRICTNESS",
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
/**
|
|
@@ -249,7 +250,9 @@ export class AccountAddress extends Serializable implements TransactionArgument
|
|
|
249
250
|
*
|
|
250
251
|
* @throws {ParsingError} If the hex string does not start with 0x or is not in a valid format.
|
|
251
252
|
*
|
|
252
|
-
* @
|
|
253
|
+
* @remarks
|
|
254
|
+
*
|
|
255
|
+
* This function has strict parsing behavior. For relaxed behavior, please use the `fromString` function.
|
|
253
256
|
*
|
|
254
257
|
* @see AIP-40 documentation for more details on address formats:
|
|
255
258
|
* https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.
|
|
@@ -288,7 +291,7 @@ export class AccountAddress extends Serializable implements TransactionArgument
|
|
|
288
291
|
/**
|
|
289
292
|
* NOTE: This function has relaxed parsing behavior. For strict behavior, please use
|
|
290
293
|
* the `fromStringStrict` function. Where possible use `fromStringStrict` rather than this
|
|
291
|
-
* function, `fromString
|
|
294
|
+
* function, `fromString`.
|
|
292
295
|
*
|
|
293
296
|
* Creates an instance of AccountAddress from a hex string.
|
|
294
297
|
*
|
|
@@ -296,23 +299,24 @@ export class AccountAddress extends Serializable implements TransactionArgument
|
|
|
296
299
|
* following formats are accepted:
|
|
297
300
|
*
|
|
298
301
|
* - LONG, with or without leading 0x
|
|
299
|
-
* - SHORT
|
|
302
|
+
* - SHORT*, with or without leading 0x
|
|
300
303
|
*
|
|
301
304
|
* Where:
|
|
302
305
|
* - LONG is 64 hex characters.
|
|
303
|
-
* - SHORT is 1 to 63 hex characters inclusive.
|
|
306
|
+
* - SHORT* is 1 to 63 hex characters inclusive. The address can have missing values up to `maxMissingChars` before it is padded.
|
|
304
307
|
* - Padding zeroes are allowed, e.g. 0x0123 is valid.
|
|
305
308
|
*
|
|
306
309
|
* Learn more about the different address formats by reading AIP-40:
|
|
307
310
|
* https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-40.md.
|
|
308
311
|
*
|
|
309
|
-
* @param input
|
|
312
|
+
* @param input A hex string representing an account address.
|
|
313
|
+
* @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.
|
|
310
314
|
*
|
|
311
315
|
* @returns An instance of AccountAddress.
|
|
312
316
|
*
|
|
313
317
|
* @throws ParsingError if the hex string is too short, too long, or contains invalid characters.
|
|
314
318
|
*/
|
|
315
|
-
static fromString(input: string): AccountAddress {
|
|
319
|
+
static fromString(input: string, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {
|
|
316
320
|
let parsedInput = input;
|
|
317
321
|
// Remove leading 0x for parsing.
|
|
318
322
|
if (input.startsWith("0x")) {
|
|
@@ -335,6 +339,14 @@ export class AccountAddress extends Serializable implements TransactionArgument
|
|
|
335
339
|
);
|
|
336
340
|
}
|
|
337
341
|
|
|
342
|
+
// Ensure that the maxMissingChars is between or equal to 0 and 63.
|
|
343
|
+
if (maxMissingChars > 63 || maxMissingChars < 0) {
|
|
344
|
+
throw new ParsingError(
|
|
345
|
+
`maxMissingChars must be between or equal to 0 and 63. Received ${maxMissingChars}`,
|
|
346
|
+
AddressInvalidReason.INVALID_PADDING_STRICTNESS,
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
|
|
338
350
|
let addressBytes: Uint8Array;
|
|
339
351
|
try {
|
|
340
352
|
// Pad the address with leading zeroes, so it is 64 chars long and then convert
|
|
@@ -347,7 +359,21 @@ export class AccountAddress extends Serializable implements TransactionArgument
|
|
|
347
359
|
throw new ParsingError(`Hex characters are invalid: ${error?.message}`, AddressInvalidReason.INVALID_HEX_CHARS);
|
|
348
360
|
}
|
|
349
361
|
|
|
350
|
-
|
|
362
|
+
const address = new AccountAddress(addressBytes);
|
|
363
|
+
|
|
364
|
+
// Cannot pad the address if it has more than maxMissingChars missing.
|
|
365
|
+
if (parsedInput.length < 64 - maxMissingChars) {
|
|
366
|
+
if (!address.isSpecial()) {
|
|
367
|
+
throw new ParsingError(
|
|
368
|
+
`Hex string is too short, must be ${64 - maxMissingChars} to 64 chars long, excluding the leading 0x. You may need to fix
|
|
369
|
+
the addresss by padding it with 0s before passing it to \`fromString\` (e.g. <addressString>.padStart(64, '0')).
|
|
370
|
+
Received ${input}`,
|
|
371
|
+
AddressInvalidReason.TOO_SHORT,
|
|
372
|
+
);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
return address;
|
|
351
377
|
}
|
|
352
378
|
|
|
353
379
|
/**
|
|
@@ -357,10 +383,11 @@ export class AccountAddress extends Serializable implements TransactionArgument
|
|
|
357
383
|
*
|
|
358
384
|
* @param input - The input to convert into an AccountAddress. This can be a string representation of an address, a Uint8Array,
|
|
359
385
|
* or an existing AccountAddress.
|
|
386
|
+
* @param args.maxMissingChars The number of characters that can be missing in a padded address before it is invalid.
|
|
360
387
|
*/
|
|
361
|
-
static from(input: AccountAddressInput): AccountAddress {
|
|
388
|
+
static from(input: AccountAddressInput, { maxMissingChars = 4 }: { maxMissingChars?: number } = {}): AccountAddress {
|
|
362
389
|
if (typeof input === "string") {
|
|
363
|
-
return AccountAddress.fromString(input);
|
|
390
|
+
return AccountAddress.fromString(input, { maxMissingChars });
|
|
364
391
|
}
|
|
365
392
|
if (input instanceof Uint8Array) {
|
|
366
393
|
return new AccountAddress(input);
|