@aptos-labs/ts-sdk 1.13.3 → 1.14.0-zeta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/accountAddress-u9wEan9p.d.ts +2149 -0
- package/dist/common/chunk-QRI7EC4T.js +24 -0
- package/dist/common/chunk-QRI7EC4T.js.map +1 -0
- package/dist/common/cli/index.d.ts +94 -1
- package/dist/common/cli/index.js +245 -1
- package/dist/common/cli/index.js.map +1 -1
- package/dist/common/index.d.ts +2699 -4119
- package/dist/common/index.js +11786 -374
- package/dist/common/index.js.map +1 -1
- package/dist/esm/{Ed25519Account--qjfup2u.d.mts → Ed25519Account-9zBaZEnp.d.mts} +76 -9
- package/dist/esm/account/Account.d.mts +34 -0
- package/dist/esm/account/Account.mjs +56 -0
- package/dist/esm/account/Ed25519Account.d.mts +34 -0
- package/dist/esm/account/Ed25519Account.mjs +54 -0
- package/dist/esm/account/EphemeralKeyPair.d.mts +80 -0
- package/dist/esm/account/EphemeralKeyPair.mjs +37 -0
- package/dist/esm/account/KeylessAccount.d.mts +145 -0
- package/dist/esm/account/KeylessAccount.mjs +57 -0
- package/dist/esm/account/MultiKeyAccount.d.mts +138 -0
- package/dist/esm/account/MultiKeyAccount.mjs +56 -0
- package/dist/esm/account/SingleKeyAccount.d.mts +34 -0
- package/dist/esm/account/SingleKeyAccount.mjs +54 -0
- package/dist/esm/account/index.d.mts +41 -0
- package/dist/esm/account/index.mjs +77 -0
- package/dist/esm/api/account.d.mts +13 -1
- package/dist/esm/api/account.mjs +76 -1
- package/dist/esm/api/ans.d.mts +2 -2
- package/dist/esm/api/ans.mjs +87 -1
- package/dist/esm/api/aptos.d.mts +15 -8
- package/dist/esm/api/aptos.mjs +116 -1
- package/dist/esm/api/aptosConfig.d.mts +20 -0
- package/dist/esm/api/aptosConfig.mjs +9 -1
- package/dist/esm/api/coin.d.mts +7 -7
- package/dist/esm/api/coin.mjs +86 -1
- package/dist/esm/api/digitalAsset.d.mts +1 -1
- package/dist/esm/api/digitalAsset.mjs +87 -1
- package/dist/esm/api/event.mjs +54 -1
- package/dist/esm/api/faucet.mjs +53 -1
- package/dist/esm/api/fungibleAsset.d.mts +5 -5
- package/dist/esm/api/fungibleAsset.mjs +87 -1
- package/dist/esm/api/general.d.mts +7 -7
- package/dist/esm/api/general.mjs +84 -1
- package/dist/esm/api/index.d.mts +14 -8
- package/dist/esm/api/index.mjs +120 -1
- package/dist/esm/api/keyless.d.mts +81 -0
- package/dist/esm/api/keyless.mjs +71 -0
- package/dist/esm/api/staking.mjs +54 -1
- package/dist/esm/api/transaction.d.mts +1 -1
- package/dist/esm/api/transaction.mjs +94 -1
- package/dist/esm/api/transactionSubmission/build.d.mts +2 -2
- package/dist/esm/api/transactionSubmission/build.mjs +85 -1
- package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
- package/dist/esm/api/transactionSubmission/management.d.mts +8 -8
- package/dist/esm/api/transactionSubmission/management.mjs +89 -1
- package/dist/esm/api/transactionSubmission/sign.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/sign.mjs +109 -1
- package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/simulate.d.mts +6 -6
- package/dist/esm/api/transactionSubmission/simulate.mjs +86 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +86 -1
- package/dist/esm/api/utils.mjs +34 -1
- package/dist/esm/bcs/consts.mjs +17 -1
- package/dist/esm/bcs/deserializer.d.mts +26 -0
- package/dist/esm/bcs/deserializer.mjs +8 -1
- package/dist/esm/bcs/index.mjs +57 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +25 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +18 -1
- package/dist/esm/bcs/serializer.d.mts +2 -0
- package/dist/esm/bcs/serializer.mjs +18 -1
- package/dist/esm/chunk-2JOCR2VL.mjs +32 -0
- package/dist/esm/chunk-2JOCR2VL.mjs.map +1 -0
- package/dist/esm/chunk-2OQW7BMN.mjs +129 -0
- package/dist/esm/{chunk-PZGLV5UQ.mjs.map → chunk-2OQW7BMN.mjs.map} +1 -1
- package/dist/esm/chunk-2TJJWII2.mjs +23 -0
- package/dist/esm/{chunk-DSTKXJMA.mjs.map → chunk-2TJJWII2.mjs.map} +1 -1
- package/dist/esm/chunk-2ZEGJU43.mjs +252 -0
- package/dist/esm/chunk-2ZEGJU43.mjs.map +1 -0
- package/dist/esm/chunk-4OYYOYSO.mjs +336 -0
- package/dist/esm/chunk-4OYYOYSO.mjs.map +1 -0
- package/dist/esm/{chunk-S4SEFF4K.mjs → chunk-4PJ5FYGQ.mjs} +302 -27
- package/dist/esm/{chunk-S4SEFF4K.mjs.map → chunk-4PJ5FYGQ.mjs.map} +1 -1
- package/dist/esm/chunk-55NODGHC.mjs +135 -0
- package/dist/esm/chunk-55NODGHC.mjs.map +1 -0
- package/dist/esm/chunk-6LRQSBRH.mjs +130 -0
- package/dist/esm/chunk-6LRQSBRH.mjs.map +1 -0
- package/dist/esm/chunk-6MSZMIFW.mjs +23 -0
- package/dist/esm/{chunk-BWFJHFBQ.mjs.map → chunk-6MSZMIFW.mjs.map} +1 -1
- package/dist/esm/chunk-76TSTAU4.mjs +120 -0
- package/dist/esm/chunk-76TSTAU4.mjs.map +1 -0
- package/dist/esm/chunk-7FO3S6IZ.mjs +324 -0
- package/dist/esm/{chunk-DMKUAQB7.mjs.map → chunk-7FO3S6IZ.mjs.map} +1 -1
- package/dist/esm/chunk-7FUHWL6A.mjs +42 -0
- package/dist/esm/{chunk-V3Q2KXJU.mjs.map → chunk-7FUHWL6A.mjs.map} +1 -1
- package/dist/esm/chunk-7IDBB4J4.mjs +33 -0
- package/dist/esm/{chunk-ZZZZVONX.mjs.map → chunk-7IDBB4J4.mjs.map} +1 -1
- package/dist/esm/chunk-7JRMOHBP.mjs +247 -0
- package/dist/esm/chunk-7JRMOHBP.mjs.map +1 -0
- package/dist/esm/chunk-7REUIYF4.mjs +63 -0
- package/dist/esm/chunk-7REUIYF4.mjs.map +1 -0
- package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
- package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
- package/dist/esm/chunk-AC3OGAL6.mjs +87 -0
- package/dist/esm/{chunk-U6Z4FNB7.mjs.map → chunk-AC3OGAL6.mjs.map} +1 -1
- package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
- package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
- package/dist/esm/chunk-AR7X6GWQ.mjs +356 -0
- package/dist/esm/{chunk-FS3NSGBF.mjs.map → chunk-AR7X6GWQ.mjs.map} +1 -1
- package/dist/esm/chunk-ASF2VWOX.mjs +142 -0
- package/dist/esm/{chunk-G2O323HP.mjs.map → chunk-ASF2VWOX.mjs.map} +1 -1
- package/dist/esm/chunk-ATVFVXR6.mjs +43 -0
- package/dist/esm/{chunk-VVIG4E7Q.mjs.map → chunk-ATVFVXR6.mjs.map} +1 -1
- package/dist/esm/chunk-B5S6DDUD.mjs +120 -0
- package/dist/esm/chunk-B5S6DDUD.mjs.map +1 -0
- package/dist/esm/chunk-BXMHDQHW.mjs +512 -0
- package/dist/esm/chunk-BXMHDQHW.mjs.map +1 -0
- package/dist/esm/chunk-CC4DQ6NH.mjs +19 -0
- package/dist/esm/{chunk-MACC2BLE.mjs.map → chunk-CC4DQ6NH.mjs.map} +1 -1
- package/dist/esm/chunk-CMNJG4NN.mjs +345 -0
- package/dist/esm/{chunk-IOSQVDZI.mjs.map → chunk-CMNJG4NN.mjs.map} +1 -1
- package/dist/esm/chunk-CTJSZT5V.mjs +87 -0
- package/dist/esm/{chunk-UFT7US42.mjs.map → chunk-CTJSZT5V.mjs.map} +1 -1
- package/dist/esm/chunk-CX3NAVRD.mjs +205 -0
- package/dist/esm/chunk-CX3NAVRD.mjs.map +1 -0
- package/dist/esm/chunk-CXUGZXED.mjs +307 -0
- package/dist/esm/{chunk-YU3KB3UV.mjs.map → chunk-CXUGZXED.mjs.map} +1 -1
- package/dist/esm/chunk-D2BVBXWO.mjs +7 -0
- package/dist/esm/{chunk-B7TQGVGL.mjs.map → chunk-D2BVBXWO.mjs.map} +1 -1
- package/dist/esm/chunk-DGV7DYU4.mjs +413 -0
- package/dist/esm/chunk-DGV7DYU4.mjs.map +1 -0
- package/dist/esm/chunk-DIYZRGR6.mjs +242 -0
- package/dist/esm/{chunk-O4JRPZZM.mjs.map → chunk-DIYZRGR6.mjs.map} +1 -1
- package/dist/esm/chunk-DNPMS2OF.mjs +236 -0
- package/dist/esm/{chunk-U43IJHQN.mjs.map → chunk-DNPMS2OF.mjs.map} +1 -1
- package/dist/esm/chunk-DVPQGCFT.mjs +74 -0
- package/dist/esm/{chunk-O2F53NKI.mjs.map → chunk-DVPQGCFT.mjs.map} +1 -1
- package/dist/esm/chunk-EYHRMZPO.mjs +34 -0
- package/dist/esm/{chunk-AH44UPM4.mjs.map → chunk-EYHRMZPO.mjs.map} +1 -1
- package/dist/esm/chunk-F2ZWA7B7.mjs +412 -0
- package/dist/esm/chunk-F2ZWA7B7.mjs.map +1 -0
- package/dist/esm/chunk-FDWJNY4U.mjs +22 -0
- package/dist/esm/{chunk-R5QUBEH6.mjs.map → chunk-FDWJNY4U.mjs.map} +1 -1
- package/dist/esm/chunk-FF4JPDKD.mjs +315 -0
- package/dist/esm/chunk-FF4JPDKD.mjs.map +1 -0
- package/dist/esm/chunk-FQQW55X7.mjs +288 -0
- package/dist/esm/{chunk-52C73T26.mjs.map → chunk-FQQW55X7.mjs.map} +1 -1
- package/dist/esm/chunk-FXKSE3ZP.mjs +25 -0
- package/dist/esm/{chunk-WFZDFFBM.mjs.map → chunk-FXKSE3ZP.mjs.map} +1 -1
- package/dist/esm/chunk-GBEVD2VM.mjs +99 -0
- package/dist/esm/chunk-GBEVD2VM.mjs.map +1 -0
- package/dist/esm/chunk-GGMTQAQP.mjs +11 -0
- package/dist/esm/{chunk-3JPVQHOR.mjs.map → chunk-GGMTQAQP.mjs.map} +1 -1
- package/dist/esm/chunk-GSVQ6EUD.mjs +649 -0
- package/dist/esm/chunk-GSVQ6EUD.mjs.map +1 -0
- package/dist/esm/chunk-HBNSRCZN.mjs +100 -0
- package/dist/esm/{chunk-SG4MAOCF.mjs.map → chunk-HBNSRCZN.mjs.map} +1 -1
- package/dist/esm/chunk-IC56GQFJ.mjs +127 -0
- package/dist/esm/chunk-IC56GQFJ.mjs.map +1 -0
- package/dist/esm/chunk-IHNPN5CQ.mjs +256 -0
- package/dist/esm/chunk-IHNPN5CQ.mjs.map +1 -0
- package/dist/esm/chunk-JHDHNGJ3.mjs +126 -0
- package/dist/esm/chunk-JHDHNGJ3.mjs.map +1 -0
- package/dist/esm/chunk-JL2JHVS4.mjs +49 -0
- package/dist/esm/{chunk-RHBCVCOS.mjs.map → chunk-JL2JHVS4.mjs.map} +1 -1
- package/dist/esm/chunk-JV3GSIJW.mjs +268 -0
- package/dist/esm/chunk-JV3GSIJW.mjs.map +1 -0
- package/dist/esm/chunk-JXCZTOYC.mjs +1 -0
- package/dist/esm/chunk-JXCZTOYC.mjs.map +1 -0
- package/dist/esm/chunk-KK2BSALW.mjs +32 -0
- package/dist/esm/{chunk-TBMAJ6AW.mjs.map → chunk-KK2BSALW.mjs.map} +1 -1
- package/dist/esm/chunk-KMXSRHJ6.mjs +93 -0
- package/dist/esm/chunk-KMXSRHJ6.mjs.map +1 -0
- package/dist/esm/chunk-KVSQ57HU.mjs +45 -0
- package/dist/esm/{chunk-NNQJBFRB.mjs.map → chunk-KVSQ57HU.mjs.map} +1 -1
- package/dist/esm/chunk-LI2QV6RU.mjs +129 -0
- package/dist/esm/chunk-LI2QV6RU.mjs.map +1 -0
- package/dist/esm/chunk-LLLQJWRZ.mjs +35 -0
- package/dist/esm/{chunk-DPV25ZKR.mjs.map → chunk-LLLQJWRZ.mjs.map} +1 -1
- package/dist/esm/chunk-LYK4TQZO.mjs +70 -0
- package/dist/esm/chunk-LYK4TQZO.mjs.map +1 -0
- package/dist/esm/chunk-LYMY63SO.mjs +124 -0
- package/dist/esm/{chunk-W4ZW7QHA.mjs.map → chunk-LYMY63SO.mjs.map} +1 -1
- package/dist/esm/chunk-MZZLEY6O.mjs +92 -0
- package/dist/esm/chunk-MZZLEY6O.mjs.map +1 -0
- package/dist/esm/chunk-N4WKFNQ6.mjs +156 -0
- package/dist/esm/chunk-N4WKFNQ6.mjs.map +1 -0
- package/dist/esm/chunk-NFJCQRVK.mjs +37 -0
- package/dist/esm/chunk-NFJCQRVK.mjs.map +1 -0
- package/dist/esm/chunk-NMKCJNQM.mjs +20 -0
- package/dist/esm/{chunk-TJDC5PWD.mjs.map → chunk-NMKCJNQM.mjs.map} +1 -1
- package/dist/esm/chunk-NW45SCPY.mjs +36 -0
- package/dist/esm/{chunk-GSD4OOM3.mjs.map → chunk-NW45SCPY.mjs.map} +1 -1
- package/dist/esm/chunk-NXFO2W4G.mjs +84 -0
- package/dist/esm/{chunk-QMURTXFM.mjs.map → chunk-NXFO2W4G.mjs.map} +1 -1
- package/dist/esm/chunk-NYL77J4X.mjs +97 -0
- package/dist/esm/chunk-NYL77J4X.mjs.map +1 -0
- package/dist/esm/chunk-O6PSHSN3.mjs +53 -0
- package/dist/esm/{chunk-MFKMAAWA.mjs.map → chunk-O6PSHSN3.mjs.map} +1 -1
- package/dist/esm/chunk-OR7TEZ25.mjs +16 -0
- package/dist/esm/chunk-OR7TEZ25.mjs.map +1 -0
- package/dist/esm/chunk-PCLNX6FS.mjs +17 -0
- package/dist/esm/{chunk-6FBKUTGF.mjs.map → chunk-PCLNX6FS.mjs.map} +1 -1
- package/dist/esm/chunk-PIMQHG2J.mjs +49 -0
- package/dist/esm/{chunk-ZYYK3UXP.mjs.map → chunk-PIMQHG2J.mjs.map} +1 -1
- package/dist/esm/chunk-PU5AFUX3.mjs +52 -0
- package/dist/esm/{chunk-LR65XHSF.mjs.map → chunk-PU5AFUX3.mjs.map} +1 -1
- package/dist/esm/chunk-PYLOAMR2.mjs +29 -0
- package/dist/esm/{chunk-UML2VQZT.mjs.map → chunk-PYLOAMR2.mjs.map} +1 -1
- package/dist/esm/chunk-QBBTUC66.mjs +15 -0
- package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-QBBTUC66.mjs.map} +1 -1
- package/dist/esm/chunk-QFOG4LIN.mjs +319 -0
- package/dist/esm/{chunk-DM44OGQH.mjs.map → chunk-QFOG4LIN.mjs.map} +1 -1
- package/dist/esm/chunk-QMM2KL6C.mjs +12 -0
- package/dist/esm/{chunk-FBPNHF54.mjs.map → chunk-QMM2KL6C.mjs.map} +1 -1
- package/dist/esm/chunk-RCQMWXEW.mjs +35 -0
- package/dist/esm/{chunk-3WUGR46O.mjs.map → chunk-RCQMWXEW.mjs.map} +1 -1
- package/dist/esm/chunk-RFSO3JRG.mjs +1 -0
- package/dist/esm/chunk-RFSO3JRG.mjs.map +1 -0
- package/dist/esm/chunk-RX4VG2AT.mjs +314 -0
- package/dist/esm/{chunk-CNMQNPNV.mjs.map → chunk-RX4VG2AT.mjs.map} +1 -1
- package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
- package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
- package/dist/esm/chunk-SIJELMDP.mjs +29 -0
- package/dist/esm/{chunk-6EMN3BOV.mjs.map → chunk-SIJELMDP.mjs.map} +1 -1
- package/dist/esm/chunk-SS3NUM5L.mjs +94 -0
- package/dist/esm/{chunk-L54P6EGN.mjs.map → chunk-SS3NUM5L.mjs.map} +1 -1
- package/dist/esm/chunk-ST4QXIMI.mjs +37 -0
- package/dist/esm/{chunk-5P2S2SZZ.mjs.map → chunk-ST4QXIMI.mjs.map} +1 -1
- package/dist/esm/chunk-TBHU6ZW6.mjs +215 -0
- package/dist/esm/{chunk-7QJ6YJXP.mjs.map → chunk-TBHU6ZW6.mjs.map} +1 -1
- package/dist/esm/chunk-TLNHRJB2.mjs +155 -0
- package/dist/esm/chunk-TLNHRJB2.mjs.map +1 -0
- package/dist/esm/chunk-U3IUCR2G.mjs +54 -0
- package/dist/esm/{chunk-CU67XZNB.mjs.map → chunk-U3IUCR2G.mjs.map} +1 -1
- package/dist/esm/chunk-U7QBZ6PP.mjs +400 -0
- package/dist/esm/chunk-U7QBZ6PP.mjs.map +1 -0
- package/dist/esm/chunk-UEBBLQJ5.mjs +94 -0
- package/dist/esm/{chunk-NPFNYP75.mjs.map → chunk-UEBBLQJ5.mjs.map} +1 -1
- package/dist/esm/chunk-UKU6A2W2.mjs +232 -0
- package/dist/esm/{chunk-XO3HHRJV.mjs.map → chunk-UKU6A2W2.mjs.map} +1 -1
- package/dist/esm/chunk-UX5NSZEN.mjs +134 -0
- package/dist/esm/chunk-UX5NSZEN.mjs.map +1 -0
- package/dist/esm/chunk-VDJBDX3A.mjs +79 -0
- package/dist/esm/chunk-VDJBDX3A.mjs.map +1 -0
- package/dist/esm/chunk-VJP2VWMF.mjs +58 -0
- package/dist/esm/chunk-VJP2VWMF.mjs.map +1 -0
- package/dist/esm/chunk-VKJQORON.mjs +93 -0
- package/dist/esm/{chunk-734YX27W.mjs.map → chunk-VKJQORON.mjs.map} +1 -1
- package/dist/esm/chunk-VPWUODU4.mjs +51 -0
- package/dist/esm/{chunk-AU6W5OIH.mjs.map → chunk-VPWUODU4.mjs.map} +1 -1
- package/dist/esm/chunk-VZQXLVEP.mjs +197 -0
- package/dist/esm/{chunk-V6OS74OS.mjs.map → chunk-VZQXLVEP.mjs.map} +1 -1
- package/dist/esm/chunk-W76MGKZB.mjs +33 -0
- package/dist/esm/{chunk-CTIN3GTP.mjs.map → chunk-W76MGKZB.mjs.map} +1 -1
- package/dist/esm/chunk-WDRH2URB.mjs +91 -0
- package/dist/esm/chunk-WDRH2URB.mjs.map +1 -0
- package/dist/esm/chunk-WHBWEN6N.mjs +206 -0
- package/dist/esm/chunk-WHBWEN6N.mjs.map +1 -0
- package/dist/esm/chunk-WK5ZSNE2.mjs +173 -0
- package/dist/esm/{chunk-QIAHBEEW.mjs.map → chunk-WK5ZSNE2.mjs.map} +1 -1
- package/dist/esm/chunk-WLTBF4DF.mjs +22 -0
- package/dist/esm/chunk-WLTBF4DF.mjs.map +1 -0
- package/dist/esm/chunk-WVGO4D7K.mjs +254 -0
- package/dist/esm/chunk-WVGO4D7K.mjs.map +1 -0
- package/dist/esm/chunk-XANFAUBD.mjs +44 -0
- package/dist/esm/{chunk-QTRYMRYK.mjs.map → chunk-XANFAUBD.mjs.map} +1 -1
- package/dist/esm/chunk-Y2LV3S5W.mjs +410 -0
- package/dist/esm/chunk-Y2LV3S5W.mjs.map +1 -0
- package/dist/esm/chunk-YV7M4CFP.mjs +137 -0
- package/dist/esm/{chunk-AOCNYMMX.mjs.map → chunk-YV7M4CFP.mjs.map} +1 -1
- package/dist/esm/chunk-YYOPNUX5.mjs +41 -0
- package/dist/esm/chunk-YYOPNUX5.mjs.map +1 -0
- package/dist/esm/chunk-ZAHJ7KXB.mjs +81 -0
- package/dist/esm/chunk-ZAHJ7KXB.mjs.map +1 -0
- package/dist/esm/chunk-ZMFKQUHL.mjs +117 -0
- package/dist/esm/{chunk-RIUZPGI5.mjs.map → chunk-ZMFKQUHL.mjs.map} +1 -1
- package/dist/esm/cli/index.d.mts +12 -0
- package/dist/esm/cli/index.mjs +12 -1
- package/dist/esm/cli/localNode.mjs +8 -1
- package/dist/esm/cli/move.d.mts +105 -0
- package/dist/esm/cli/move.mjs +8 -0
- package/dist/esm/cli/move.mjs.map +1 -0
- package/dist/esm/client/core.mjs +27 -1
- package/dist/esm/client/get.d.mts +2 -1
- package/dist/esm/client/get.mjs +32 -1
- package/dist/esm/client/index.d.mts +2 -2
- package/dist/esm/client/index.mjs +55 -1
- package/dist/esm/client/post.d.mts +3 -1
- package/dist/esm/client/post.mjs +36 -1
- package/dist/esm/client/types.d.mts +5 -1
- package/dist/esm/client/types.mjs +7 -1
- package/dist/esm/core/account/index.d.mts +5 -14
- package/dist/esm/core/account/index.mjs +19 -1
- package/dist/esm/core/account/utils/address.mjs +18 -1
- package/dist/esm/core/account/utils/index.mjs +19 -1
- package/dist/esm/core/accountAddress.mjs +15 -1
- package/dist/esm/core/authenticationKey.mjs +14 -1
- package/dist/esm/core/common.mjs +7 -1
- package/dist/esm/core/crypto/ed25519.mjs +29 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +73 -0
- package/dist/esm/core/crypto/ephemeral.mjs +29 -0
- package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
- package/dist/esm/core/crypto/hdKey.mjs +25 -1
- package/dist/esm/core/crypto/index.d.mts +6 -3
- package/dist/esm/core/crypto/index.mjs +124 -1
- package/dist/esm/core/crypto/keyless.d.mts +232 -0
- package/dist/esm/core/crypto/keyless.mjs +56 -0
- package/dist/esm/core/crypto/keyless.mjs.map +1 -0
- package/dist/esm/core/crypto/multiEd25519.mjs +28 -1
- package/dist/esm/core/crypto/multiKey.d.mts +7 -0
- package/dist/esm/core/crypto/multiKey.mjs +34 -1
- package/dist/esm/core/crypto/poseidon.d.mts +7 -0
- package/dist/esm/core/crypto/poseidon.mjs +16 -0
- package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/proof.d.mts +21 -0
- package/dist/esm/core/crypto/proof.mjs +20 -0
- package/dist/esm/core/crypto/proof.mjs.map +1 -0
- package/dist/esm/core/crypto/publicKey.mjs +21 -1
- package/dist/esm/core/crypto/secp256k1.mjs +27 -1
- package/dist/esm/core/crypto/signature.mjs +19 -1
- package/dist/esm/core/crypto/singleKey.mjs +33 -1
- package/dist/esm/core/crypto/utils.mjs +9 -1
- package/dist/esm/core/hex.mjs +10 -1
- package/dist/esm/core/index.d.mts +5 -5
- package/dist/esm/core/index.mjs +141 -1
- package/dist/esm/index.d.mts +15 -8
- package/dist/esm/index.mjs +635 -1
- package/dist/esm/internal/account.d.mts +13 -1
- package/dist/esm/internal/account.mjs +106 -1
- package/dist/esm/internal/ans.d.mts +1 -1
- package/dist/esm/internal/ans.mjs +120 -1
- package/dist/esm/internal/coin.d.mts +7 -7
- package/dist/esm/internal/coin.mjs +85 -1
- package/dist/esm/internal/digitalAsset.d.mts +2 -2
- package/dist/esm/internal/digitalAsset.mjs +127 -1
- package/dist/esm/internal/event.d.mts +1 -1
- package/dist/esm/internal/event.mjs +55 -1
- package/dist/esm/internal/faucet.d.mts +1 -1
- package/dist/esm/internal/faucet.mjs +52 -1
- package/dist/esm/internal/fungibleAsset.d.mts +5 -5
- package/dist/esm/internal/fungibleAsset.mjs +91 -1
- package/dist/esm/internal/general.mjs +46 -1
- package/dist/esm/internal/keyless.d.mts +68 -0
- package/dist/esm/internal/keyless.mjs +74 -0
- package/dist/esm/internal/keyless.mjs.map +1 -0
- package/dist/esm/internal/staking.d.mts +1 -1
- package/dist/esm/internal/staking.mjs +53 -1
- package/dist/esm/internal/transaction.mjs +51 -1
- package/dist/esm/internal/transactionSubmission.d.mts +1 -1
- package/dist/esm/internal/transactionSubmission.mjs +102 -1
- package/dist/esm/internal/view.d.mts +7 -7
- package/dist/esm/internal/view.mjs +83 -1
- package/dist/esm/transactions/authenticator/account.d.mts +3 -4
- package/dist/esm/transactions/authenticator/account.mjs +44 -1
- package/dist/esm/transactions/authenticator/index.mjs +60 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +48 -1
- package/dist/esm/transactions/index.d.mts +2 -2
- package/dist/esm/transactions/index.mjs +284 -1
- package/dist/esm/transactions/instances/chainId.mjs +11 -1
- package/dist/esm/transactions/instances/identifier.mjs +11 -1
- package/dist/esm/transactions/instances/index.mjs +96 -1
- package/dist/esm/transactions/instances/moduleId.d.mts +1 -1
- package/dist/esm/transactions/instances/moduleId.mjs +38 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +43 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +48 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +20 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +45 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +43 -1
- package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +56 -1
- package/dist/esm/transactions/management/accountSequenceNumber.d.mts +13 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +74 -1
- package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
- package/dist/esm/transactions/management/index.d.mts +2 -2
- package/dist/esm/transactions/management/index.mjs +95 -1
- package/dist/esm/transactions/management/transactionWorker.d.mts +1 -1
- package/dist/esm/transactions/management/transactionWorker.mjs +91 -1
- package/dist/esm/transactions/transactionBuilder/helpers.d.mts +9 -9
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +75 -1
- package/dist/esm/transactions/transactionBuilder/index.d.mts +9 -9
- package/dist/esm/transactions/transactionBuilder/index.mjs +162 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +6 -6
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +85 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +72 -0
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +59 -0
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs.map +1 -0
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +6 -28
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +98 -1
- package/dist/esm/transactions/typeTag/index.mjs +74 -1
- package/dist/esm/transactions/typeTag/parser.mjs +43 -1
- package/dist/esm/transactions/types.d.mts +6 -6
- package/dist/esm/transactions/types.mjs +1 -1
- package/dist/esm/types/generated/queries.mjs +57 -1
- package/dist/esm/types/generated/types.mjs +809 -1
- package/dist/esm/types/generated/types.mjs.map +1 -1
- package/dist/esm/types/index.d.mts +19 -3
- package/dist/esm/types/index.mjs +68 -1
- package/dist/esm/types/indexer.mjs +1 -1
- package/dist/esm/types/keyless.d.mts +69 -0
- package/dist/esm/types/keyless.mjs +10 -0
- package/dist/esm/types/keyless.mjs.map +1 -0
- package/dist/esm/utils/apiEndpoints.d.mts +3 -2
- package/dist/esm/utils/apiEndpoints.mjs +21 -1
- package/dist/esm/utils/const.d.mts +3 -1
- package/dist/esm/utils/const.mjs +21 -1
- package/dist/esm/utils/helpers.mjs +7 -1
- package/dist/esm/utils/index.d.mts +1 -1
- package/dist/esm/utils/index.mjs +56 -1
- package/dist/esm/utils/memoize.mjs +9 -1
- package/dist/esm/utils/normalizeBundle.mjs +19 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +7 -1
- package/package.json +11 -3
- package/src/{core/account → account}/Account.ts +25 -15
- package/src/{core/account → account}/Ed25519Account.ts +45 -9
- package/src/account/EphemeralKeyPair.ts +161 -0
- package/src/account/KeylessAccount.ts +342 -0
- package/src/account/MultiKeyAccount.ts +186 -0
- package/src/{core/account → account}/SingleKeyAccount.ts +45 -10
- package/src/account/index.ts +6 -0
- package/src/api/account.ts +2 -1
- package/src/api/ans.ts +2 -1
- package/src/api/aptos.ts +6 -0
- package/src/api/aptosConfig.ts +46 -1
- package/src/api/digitalAsset.ts +2 -1
- package/src/api/fungibleAsset.ts +2 -1
- package/src/api/keyless.ts +48 -0
- package/src/api/transaction.ts +2 -1
- package/src/api/transactionSubmission/management.ts +1 -1
- package/src/api/transactionSubmission/sign.ts +1 -1
- package/src/bcs/deserializer.ts +40 -0
- package/src/bcs/serializer.ts +18 -0
- package/src/cli/index.ts +1 -0
- package/src/cli/move.ts +183 -0
- 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/account/index.ts +0 -3
- 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/multiKey.ts +17 -6
- package/src/core/crypto/poseidon.ts +134 -0
- package/src/core/crypto/proof.ts +16 -0
- package/src/core/crypto/singleKey.ts +11 -0
- package/src/core/index.ts +0 -1
- package/src/index.ts +1 -0
- package/src/internal/account.ts +1 -1
- package/src/internal/ans.ts +2 -2
- package/src/internal/digitalAsset.ts +2 -1
- package/src/internal/fungibleAsset.ts +3 -2
- package/src/internal/keyless.ts +119 -0
- package/src/internal/transactionSubmission.ts +24 -13
- package/src/transactions/authenticator/account.ts +6 -11
- package/src/transactions/management/accountSequenceNumber.ts +1 -1
- package/src/transactions/management/transactionWorker.ts +1 -1
- package/src/transactions/transactionBuilder/index.ts +1 -0
- package/src/transactions/transactionBuilder/signingMessage.ts +93 -0
- package/src/transactions/transactionBuilder/transactionBuilder.ts +2 -75
- package/src/types/index.ts +22 -0
- package/src/types/keyless.ts +37 -0
- package/src/utils/apiEndpoints.ts +14 -6
- package/src/utils/const.ts +2 -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-24IKVZBK.mjs +0 -2
- package/dist/esm/chunk-24IKVZBK.mjs.map +0 -1
- package/dist/esm/chunk-2HISPUZZ.mjs +0 -2
- package/dist/esm/chunk-2HISPUZZ.mjs.map +0 -1
- package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
- package/dist/esm/chunk-3WUGR46O.mjs +0 -2
- package/dist/esm/chunk-52C73T26.mjs +0 -2
- package/dist/esm/chunk-56CNRT2K.mjs +0 -2
- package/dist/esm/chunk-5P2S2SZZ.mjs +0 -2
- package/dist/esm/chunk-6CFRW26C.mjs +0 -2
- package/dist/esm/chunk-6CFRW26C.mjs.map +0 -1
- package/dist/esm/chunk-6EMN3BOV.mjs +0 -2
- package/dist/esm/chunk-6FBKUTGF.mjs +0 -2
- package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
- package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
- package/dist/esm/chunk-734YX27W.mjs +0 -2
- package/dist/esm/chunk-7QJ6YJXP.mjs +0 -2
- package/dist/esm/chunk-AD3VLZ7I.mjs +0 -2
- package/dist/esm/chunk-AD3VLZ7I.mjs.map +0 -1
- package/dist/esm/chunk-AH44UPM4.mjs +0 -2
- package/dist/esm/chunk-AOCNYMMX.mjs +0 -2
- package/dist/esm/chunk-AU6W5OIH.mjs +0 -2
- package/dist/esm/chunk-B3R6G6QP.mjs +0 -2
- package/dist/esm/chunk-B3R6G6QP.mjs.map +0 -1
- package/dist/esm/chunk-B7TQGVGL.mjs +0 -2
- package/dist/esm/chunk-BWFJHFBQ.mjs +0 -2
- package/dist/esm/chunk-CNMQNPNV.mjs +0 -2
- package/dist/esm/chunk-CTIN3GTP.mjs +0 -2
- package/dist/esm/chunk-CU67XZNB.mjs +0 -2
- package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
- package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
- package/dist/esm/chunk-DM44OGQH.mjs +0 -2
- package/dist/esm/chunk-DMKUAQB7.mjs +0 -2
- package/dist/esm/chunk-DPV25ZKR.mjs +0 -2
- package/dist/esm/chunk-DSTKXJMA.mjs +0 -2
- package/dist/esm/chunk-E7FWVXGX.mjs +0 -1
- package/dist/esm/chunk-EOFJFE4T.mjs +0 -2
- package/dist/esm/chunk-EOFJFE4T.mjs.map +0 -1
- package/dist/esm/chunk-FATWMUXK.mjs +0 -2
- package/dist/esm/chunk-FATWMUXK.mjs.map +0 -1
- package/dist/esm/chunk-FBPNHF54.mjs +0 -2
- package/dist/esm/chunk-FS3NSGBF.mjs +0 -2
- package/dist/esm/chunk-FVA2OPG4.mjs +0 -2
- package/dist/esm/chunk-G2O323HP.mjs +0 -2
- package/dist/esm/chunk-GSD4OOM3.mjs +0 -2
- package/dist/esm/chunk-HQ5I4Q3H.mjs +0 -2
- package/dist/esm/chunk-HQ5I4Q3H.mjs.map +0 -1
- package/dist/esm/chunk-IIPYR7PF.mjs +0 -2
- package/dist/esm/chunk-IIPYR7PF.mjs.map +0 -1
- package/dist/esm/chunk-IKYIJYBY.mjs +0 -2
- package/dist/esm/chunk-IKYIJYBY.mjs.map +0 -1
- package/dist/esm/chunk-IOSQVDZI.mjs +0 -2
- package/dist/esm/chunk-KVZ4XMZS.mjs +0 -2
- package/dist/esm/chunk-KVZ4XMZS.mjs.map +0 -1
- package/dist/esm/chunk-L54P6EGN.mjs +0 -2
- package/dist/esm/chunk-LR65XHSF.mjs +0 -2
- package/dist/esm/chunk-MACC2BLE.mjs +0 -2
- package/dist/esm/chunk-MC6G725U.mjs +0 -2
- package/dist/esm/chunk-MC6G725U.mjs.map +0 -1
- package/dist/esm/chunk-MFKMAAWA.mjs +0 -2
- package/dist/esm/chunk-MLWIHWNH.mjs +0 -1
- package/dist/esm/chunk-NNQJBFRB.mjs +0 -2
- package/dist/esm/chunk-NPFNYP75.mjs +0 -2
- package/dist/esm/chunk-O2F53NKI.mjs +0 -2
- package/dist/esm/chunk-O4JRPZZM.mjs +0 -2
- package/dist/esm/chunk-ODRO4CSA.mjs +0 -2
- package/dist/esm/chunk-ODRO4CSA.mjs.map +0 -1
- package/dist/esm/chunk-OVJQWQ2N.mjs +0 -2
- package/dist/esm/chunk-OVJQWQ2N.mjs.map +0 -1
- package/dist/esm/chunk-OWW6SIDP.mjs +0 -2
- package/dist/esm/chunk-OWW6SIDP.mjs.map +0 -1
- package/dist/esm/chunk-PFIMEXNN.mjs +0 -2
- package/dist/esm/chunk-PFIMEXNN.mjs.map +0 -1
- package/dist/esm/chunk-PZGLV5UQ.mjs +0 -2
- package/dist/esm/chunk-Q3TZGQVC.mjs +0 -2
- package/dist/esm/chunk-Q3TZGQVC.mjs.map +0 -1
- package/dist/esm/chunk-QIAHBEEW.mjs +0 -2
- package/dist/esm/chunk-QMURTXFM.mjs +0 -2
- package/dist/esm/chunk-QTRYMRYK.mjs +0 -2
- package/dist/esm/chunk-R5QUBEH6.mjs +0 -2
- package/dist/esm/chunk-R7G3CLRI.mjs +0 -1
- package/dist/esm/chunk-RHBCVCOS.mjs +0 -2
- package/dist/esm/chunk-RIUZPGI5.mjs +0 -2
- package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
- package/dist/esm/chunk-SG4MAOCF.mjs +0 -2
- package/dist/esm/chunk-SUAKPNKQ.mjs +0 -2
- package/dist/esm/chunk-SUAKPNKQ.mjs.map +0 -1
- package/dist/esm/chunk-TBMAJ6AW.mjs +0 -2
- package/dist/esm/chunk-TJDC5PWD.mjs +0 -2
- package/dist/esm/chunk-TLOPIURC.mjs +0 -2
- package/dist/esm/chunk-TLOPIURC.mjs.map +0 -1
- package/dist/esm/chunk-U43IJHQN.mjs +0 -2
- package/dist/esm/chunk-U6Z4FNB7.mjs +0 -2
- package/dist/esm/chunk-UFT7US42.mjs +0 -2
- package/dist/esm/chunk-UML2VQZT.mjs +0 -2
- package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
- package/dist/esm/chunk-V3Q2KXJU.mjs +0 -2
- package/dist/esm/chunk-V4SRNEV3.mjs +0 -2
- package/dist/esm/chunk-V4SRNEV3.mjs.map +0 -1
- package/dist/esm/chunk-V6OS74OS.mjs +0 -2
- package/dist/esm/chunk-VVIG4E7Q.mjs +0 -2
- package/dist/esm/chunk-W4ZW7QHA.mjs +0 -2
- package/dist/esm/chunk-WFZDFFBM.mjs +0 -2
- package/dist/esm/chunk-WLF5YQM4.mjs +0 -2
- package/dist/esm/chunk-WLF5YQM4.mjs.map +0 -1
- package/dist/esm/chunk-XDGQTMDV.mjs +0 -2
- package/dist/esm/chunk-XDGQTMDV.mjs.map +0 -1
- package/dist/esm/chunk-XO3HHRJV.mjs +0 -2
- package/dist/esm/chunk-YFRXBEOC.mjs +0 -2
- package/dist/esm/chunk-YFRXBEOC.mjs.map +0 -1
- package/dist/esm/chunk-YPTF6MLX.mjs +0 -2
- package/dist/esm/chunk-YPTF6MLX.mjs.map +0 -1
- package/dist/esm/chunk-YU3KB3UV.mjs +0 -2
- package/dist/esm/chunk-Z5YFM2AW.mjs +0 -2
- package/dist/esm/chunk-Z5YFM2AW.mjs.map +0 -1
- package/dist/esm/chunk-ZYYK3UXP.mjs +0 -2
- package/dist/esm/chunk-ZZZZVONX.mjs +0 -2
- package/dist/esm/core/account/Account.d.mts +0 -20
- package/dist/esm/core/account/Account.mjs +0 -2
- package/dist/esm/core/account/Ed25519Account.d.mts +0 -20
- package/dist/esm/core/account/Ed25519Account.mjs +0 -2
- package/dist/esm/core/account/SingleKeyAccount.d.mts +0 -20
- package/dist/esm/core/account/SingleKeyAccount.mjs +0 -2
- /package/dist/esm/{core/account → account}/Account.mjs.map +0 -0
- /package/dist/esm/{core/account → account}/Ed25519Account.mjs.map +0 -0
- /package/dist/esm/{chunk-E7FWVXGX.mjs.map → account/EphemeralKeyPair.mjs.map} +0 -0
- /package/dist/esm/{chunk-FVA2OPG4.mjs.map → account/KeylessAccount.mjs.map} +0 -0
- /package/dist/esm/{chunk-MLWIHWNH.mjs.map → account/MultiKeyAccount.mjs.map} +0 -0
- /package/dist/esm/{core/account → account}/SingleKeyAccount.mjs.map +0 -0
- /package/dist/esm/{chunk-R7G3CLRI.mjs.map → account/index.mjs.map} +0 -0
- /package/dist/esm/{chunk-UVSRX4SV.mjs.map → api/keyless.mjs.map} +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/* eslint-disable no-bitwise */
|
|
2
|
+
import {
|
|
3
|
+
poseidon1,
|
|
4
|
+
poseidon2,
|
|
5
|
+
poseidon3,
|
|
6
|
+
poseidon4,
|
|
7
|
+
poseidon5,
|
|
8
|
+
poseidon6,
|
|
9
|
+
poseidon7,
|
|
10
|
+
poseidon8,
|
|
11
|
+
poseidon9,
|
|
12
|
+
poseidon10,
|
|
13
|
+
poseidon11,
|
|
14
|
+
poseidon12,
|
|
15
|
+
poseidon13,
|
|
16
|
+
poseidon14,
|
|
17
|
+
poseidon15,
|
|
18
|
+
poseidon16,
|
|
19
|
+
} from "poseidon-lite";
|
|
20
|
+
|
|
21
|
+
const numInputsToPoseidonFunc = [
|
|
22
|
+
poseidon1,
|
|
23
|
+
poseidon2,
|
|
24
|
+
poseidon3,
|
|
25
|
+
poseidon4,
|
|
26
|
+
poseidon5,
|
|
27
|
+
poseidon6,
|
|
28
|
+
poseidon7,
|
|
29
|
+
poseidon8,
|
|
30
|
+
poseidon9,
|
|
31
|
+
poseidon10,
|
|
32
|
+
poseidon11,
|
|
33
|
+
poseidon12,
|
|
34
|
+
poseidon13,
|
|
35
|
+
poseidon14,
|
|
36
|
+
poseidon15,
|
|
37
|
+
poseidon16,
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
const BYTES_PACKED_PER_SCALAR = 31;
|
|
41
|
+
const MAX_NUM_INPUT_SCALARS = 16;
|
|
42
|
+
const MAX_NUM_INPUT_BYTES = (MAX_NUM_INPUT_SCALARS - 1) * BYTES_PACKED_PER_SCALAR;
|
|
43
|
+
|
|
44
|
+
// hashes an ASCII string to a field element
|
|
45
|
+
export function hashASCIIStrToField(str: string, maxSizeBytes: number) {
|
|
46
|
+
const textEncoder = new TextEncoder();
|
|
47
|
+
const strBytes = textEncoder.encode(str);
|
|
48
|
+
return hashBytesWithLen(strBytes, maxSizeBytes);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function hashBytesWithLen(bytes: Uint8Array, maxSizeBytes: number) {
|
|
52
|
+
if (bytes.length > maxSizeBytes) {
|
|
53
|
+
throw new Error(`Inputted bytes of length ${bytes} is longer than ${maxSizeBytes}`);
|
|
54
|
+
}
|
|
55
|
+
const packed = padAndPackBytesWithLen(bytes, maxSizeBytes);
|
|
56
|
+
return poseidonHash(packed);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function padAndPackBytesNoLen(bytes: Uint8Array, maxSizeBytes: number): bigint[] {
|
|
60
|
+
if (bytes.length > maxSizeBytes) {
|
|
61
|
+
throw new Error(`Input bytes of length ${bytes} is longer than ${maxSizeBytes}`);
|
|
62
|
+
}
|
|
63
|
+
const paddedStrBytes = padUint8ArrayWithZeros(bytes, maxSizeBytes);
|
|
64
|
+
return packBytes(paddedStrBytes);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function padAndPackBytesWithLen(bytes: Uint8Array, maxSizeBytes: number): bigint[] {
|
|
68
|
+
if (bytes.length > maxSizeBytes) {
|
|
69
|
+
throw new Error(`Input bytes of length ${bytes} is longer than ${maxSizeBytes}`);
|
|
70
|
+
}
|
|
71
|
+
return padAndPackBytesNoLen(bytes, maxSizeBytes).concat([BigInt(bytes.length)]);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function packBytes(bytes: Uint8Array): bigint[] {
|
|
75
|
+
if (bytes.length > MAX_NUM_INPUT_BYTES) {
|
|
76
|
+
throw new Error(`Can't pack more than ${MAX_NUM_INPUT_BYTES}. Was given ${bytes.length} bytes`);
|
|
77
|
+
}
|
|
78
|
+
return chunkUint8Array(bytes, BYTES_PACKED_PER_SCALAR).map((chunk) => bytesToBigIntLE(chunk));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function chunkUint8Array(array: Uint8Array, chunkSize: number): Uint8Array[] {
|
|
82
|
+
const result: Uint8Array[] = [];
|
|
83
|
+
for (let i = 0; i < array.length; i += chunkSize) {
|
|
84
|
+
result.push(array.subarray(i, i + chunkSize));
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function bytesToBigIntLE(bytes: Uint8Array): bigint {
|
|
90
|
+
let result = BigInt(0);
|
|
91
|
+
for (let i = bytes.length - 1; i >= 0; i -= 1) {
|
|
92
|
+
result = (result << BigInt(8)) | BigInt(bytes[i]);
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function bigIntToBytesLE(value: bigint, length: number): Uint8Array {
|
|
98
|
+
const bytes = new Uint8Array(length);
|
|
99
|
+
for (let i = 0; i < length; i += 1) {
|
|
100
|
+
bytes[i] = Number(value & BigInt(0xff));
|
|
101
|
+
// eslint-disable-next-line no-param-reassign
|
|
102
|
+
value >>= BigInt(8);
|
|
103
|
+
}
|
|
104
|
+
return bytes;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// From chatGPT
|
|
108
|
+
function padUint8ArrayWithZeros(inputArray: Uint8Array, paddedSize: number): Uint8Array {
|
|
109
|
+
if (paddedSize < inputArray.length) {
|
|
110
|
+
throw new Error("Padded size must be greater than or equal to the input array size.");
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Create a new Uint8Array with the padded size
|
|
114
|
+
const paddedArray = new Uint8Array(paddedSize);
|
|
115
|
+
|
|
116
|
+
// Copy the content of the input array to the new array
|
|
117
|
+
paddedArray.set(inputArray);
|
|
118
|
+
|
|
119
|
+
// Fill the remaining space with zeros
|
|
120
|
+
for (let i = inputArray.length; i < paddedSize; i += 1) {
|
|
121
|
+
paddedArray[i] = 0;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return paddedArray;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export function poseidonHash(inputs: (number | bigint | string)[]): bigint {
|
|
128
|
+
const poseidonFixedHash = numInputsToPoseidonFunc[inputs.length - 1];
|
|
129
|
+
|
|
130
|
+
if (poseidonFixedHash) {
|
|
131
|
+
return poseidonFixedHash(inputs);
|
|
132
|
+
}
|
|
133
|
+
throw new Error(`Unable to hash input of length ${inputs.length}`);
|
|
134
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Serializable } from "../../bcs";
|
|
2
|
+
import { Hex } from "../hex";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* An abstract representation of a crypto proof.
|
|
6
|
+
* associated to a specific zero knowledge proof schemes e.g. Groth16, PLONK
|
|
7
|
+
*/
|
|
8
|
+
export abstract class Proof extends Serializable {
|
|
9
|
+
/**
|
|
10
|
+
* Get the proof as a hex string with a 0x prefix e.g. 0x123456...
|
|
11
|
+
*/
|
|
12
|
+
toString(): string {
|
|
13
|
+
const bytes = this.bcsToBytes();
|
|
14
|
+
return Hex.fromHexInput(bytes).toString();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -4,6 +4,7 @@ import { AuthenticationKey } from "../authenticationKey";
|
|
|
4
4
|
import { Ed25519PublicKey, Ed25519Signature } from "./ed25519";
|
|
5
5
|
import { AccountPublicKey, PublicKey, VerifySignatureArgs } from "./publicKey";
|
|
6
6
|
import { Secp256k1PublicKey, Secp256k1Signature } from "./secp256k1";
|
|
7
|
+
import { KeylessPublicKey, KeylessSignature } from "./keyless";
|
|
7
8
|
import { Signature } from "./signature";
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -34,6 +35,8 @@ export class AnyPublicKey extends AccountPublicKey {
|
|
|
34
35
|
this.variant = AnyPublicKeyVariant.Ed25519;
|
|
35
36
|
} else if (publicKey instanceof Secp256k1PublicKey) {
|
|
36
37
|
this.variant = AnyPublicKeyVariant.Secp256k1;
|
|
38
|
+
} else if (publicKey instanceof KeylessPublicKey) {
|
|
39
|
+
this.variant = AnyPublicKeyVariant.Keyless;
|
|
37
40
|
} else {
|
|
38
41
|
throw new Error("Unsupported public key type");
|
|
39
42
|
}
|
|
@@ -85,6 +88,9 @@ export class AnyPublicKey extends AccountPublicKey {
|
|
|
85
88
|
case AnyPublicKeyVariant.Secp256k1:
|
|
86
89
|
publicKey = Secp256k1PublicKey.deserialize(deserializer);
|
|
87
90
|
break;
|
|
91
|
+
case AnyPublicKeyVariant.Keyless:
|
|
92
|
+
publicKey = KeylessPublicKey.deserialize(deserializer);
|
|
93
|
+
break;
|
|
88
94
|
default:
|
|
89
95
|
throw new Error(`Unknown variant index for AnyPublicKey: ${variantIndex}`);
|
|
90
96
|
}
|
|
@@ -138,6 +144,8 @@ export class AnySignature extends Signature {
|
|
|
138
144
|
this.variant = AnySignatureVariant.Ed25519;
|
|
139
145
|
} else if (signature instanceof Secp256k1Signature) {
|
|
140
146
|
this.variant = AnySignatureVariant.Secp256k1;
|
|
147
|
+
} else if (signature instanceof KeylessSignature) {
|
|
148
|
+
this.variant = AnySignatureVariant.Keyless;
|
|
141
149
|
} else {
|
|
142
150
|
throw new Error("Unsupported signature type");
|
|
143
151
|
}
|
|
@@ -170,6 +178,9 @@ export class AnySignature extends Signature {
|
|
|
170
178
|
case AnySignatureVariant.Secp256k1:
|
|
171
179
|
signature = Secp256k1Signature.deserialize(deserializer);
|
|
172
180
|
break;
|
|
181
|
+
case AnySignatureVariant.Keyless:
|
|
182
|
+
signature = KeylessSignature.deserialize(deserializer);
|
|
183
|
+
break;
|
|
173
184
|
default:
|
|
174
185
|
throw new Error(`Unknown variant index for AnySignature: ${variantIndex}`);
|
|
175
186
|
}
|
package/src/core/index.ts
CHANGED
package/src/index.ts
CHANGED
package/src/internal/account.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import { AptosConfig } from "../api/aptosConfig";
|
|
12
12
|
import { AptosApiError, getAptosFullNode, paginateWithCursor } from "../client";
|
|
13
13
|
import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
|
|
14
|
-
import { Account } from "../
|
|
14
|
+
import { Account } from "../account";
|
|
15
15
|
import { AnyPublicKey, Ed25519PublicKey, PrivateKey } from "../core/crypto";
|
|
16
16
|
import { getTableItem, queryIndexer } from "./general";
|
|
17
17
|
import {
|
package/src/internal/ans.ts
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { AptosConfig } from "../api/aptosConfig";
|
|
12
|
-
import { Account
|
|
12
|
+
import { Account } from "../account";
|
|
13
|
+
import { AccountAddress, AccountAddressInput } from "../core";
|
|
13
14
|
import { InputGenerateTransactionOptions } from "../transactions/types";
|
|
14
15
|
import { GetANSNameResponse, MoveAddressType, OrderByArg, PaginationArgs, WhereArg } from "../types";
|
|
15
16
|
import { GetNamesQuery } from "../types/generated/operations";
|
|
@@ -78,7 +79,6 @@ const NetworkToAnsContract: Record<Network, string | null> = {
|
|
|
78
79
|
[Network.LOCAL]: LOCAL_ANS_ACCOUNT_ADDRESS,
|
|
79
80
|
[Network.CUSTOM]: null,
|
|
80
81
|
[Network.DEVNET]: null,
|
|
81
|
-
[Network.RANDOMNET]: null,
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
function getRouterAddress(aptosConfig: AptosConfig): string {
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
import { AptosConfig } from "../api/aptosConfig";
|
|
12
12
|
import { Bool, MoveString, MoveVector, U64 } from "../bcs";
|
|
13
|
-
import {
|
|
13
|
+
import { AccountAddress, AccountAddressInput } from "../core";
|
|
14
|
+
import { Account } from "../account";
|
|
14
15
|
import { EntryFunctionABI, InputGenerateTransactionOptions } from "../transactions/types";
|
|
15
16
|
import {
|
|
16
17
|
AnyNumber,
|
|
@@ -33,7 +33,8 @@ import {
|
|
|
33
33
|
FungibleAssetActivitiesBoolExp,
|
|
34
34
|
FungibleAssetMetadataBoolExp,
|
|
35
35
|
} from "../types/generated/types";
|
|
36
|
-
import {
|
|
36
|
+
import { AccountAddressInput } from "../core";
|
|
37
|
+
import { Account } from "../account";
|
|
37
38
|
import {
|
|
38
39
|
EntryFunctionABI,
|
|
39
40
|
InputGenerateTransactionOptions,
|
|
@@ -117,7 +118,7 @@ export async function getCurrentFungibleAssetBalances(args: {
|
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
const faTransferAbi: EntryFunctionABI = {
|
|
120
|
-
typeParameters: [],
|
|
121
|
+
typeParameters: [{ constraints: [] }],
|
|
121
122
|
parameters: [parseTypeTag("0x1::object::Object"), new TypeTagAddress(), new TypeTagU64()],
|
|
122
123
|
};
|
|
123
124
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// Copyright © Aptos Foundation
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This file contains the underlying implementations for exposed API surface in
|
|
6
|
+
* the {@link api/keyless}. By moving the methods out into a separate file,
|
|
7
|
+
* other namespaces and processes can access these methods without depending on the entire
|
|
8
|
+
* faucet namespace and without having a dependency cycle error.
|
|
9
|
+
*/
|
|
10
|
+
import { jwtDecode } from "jwt-decode";
|
|
11
|
+
import { AptosConfig } from "../api/aptosConfig";
|
|
12
|
+
import { postAptosPepperService, postAptosProvingService } from "../client";
|
|
13
|
+
import { EPK_HORIZON_SECS, EphemeralSignature, Groth16Zkp, Hex, ZeroKnowledgeSig, ZkProof } from "../core";
|
|
14
|
+
import { HexInput, ZkpVariant } from "../types";
|
|
15
|
+
import { EphemeralKeyPair, KeylessAccount, ProofFetchCallback } from "../account";
|
|
16
|
+
import { PepperFetchResponse, ProverResponse } from "../types/keyless";
|
|
17
|
+
|
|
18
|
+
export async function getPepper(args: {
|
|
19
|
+
aptosConfig: AptosConfig;
|
|
20
|
+
jwt: string;
|
|
21
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
22
|
+
uidKey?: string;
|
|
23
|
+
derivationPath?: string;
|
|
24
|
+
verify?: boolean;
|
|
25
|
+
}): Promise<Uint8Array> {
|
|
26
|
+
const { aptosConfig, jwt, ephemeralKeyPair, uidKey, derivationPath } = args;
|
|
27
|
+
|
|
28
|
+
const body = {
|
|
29
|
+
jwt_b64: jwt,
|
|
30
|
+
epk: ephemeralKeyPair.getPublicKey().bcsToHex().toStringWithoutPrefix(),
|
|
31
|
+
exp_date_secs: Number(ephemeralKeyPair.expiryDateSecs),
|
|
32
|
+
epk_blinder: Hex.fromHexInput(ephemeralKeyPair.blinder).toStringWithoutPrefix(),
|
|
33
|
+
uid_key: uidKey,
|
|
34
|
+
derivation_path: derivationPath,
|
|
35
|
+
};
|
|
36
|
+
const { data } = await postAptosPepperService<any, PepperFetchResponse>({
|
|
37
|
+
aptosConfig,
|
|
38
|
+
path: "fetch",
|
|
39
|
+
body,
|
|
40
|
+
originMethod: "getPepper",
|
|
41
|
+
overrides: { WITH_CREDENTIALS: false },
|
|
42
|
+
});
|
|
43
|
+
return Hex.fromHexInput(data.pepper).toUint8Array();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function getProof(args: {
|
|
47
|
+
aptosConfig: AptosConfig;
|
|
48
|
+
jwt: string;
|
|
49
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
50
|
+
pepper: HexInput;
|
|
51
|
+
uidKey?: string;
|
|
52
|
+
extraFieldKey?: string;
|
|
53
|
+
}): Promise<ZeroKnowledgeSig> {
|
|
54
|
+
const { aptosConfig, jwt, ephemeralKeyPair, pepper, uidKey, extraFieldKey } = args;
|
|
55
|
+
const json = {
|
|
56
|
+
jwt_b64: jwt,
|
|
57
|
+
epk: ephemeralKeyPair.getPublicKey().bcsToHex().toStringWithoutPrefix(),
|
|
58
|
+
epk_blinder: Hex.fromHexInput(ephemeralKeyPair.blinder).toStringWithoutPrefix(),
|
|
59
|
+
exp_date_secs: Number(ephemeralKeyPair.expiryDateSecs),
|
|
60
|
+
exp_horizon_secs: EPK_HORIZON_SECS,
|
|
61
|
+
pepper: Hex.fromHexInput(pepper).toStringWithoutPrefix(),
|
|
62
|
+
extra_field: extraFieldKey,
|
|
63
|
+
uid_key: uidKey || "sub",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const { data } = await postAptosProvingService<any, ProverResponse>({
|
|
67
|
+
aptosConfig,
|
|
68
|
+
path: "prove",
|
|
69
|
+
body: json,
|
|
70
|
+
originMethod: "getProof",
|
|
71
|
+
overrides: { WITH_CREDENTIALS: false },
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const proofPoints = data.proof;
|
|
75
|
+
const groth16Zkp = new Groth16Zkp({
|
|
76
|
+
a: proofPoints.a,
|
|
77
|
+
b: proofPoints.b,
|
|
78
|
+
c: proofPoints.c,
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
let extraField;
|
|
82
|
+
if (extraFieldKey) {
|
|
83
|
+
const jwtPayload = jwtDecode<{ [key: string]: string }>(jwt);
|
|
84
|
+
const extraFieldVal = jwtPayload[extraFieldKey];
|
|
85
|
+
extraField = `"${extraFieldKey}":"${extraFieldVal}",`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const signedProof = new ZeroKnowledgeSig({
|
|
89
|
+
proof: new ZkProof(groth16Zkp, ZkpVariant.Groth16),
|
|
90
|
+
extraField,
|
|
91
|
+
trainingWheelsSignature: EphemeralSignature.fromHex(data.training_wheels_signature),
|
|
92
|
+
});
|
|
93
|
+
return signedProof;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export async function deriveKeylessAccount(args: {
|
|
97
|
+
aptosConfig: AptosConfig;
|
|
98
|
+
jwt: string;
|
|
99
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
100
|
+
uidKey?: string;
|
|
101
|
+
pepper?: HexInput;
|
|
102
|
+
extraFieldKey?: string;
|
|
103
|
+
proofFetchCallback?: ProofFetchCallback;
|
|
104
|
+
}): Promise<KeylessAccount> {
|
|
105
|
+
const { proofFetchCallback } = args;
|
|
106
|
+
let { pepper } = args;
|
|
107
|
+
if (pepper === undefined) {
|
|
108
|
+
pepper = await getPepper(args);
|
|
109
|
+
} else if (Hex.fromHexInput(pepper).toUint8Array().length !== KeylessAccount.PEPPER_LENGTH) {
|
|
110
|
+
throw new Error(`Pepper needs to be ${KeylessAccount.PEPPER_LENGTH} bytes`);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const proofPromise = getProof({ ...args, pepper });
|
|
114
|
+
const proof = proofFetchCallback ? proofPromise : await proofPromise;
|
|
115
|
+
|
|
116
|
+
const keylessAccount = KeylessAccount.fromJWTAndProof({ ...args, proof, pepper, proofFetchCallback });
|
|
117
|
+
|
|
118
|
+
return keylessAccount;
|
|
119
|
+
}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
import { AptosConfig } from "../api/aptosConfig";
|
|
9
9
|
import { MoveVector, U8 } from "../bcs";
|
|
10
|
-
import { postAptosFullNode } from "../client";
|
|
11
|
-
import { Account } from "../
|
|
10
|
+
import { AptosApiError, postAptosFullNode } from "../client";
|
|
11
|
+
import { Account, KeylessAccount, MultiKeyAccount } from "../account";
|
|
12
12
|
import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
|
|
13
13
|
import { PrivateKey } from "../core/crypto";
|
|
14
14
|
import { AccountAuthenticator } from "../transactions/authenticator/account";
|
|
@@ -18,8 +18,6 @@ import {
|
|
|
18
18
|
generateTransactionPayload,
|
|
19
19
|
generateSignedTransactionForSimulation,
|
|
20
20
|
generateSignedTransaction,
|
|
21
|
-
sign,
|
|
22
|
-
generateSigningMessage,
|
|
23
21
|
} from "../transactions/transactionBuilder/transactionBuilder";
|
|
24
22
|
import {
|
|
25
23
|
InputGenerateTransactionData,
|
|
@@ -35,9 +33,10 @@ import {
|
|
|
35
33
|
} from "../transactions/types";
|
|
36
34
|
import { getInfo } from "./account";
|
|
37
35
|
import { UserTransactionResponse, PendingTransactionResponse, MimeType, HexInput, TransactionResponse } from "../types";
|
|
38
|
-
import { TypeTagU8, TypeTagVector } from "../transactions";
|
|
36
|
+
import { TypeTagU8, TypeTagVector, generateSigningMessageForTransaction } from "../transactions";
|
|
39
37
|
import { SimpleTransaction } from "../transactions/instances/simpleTransaction";
|
|
40
38
|
import { MultiAgentTransaction } from "../transactions/instances/multiAgentTransaction";
|
|
39
|
+
import { KeylessError } from "../types/keyless";
|
|
41
40
|
|
|
42
41
|
/**
|
|
43
42
|
* We are defining function signatures, each with its specific input and output.
|
|
@@ -185,7 +184,7 @@ function isMultiAgentTransactionInput(
|
|
|
185
184
|
*/
|
|
186
185
|
export function getSigningMessage(args: { transaction: AnyRawTransaction }): Uint8Array {
|
|
187
186
|
const { transaction } = args;
|
|
188
|
-
return
|
|
187
|
+
return generateSigningMessageForTransaction(transaction);
|
|
189
188
|
}
|
|
190
189
|
|
|
191
190
|
/**
|
|
@@ -204,8 +203,8 @@ export function getSigningMessage(args: { transaction: AnyRawTransaction }): Uin
|
|
|
204
203
|
* @return The signer AccountAuthenticator
|
|
205
204
|
*/
|
|
206
205
|
export function signTransaction(args: { signer: Account; transaction: AnyRawTransaction }): AccountAuthenticator {
|
|
207
|
-
const
|
|
208
|
-
return
|
|
206
|
+
const { signer, transaction } = args;
|
|
207
|
+
return signer.signTransactionWithAuthenticator(transaction);
|
|
209
208
|
}
|
|
210
209
|
|
|
211
210
|
/**
|
|
@@ -277,12 +276,24 @@ export async function signAndSubmitTransaction(args: {
|
|
|
277
276
|
transaction: AnyRawTransaction;
|
|
278
277
|
}): Promise<PendingTransactionResponse> {
|
|
279
278
|
const { aptosConfig, signer, transaction } = args;
|
|
279
|
+
// If the signer contains a KeylessAccount, await proof fetching in case the proof
|
|
280
|
+
// was fetched asyncronously.
|
|
281
|
+
if (signer instanceof KeylessAccount || signer instanceof MultiKeyAccount) {
|
|
282
|
+
await signer.waitForProofFetch();
|
|
283
|
+
}
|
|
280
284
|
const authenticator = signTransaction({ signer, transaction });
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
285
|
+
try {
|
|
286
|
+
return await submitTransaction({
|
|
287
|
+
aptosConfig,
|
|
288
|
+
transaction,
|
|
289
|
+
senderAuthenticator: authenticator,
|
|
290
|
+
});
|
|
291
|
+
} catch (error) {
|
|
292
|
+
if (error instanceof AptosApiError && signer instanceof KeylessAccount) {
|
|
293
|
+
throw await KeylessError.fromAptosApiError(error, signer);
|
|
294
|
+
}
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
286
297
|
}
|
|
287
298
|
|
|
288
299
|
const packagePublishAbi: EntryFunctionABI = {
|
|
@@ -7,7 +7,7 @@ import { Serializer, Deserializer, Serializable } from "../../bcs";
|
|
|
7
7
|
import { AnyPublicKey, AnySignature } from "../../core/crypto";
|
|
8
8
|
import { Ed25519PublicKey, Ed25519Signature } from "../../core/crypto/ed25519";
|
|
9
9
|
import { MultiEd25519PublicKey, MultiEd25519Signature } from "../../core/crypto/multiEd25519";
|
|
10
|
-
import { MultiKey } from "../../core/crypto/multiKey";
|
|
10
|
+
import { MultiKey, MultiKeySignature } from "../../core/crypto/multiKey";
|
|
11
11
|
import { AccountAuthenticatorVariant } from "../../types";
|
|
12
12
|
|
|
13
13
|
export abstract class AccountAuthenticator extends Serializable {
|
|
@@ -149,28 +149,23 @@ export class AccountAuthenticatorSingleKey extends AccountAuthenticator {
|
|
|
149
149
|
export class AccountAuthenticatorMultiKey extends AccountAuthenticator {
|
|
150
150
|
public readonly public_keys: MultiKey;
|
|
151
151
|
|
|
152
|
-
public readonly signatures:
|
|
152
|
+
public readonly signatures: MultiKeySignature;
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
constructor(public_keys: MultiKey, signatures: Array<AnySignature>, signatures_bitmap: Uint8Array) {
|
|
154
|
+
constructor(public_keys: MultiKey, signatures: MultiKeySignature) {
|
|
157
155
|
super();
|
|
158
156
|
this.public_keys = public_keys;
|
|
159
157
|
this.signatures = signatures;
|
|
160
|
-
this.signatures_bitmap = signatures_bitmap;
|
|
161
158
|
}
|
|
162
159
|
|
|
163
160
|
serialize(serializer: Serializer): void {
|
|
164
161
|
serializer.serializeU32AsUleb128(AccountAuthenticatorVariant.MultiKey);
|
|
165
162
|
this.public_keys.serialize(serializer);
|
|
166
|
-
|
|
167
|
-
serializer.serializeBytes(this.signatures_bitmap);
|
|
163
|
+
this.signatures.serialize(serializer);
|
|
168
164
|
}
|
|
169
165
|
|
|
170
166
|
static load(deserializer: Deserializer): AccountAuthenticatorMultiKey {
|
|
171
167
|
const public_keys = MultiKey.deserialize(deserializer);
|
|
172
|
-
const signatures =
|
|
173
|
-
|
|
174
|
-
return new AccountAuthenticatorMultiKey(public_keys, signatures, signatures_bitmap);
|
|
168
|
+
const signatures = MultiKeySignature.deserialize(deserializer);
|
|
169
|
+
return new AccountAuthenticatorMultiKey(public_keys, signatures);
|
|
175
170
|
}
|
|
176
171
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import EventEmitter from "eventemitter3";
|
|
4
4
|
import { AptosConfig } from "../../api/aptosConfig";
|
|
5
|
-
import { Account } from "../../
|
|
5
|
+
import { Account } from "../../account";
|
|
6
6
|
import { waitForTransaction } from "../../internal/transaction";
|
|
7
7
|
import { generateTransaction, signAndSubmitTransaction } from "../../internal/transactionSubmission";
|
|
8
8
|
import { PendingTransactionResponse, TransactionResponse } from "../../types";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// Copyright © Aptos Foundation
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This file handles the generation of the signing message.
|
|
6
|
+
*/
|
|
7
|
+
import { sha3_256 as sha3Hash } from "@noble/hashes/sha3";
|
|
8
|
+
import { RAW_TRANSACTION_SALT, RAW_TRANSACTION_WITH_DATA_SALT } from "../../utils/const";
|
|
9
|
+
import { FeePayerRawTransaction, MultiAgentRawTransaction } from "../instances";
|
|
10
|
+
import { AnyRawTransaction, AnyRawTransactionInstance } from "../types";
|
|
11
|
+
import { Serializable } from "../../bcs";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Derive the raw transaction type - FeePayerRawTransaction or MultiAgentRawTransaction or RawTransaction
|
|
15
|
+
*
|
|
16
|
+
* @param transaction A aptos transaction type
|
|
17
|
+
*
|
|
18
|
+
* @returns FeePayerRawTransaction | MultiAgentRawTransaction | RawTransaction
|
|
19
|
+
*/
|
|
20
|
+
export function deriveTransactionType(transaction: AnyRawTransaction): AnyRawTransactionInstance {
|
|
21
|
+
if (transaction.feePayerAddress) {
|
|
22
|
+
return new FeePayerRawTransaction(
|
|
23
|
+
transaction.rawTransaction,
|
|
24
|
+
transaction.secondarySignerAddresses ?? [],
|
|
25
|
+
transaction.feePayerAddress,
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
if (transaction.secondarySignerAddresses) {
|
|
29
|
+
return new MultiAgentRawTransaction(transaction.rawTransaction, transaction.secondarySignerAddresses);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return transaction.rawTransaction;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generates the 'signing message' form of a message to be signed.
|
|
37
|
+
*
|
|
38
|
+
* @param bytes The byte representation of the message to be signed and sent to the chain
|
|
39
|
+
* @param domainSeparator A domain separator that starts with 'APTOS::'
|
|
40
|
+
*
|
|
41
|
+
* @returns The Uint8Array of the signing message
|
|
42
|
+
*/
|
|
43
|
+
export function generateSigningMessage(bytes: Uint8Array, domainSeparator: string): Uint8Array {
|
|
44
|
+
const hash = sha3Hash.create();
|
|
45
|
+
|
|
46
|
+
if (!domainSeparator.startsWith("APTOS::")) {
|
|
47
|
+
throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${domainSeparator}`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
hash.update(domainSeparator);
|
|
51
|
+
|
|
52
|
+
const prefix = hash.digest();
|
|
53
|
+
|
|
54
|
+
const body = bytes;
|
|
55
|
+
|
|
56
|
+
const mergedArray = new Uint8Array(prefix.length + body.length);
|
|
57
|
+
mergedArray.set(prefix);
|
|
58
|
+
mergedArray.set(body, prefix.length);
|
|
59
|
+
|
|
60
|
+
return mergedArray;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Generates the 'signing message' form of a serilizable value. It bcs serializes the value and uses the name of
|
|
65
|
+
* its constructor as the domain separator.
|
|
66
|
+
*
|
|
67
|
+
* @param serializable An object that has a bcs serialized form
|
|
68
|
+
*
|
|
69
|
+
* @returns The Uint8Array of the signing message
|
|
70
|
+
*/
|
|
71
|
+
export function generateSigningMessageForSerializable(serializable: Serializable): Uint8Array {
|
|
72
|
+
return generateSigningMessage(serializable.bcsToBytes(), `APTOS::${serializable.constructor.name}`);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Generates the 'signing message' form of a transaction. It derives the type of transaction and
|
|
77
|
+
* applies the appropriate domain separator based on if there is extra data such as a fee payer or
|
|
78
|
+
* secondary signers.
|
|
79
|
+
*
|
|
80
|
+
* @param transaction A transaction that is to be signed
|
|
81
|
+
*
|
|
82
|
+
* @returns The Uint8Array of the signing message
|
|
83
|
+
*/
|
|
84
|
+
export function generateSigningMessageForTransaction(transaction: AnyRawTransaction): Uint8Array {
|
|
85
|
+
const rawTxn = deriveTransactionType(transaction);
|
|
86
|
+
if (transaction.feePayerAddress) {
|
|
87
|
+
return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);
|
|
88
|
+
}
|
|
89
|
+
if (transaction.secondarySignerAddresses) {
|
|
90
|
+
return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);
|
|
91
|
+
}
|
|
92
|
+
return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_SALT);
|
|
93
|
+
}
|