@aptos-labs/ts-sdk 1.33.2 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -9
- package/dist/common/{accountAddress-Cf1amU98.d.ts → accountAddress-CuHovHdK.d.ts} +22 -2
- package/dist/common/chunk-RX5UBAME.js +4 -0
- package/dist/common/chunk-RX5UBAME.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 +3139 -2533
- package/dist/common/index.js +33 -35
- package/dist/common/index.js.map +1 -1
- package/dist/esm/account/AbstractKeylessAccount.d.mts +1 -0
- package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
- package/dist/esm/account/AbstractedAccount.d.mts +91 -0
- package/dist/esm/account/AbstractedAccount.mjs +2 -0
- package/dist/esm/account/Account.d.mts +2 -1
- package/dist/esm/account/Account.mjs +1 -1
- package/dist/esm/account/AccountUtils.d.mts +17 -16
- package/dist/esm/account/AccountUtils.mjs +1 -1
- package/dist/esm/account/Ed25519Account.d.mts +3 -2
- package/dist/esm/account/Ed25519Account.mjs +1 -1
- package/dist/esm/account/EphemeralKeyPair.d.mts +1 -0
- package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
- package/dist/esm/account/FederatedKeylessAccount.d.mts +1 -0
- package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
- package/dist/esm/account/KeylessAccount.d.mts +1 -0
- package/dist/esm/account/KeylessAccount.mjs +1 -1
- package/dist/esm/account/MultiEd25519Account.d.mts +108 -0
- package/dist/esm/account/MultiEd25519Account.mjs +2 -0
- package/dist/esm/account/MultiKeyAccount.d.mts +2 -2
- package/dist/esm/account/MultiKeyAccount.mjs +1 -1
- package/dist/esm/account/SingleKeyAccount.d.mts +1 -0
- package/dist/esm/account/SingleKeyAccount.mjs +1 -1
- package/dist/esm/account/index.d.mts +4 -0
- package/dist/esm/account/index.mjs +1 -1
- package/dist/esm/account/utils.d.mts +1 -0
- package/dist/esm/account/utils.mjs +1 -1
- package/dist/esm/api/account/abstraction.d.mts +209 -0
- package/dist/esm/api/account/abstraction.mjs +2 -0
- package/dist/esm/api/account.d.mts +4 -1
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/ans.d.mts +1 -0
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/aptos.d.mts +6 -1
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/aptosConfig.d.mts +1 -0
- package/dist/esm/api/aptosConfig.mjs +1 -1
- package/dist/esm/api/coin.d.mts +3 -2
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/digitalAsset.d.mts +1 -0
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/event.d.mts +1 -0
- package/dist/esm/api/event.mjs +1 -1
- package/dist/esm/api/experimental.d.mts +83 -0
- package/dist/esm/api/experimental.mjs +2 -0
- package/dist/esm/api/experimental.mjs.map +1 -0
- package/dist/esm/api/faucet.d.mts +1 -0
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/fungibleAsset.d.mts +1 -0
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/general.d.mts +1 -0
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/index.d.mts +4 -0
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/keyless.d.mts +2 -1
- package/dist/esm/api/keyless.mjs +1 -1
- package/dist/esm/api/object.d.mts +1 -0
- package/dist/esm/api/object.mjs +1 -1
- package/dist/esm/api/staking.d.mts +1 -0
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/table.d.mts +1 -0
- package/dist/esm/api/table.mjs +1 -1
- package/dist/esm/api/transaction.d.mts +2 -0
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.d.mts +66 -0
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.d.mts +1 -0
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.d.mts +1 -0
- package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/simulate.d.mts +1 -0
- package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.d.mts +1 -0
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/utils.d.mts +1 -0
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/bcs/consts.d.mts +1 -0
- package/dist/esm/bcs/deserializer.d.mts +1 -0
- package/dist/esm/bcs/deserializer.mjs +1 -1
- package/dist/esm/bcs/index.d.mts +1 -0
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +1 -0
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.d.mts +1 -0
- package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.d.mts +1 -0
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.d.mts +1 -0
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/bcs/serializer.d.mts +1 -0
- package/dist/esm/bcs/serializer.mjs +1 -1
- package/dist/esm/{chunk-7IY3DTEF.mjs → chunk-27ESCVVC.mjs} +2 -2
- package/dist/esm/chunk-2SAYQUUX.mjs +2 -0
- package/dist/esm/chunk-2SAYQUUX.mjs.map +1 -0
- package/dist/esm/{chunk-VUIHJIMX.mjs → chunk-2TRQERBL.mjs} +2 -2
- package/dist/esm/chunk-2V636AYW.mjs +2 -0
- package/dist/esm/{chunk-XTJOA5QN.mjs → chunk-2YKERRHD.mjs} +2 -2
- package/dist/esm/chunk-2ZLFQBT2.mjs +2 -0
- package/dist/esm/chunk-2ZLFQBT2.mjs.map +1 -0
- package/dist/esm/{chunk-5YWH3XPN.mjs → chunk-3LDVJ2YK.mjs} +2 -2
- package/dist/esm/chunk-3OLFJ65O.mjs +2 -0
- package/dist/esm/chunk-3OLFJ65O.mjs.map +1 -0
- package/dist/esm/{chunk-ONTWK5FU.mjs → chunk-44EHAKKW.mjs} +2 -2
- package/dist/esm/{chunk-OEQ2U7GK.mjs → chunk-53IBOHXB.mjs} +2 -2
- package/dist/esm/{chunk-YCQUYDZI.mjs → chunk-5H5D6QVX.mjs} +2 -2
- package/dist/esm/{chunk-G4O6FXCF.mjs → chunk-5W2ERBGY.mjs} +2 -2
- package/dist/esm/{chunk-NYETBDSR.mjs → chunk-67A5U2X6.mjs} +2 -2
- package/dist/esm/{chunk-AXYARCYT.mjs → chunk-6IJZRG3U.mjs} +2 -2
- package/dist/esm/{chunk-N4DM5FYH.mjs → chunk-6KZT3KFZ.mjs} +2 -2
- package/dist/esm/chunk-752TOOCA.mjs +2 -0
- package/dist/esm/chunk-752TOOCA.mjs.map +1 -0
- package/dist/esm/{chunk-2WCATZVL.mjs → chunk-7A2KHJ3D.mjs} +2 -2
- package/dist/esm/{chunk-ROT6S6BM.mjs → chunk-7CRQNXR5.mjs} +2 -2
- package/dist/esm/{chunk-FZD5RWSZ.mjs → chunk-7OUPEQRN.mjs} +2 -2
- package/dist/esm/chunk-A3VO773Q.mjs +2 -0
- package/dist/esm/{chunk-OHZURQPY.mjs → chunk-AEGA5N2W.mjs} +2 -2
- package/dist/esm/{chunk-BI3BTSUB.mjs → chunk-AIPHJFJL.mjs} +2 -2
- package/dist/esm/chunk-AQWKKSRN.mjs +2 -0
- package/dist/esm/chunk-AQWKKSRN.mjs.map +1 -0
- package/dist/esm/{chunk-4EUS4E6S.mjs → chunk-B23VO5TB.mjs} +2 -2
- package/dist/esm/chunk-BHVSIRNF.mjs +2 -0
- package/dist/esm/chunk-BHVSIRNF.mjs.map +1 -0
- package/dist/esm/chunk-BMPHQ3E7.mjs +2 -0
- package/dist/esm/chunk-BPHCRTHD.mjs +2 -0
- package/dist/esm/chunk-BPHCRTHD.mjs.map +1 -0
- package/dist/esm/{chunk-DYATTONT.mjs → chunk-BQYKFATL.mjs} +2 -2
- package/dist/esm/chunk-BY3XFRUM.mjs +2 -0
- package/dist/esm/{chunk-77AEKF7K.mjs.map → chunk-BY3XFRUM.mjs.map} +1 -1
- package/dist/esm/chunk-CGTMSLVZ.mjs +2 -0
- package/dist/esm/chunk-CGTMSLVZ.mjs.map +1 -0
- package/dist/esm/{chunk-QQEK7WVP.mjs → chunk-CPAAEEF4.mjs} +2 -2
- package/dist/esm/{chunk-ZAIVZDOL.mjs → chunk-CPFQUFVD.mjs} +2 -2
- package/dist/esm/chunk-CXLNTATW.mjs +2 -0
- package/dist/esm/chunk-CXLNTATW.mjs.map +1 -0
- package/dist/esm/{chunk-ZPV7HPA4.mjs → chunk-DAJFOJ3L.mjs} +2 -2
- package/dist/esm/chunk-DOVH6HPL.mjs +2 -0
- package/dist/esm/{chunk-KOORZTHC.mjs → chunk-E5PAUR4N.mjs} +2 -2
- package/dist/esm/{chunk-E7JDVKFY.mjs → chunk-EGCL6KA6.mjs} +2 -2
- package/dist/esm/{chunk-TOBQ5UE6.mjs → chunk-ERLDXTIY.mjs} +2 -2
- package/dist/esm/chunk-FJ5J7CVW.mjs +2 -0
- package/dist/esm/chunk-FJ5J7CVW.mjs.map +1 -0
- package/dist/esm/{chunk-X6UNY6YM.mjs → chunk-FOEPRHAC.mjs} +2 -2
- package/dist/esm/{chunk-XYB6KYKW.mjs → chunk-G5F5ZOH5.mjs} +2 -2
- package/dist/esm/chunk-GFPEB22G.mjs +1 -0
- package/dist/esm/chunk-GFPEB22G.mjs.map +1 -0
- package/dist/esm/{chunk-AZWVCBK2.mjs → chunk-GI4AR6DQ.mjs} +2 -2
- package/dist/esm/{chunk-3RCAJICY.mjs → chunk-GRRBXHVG.mjs} +2 -2
- package/dist/esm/{chunk-5EYTHMRZ.mjs → chunk-GTVMJJQQ.mjs} +2 -2
- package/dist/esm/{chunk-2TJ6OTVD.mjs → chunk-GU4MD5ST.mjs} +2 -2
- package/dist/esm/chunk-H4YAL2IL.mjs +2 -0
- package/dist/esm/{chunk-ZGVNZE7J.mjs → chunk-HBTJN4RJ.mjs} +2 -2
- package/dist/esm/{chunk-IDTLNF4M.mjs → chunk-HHWJHOFZ.mjs} +2 -2
- package/dist/esm/{chunk-XZ4JRYCE.mjs → chunk-HKL4MFNL.mjs} +2 -2
- package/dist/esm/{chunk-IEUEMBFD.mjs → chunk-HVIF6DW6.mjs} +2 -2
- package/dist/esm/{chunk-MWBRD43V.mjs → chunk-HYJQHVDZ.mjs} +2 -2
- package/dist/esm/chunk-HYJQHVDZ.mjs.map +1 -0
- package/dist/esm/{chunk-JJM6ELMS.mjs → chunk-ILUFGYLO.mjs} +2 -2
- package/dist/esm/chunk-IMTC3J2M.mjs +2 -0
- package/dist/esm/chunk-IMTC3J2M.mjs.map +1 -0
- package/dist/esm/chunk-IMYNN4TW.mjs +2 -0
- package/dist/esm/chunk-IMYNN4TW.mjs.map +1 -0
- package/dist/esm/{chunk-DOQV5BSA.mjs → chunk-IOHESHLR.mjs} +2 -2
- package/dist/esm/{chunk-NBNZ53ZV.mjs → chunk-JNNFNYDO.mjs} +2 -2
- package/dist/esm/{chunk-2UXW3EB7.mjs → chunk-K233I26C.mjs} +2 -2
- package/dist/esm/{chunk-VV4HCOJQ.mjs → chunk-KK5HUWF6.mjs} +2 -2
- package/dist/esm/chunk-KSLLV3ZC.mjs +2 -0
- package/dist/esm/chunk-KSLLV3ZC.mjs.map +1 -0
- package/dist/esm/{chunk-67ZVDKJF.mjs → chunk-L6KVC7CJ.mjs} +2 -2
- package/dist/esm/{chunk-Q4C4U6I4.mjs → chunk-LQOSHBB7.mjs} +2 -2
- package/dist/esm/{chunk-XKUIMGKU.mjs → chunk-LS3IDL2N.mjs} +2 -2
- package/dist/esm/{chunk-2N5KYALM.mjs → chunk-MAWGZICD.mjs} +2 -2
- package/dist/esm/{chunk-S7RZGC56.mjs → chunk-MFLHAVIW.mjs} +2 -2
- package/dist/esm/chunk-OLGEN23M.mjs +2 -0
- package/dist/esm/chunk-OLGEN23M.mjs.map +1 -0
- package/dist/esm/{chunk-MCLYDS3O.mjs → chunk-ONGH5DXZ.mjs} +2 -2
- package/dist/esm/chunk-OPD5EKOA.mjs +2 -0
- package/dist/esm/chunk-OPD5EKOA.mjs.map +1 -0
- package/dist/esm/{chunk-4ZYPDCSP.mjs → chunk-P5CM4C2G.mjs} +2 -2
- package/dist/esm/chunk-PC25RPDV.mjs +2 -0
- package/dist/esm/chunk-PC25RPDV.mjs.map +1 -0
- package/dist/esm/{chunk-N6YTF76Q.mjs → chunk-PDAWVDI7.mjs} +2 -2
- package/dist/esm/chunk-PIPDQFL2.mjs +2 -0
- package/dist/esm/chunk-PIPDQFL2.mjs.map +1 -0
- package/dist/esm/{chunk-43GCGE6C.mjs → chunk-PWGTRRSJ.mjs} +2 -2
- package/dist/esm/{chunk-P7A5RILV.mjs → chunk-PYY2RXFP.mjs} +2 -2
- package/dist/esm/chunk-PYY2RXFP.mjs.map +1 -0
- package/dist/esm/chunk-QUJM5W4L.mjs +2 -0
- package/dist/esm/chunk-QUJM5W4L.mjs.map +1 -0
- package/dist/esm/{chunk-2FBJWTJD.mjs → chunk-QYJKCRVA.mjs} +2 -2
- package/dist/esm/chunk-R6QCPXQG.mjs +2 -0
- package/dist/esm/chunk-R6QCPXQG.mjs.map +1 -0
- package/dist/esm/{chunk-6YHDZLRN.mjs → chunk-RDPWCN4B.mjs} +2 -2
- package/dist/esm/{chunk-MT2RJ7H3.mjs → chunk-RIINVEZA.mjs} +2 -2
- package/dist/esm/{chunk-EBMEXURY.mjs → chunk-RXHER6EA.mjs} +2 -2
- package/dist/esm/chunk-SJDHW55X.mjs +2 -0
- package/dist/esm/chunk-SJDHW55X.mjs.map +1 -0
- package/dist/esm/{chunk-UC23V7PU.mjs → chunk-T7X4GZDU.mjs} +2 -2
- package/dist/esm/{chunk-QHEKBHNU.mjs → chunk-TH5JCPN2.mjs} +2 -2
- package/dist/esm/{chunk-ORMOQWWH.mjs → chunk-TKXEVD7A.mjs} +2 -2
- package/dist/esm/{chunk-FN4C3CKC.mjs → chunk-TTY5GFMN.mjs} +2 -2
- package/dist/esm/chunk-TWETGZ3W.mjs +2 -0
- package/dist/esm/chunk-TWETGZ3W.mjs.map +1 -0
- package/dist/esm/{chunk-E5HGSOG2.mjs → chunk-U4DEYWFT.mjs} +2 -2
- package/dist/esm/chunk-UIRAXHDH.mjs +1 -0
- package/dist/esm/chunk-UIRAXHDH.mjs.map +1 -0
- package/dist/esm/{chunk-OROPNHRY.mjs → chunk-UJJGIPOA.mjs} +2 -2
- package/dist/esm/{chunk-CWKNJZB6.mjs → chunk-US2HZFOM.mjs} +2 -2
- package/dist/esm/{chunk-XY43TPRH.mjs → chunk-VDYUMBOT.mjs} +2 -2
- package/dist/esm/chunk-VHY6ZATX.mjs +2 -0
- package/dist/esm/chunk-VHY6ZATX.mjs.map +1 -0
- package/dist/esm/chunk-VWZEJTGP.mjs +4 -0
- package/dist/esm/chunk-VWZEJTGP.mjs.map +1 -0
- package/dist/esm/{chunk-WUWPN7XV.mjs → chunk-W2C5KRUQ.mjs} +2 -2
- package/dist/esm/{chunk-OR6GFWLG.mjs → chunk-W4SMZ6IW.mjs} +2 -2
- package/dist/esm/chunk-WFKPVKU3.mjs +2 -0
- package/dist/esm/chunk-WFKPVKU3.mjs.map +1 -0
- package/dist/esm/{chunk-5VMAJTTV.mjs → chunk-WHVCUVZP.mjs} +2 -2
- package/dist/esm/{chunk-WQRGDSPD.mjs → chunk-WLDYBSOG.mjs} +2 -2
- package/dist/esm/chunk-XRVZAEQO.mjs +2 -0
- package/dist/esm/chunk-XRVZAEQO.mjs.map +1 -0
- package/dist/esm/chunk-XSBUL2WP.mjs +2 -0
- package/dist/esm/chunk-XSBUL2WP.mjs.map +1 -0
- package/dist/esm/{chunk-BGSEBFFC.mjs → chunk-XW3BXTCZ.mjs} +2 -2
- package/dist/esm/{chunk-6CXMDJQR.mjs → chunk-Y65PKZLK.mjs} +2 -2
- package/dist/esm/{chunk-NWLJ6RW7.mjs → chunk-YAGIE4GN.mjs} +2 -2
- package/dist/esm/{chunk-M77M6NSB.mjs → chunk-YLUULY6G.mjs} +2 -2
- package/dist/esm/{chunk-5EBUWO2M.mjs → chunk-YWSDONJJ.mjs} +2 -2
- package/dist/esm/{chunk-V6VPMNWJ.mjs → chunk-YXYYII5S.mjs} +2 -2
- package/dist/esm/{chunk-XTOIL6MB.mjs → chunk-ZD2TY5N3.mjs} +2 -2
- package/dist/esm/{chunk-FIEMUPXF.mjs → chunk-ZS2IVRHT.mjs} +2 -2
- package/dist/esm/cli/index.d.mts +1 -0
- package/dist/esm/cli/index.mjs +1 -1
- package/dist/esm/cli/localNode.mjs +1 -1
- package/dist/esm/cli/move.d.mts +1 -0
- package/dist/esm/client/core.d.mts +37 -1
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/get.d.mts +36 -1
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/index.d.mts +4 -3
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/post.d.mts +35 -1
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/core/account/index.d.mts +1 -0
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/utils/address.d.mts +1 -0
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/index.d.mts +1 -0
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/accountAddress.d.mts +1 -0
- package/dist/esm/core/accountAddress.mjs +1 -1
- package/dist/esm/core/authenticationKey.d.mts +1 -0
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/crypto/abstraction.d.mts +30 -0
- package/dist/esm/core/crypto/abstraction.mjs +2 -0
- package/dist/esm/core/crypto/abstraction.mjs.map +1 -0
- package/dist/esm/core/crypto/ed25519.d.mts +1 -0
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +1 -0
- package/dist/esm/core/crypto/ephemeral.mjs +1 -1
- package/dist/esm/core/crypto/federatedKeyless.d.mts +1 -0
- package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
- package/dist/esm/core/crypto/index.d.mts +2 -1
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/keyless.d.mts +1 -0
- package/dist/esm/core/crypto/keyless.mjs +1 -1
- package/dist/esm/core/crypto/multiEd25519.d.mts +18 -2
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiKey.d.mts +34 -15
- package/dist/esm/core/crypto/multiKey.mjs +1 -1
- package/dist/esm/core/crypto/privateKey.d.mts +1 -0
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/proof.d.mts +1 -0
- package/dist/esm/core/crypto/proof.mjs +1 -1
- package/dist/esm/core/crypto/publicKey.d.mts +1 -0
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.d.mts +1 -0
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/signature.d.mts +1 -0
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.d.mts +1 -0
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/crypto/utils.d.mts +1 -0
- package/dist/esm/core/crypto/utils.mjs +1 -1
- package/dist/esm/core/hex.d.mts +1 -0
- package/dist/esm/core/hex.mjs +1 -1
- package/dist/esm/core/index.d.mts +2 -1
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/errors/index.d.mts +1 -0
- package/dist/esm/errors/index.mjs +1 -1
- package/dist/esm/index.d.mts +16 -9
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal/abstraction.d.mts +55 -0
- package/dist/esm/internal/abstraction.mjs +2 -0
- package/dist/esm/internal/abstraction.mjs.map +1 -0
- package/dist/esm/internal/account.d.mts +1 -0
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/ans.d.mts +1 -0
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/coin.d.mts +1 -0
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/digitalAsset.d.mts +1 -0
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/event.d.mts +1 -0
- package/dist/esm/internal/event.mjs +1 -1
- package/dist/esm/internal/experimental.d.mts +52 -0
- package/dist/esm/internal/experimental.mjs +2 -0
- package/dist/esm/internal/experimental.mjs.map +1 -0
- package/dist/esm/internal/faucet.d.mts +1 -0
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.d.mts +1 -0
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/general.d.mts +1 -0
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/keyless.d.mts +1 -0
- package/dist/esm/internal/keyless.mjs +1 -1
- package/dist/esm/internal/object.d.mts +1 -0
- package/dist/esm/internal/object.mjs +1 -1
- package/dist/esm/internal/staking.d.mts +1 -0
- package/dist/esm/internal/staking.mjs +1 -1
- package/dist/esm/internal/table.d.mts +1 -0
- package/dist/esm/internal/table.mjs +1 -1
- package/dist/esm/internal/transaction.d.mts +1 -0
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.d.mts +1 -0
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/view.d.mts +1 -0
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/transactions/authenticator/account.d.mts +12 -3
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.d.mts +2 -1
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.d.mts +3 -2
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/index.d.mts +6 -4
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/instances/chainId.d.mts +1 -0
- package/dist/esm/transactions/instances/chainId.mjs +1 -1
- package/dist/esm/transactions/instances/identifier.d.mts +1 -0
- package/dist/esm/transactions/instances/identifier.mjs +1 -1
- package/dist/esm/transactions/instances/index.d.mts +1 -0
- package/dist/esm/transactions/instances/index.mjs +1 -1
- package/dist/esm/transactions/instances/moduleId.d.mts +1 -0
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +1 -0
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.d.mts +1 -0
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +1 -0
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.d.mts +5 -4
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.d.mts +1 -0
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/transactionArgument.d.mts +1 -0
- package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -0
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.d.mts +1 -0
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/index.d.mts +1 -0
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.d.mts +1 -0
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/scriptComposer/index.d.mts +53 -0
- package/dist/esm/transactions/scriptComposer/index.mjs +2 -0
- package/dist/esm/transactions/scriptComposer/index.mjs.map +1 -0
- package/dist/esm/transactions/transactionBuilder/helpers.d.mts +3 -17
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.d.mts +3 -2
- package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +23 -2
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +1 -0
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +1 -0
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.d.mts +1 -0
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.d.mts +1 -0
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/transactions/types.d.mts +10 -1
- package/dist/esm/types/abstraction.d.mts +8 -0
- package/dist/esm/types/abstraction.mjs +2 -0
- package/dist/esm/types/abstraction.mjs.map +1 -0
- package/dist/esm/types/index.d.mts +1 -0
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/types/types.d.mts +22 -1
- package/dist/esm/types/types.mjs +1 -1
- package/dist/esm/utils/helpers.d.mts +19 -2
- package/dist/esm/utils/helpers.mjs +1 -1
- package/dist/esm/utils/index.d.mts +2 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.d.mts +1 -0
- 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 +21 -19
- package/src/account/AbstractedAccount.ts +111 -0
- package/src/account/MultiEd25519Account.ts +154 -0
- package/src/account/MultiKeyAccount.ts +1 -2
- package/src/account/index.ts +2 -0
- package/src/api/account/abstraction.ts +239 -0
- package/src/api/account.ts +7 -2
- package/src/api/aptos.ts +9 -0
- package/src/api/aptosConfig.ts +2 -2
- package/src/api/experimental.ts +64 -0
- package/src/api/transactionSubmission/build.ts +85 -2
- package/src/client/core.ts +120 -0
- package/src/client/get.ts +73 -1
- package/src/client/post.ts +70 -1
- package/src/core/crypto/abstraction.ts +47 -0
- package/src/core/crypto/multiEd25519.ts +19 -3
- package/src/core/crypto/multiKey.ts +76 -52
- package/src/core/hex.ts +3 -1
- package/src/internal/abstraction.ts +79 -0
- package/src/internal/experimental.ts +55 -0
- package/src/internal/view.ts +4 -4
- package/src/transactions/authenticator/account.ts +52 -1
- package/src/transactions/index.ts +1 -0
- package/src/transactions/scriptComposer/index.ts +87 -0
- package/src/transactions/transactionBuilder/helpers.ts +1 -22
- package/src/transactions/transactionBuilder/remoteAbi.ts +62 -1
- package/src/transactions/transactionBuilder/transactionBuilder.ts +9 -1
- package/src/transactions/types.ts +11 -0
- package/src/types/abstraction.ts +6 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +21 -0
- package/src/utils/helpers.ts +28 -1
- package/src/version.ts +1 -1
- package/dist/common/chunk-IHUCZKG2.js +0 -2
- package/dist/common/chunk-IHUCZKG2.js.map +0 -1
- package/dist/esm/chunk-4YLUM62M.mjs +0 -2
- package/dist/esm/chunk-5PXDPMF2.mjs +0 -4
- package/dist/esm/chunk-5PXDPMF2.mjs.map +0 -1
- package/dist/esm/chunk-6IEZPA4H.mjs +0 -2
- package/dist/esm/chunk-6IEZPA4H.mjs.map +0 -1
- package/dist/esm/chunk-6YWYAVFS.mjs +0 -2
- package/dist/esm/chunk-6YWYAVFS.mjs.map +0 -1
- package/dist/esm/chunk-77AEKF7K.mjs +0 -2
- package/dist/esm/chunk-AFEHO5PP.mjs +0 -2
- package/dist/esm/chunk-AFEHO5PP.mjs.map +0 -1
- package/dist/esm/chunk-DAFSKSZ5.mjs +0 -2
- package/dist/esm/chunk-DAFSKSZ5.mjs.map +0 -1
- package/dist/esm/chunk-DPW6ELCQ.mjs +0 -2
- package/dist/esm/chunk-EMURYYVO.mjs +0 -2
- package/dist/esm/chunk-F2ZTBAJJ.mjs +0 -2
- package/dist/esm/chunk-F2ZTBAJJ.mjs.map +0 -1
- package/dist/esm/chunk-FD6FGKYY.mjs +0 -1
- package/dist/esm/chunk-GP4TLDVZ.mjs +0 -1
- package/dist/esm/chunk-HBH2NQKU.mjs +0 -2
- package/dist/esm/chunk-HBH2NQKU.mjs.map +0 -1
- package/dist/esm/chunk-I5OYNCZS.mjs +0 -1
- package/dist/esm/chunk-JBEUUULP.mjs +0 -2
- package/dist/esm/chunk-JBEUUULP.mjs.map +0 -1
- package/dist/esm/chunk-KVM2SGSF.mjs +0 -2
- package/dist/esm/chunk-KVM2SGSF.mjs.map +0 -1
- package/dist/esm/chunk-MLSAZJZK.mjs +0 -2
- package/dist/esm/chunk-MLSAZJZK.mjs.map +0 -1
- package/dist/esm/chunk-MWBRD43V.mjs.map +0 -1
- package/dist/esm/chunk-OSBRPVVI.mjs +0 -2
- package/dist/esm/chunk-OSBRPVVI.mjs.map +0 -1
- package/dist/esm/chunk-P7A5RILV.mjs.map +0 -1
- package/dist/esm/chunk-QHC5DKVZ.mjs +0 -2
- package/dist/esm/chunk-QHC5DKVZ.mjs.map +0 -1
- package/dist/esm/chunk-S4LZMY2L.mjs +0 -2
- package/dist/esm/chunk-S4LZMY2L.mjs.map +0 -1
- package/dist/esm/chunk-STY74NUA.mjs +0 -2
- package/dist/esm/chunk-STY74NUA.mjs.map +0 -1
- package/dist/esm/chunk-U2PRGW4O.mjs +0 -2
- package/dist/esm/chunk-U2PRGW4O.mjs.map +0 -1
- package/dist/esm/chunk-VVXBVJXD.mjs +0 -2
- package/dist/esm/chunk-VVXBVJXD.mjs.map +0 -1
- package/dist/esm/chunk-WCMW2L3P.mjs +0 -2
- package/dist/esm/chunk-XJJVJOX5.mjs +0 -2
- /package/dist/esm/{chunk-FD6FGKYY.mjs.map → account/AbstractedAccount.mjs.map} +0 -0
- /package/dist/esm/{chunk-GP4TLDVZ.mjs.map → account/MultiEd25519Account.mjs.map} +0 -0
- /package/dist/esm/{chunk-I5OYNCZS.mjs.map → api/account/abstraction.mjs.map} +0 -0
- /package/dist/esm/{chunk-7IY3DTEF.mjs.map → chunk-27ESCVVC.mjs.map} +0 -0
- /package/dist/esm/{chunk-VUIHJIMX.mjs.map → chunk-2TRQERBL.mjs.map} +0 -0
- /package/dist/esm/{chunk-XJJVJOX5.mjs.map → chunk-2V636AYW.mjs.map} +0 -0
- /package/dist/esm/{chunk-XTJOA5QN.mjs.map → chunk-2YKERRHD.mjs.map} +0 -0
- /package/dist/esm/{chunk-5YWH3XPN.mjs.map → chunk-3LDVJ2YK.mjs.map} +0 -0
- /package/dist/esm/{chunk-ONTWK5FU.mjs.map → chunk-44EHAKKW.mjs.map} +0 -0
- /package/dist/esm/{chunk-OEQ2U7GK.mjs.map → chunk-53IBOHXB.mjs.map} +0 -0
- /package/dist/esm/{chunk-YCQUYDZI.mjs.map → chunk-5H5D6QVX.mjs.map} +0 -0
- /package/dist/esm/{chunk-G4O6FXCF.mjs.map → chunk-5W2ERBGY.mjs.map} +0 -0
- /package/dist/esm/{chunk-NYETBDSR.mjs.map → chunk-67A5U2X6.mjs.map} +0 -0
- /package/dist/esm/{chunk-AXYARCYT.mjs.map → chunk-6IJZRG3U.mjs.map} +0 -0
- /package/dist/esm/{chunk-N4DM5FYH.mjs.map → chunk-6KZT3KFZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-2WCATZVL.mjs.map → chunk-7A2KHJ3D.mjs.map} +0 -0
- /package/dist/esm/{chunk-ROT6S6BM.mjs.map → chunk-7CRQNXR5.mjs.map} +0 -0
- /package/dist/esm/{chunk-FZD5RWSZ.mjs.map → chunk-7OUPEQRN.mjs.map} +0 -0
- /package/dist/esm/{chunk-WCMW2L3P.mjs.map → chunk-A3VO773Q.mjs.map} +0 -0
- /package/dist/esm/{chunk-OHZURQPY.mjs.map → chunk-AEGA5N2W.mjs.map} +0 -0
- /package/dist/esm/{chunk-BI3BTSUB.mjs.map → chunk-AIPHJFJL.mjs.map} +0 -0
- /package/dist/esm/{chunk-4EUS4E6S.mjs.map → chunk-B23VO5TB.mjs.map} +0 -0
- /package/dist/esm/{chunk-4YLUM62M.mjs.map → chunk-BMPHQ3E7.mjs.map} +0 -0
- /package/dist/esm/{chunk-DYATTONT.mjs.map → chunk-BQYKFATL.mjs.map} +0 -0
- /package/dist/esm/{chunk-QQEK7WVP.mjs.map → chunk-CPAAEEF4.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZAIVZDOL.mjs.map → chunk-CPFQUFVD.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZPV7HPA4.mjs.map → chunk-DAJFOJ3L.mjs.map} +0 -0
- /package/dist/esm/{chunk-DPW6ELCQ.mjs.map → chunk-DOVH6HPL.mjs.map} +0 -0
- /package/dist/esm/{chunk-KOORZTHC.mjs.map → chunk-E5PAUR4N.mjs.map} +0 -0
- /package/dist/esm/{chunk-E7JDVKFY.mjs.map → chunk-EGCL6KA6.mjs.map} +0 -0
- /package/dist/esm/{chunk-TOBQ5UE6.mjs.map → chunk-ERLDXTIY.mjs.map} +0 -0
- /package/dist/esm/{chunk-X6UNY6YM.mjs.map → chunk-FOEPRHAC.mjs.map} +0 -0
- /package/dist/esm/{chunk-XYB6KYKW.mjs.map → chunk-G5F5ZOH5.mjs.map} +0 -0
- /package/dist/esm/{chunk-AZWVCBK2.mjs.map → chunk-GI4AR6DQ.mjs.map} +0 -0
- /package/dist/esm/{chunk-3RCAJICY.mjs.map → chunk-GRRBXHVG.mjs.map} +0 -0
- /package/dist/esm/{chunk-5EYTHMRZ.mjs.map → chunk-GTVMJJQQ.mjs.map} +0 -0
- /package/dist/esm/{chunk-2TJ6OTVD.mjs.map → chunk-GU4MD5ST.mjs.map} +0 -0
- /package/dist/esm/{chunk-EMURYYVO.mjs.map → chunk-H4YAL2IL.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZGVNZE7J.mjs.map → chunk-HBTJN4RJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-IDTLNF4M.mjs.map → chunk-HHWJHOFZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-XZ4JRYCE.mjs.map → chunk-HKL4MFNL.mjs.map} +0 -0
- /package/dist/esm/{chunk-IEUEMBFD.mjs.map → chunk-HVIF6DW6.mjs.map} +0 -0
- /package/dist/esm/{chunk-JJM6ELMS.mjs.map → chunk-ILUFGYLO.mjs.map} +0 -0
- /package/dist/esm/{chunk-DOQV5BSA.mjs.map → chunk-IOHESHLR.mjs.map} +0 -0
- /package/dist/esm/{chunk-NBNZ53ZV.mjs.map → chunk-JNNFNYDO.mjs.map} +0 -0
- /package/dist/esm/{chunk-2UXW3EB7.mjs.map → chunk-K233I26C.mjs.map} +0 -0
- /package/dist/esm/{chunk-VV4HCOJQ.mjs.map → chunk-KK5HUWF6.mjs.map} +0 -0
- /package/dist/esm/{chunk-67ZVDKJF.mjs.map → chunk-L6KVC7CJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-Q4C4U6I4.mjs.map → chunk-LQOSHBB7.mjs.map} +0 -0
- /package/dist/esm/{chunk-XKUIMGKU.mjs.map → chunk-LS3IDL2N.mjs.map} +0 -0
- /package/dist/esm/{chunk-2N5KYALM.mjs.map → chunk-MAWGZICD.mjs.map} +0 -0
- /package/dist/esm/{chunk-S7RZGC56.mjs.map → chunk-MFLHAVIW.mjs.map} +0 -0
- /package/dist/esm/{chunk-MCLYDS3O.mjs.map → chunk-ONGH5DXZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-4ZYPDCSP.mjs.map → chunk-P5CM4C2G.mjs.map} +0 -0
- /package/dist/esm/{chunk-N6YTF76Q.mjs.map → chunk-PDAWVDI7.mjs.map} +0 -0
- /package/dist/esm/{chunk-43GCGE6C.mjs.map → chunk-PWGTRRSJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-2FBJWTJD.mjs.map → chunk-QYJKCRVA.mjs.map} +0 -0
- /package/dist/esm/{chunk-6YHDZLRN.mjs.map → chunk-RDPWCN4B.mjs.map} +0 -0
- /package/dist/esm/{chunk-MT2RJ7H3.mjs.map → chunk-RIINVEZA.mjs.map} +0 -0
- /package/dist/esm/{chunk-EBMEXURY.mjs.map → chunk-RXHER6EA.mjs.map} +0 -0
- /package/dist/esm/{chunk-UC23V7PU.mjs.map → chunk-T7X4GZDU.mjs.map} +0 -0
- /package/dist/esm/{chunk-QHEKBHNU.mjs.map → chunk-TH5JCPN2.mjs.map} +0 -0
- /package/dist/esm/{chunk-ORMOQWWH.mjs.map → chunk-TKXEVD7A.mjs.map} +0 -0
- /package/dist/esm/{chunk-FN4C3CKC.mjs.map → chunk-TTY5GFMN.mjs.map} +0 -0
- /package/dist/esm/{chunk-E5HGSOG2.mjs.map → chunk-U4DEYWFT.mjs.map} +0 -0
- /package/dist/esm/{chunk-OROPNHRY.mjs.map → chunk-UJJGIPOA.mjs.map} +0 -0
- /package/dist/esm/{chunk-CWKNJZB6.mjs.map → chunk-US2HZFOM.mjs.map} +0 -0
- /package/dist/esm/{chunk-XY43TPRH.mjs.map → chunk-VDYUMBOT.mjs.map} +0 -0
- /package/dist/esm/{chunk-WUWPN7XV.mjs.map → chunk-W2C5KRUQ.mjs.map} +0 -0
- /package/dist/esm/{chunk-OR6GFWLG.mjs.map → chunk-W4SMZ6IW.mjs.map} +0 -0
- /package/dist/esm/{chunk-5VMAJTTV.mjs.map → chunk-WHVCUVZP.mjs.map} +0 -0
- /package/dist/esm/{chunk-WQRGDSPD.mjs.map → chunk-WLDYBSOG.mjs.map} +0 -0
- /package/dist/esm/{chunk-BGSEBFFC.mjs.map → chunk-XW3BXTCZ.mjs.map} +0 -0
- /package/dist/esm/{chunk-6CXMDJQR.mjs.map → chunk-Y65PKZLK.mjs.map} +0 -0
- /package/dist/esm/{chunk-NWLJ6RW7.mjs.map → chunk-YAGIE4GN.mjs.map} +0 -0
- /package/dist/esm/{chunk-M77M6NSB.mjs.map → chunk-YLUULY6G.mjs.map} +0 -0
- /package/dist/esm/{chunk-5EBUWO2M.mjs.map → chunk-YWSDONJJ.mjs.map} +0 -0
- /package/dist/esm/{chunk-V6VPMNWJ.mjs.map → chunk-YXYYII5S.mjs.map} +0 -0
- /package/dist/esm/{chunk-XTOIL6MB.mjs.map → chunk-ZD2TY5N3.mjs.map} +0 -0
- /package/dist/esm/{chunk-FIEMUPXF.mjs.map → chunk-ZS2IVRHT.mjs.map} +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { sha3_256 } from "@noble/hashes/sha3";
|
|
2
|
+
import { AccountAddress } from "../core";
|
|
3
|
+
import { AbstractPublicKey, AbstractSignature } from "../core/crypto/abstraction";
|
|
4
|
+
import { SigningScheme, HexInput } from "../types";
|
|
5
|
+
import { Account } from "./Account";
|
|
6
|
+
import { AnyRawTransaction } from "../transactions/types";
|
|
7
|
+
import { generateSigningMessageForTransaction } from "../transactions/transactionBuilder/signingMessage";
|
|
8
|
+
import { AccountAuthenticatorAbstraction } from "../transactions/authenticator/account";
|
|
9
|
+
import { Ed25519Account } from "./Ed25519Account";
|
|
10
|
+
import { Serializer } from "../bcs/serializer";
|
|
11
|
+
import { isValidFunctionInfo } from "../utils/helpers";
|
|
12
|
+
|
|
13
|
+
type AbstractedAccountConstructorArgs = {
|
|
14
|
+
/**
|
|
15
|
+
* The account address of the account.
|
|
16
|
+
*/
|
|
17
|
+
accountAddress: AccountAddress;
|
|
18
|
+
/**
|
|
19
|
+
* The signer function signs transactions and returns the `authenticator` bytes in the `AbstractionAuthData`.
|
|
20
|
+
*
|
|
21
|
+
* @param digest - The SHA256 hash of the transaction signing message
|
|
22
|
+
* @returns The `authenticator` bytes that can be used to verify the signature.
|
|
23
|
+
*/
|
|
24
|
+
signer: (digest: HexInput) => HexInput;
|
|
25
|
+
/**
|
|
26
|
+
* The authentication function that will be used to verify the signature.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const authenticationFunction = `${accountAddress}::permissioned_delegation::authenticate`;
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
authenticationFunction: string;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export class AbstractedAccount extends Account {
|
|
37
|
+
public readonly publicKey: AbstractPublicKey;
|
|
38
|
+
|
|
39
|
+
readonly accountAddress: AccountAddress;
|
|
40
|
+
|
|
41
|
+
readonly authenticationFunction: string;
|
|
42
|
+
|
|
43
|
+
readonly signingScheme = SigningScheme.SingleKey;
|
|
44
|
+
|
|
45
|
+
constructor({ signer, accountAddress, authenticationFunction }: AbstractedAccountConstructorArgs) {
|
|
46
|
+
super();
|
|
47
|
+
|
|
48
|
+
if (!isValidFunctionInfo(authenticationFunction)) {
|
|
49
|
+
throw new Error(`Invalid authentication function ${authenticationFunction} passed into AbstractedAccount`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.authenticationFunction = authenticationFunction;
|
|
53
|
+
this.accountAddress = accountAddress;
|
|
54
|
+
this.publicKey = new AbstractPublicKey(this.accountAddress);
|
|
55
|
+
this.sign = (digest: HexInput) => new AbstractSignature(signer(digest));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Creates an `AbstractedAccount` from an `Ed25519Account` that has a permissioned signer function and
|
|
60
|
+
* using the `0x1::permissioned_delegation::authenticate` function to verify the signature.
|
|
61
|
+
*
|
|
62
|
+
* @param signer - The `Ed25519Account` that can be used to sign permissioned transactions.
|
|
63
|
+
* @returns The `AbstractedAccount`
|
|
64
|
+
*/
|
|
65
|
+
public static fromPermissionedSigner({
|
|
66
|
+
signer,
|
|
67
|
+
accountAddress,
|
|
68
|
+
}: {
|
|
69
|
+
signer: Ed25519Account;
|
|
70
|
+
accountAddress?: AccountAddress;
|
|
71
|
+
}) {
|
|
72
|
+
return new AbstractedAccount({
|
|
73
|
+
signer: (digest: HexInput) => {
|
|
74
|
+
const serializer = new Serializer();
|
|
75
|
+
signer.publicKey.serialize(serializer);
|
|
76
|
+
signer.sign(digest).serialize(serializer);
|
|
77
|
+
return serializer.toUint8Array();
|
|
78
|
+
},
|
|
79
|
+
accountAddress: accountAddress ?? signer.accountAddress,
|
|
80
|
+
authenticationFunction: "0x1::permissioned_delegation::authenticate",
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
signWithAuthenticator(message: HexInput): AccountAuthenticatorAbstraction {
|
|
85
|
+
return new AccountAuthenticatorAbstraction(
|
|
86
|
+
this.authenticationFunction,
|
|
87
|
+
sha3_256(message),
|
|
88
|
+
this.sign(sha3_256(message)).toUint8Array(),
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticatorAbstraction {
|
|
93
|
+
return this.signWithAuthenticator(generateSigningMessageForTransaction(transaction));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
sign: (message: HexInput) => AbstractSignature;
|
|
97
|
+
|
|
98
|
+
signTransaction(transaction: AnyRawTransaction): AbstractSignature {
|
|
99
|
+
return this.sign(generateSigningMessageForTransaction(transaction));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Update the signer function for the account. This can be done after asynchronous operations are complete
|
|
104
|
+
* to update the context of the signer function.
|
|
105
|
+
*
|
|
106
|
+
* @param signer - The new signer function to use for the account.
|
|
107
|
+
*/
|
|
108
|
+
public setSigner(signer: (digest: HexInput) => HexInput): void {
|
|
109
|
+
this.sign = (digest: HexInput) => new AbstractSignature(signer(digest));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { AccountAddress, AccountAddressInput } from "../core/accountAddress";
|
|
2
|
+
import { Ed25519PrivateKey } from "../core/crypto";
|
|
3
|
+
import { MultiEd25519PublicKey, MultiEd25519Signature } from "../core/crypto/multiEd25519";
|
|
4
|
+
import { AccountAuthenticatorMultiEd25519 } from "../transactions/authenticator/account";
|
|
5
|
+
import { generateSigningMessageForTransaction } from "../transactions/transactionBuilder/signingMessage";
|
|
6
|
+
import { AnyRawTransaction } from "../transactions/types";
|
|
7
|
+
import { HexInput, SigningScheme } from "../types";
|
|
8
|
+
import type { Account } from "./Account";
|
|
9
|
+
|
|
10
|
+
export interface MultiEd25519SignerConstructorArgs {
|
|
11
|
+
publicKey: MultiEd25519PublicKey;
|
|
12
|
+
signers: Ed25519PrivateKey[];
|
|
13
|
+
address?: AccountAddressInput;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface VerifyMultiEd25519SignatureArgs {
|
|
17
|
+
message: HexInput;
|
|
18
|
+
signature: MultiEd25519Signature;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Signer implementation for the Multi-Ed25519 authentication scheme.
|
|
23
|
+
*
|
|
24
|
+
* Note: This authentication scheme is a legacy authentication scheme. Prefer using MultiKeyAccounts as a
|
|
25
|
+
* MultiKeyAccount can support any type of signer, not just Ed25519. Generating a signer instance does not
|
|
26
|
+
* create the account on-chain.
|
|
27
|
+
*/
|
|
28
|
+
export class MultiEd25519Account implements Account {
|
|
29
|
+
readonly publicKey: MultiEd25519PublicKey;
|
|
30
|
+
|
|
31
|
+
readonly accountAddress: AccountAddress;
|
|
32
|
+
|
|
33
|
+
readonly signingScheme = SigningScheme.MultiEd25519;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The signers used to sign messages. These signers should correspond to public keys in the
|
|
37
|
+
* MultiEd25519Account. The number of signers should be equal to this.publicKey.threshold.
|
|
38
|
+
* @group Implementation
|
|
39
|
+
* @category Account (On-Chain Model)
|
|
40
|
+
*/
|
|
41
|
+
readonly signers: Ed25519PrivateKey[];
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* An array of indices where for signer[i], signerIndicies[i] is the index of the corresponding public key in
|
|
45
|
+
* publicKey.publicKeys. Used to derive the right public key to use for verification.
|
|
46
|
+
* @group Implementation
|
|
47
|
+
* @category Account (On-Chain Model)
|
|
48
|
+
*/
|
|
49
|
+
readonly signerIndices: number[];
|
|
50
|
+
|
|
51
|
+
readonly signaturesBitmap: Uint8Array;
|
|
52
|
+
|
|
53
|
+
// region Constructors
|
|
54
|
+
|
|
55
|
+
constructor(args: MultiEd25519SignerConstructorArgs) {
|
|
56
|
+
const { signers, publicKey, address } = args;
|
|
57
|
+
this.publicKey = publicKey;
|
|
58
|
+
this.accountAddress = address ? AccountAddress.from(address) : this.publicKey.authKey().derivedAddress();
|
|
59
|
+
|
|
60
|
+
if (publicKey.threshold > signers.length) {
|
|
61
|
+
throw new Error(
|
|
62
|
+
// eslint-disable-next-line max-len
|
|
63
|
+
`Not enough signers provided to satisfy the required signatures. Need ${publicKey.threshold} signers, but only ${signers.length} provided`,
|
|
64
|
+
);
|
|
65
|
+
} else if (publicKey.threshold < signers.length) {
|
|
66
|
+
throw new Error(
|
|
67
|
+
// eslint-disable-next-line max-len
|
|
68
|
+
`More signers provided than required. Need ${publicKey.threshold} signers, but ${signers.length} provided`,
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// For each signer, find its corresponding position in the public keys array
|
|
73
|
+
const bitPositions: number[] = [];
|
|
74
|
+
for (const signer of signers) {
|
|
75
|
+
bitPositions.push(this.publicKey.getIndex(signer.publicKey()));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Create pairs of [signer, position] and sort them by position
|
|
79
|
+
// This sorting is critical because:
|
|
80
|
+
// 1. The on-chain verification expects signatures to be in ascending order by bit position
|
|
81
|
+
// 2. The bitmap must match the order of signatures when verifying
|
|
82
|
+
const signersAndBitPosition: [Ed25519PrivateKey, number][] = signers.map((signer, index) => [
|
|
83
|
+
signer,
|
|
84
|
+
bitPositions[index],
|
|
85
|
+
]);
|
|
86
|
+
signersAndBitPosition.sort((a, b) => a[1] - b[1]);
|
|
87
|
+
|
|
88
|
+
// Extract the sorted signers and their positions into separate arrays
|
|
89
|
+
this.signers = signersAndBitPosition.map((value) => value[0]);
|
|
90
|
+
this.signerIndices = signersAndBitPosition.map((value) => value[1]);
|
|
91
|
+
|
|
92
|
+
// Create a bitmap representing which public keys from the MultiEd25519PublicKey are being used
|
|
93
|
+
// This bitmap is used during signature verification to identify which public keys
|
|
94
|
+
// should be used to verify each signature
|
|
95
|
+
this.signaturesBitmap = this.publicKey.createBitmap({ bits: bitPositions });
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// endregion
|
|
99
|
+
|
|
100
|
+
// region Account
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Verify the given message and signature with the public key.
|
|
104
|
+
*
|
|
105
|
+
* @param args.message raw message data in HexInput format
|
|
106
|
+
* @param args.signature signed message Signature
|
|
107
|
+
* @returns
|
|
108
|
+
*/
|
|
109
|
+
verifySignature(args: VerifyMultiEd25519SignatureArgs): boolean {
|
|
110
|
+
return this.publicKey.verifySignature(args);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Sign a message using the account's Ed25519 private key.
|
|
115
|
+
* @param message the signing message, as binary input
|
|
116
|
+
* @return the AccountAuthenticator containing the signature, together with the account's public key
|
|
117
|
+
*/
|
|
118
|
+
signWithAuthenticator(message: HexInput): AccountAuthenticatorMultiEd25519 {
|
|
119
|
+
return new AccountAuthenticatorMultiEd25519(this.publicKey, this.sign(message));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Sign a transaction using the account's Ed25519 private keys.
|
|
124
|
+
* @param transaction the raw transaction
|
|
125
|
+
* @return the AccountAuthenticator containing the signature of the transaction, together with the account's public key
|
|
126
|
+
*/
|
|
127
|
+
signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticatorMultiEd25519 {
|
|
128
|
+
return new AccountAuthenticatorMultiEd25519(this.publicKey, this.signTransaction(transaction));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Sign the given message using the account's Ed25519 private keys.
|
|
133
|
+
* @param message in HexInput format
|
|
134
|
+
* @returns MultiEd25519Signature
|
|
135
|
+
*/
|
|
136
|
+
sign(message: HexInput): MultiEd25519Signature {
|
|
137
|
+
const signatures = [];
|
|
138
|
+
for (const signer of this.signers) {
|
|
139
|
+
signatures.push(signer.sign(message));
|
|
140
|
+
}
|
|
141
|
+
return new MultiEd25519Signature({ signatures, bitmap: this.signaturesBitmap });
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Sign the given transaction using the available signing capabilities.
|
|
146
|
+
* @param transaction the transaction to be signed
|
|
147
|
+
* @returns Signature
|
|
148
|
+
*/
|
|
149
|
+
signTransaction(transaction: AnyRawTransaction): MultiEd25519Signature {
|
|
150
|
+
return this.sign(generateSigningMessageForTransaction(transaction));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// endregion
|
|
154
|
+
}
|
|
@@ -59,8 +59,7 @@ export class MultiKeyAccount implements Account, KeylessSigner {
|
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* The signers used to sign messages. These signers should correspond to public keys in the
|
|
62
|
-
* MultiKeyAccount's public key. The number of signers should be equal
|
|
63
|
-
* than this.publicKey.signaturesRequired
|
|
62
|
+
* MultiKeyAccount's public key. The number of signers should be equal to this.publicKey.signaturesRequired.
|
|
64
63
|
* @group Implementation
|
|
65
64
|
* @category Account (On-Chain Model)
|
|
66
65
|
*/
|
package/src/account/index.ts
CHANGED
|
@@ -6,4 +6,6 @@ export * from "./KeylessAccount";
|
|
|
6
6
|
export * from "./AbstractKeylessAccount";
|
|
7
7
|
export * from "./FederatedKeylessAccount";
|
|
8
8
|
export * from "./MultiKeyAccount";
|
|
9
|
+
export * from "./MultiEd25519Account";
|
|
9
10
|
export * from "./AccountUtils";
|
|
11
|
+
export * from "./AbstractedAccount";
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { AccountAddress, AccountAddressInput } from "../../core";
|
|
2
|
+
import {
|
|
3
|
+
addAuthenticationFunctionTransaction,
|
|
4
|
+
removeAuthenticationFunctionTransaction,
|
|
5
|
+
removeDispatchableAuthenticatorTransaction,
|
|
6
|
+
} from "../../internal/abstraction";
|
|
7
|
+
import { view } from "../../internal/view";
|
|
8
|
+
import { InputGenerateTransactionOptions, TypeTagAddress } from "../../transactions";
|
|
9
|
+
import { MoveFunctionId } from "../../types";
|
|
10
|
+
import { getFunctionParts } from "../../utils/helpers";
|
|
11
|
+
import { AptosConfig } from "../aptosConfig";
|
|
12
|
+
|
|
13
|
+
export class AccountAbstraction {
|
|
14
|
+
constructor(readonly config: AptosConfig) {}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Adds a dispatchable authentication function to the account.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const txn = await aptos.abstraction.addAuthenticationFunctionTransaction({
|
|
22
|
+
* accountAddress: alice.accountAddress,
|
|
23
|
+
* authenticationFunction: `${alice.accountAddress}::any_authenticator::authenticate`,
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* const txn = await aptos.signAndSubmitTransaction({ signer: alice, transaction});
|
|
27
|
+
* await aptos.waitForTransaction({ transactionHash: txn.hash });
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @param args.accountAddress - The account to add the authentication function to.
|
|
31
|
+
* @param args.authenticationFunction - The authentication function info to add.
|
|
32
|
+
* @param args.options - The options for the transaction.
|
|
33
|
+
* @returns A transaction to add the authentication function to the account.
|
|
34
|
+
*/
|
|
35
|
+
public async addAuthenticationFunctionTransaction(args: {
|
|
36
|
+
accountAddress: AccountAddressInput;
|
|
37
|
+
authenticationFunction: string;
|
|
38
|
+
options?: InputGenerateTransactionOptions;
|
|
39
|
+
}) {
|
|
40
|
+
const { accountAddress, authenticationFunction, options } = args;
|
|
41
|
+
return addAuthenticationFunctionTransaction({
|
|
42
|
+
aptosConfig: this.config,
|
|
43
|
+
authenticationFunction,
|
|
44
|
+
sender: accountAddress,
|
|
45
|
+
options,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Removes a dispatchable authentication function from the account.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* const txn = await aptos.abstraction.removeAuthenticationFunctionTransaction({
|
|
55
|
+
* accountAddress: alice.accountAddress,
|
|
56
|
+
* authenticationFunction: `${alice.accountAddress}::any_authenticator::authenticate`,
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* const txn = await aptos.signAndSubmitTransaction({ signer: alice, transaction: txn });
|
|
60
|
+
* await aptos.waitForTransaction({ transactionHash: txn.hash });
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @param args.accountAddress - The account to remove the authentication function from.
|
|
64
|
+
* @param args.authenticationFunction - The authentication function info to remove.
|
|
65
|
+
* @param args.options - The options for the transaction.
|
|
66
|
+
* @returns A transaction to remove the authentication function from the account.
|
|
67
|
+
*/
|
|
68
|
+
public async removeAuthenticationFunctionTransaction(args: {
|
|
69
|
+
accountAddress: AccountAddressInput;
|
|
70
|
+
authenticationFunction: string;
|
|
71
|
+
options?: InputGenerateTransactionOptions;
|
|
72
|
+
}) {
|
|
73
|
+
const { accountAddress, authenticationFunction, options } = args;
|
|
74
|
+
return removeAuthenticationFunctionTransaction({
|
|
75
|
+
aptosConfig: this.config,
|
|
76
|
+
sender: accountAddress,
|
|
77
|
+
authenticationFunction,
|
|
78
|
+
options,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Removes a dispatchable authenticator from the account.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* const txn = await aptos.abstraction.removeDispatchableAuthenticatorTransaction({
|
|
88
|
+
* accountAddress: alice.accountAddress,
|
|
89
|
+
* });
|
|
90
|
+
*
|
|
91
|
+
* const txn = await aptos.signAndSubmitTransaction({ signer: alice, transaction: txn });
|
|
92
|
+
* await aptos.waitForTransaction({ transactionHash: txn.hash });
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @param args.accountAddress - The account to remove the authenticator from.
|
|
96
|
+
* @param args.options - The options for the transaction.
|
|
97
|
+
* @returns A transaction to remove the authenticator from the account.
|
|
98
|
+
*/
|
|
99
|
+
public async removeDispatchableAuthenticatorTransaction(args: {
|
|
100
|
+
accountAddress: AccountAddressInput;
|
|
101
|
+
options?: InputGenerateTransactionOptions;
|
|
102
|
+
}) {
|
|
103
|
+
const { accountAddress, options } = args;
|
|
104
|
+
return removeDispatchableAuthenticatorTransaction({ aptosConfig: this.config, sender: accountAddress, options });
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Gets the dispatchable authentication function for the account.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* const functionInfos = await aptos.abstraction.getAuthenticationFunction({
|
|
113
|
+
* accountAddress: alice.accountAddress,
|
|
114
|
+
* });
|
|
115
|
+
*
|
|
116
|
+
* if (functionInfos) {
|
|
117
|
+
* console.log(`Account ${alice.accountAddress.toString()} is using account abstraction!`);
|
|
118
|
+
* } else {
|
|
119
|
+
* console.log(`Account ${alice.accountAddress.toString()} is not using account abstraction.`);
|
|
120
|
+
* }
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @param args.accountAddress - The account to get the dispatchable authentication function for.
|
|
124
|
+
* @returns The dispatchable authentication function for the account.
|
|
125
|
+
*/
|
|
126
|
+
public async getAuthenticationFunction(args: { accountAddress: AccountAddressInput }) {
|
|
127
|
+
const { accountAddress } = args;
|
|
128
|
+
const [{ vec: functionInfoOption }] = await view<
|
|
129
|
+
[{ vec: { function_name: string; module_name: string; module_address: string }[][] }]
|
|
130
|
+
>({
|
|
131
|
+
aptosConfig: this.config,
|
|
132
|
+
payload: {
|
|
133
|
+
function: "0x1::account_abstraction::dispatchable_authenticator",
|
|
134
|
+
functionArguments: [AccountAddress.from(accountAddress)],
|
|
135
|
+
abi: { typeParameters: [], parameters: [new TypeTagAddress()], returnTypes: [] },
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
if (functionInfoOption.length === 0) return undefined;
|
|
140
|
+
|
|
141
|
+
return functionInfoOption[0].map((functionInfo) => ({
|
|
142
|
+
moduleAddress: AccountAddress.fromString(functionInfo.module_address),
|
|
143
|
+
moduleName: functionInfo.module_name,
|
|
144
|
+
functionName: functionInfo.function_name,
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Will return true if the account is abstracted, otherwise false.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* const isAccountAbstractionEnabled = await aptos.abstraction.isAccountAbstractionEnabled({
|
|
154
|
+
* accountAddress: alice.accountAddress,
|
|
155
|
+
* authenticationFunction: `${alice.accountAddress}::any_authenticator::authenticate`,
|
|
156
|
+
* });
|
|
157
|
+
* if (isAccountAbstractionEnabled) {
|
|
158
|
+
* console.log(`Account ${alice.accountAddress.toString()} is using account abstraction!`);
|
|
159
|
+
* } else {
|
|
160
|
+
* console.log(`Account ${alice.accountAddress.toString()} is not using account abstraction.`);
|
|
161
|
+
* }
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @param args.accountAddress - The account to check.
|
|
165
|
+
* @returns Whether the account is abstracted.
|
|
166
|
+
*/
|
|
167
|
+
public isAccountAbstractionEnabled = async (args: {
|
|
168
|
+
accountAddress: AccountAddressInput;
|
|
169
|
+
authenticationFunction: string;
|
|
170
|
+
}) => {
|
|
171
|
+
const functionInfos = await this.getAuthenticationFunction(args);
|
|
172
|
+
const { moduleAddress, moduleName, functionName } = getFunctionParts(args.authenticationFunction as MoveFunctionId);
|
|
173
|
+
return (
|
|
174
|
+
functionInfos?.some(
|
|
175
|
+
(functionInfo) =>
|
|
176
|
+
AccountAddress.fromString(moduleAddress).equals(functionInfo.moduleAddress) &&
|
|
177
|
+
moduleName === functionInfo.moduleName &&
|
|
178
|
+
functionName === functionInfo.functionName,
|
|
179
|
+
) ?? false
|
|
180
|
+
);
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Creates a transaction to enable account abstraction with the given authentication function.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```ts
|
|
188
|
+
* const txn = await aptos.abstraction.enableAccountAbstractionTransaction({
|
|
189
|
+
* accountAddress: alice.accountAddress,
|
|
190
|
+
* authenticationFunction: `{alice.accountAddress}::any_authenticator::authenticate`,
|
|
191
|
+
* });
|
|
192
|
+
*
|
|
193
|
+
* const txn = await aptos.signAndSubmitTransaction({ signer: alice, transaction: txn });
|
|
194
|
+
* await aptos.waitForTransaction({ transactionHash: txn.hash });
|
|
195
|
+
* ```
|
|
196
|
+
*
|
|
197
|
+
* @param args.accountAddress - The account to enable account abstraction for.
|
|
198
|
+
* @param args.authenticationFunction - The authentication function info to use.
|
|
199
|
+
* @param args.options - The options for the transaction.
|
|
200
|
+
* @returns A transaction to enable account abstraction for the account.
|
|
201
|
+
*/
|
|
202
|
+
public enableAccountAbstractionTransaction = this.addAuthenticationFunctionTransaction;
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Creates a transaction to disable account abstraction. If an authentication function is provided, it will specify to
|
|
206
|
+
* remove the authentication function.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```ts
|
|
210
|
+
* const txn = await aptos.abstraction.disableAccountAbstractionTransaction({
|
|
211
|
+
* accountAddress: alice.accountAddress,
|
|
212
|
+
* authenticationFunction: `${alice.accountAddress}::any_authenticator::authenticate`,
|
|
213
|
+
* });
|
|
214
|
+
*
|
|
215
|
+
* const txn = await aptos.signAndSubmitTransaction({ signer: alice, transaction: txn });
|
|
216
|
+
* await aptos.waitForTransaction({ transactionHash: txn.hash });
|
|
217
|
+
* ```
|
|
218
|
+
*
|
|
219
|
+
* @param args.accountAddress - The account to disable account abstraction for.
|
|
220
|
+
* @param args.authenticationFunction - The authentication function info to remove.
|
|
221
|
+
* @param args.options - The options for the transaction.
|
|
222
|
+
* @returns A transaction to disable account abstraction for the account.
|
|
223
|
+
*/
|
|
224
|
+
public disableAccountAbstractionTransaction = async (args: {
|
|
225
|
+
accountAddress: AccountAddressInput;
|
|
226
|
+
authenticationFunction?: string;
|
|
227
|
+
options?: InputGenerateTransactionOptions;
|
|
228
|
+
}) => {
|
|
229
|
+
const { accountAddress, authenticationFunction, options } = args;
|
|
230
|
+
if (authenticationFunction) {
|
|
231
|
+
return this.removeAuthenticationFunctionTransaction({
|
|
232
|
+
accountAddress,
|
|
233
|
+
authenticationFunction,
|
|
234
|
+
options,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
return this.removeDispatchableAuthenticatorTransaction({ accountAddress, options });
|
|
238
|
+
};
|
|
239
|
+
}
|
package/src/api/account.ts
CHANGED
|
@@ -47,12 +47,15 @@ import { CurrentFungibleAssetBalancesBoolExp } from "../types/generated/types";
|
|
|
47
47
|
import { view } from "../internal/view";
|
|
48
48
|
import { isEncodedStruct, parseEncodedStruct } from "../utils";
|
|
49
49
|
import { memoizeAsync } from "../utils/memoize";
|
|
50
|
+
import { AccountAbstraction } from "./account/abstraction";
|
|
50
51
|
|
|
51
52
|
/**
|
|
52
53
|
* A class to query all `Account` related queries on Aptos.
|
|
53
54
|
* @group Account
|
|
54
55
|
*/
|
|
55
56
|
export class Account {
|
|
57
|
+
abstraction: AccountAbstraction;
|
|
58
|
+
|
|
56
59
|
/**
|
|
57
60
|
* Creates an instance of the Aptos client with the provided configuration.
|
|
58
61
|
*
|
|
@@ -73,7 +76,9 @@ export class Account {
|
|
|
73
76
|
* ```
|
|
74
77
|
* @group Account
|
|
75
78
|
*/
|
|
76
|
-
constructor(readonly config: AptosConfig) {
|
|
79
|
+
constructor(readonly config: AptosConfig) {
|
|
80
|
+
this.abstraction = new AccountAbstraction(config);
|
|
81
|
+
}
|
|
77
82
|
|
|
78
83
|
/**
|
|
79
84
|
* Queries the current state for an Aptos account given its account address.
|
|
@@ -653,7 +658,7 @@ export class Account {
|
|
|
653
658
|
}
|
|
654
659
|
|
|
655
660
|
/**
|
|
656
|
-
* Retrieves the current amount of APT for a specified account.
|
|
661
|
+
* Retrieves the current amount of APT for a specified account. If the account does not exist, it will return 0.
|
|
657
662
|
*
|
|
658
663
|
* @param args The arguments for the account query.
|
|
659
664
|
* @param args.accountAddress The account address for which to retrieve the APT amount.
|
package/src/api/aptos.ts
CHANGED
|
@@ -15,6 +15,8 @@ import { Transaction } from "./transaction";
|
|
|
15
15
|
import { Table } from "./table";
|
|
16
16
|
import { Keyless } from "./keyless";
|
|
17
17
|
import { AptosObject } from "./object";
|
|
18
|
+
import { AccountAbstraction } from "./account/abstraction";
|
|
19
|
+
import { Experimental } from "./experimental";
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* The main entry point for interacting with the Aptos APIs,
|
|
@@ -54,6 +56,8 @@ export class Aptos {
|
|
|
54
56
|
|
|
55
57
|
readonly event: Event;
|
|
56
58
|
|
|
59
|
+
readonly experimental: Experimental;
|
|
60
|
+
|
|
57
61
|
readonly faucet: Faucet;
|
|
58
62
|
|
|
59
63
|
readonly fungibleAsset: FungibleAsset;
|
|
@@ -94,10 +98,12 @@ export class Aptos {
|
|
|
94
98
|
constructor(settings?: AptosConfig) {
|
|
95
99
|
this.config = new AptosConfig(settings);
|
|
96
100
|
this.account = new Account(this.config);
|
|
101
|
+
this.abstraction = new AccountAbstraction(this.config);
|
|
97
102
|
this.ans = new ANS(this.config);
|
|
98
103
|
this.coin = new Coin(this.config);
|
|
99
104
|
this.digitalAsset = new DigitalAsset(this.config);
|
|
100
105
|
this.event = new Event(this.config);
|
|
106
|
+
this.experimental = new Experimental(this.config);
|
|
101
107
|
this.faucet = new Faucet(this.config);
|
|
102
108
|
this.fungibleAsset = new FungibleAsset(this.config);
|
|
103
109
|
this.general = new General(this.config);
|
|
@@ -117,6 +123,7 @@ export interface Aptos
|
|
|
117
123
|
Coin,
|
|
118
124
|
DigitalAsset,
|
|
119
125
|
Event,
|
|
126
|
+
Experimental,
|
|
120
127
|
Faucet,
|
|
121
128
|
FungibleAsset,
|
|
122
129
|
General,
|
|
@@ -149,10 +156,12 @@ function applyMixin(targetClass: any, baseClass: any, baseClassProp: string) {
|
|
|
149
156
|
}
|
|
150
157
|
|
|
151
158
|
applyMixin(Aptos, Account, "account");
|
|
159
|
+
applyMixin(Aptos, AccountAbstraction, "abstraction");
|
|
152
160
|
applyMixin(Aptos, ANS, "ans");
|
|
153
161
|
applyMixin(Aptos, Coin, "coin");
|
|
154
162
|
applyMixin(Aptos, DigitalAsset, "digitalAsset");
|
|
155
163
|
applyMixin(Aptos, Event, "event");
|
|
164
|
+
applyMixin(Aptos, Experimental, "experimental");
|
|
156
165
|
applyMixin(Aptos, Faucet, "faucet");
|
|
157
166
|
applyMixin(Aptos, FungibleAsset, "fungibleAsset");
|
|
158
167
|
applyMixin(Aptos, General, "general");
|
package/src/api/aptosConfig.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright © Aptos Foundation
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import aptosClient from "@aptos-labs/aptos-client";
|
|
4
|
+
import aptosClient, { bcsRequest } from "@aptos-labs/aptos-client";
|
|
5
5
|
import { AptosSettings, ClientConfig, Client, FullNodeConfig, IndexerConfig, FaucetConfig } from "../types";
|
|
6
6
|
import {
|
|
7
7
|
NetworkToNodeAPI,
|
|
@@ -140,7 +140,7 @@ export class AptosConfig {
|
|
|
140
140
|
this.pepper = settings?.pepper;
|
|
141
141
|
this.prover = settings?.prover;
|
|
142
142
|
this.indexer = settings?.indexer;
|
|
143
|
-
this.client = settings?.client ?? { provider: aptosClient };
|
|
143
|
+
this.client = settings?.client ?? { provider: aptosClient, binaryProvider: bcsRequest };
|
|
144
144
|
this.clientConfig = settings?.clientConfig ?? {};
|
|
145
145
|
this.fullnodeConfig = settings?.fullnodeConfig ?? {};
|
|
146
146
|
this.indexerConfig = settings?.indexerConfig ?? {};
|