@aptos-labs/ts-sdk 1.13.2 → 1.13.3-zeta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/index.d.ts +1781 -1347
- package/dist/common/index.js +26 -26
- package/dist/common/index.js.map +1 -1
- package/dist/esm/{Ed25519Account--qjfup2u.d.mts → Ed25519Account-8gJF5t3F.d.mts} +10 -12
- package/dist/esm/account/Account.d.mts +34 -0
- package/dist/esm/account/Account.mjs +2 -0
- package/dist/esm/account/Ed25519Account.d.mts +34 -0
- package/dist/esm/account/Ed25519Account.mjs +2 -0
- package/dist/esm/account/EphemeralKeyPair.d.mts +46 -0
- package/dist/esm/account/EphemeralKeyPair.mjs +2 -0
- package/dist/esm/account/KeylessAccount.d.mts +87 -0
- package/dist/esm/account/KeylessAccount.mjs +2 -0
- package/dist/esm/account/MultiKeyAccount.d.mts +99 -0
- package/dist/esm/account/MultiKeyAccount.mjs +2 -0
- package/dist/esm/account/SingleKeyAccount.d.mts +34 -0
- package/dist/esm/account/SingleKeyAccount.mjs +2 -0
- package/dist/esm/account/index.d.mts +39 -0
- package/dist/esm/account/index.mjs +2 -0
- package/dist/esm/api/account.d.mts +13 -1
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/ans.d.mts +2 -2
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/aptos.d.mts +14 -8
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/aptosConfig.d.mts +20 -0
- package/dist/esm/api/aptosConfig.mjs +1 -1
- package/dist/esm/api/coin.d.mts +7 -7
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/digitalAsset.d.mts +1 -1
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/event.mjs +1 -1
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/fungibleAsset.d.mts +5 -5
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/general.d.mts +7 -7
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/index.d.mts +13 -8
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/keyless.d.mts +65 -0
- package/dist/esm/api/keyless.mjs +2 -0
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/transaction.d.mts +1 -1
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.d.mts +3 -3
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.d.mts +8 -8
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.d.mts +1 -1
- 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 +6 -6
- package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/bcs/serializer.d.mts +2 -0
- package/dist/esm/bcs/serializer.mjs +1 -1
- package/dist/esm/{chunk-KDCHX7BI.mjs → chunk-274CXZ6R.mjs} +2 -2
- package/dist/esm/chunk-2M7KHFEG.mjs +2 -0
- package/dist/esm/chunk-2M7KHFEG.mjs.map +1 -0
- package/dist/esm/{chunk-TORRTLWV.mjs → chunk-2SD6JLIU.mjs} +2 -2
- package/dist/esm/chunk-2SD6JLIU.mjs.map +1 -0
- package/dist/esm/chunk-2YDIOWRJ.mjs +2 -0
- package/dist/esm/chunk-2YDIOWRJ.mjs.map +1 -0
- package/dist/esm/{chunk-4DNVCOW7.mjs → chunk-3CIA6J5L.mjs} +2 -2
- package/dist/esm/chunk-3CIA6J5L.mjs.map +1 -0
- package/dist/esm/{chunk-TBMAJ6AW.mjs → chunk-3FVRXELT.mjs} +2 -2
- package/dist/esm/{chunk-RQEWIZ67.mjs → chunk-3LQPAGL6.mjs} +2 -2
- package/dist/esm/{chunk-6IGEUEER.mjs → chunk-3PGVEOWR.mjs} +2 -2
- package/dist/esm/{chunk-DMKUAQB7.mjs → chunk-3VGX3TXH.mjs} +2 -2
- package/dist/esm/chunk-4NMDYPUD.mjs +1 -0
- package/dist/esm/chunk-4NMDYPUD.mjs.map +1 -0
- package/dist/esm/chunk-5VSMDXZ6.mjs +2 -0
- package/dist/esm/chunk-5VSMDXZ6.mjs.map +1 -0
- package/dist/esm/chunk-6GQAHQGW.mjs +2 -0
- package/dist/esm/chunk-6GQAHQGW.mjs.map +1 -0
- package/dist/esm/chunk-6NMHAFIO.mjs +2 -0
- package/dist/esm/chunk-6NMHAFIO.mjs.map +1 -0
- package/dist/esm/{chunk-YKVKSNH4.mjs → chunk-6NZNCDDW.mjs} +2 -2
- package/dist/esm/{chunk-QIAHBEEW.mjs → chunk-6RBUXB5I.mjs} +2 -2
- package/dist/esm/{chunk-3HV2C4SS.mjs → chunk-7FNHL6LU.mjs} +2 -2
- package/dist/esm/{chunk-FXNFWLQC.mjs → chunk-7H3HRFVM.mjs} +2 -2
- package/dist/esm/chunk-7MPJPZ73.mjs +2 -0
- package/dist/esm/chunk-7MPJPZ73.mjs.map +1 -0
- package/dist/esm/{chunk-NPFNYP75.mjs → chunk-7STYQ5ZE.mjs} +2 -2
- package/dist/esm/chunk-7XHVF3ZX.mjs +2 -0
- package/dist/esm/{chunk-MNBYKY5P.mjs.map → chunk-7XHVF3ZX.mjs.map} +1 -1
- package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
- package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
- package/dist/esm/{chunk-UMFJDDYI.mjs → chunk-AKGASNN4.mjs} +2 -2
- package/dist/esm/chunk-AKGASNN4.mjs.map +1 -0
- package/dist/esm/{chunk-QWRH22H4.mjs → chunk-APEBWN6Q.mjs} +2 -2
- package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
- package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
- package/dist/esm/{chunk-ZYYK3UXP.mjs → chunk-C3L4ETUF.mjs} +2 -2
- package/dist/esm/{chunk-3RUY5FQK.mjs → chunk-CN37OHFT.mjs} +2 -2
- package/dist/esm/chunk-CN37OHFT.mjs.map +1 -0
- package/dist/esm/{chunk-WFZDFFBM.mjs → chunk-COW5IGYC.mjs} +2 -2
- package/dist/esm/chunk-CQJ4WN7M.mjs +2 -0
- package/dist/esm/chunk-CQJ4WN7M.mjs.map +1 -0
- package/dist/esm/{chunk-PIOHC246.mjs → chunk-DKLA4F3P.mjs} +2 -2
- package/dist/esm/chunk-DKLA4F3P.mjs.map +1 -0
- package/dist/esm/{chunk-TC3VVMPY.mjs → chunk-E36GTDEB.mjs} +2 -2
- package/dist/esm/chunk-E4Z5IEZP.mjs +2 -0
- package/dist/esm/chunk-E4Z5IEZP.mjs.map +1 -0
- package/dist/esm/{chunk-FS3NSGBF.mjs → chunk-EB7AI4B4.mjs} +2 -2
- package/dist/esm/chunk-EQKI6NJR.mjs +2 -0
- package/dist/esm/chunk-EQKI6NJR.mjs.map +1 -0
- package/dist/esm/chunk-F6QCHPVS.mjs +2 -0
- package/dist/esm/chunk-F6QCHPVS.mjs.map +1 -0
- package/dist/esm/chunk-FLYEALDB.mjs +2 -0
- package/dist/esm/chunk-FLYEALDB.mjs.map +1 -0
- package/dist/esm/{chunk-GRT5PHL6.mjs → chunk-H3LMPXEM.mjs} +2 -2
- package/dist/esm/{chunk-YBEF3UR3.mjs → chunk-H6BRBIMG.mjs} +2 -2
- package/dist/esm/{chunk-2PFN7LYP.mjs → chunk-HFLWASAB.mjs} +2 -2
- package/dist/esm/{chunk-UML2VQZT.mjs → chunk-HGZGTBA4.mjs} +2 -2
- package/dist/esm/chunk-HQWIGPYQ.mjs +2 -0
- package/dist/esm/chunk-HQWIGPYQ.mjs.map +1 -0
- package/dist/esm/chunk-HURQZGUZ.mjs +2 -0
- package/dist/esm/chunk-HURQZGUZ.mjs.map +1 -0
- package/dist/esm/{chunk-TGXZVNR5.mjs → chunk-IEZO4PIG.mjs} +2 -2
- package/dist/esm/{chunk-PJLCPRYJ.mjs → chunk-J2IIPYZG.mjs} +2 -2
- package/dist/esm/chunk-JEUAQVXW.mjs +2 -0
- package/dist/esm/chunk-JEUAQVXW.mjs.map +1 -0
- package/dist/esm/chunk-JOYJUVSE.mjs +2 -0
- package/dist/esm/chunk-JOYJUVSE.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-TGG7SWBO.mjs → chunk-KCVBUZ6L.mjs} +2 -2
- package/dist/esm/chunk-KCVBUZ6L.mjs.map +1 -0
- package/dist/esm/{chunk-EJCKCYYI.mjs → chunk-KNHI66FK.mjs} +2 -2
- package/dist/esm/{chunk-4LMAVPA4.mjs → chunk-LDMEIVL6.mjs} +2 -2
- package/dist/esm/chunk-LX7N4NUS.mjs +2 -0
- package/dist/esm/chunk-LX7N4NUS.mjs.map +1 -0
- package/dist/esm/{chunk-DSTKXJMA.mjs → chunk-MGOHPDX4.mjs} +2 -2
- package/dist/esm/{chunk-UPIN5AIO.mjs → chunk-MKUAW7KW.mjs} +2 -2
- package/dist/esm/{chunk-BWFJHFBQ.mjs → chunk-MWUJCP27.mjs} +2 -2
- package/dist/esm/{chunk-LV2V23Z6.mjs → chunk-N4B6S6FK.mjs} +2 -2
- package/dist/esm/chunk-N4B6S6FK.mjs.map +1 -0
- package/dist/esm/{chunk-QTRYMRYK.mjs → chunk-NC5HHEEM.mjs} +2 -2
- package/dist/esm/chunk-NMVZP3Q2.mjs +2 -0
- package/dist/esm/chunk-NMVZP3Q2.mjs.map +1 -0
- package/dist/esm/chunk-NNA5VEB2.mjs +2 -0
- package/dist/esm/chunk-NNA5VEB2.mjs.map +1 -0
- package/dist/esm/chunk-OKRUEVF3.mjs +2 -0
- package/dist/esm/chunk-OKRUEVF3.mjs.map +1 -0
- package/dist/esm/{chunk-U43IJHQN.mjs → chunk-PFFAQZHT.mjs} +2 -2
- package/dist/esm/chunk-PLPCOELE.mjs +2 -0
- package/dist/esm/chunk-PLPCOELE.mjs.map +1 -0
- package/dist/esm/{chunk-BRQYARQ3.mjs → chunk-Q7TGZJT4.mjs} +2 -2
- package/dist/esm/chunk-QHIQLTBS.mjs +2 -0
- package/dist/esm/chunk-QHIQLTBS.mjs.map +1 -0
- package/dist/esm/{chunk-6MG4JAYB.mjs → chunk-QMIEBNTP.mjs} +2 -2
- package/dist/esm/{chunk-3QBZU5ZD.mjs → chunk-QXVGXZJX.mjs} +2 -2
- package/dist/esm/chunk-QXVGXZJX.mjs.map +1 -0
- package/dist/esm/{chunk-GS5J57UA.mjs → chunk-R6PFLI3Z.mjs} +2 -2
- package/dist/esm/chunk-R6PFLI3Z.mjs.map +1 -0
- package/dist/esm/chunk-RFSO3JRG.mjs +1 -0
- package/dist/esm/chunk-RFSO3JRG.mjs.map +1 -0
- package/dist/esm/chunk-RPXN7HGR.mjs +2 -0
- package/dist/esm/chunk-RPXN7HGR.mjs.map +1 -0
- package/dist/esm/chunk-S5HG2QUD.mjs +2 -0
- package/dist/esm/chunk-S5HG2QUD.mjs.map +1 -0
- package/dist/esm/{chunk-BBU2EE6D.mjs → chunk-SNQJV7MF.mjs} +2 -2
- package/dist/esm/chunk-SRLCFTZR.mjs +2 -0
- package/dist/esm/chunk-SRLCFTZR.mjs.map +1 -0
- package/dist/esm/{chunk-R5QUBEH6.mjs → chunk-STYDBDYL.mjs} +2 -2
- package/dist/esm/{chunk-IOSQVDZI.mjs → chunk-T23OVRNF.mjs} +2 -2
- package/dist/esm/{chunk-GXYS45Y5.mjs → chunk-T3W5USZC.mjs} +2 -2
- package/dist/esm/chunk-TBG3MIIE.mjs +2 -0
- package/dist/esm/chunk-TBG3MIIE.mjs.map +1 -0
- package/dist/esm/{chunk-XLPVG4XR.mjs → chunk-TE7AJKSU.mjs} +2 -2
- package/dist/esm/chunk-TJPWYYNO.mjs +2 -0
- package/dist/esm/chunk-TJPWYYNO.mjs.map +1 -0
- package/dist/esm/{chunk-52C73T26.mjs → chunk-TVRJ3M7B.mjs} +2 -2
- package/dist/esm/{chunk-52C73T26.mjs.map → chunk-TVRJ3M7B.mjs.map} +1 -1
- package/dist/esm/{chunk-A556OVZY.mjs → chunk-U72H6EST.mjs} +2 -2
- package/dist/esm/{chunk-BAV4XY7C.mjs → chunk-W637YAND.mjs} +2 -2
- package/dist/esm/chunk-W76IQV5K.mjs +2 -0
- package/dist/esm/chunk-W76IQV5K.mjs.map +1 -0
- package/dist/esm/chunk-WO2KROQ6.mjs +2 -0
- package/dist/esm/{chunk-B252RJCU.mjs.map → chunk-WO2KROQ6.mjs.map} +1 -1
- package/dist/esm/chunk-X56CTMYB.mjs +2 -0
- package/dist/esm/chunk-XEXWFQNP.mjs +2 -0
- package/dist/esm/chunk-YE5B2S5L.mjs +2 -0
- package/dist/esm/chunk-YE5B2S5L.mjs.map +1 -0
- package/dist/esm/chunk-YGHLXEB4.mjs +2 -0
- package/dist/esm/{chunk-IZT6OX3R.mjs.map → chunk-YGHLXEB4.mjs.map} +1 -1
- package/dist/esm/{chunk-OGHE4AQA.mjs → chunk-Z2ZR4PTF.mjs} +2 -2
- package/dist/esm/{chunk-RHBCVCOS.mjs → chunk-ZNEBMSNC.mjs} +2 -2
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/get.d.mts +2 -1
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/index.d.mts +2 -2
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/post.d.mts +3 -1
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/core/account/index.d.mts +5 -14
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/accountAddress.mjs +1 -1
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/crypto/ed25519.d.mts +0 -10
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +77 -0
- package/dist/esm/core/crypto/ephemeral.mjs +2 -0
- package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
- package/dist/esm/core/crypto/hdKey.d.mts +15 -1
- package/dist/esm/core/crypto/hdKey.mjs +1 -1
- package/dist/esm/core/crypto/index.d.mts +7 -5
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/keyless.d.mts +217 -0
- package/dist/esm/core/crypto/keyless.mjs +2 -0
- package/dist/esm/core/crypto/keyless.mjs.map +1 -0
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiKey.d.mts +4 -3
- package/dist/esm/core/crypto/multiKey.mjs +1 -1
- package/dist/esm/core/crypto/poseidon.d.mts +7 -0
- package/dist/esm/core/crypto/poseidon.mjs +2 -0
- package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/index.d.mts +6 -7
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/index.d.mts +16 -10
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal/account.d.mts +14 -2
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/ans.d.mts +1 -1
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/coin.d.mts +7 -7
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/digitalAsset.d.mts +2 -2
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/event.d.mts +1 -1
- package/dist/esm/internal/event.mjs +1 -1
- package/dist/esm/internal/faucet.d.mts +1 -1
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.d.mts +5 -5
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/keyless.d.mts +65 -0
- package/dist/esm/internal/keyless.mjs +2 -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 +1 -1
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.d.mts +1 -1
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/view.d.mts +7 -7
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/transactions/authenticator/account.d.mts +3 -4
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/index.d.mts +3 -3
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/instances/chainId.mjs +1 -1
- 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 -1
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.d.mts +13 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/index.d.mts +2 -2
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.d.mts +1 -1
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.d.mts +9 -9
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.d.mts +9 -9
- package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +6 -6
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +47 -0
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +2 -0
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs.map +1 -0
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +13 -25
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/transactions/types.d.mts +7 -7
- package/dist/esm/types/index.d.mts +17 -3
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/types/keyless.d.mts +14 -0
- package/dist/esm/types/keyless.mjs +1 -0
- package/dist/esm/types/keyless.mjs.map +1 -0
- package/dist/esm/utils/apiEndpoints.d.mts +3 -1
- package/dist/esm/utils/apiEndpoints.mjs +1 -1
- package/dist/esm/utils/const.d.mts +3 -1
- package/dist/esm/utils/const.mjs +1 -1
- package/dist/esm/utils/index.d.mts +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.mjs +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +7 -2
- package/src/{core/account → account}/Account.ts +12 -16
- package/src/{core/account → account}/Ed25519Account.ts +13 -7
- package/src/account/EphemeralKeyPair.ts +115 -0
- package/src/account/KeylessAccount.ts +240 -0
- package/src/account/MultiKeyAccount.ts +119 -0
- package/src/{core/account → account}/SingleKeyAccount.ts +13 -8
- 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 +34 -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/serializer.ts +18 -0
- package/src/client/core.ts +8 -0
- package/src/client/get.ts +6 -0
- package/src/client/post.ts +12 -0
- package/src/core/account/index.ts +1 -3
- package/src/core/crypto/ed25519.ts +4 -24
- package/src/core/crypto/ephemeral.ts +149 -0
- package/src/core/crypto/hdKey.ts +31 -0
- package/src/core/crypto/index.ts +2 -0
- package/src/core/crypto/keyless.ts +508 -0
- package/src/core/crypto/multiKey.ts +21 -11
- package/src/core/crypto/poseidon.ts +134 -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 -1
- package/src/internal/digitalAsset.ts +2 -1
- package/src/internal/fungibleAsset.ts +2 -1
- package/src/internal/keyless.ts +185 -0
- package/src/internal/transactionSubmission.ts +8 -7
- package/src/transactions/authenticator/account.ts +6 -11
- package/src/transactions/instances/index.ts +1 -0
- package/src/transactions/management/accountSequenceNumber.ts +1 -1
- package/src/transactions/management/transactionWorker.ts +8 -2
- package/src/transactions/transactionBuilder/index.ts +1 -0
- package/src/transactions/transactionBuilder/signingMessage.ts +70 -0
- package/src/transactions/transactionBuilder/transactionBuilder.ts +41 -70
- package/src/types/index.ts +19 -0
- package/src/types/keyless.ts +6 -0
- package/src/utils/apiEndpoints.ts +14 -0
- package/src/utils/const.ts +2 -0
- package/src/version.ts +1 -1
- package/dist/esm/chunk-3426VLAZ.mjs +0 -2
- package/dist/esm/chunk-3426VLAZ.mjs.map +0 -1
- package/dist/esm/chunk-3OCTOB2E.mjs +0 -2
- package/dist/esm/chunk-3OCTOB2E.mjs.map +0 -1
- package/dist/esm/chunk-3QBZU5ZD.mjs.map +0 -1
- package/dist/esm/chunk-3RUY5FQK.mjs.map +0 -1
- package/dist/esm/chunk-4DNVCOW7.mjs.map +0 -1
- package/dist/esm/chunk-5HALZ6JC.mjs +0 -2
- package/dist/esm/chunk-5HALZ6JC.mjs.map +0 -1
- package/dist/esm/chunk-5OM4V4DR.mjs +0 -2
- package/dist/esm/chunk-5TMLAKSH.mjs +0 -2
- package/dist/esm/chunk-5TMLAKSH.mjs.map +0 -1
- package/dist/esm/chunk-B252RJCU.mjs +0 -2
- package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
- package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
- package/dist/esm/chunk-E7FWVXGX.mjs +0 -1
- package/dist/esm/chunk-FO6ZKE7A.mjs +0 -2
- package/dist/esm/chunk-FO6ZKE7A.mjs.map +0 -1
- package/dist/esm/chunk-GMQQSSEO.mjs +0 -2
- package/dist/esm/chunk-GMQQSSEO.mjs.map +0 -1
- package/dist/esm/chunk-GNQXMS53.mjs +0 -2
- package/dist/esm/chunk-GNQXMS53.mjs.map +0 -1
- package/dist/esm/chunk-GS5J57UA.mjs.map +0 -1
- package/dist/esm/chunk-HLVMEUWD.mjs +0 -2
- package/dist/esm/chunk-HLVMEUWD.mjs.map +0 -1
- package/dist/esm/chunk-HQSLBTW5.mjs +0 -2
- package/dist/esm/chunk-HQSLBTW5.mjs.map +0 -1
- package/dist/esm/chunk-ICXA3DZH.mjs +0 -1
- package/dist/esm/chunk-IZT6OX3R.mjs +0 -2
- package/dist/esm/chunk-KHOHRD2B.mjs +0 -2
- package/dist/esm/chunk-KHOHRD2B.mjs.map +0 -1
- package/dist/esm/chunk-L6PGWGFF.mjs +0 -2
- package/dist/esm/chunk-LR65XHSF.mjs +0 -2
- package/dist/esm/chunk-LR65XHSF.mjs.map +0 -1
- package/dist/esm/chunk-LV2V23Z6.mjs.map +0 -1
- package/dist/esm/chunk-MLWIHWNH.mjs +0 -1
- package/dist/esm/chunk-MNBYKY5P.mjs +0 -2
- 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-PIOHC246.mjs.map +0 -1
- package/dist/esm/chunk-R7G3CLRI.mjs +0 -1
- package/dist/esm/chunk-TGG7SWBO.mjs.map +0 -1
- package/dist/esm/chunk-TORRTLWV.mjs.map +0 -1
- package/dist/esm/chunk-TQR7M73S.mjs +0 -2
- package/dist/esm/chunk-TQR7M73S.mjs.map +0 -1
- package/dist/esm/chunk-UMFJDDYI.mjs.map +0 -1
- package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
- package/dist/esm/chunk-VNO4VHJN.mjs +0 -2
- package/dist/esm/chunk-VNO4VHJN.mjs.map +0 -1
- package/dist/esm/chunk-WBOLHLPX.mjs +0 -2
- package/dist/esm/chunk-WBOLHLPX.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-YVSU6GOA.mjs +0 -2
- package/dist/esm/chunk-YVSU6GOA.mjs.map +0 -1
- 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-ICXA3DZH.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
- /package/dist/esm/{chunk-KDCHX7BI.mjs.map → chunk-274CXZ6R.mjs.map} +0 -0
- /package/dist/esm/{chunk-TBMAJ6AW.mjs.map → chunk-3FVRXELT.mjs.map} +0 -0
- /package/dist/esm/{chunk-RQEWIZ67.mjs.map → chunk-3LQPAGL6.mjs.map} +0 -0
- /package/dist/esm/{chunk-6IGEUEER.mjs.map → chunk-3PGVEOWR.mjs.map} +0 -0
- /package/dist/esm/{chunk-DMKUAQB7.mjs.map → chunk-3VGX3TXH.mjs.map} +0 -0
- /package/dist/esm/{chunk-YKVKSNH4.mjs.map → chunk-6NZNCDDW.mjs.map} +0 -0
- /package/dist/esm/{chunk-QIAHBEEW.mjs.map → chunk-6RBUXB5I.mjs.map} +0 -0
- /package/dist/esm/{chunk-3HV2C4SS.mjs.map → chunk-7FNHL6LU.mjs.map} +0 -0
- /package/dist/esm/{chunk-FXNFWLQC.mjs.map → chunk-7H3HRFVM.mjs.map} +0 -0
- /package/dist/esm/{chunk-NPFNYP75.mjs.map → chunk-7STYQ5ZE.mjs.map} +0 -0
- /package/dist/esm/{chunk-QWRH22H4.mjs.map → chunk-APEBWN6Q.mjs.map} +0 -0
- /package/dist/esm/{chunk-ZYYK3UXP.mjs.map → chunk-C3L4ETUF.mjs.map} +0 -0
- /package/dist/esm/{chunk-WFZDFFBM.mjs.map → chunk-COW5IGYC.mjs.map} +0 -0
- /package/dist/esm/{chunk-TC3VVMPY.mjs.map → chunk-E36GTDEB.mjs.map} +0 -0
- /package/dist/esm/{chunk-FS3NSGBF.mjs.map → chunk-EB7AI4B4.mjs.map} +0 -0
- /package/dist/esm/{chunk-GRT5PHL6.mjs.map → chunk-H3LMPXEM.mjs.map} +0 -0
- /package/dist/esm/{chunk-YBEF3UR3.mjs.map → chunk-H6BRBIMG.mjs.map} +0 -0
- /package/dist/esm/{chunk-2PFN7LYP.mjs.map → chunk-HFLWASAB.mjs.map} +0 -0
- /package/dist/esm/{chunk-UML2VQZT.mjs.map → chunk-HGZGTBA4.mjs.map} +0 -0
- /package/dist/esm/{chunk-TGXZVNR5.mjs.map → chunk-IEZO4PIG.mjs.map} +0 -0
- /package/dist/esm/{chunk-PJLCPRYJ.mjs.map → chunk-J2IIPYZG.mjs.map} +0 -0
- /package/dist/esm/{chunk-EJCKCYYI.mjs.map → chunk-KNHI66FK.mjs.map} +0 -0
- /package/dist/esm/{chunk-4LMAVPA4.mjs.map → chunk-LDMEIVL6.mjs.map} +0 -0
- /package/dist/esm/{chunk-DSTKXJMA.mjs.map → chunk-MGOHPDX4.mjs.map} +0 -0
- /package/dist/esm/{chunk-UPIN5AIO.mjs.map → chunk-MKUAW7KW.mjs.map} +0 -0
- /package/dist/esm/{chunk-BWFJHFBQ.mjs.map → chunk-MWUJCP27.mjs.map} +0 -0
- /package/dist/esm/{chunk-QTRYMRYK.mjs.map → chunk-NC5HHEEM.mjs.map} +0 -0
- /package/dist/esm/{chunk-U43IJHQN.mjs.map → chunk-PFFAQZHT.mjs.map} +0 -0
- /package/dist/esm/{chunk-BRQYARQ3.mjs.map → chunk-Q7TGZJT4.mjs.map} +0 -0
- /package/dist/esm/{chunk-6MG4JAYB.mjs.map → chunk-QMIEBNTP.mjs.map} +0 -0
- /package/dist/esm/{chunk-BBU2EE6D.mjs.map → chunk-SNQJV7MF.mjs.map} +0 -0
- /package/dist/esm/{chunk-R5QUBEH6.mjs.map → chunk-STYDBDYL.mjs.map} +0 -0
- /package/dist/esm/{chunk-IOSQVDZI.mjs.map → chunk-T23OVRNF.mjs.map} +0 -0
- /package/dist/esm/{chunk-GXYS45Y5.mjs.map → chunk-T3W5USZC.mjs.map} +0 -0
- /package/dist/esm/{chunk-XLPVG4XR.mjs.map → chunk-TE7AJKSU.mjs.map} +0 -0
- /package/dist/esm/{chunk-A556OVZY.mjs.map → chunk-U72H6EST.mjs.map} +0 -0
- /package/dist/esm/{chunk-BAV4XY7C.mjs.map → chunk-W637YAND.mjs.map} +0 -0
- /package/dist/esm/{chunk-5OM4V4DR.mjs.map → chunk-X56CTMYB.mjs.map} +0 -0
- /package/dist/esm/{chunk-L6PGWGFF.mjs.map → chunk-XEXWFQNP.mjs.map} +0 -0
- /package/dist/esm/{chunk-OGHE4AQA.mjs.map → chunk-Z2ZR4PTF.mjs.map} +0 -0
- /package/dist/esm/{chunk-RHBCVCOS.mjs.map → chunk-ZNEBMSNC.mjs.map} +0 -0
package/src/api/digitalAsset.ts
CHANGED
|
@@ -13,7 +13,8 @@ import {
|
|
|
13
13
|
PaginationArgs,
|
|
14
14
|
TokenStandardArg,
|
|
15
15
|
} from "../types";
|
|
16
|
-
import {
|
|
16
|
+
import { AccountAddress, AccountAddressInput } from "../core";
|
|
17
|
+
import { Account } from "../account";
|
|
17
18
|
import { InputGenerateTransactionOptions } from "../transactions/types";
|
|
18
19
|
import {
|
|
19
20
|
addDigitalAssetPropertyTransaction,
|
package/src/api/fungibleAsset.ts
CHANGED
|
@@ -23,7 +23,8 @@ import {
|
|
|
23
23
|
import { ProcessorType } from "../utils/const";
|
|
24
24
|
import { AptosConfig } from "./aptosConfig";
|
|
25
25
|
import { waitForIndexerOnVersion } from "./utils";
|
|
26
|
-
import { Account
|
|
26
|
+
import { Account } from "../account";
|
|
27
|
+
import { AccountAddressInput } from "../core";
|
|
27
28
|
import { InputGenerateTransactionOptions } from "../transactions";
|
|
28
29
|
import { SimpleTransaction } from "../transactions/instances/simpleTransaction";
|
|
29
30
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Copyright © Aptos Foundation
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { EphemeralKeyPair, KeylessAccount } from "../account";
|
|
5
|
+
import { deriveKeylessAccount, getPepper } from "../internal/keyless";
|
|
6
|
+
import { HexInput } from "../types";
|
|
7
|
+
import { AptosConfig } from "./aptosConfig";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A class to query all `OIDB` related queries on Aptos.
|
|
11
|
+
*/
|
|
12
|
+
export class Keyless {
|
|
13
|
+
constructor(readonly config: AptosConfig) {}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* TODO
|
|
17
|
+
*
|
|
18
|
+
* @param args.jwt jwt token
|
|
19
|
+
* @returns The pepper
|
|
20
|
+
*/
|
|
21
|
+
async getPepper(args: { jwt: string; ephemeralKeyPair: EphemeralKeyPair }): Promise<Uint8Array> {
|
|
22
|
+
return getPepper({ aptosConfig: this.config, ...args });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async deriveKeylessAccount(args: {
|
|
26
|
+
jwt: string;
|
|
27
|
+
ephemeralKeyPair: EphemeralKeyPair;
|
|
28
|
+
uidKey?: string;
|
|
29
|
+
pepper?: HexInput;
|
|
30
|
+
extraFieldKey?: string;
|
|
31
|
+
}): Promise<KeylessAccount> {
|
|
32
|
+
return deriveKeylessAccount({ aptosConfig: this.config, ...args });
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/api/transaction.ts
CHANGED
|
@@ -33,7 +33,8 @@ import {
|
|
|
33
33
|
InputGenerateTransactionOptions,
|
|
34
34
|
InputGenerateTransactionPayloadData,
|
|
35
35
|
} from "../transactions";
|
|
36
|
-
import { AccountAddressInput,
|
|
36
|
+
import { AccountAddressInput, PrivateKey } from "../core";
|
|
37
|
+
import { Account } from "../account";
|
|
37
38
|
import { Build } from "./transactionSubmission/build";
|
|
38
39
|
import { Simulate } from "./transactionSubmission/simulate";
|
|
39
40
|
import { Submit } from "./transactionSubmission/submit";
|
|
@@ -2,7 +2,7 @@ import EventEmitter from "eventemitter3";
|
|
|
2
2
|
import { TransactionWorkerEvents, TransactionWorker, TransactionWorkerEventsEnum } from "../../transactions/management";
|
|
3
3
|
import { InputGenerateTransactionPayloadData, InputGenerateTransactionOptions } from "../../transactions";
|
|
4
4
|
import { AptosConfig } from "../aptosConfig";
|
|
5
|
-
import { Account } from "../../
|
|
5
|
+
import { Account } from "../../account";
|
|
6
6
|
|
|
7
7
|
export class TransactionManagement extends EventEmitter<TransactionWorkerEvents> {
|
|
8
8
|
account!: Account;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright © Aptos Foundation
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { Account } from "../../
|
|
4
|
+
import { Account } from "../../account";
|
|
5
5
|
import { signTransaction } from "../../internal/transactionSubmission";
|
|
6
6
|
import { AccountAuthenticator, AnyRawTransaction } from "../../transactions";
|
|
7
7
|
import { AptosConfig } from "../aptosConfig";
|
package/src/bcs/serializer.ts
CHANGED
|
@@ -316,6 +316,24 @@ export class Serializer {
|
|
|
316
316
|
item.serialize(this);
|
|
317
317
|
});
|
|
318
318
|
}
|
|
319
|
+
|
|
320
|
+
serializeOption<T extends Serializable>(value?: T): void {
|
|
321
|
+
if (value === undefined) {
|
|
322
|
+
this.serializeU32AsUleb128(0);
|
|
323
|
+
} else {
|
|
324
|
+
this.serializeU32AsUleb128(1);
|
|
325
|
+
value.serialize(this);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
serializeOptionStr(value?: string): void {
|
|
330
|
+
if (value === undefined) {
|
|
331
|
+
this.serializeU32AsUleb128(0);
|
|
332
|
+
} else {
|
|
333
|
+
this.serializeU32AsUleb128(1);
|
|
334
|
+
this.serializeStr(value);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
319
337
|
}
|
|
320
338
|
|
|
321
339
|
export function ensureBoolean(value: unknown): asserts value is boolean {
|
package/src/client/core.ts
CHANGED
|
@@ -106,6 +106,14 @@ export async function aptosRequest<Req extends {}, Res extends {}>(
|
|
|
106
106
|
return result;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
if (result.status >= 500) {
|
|
110
|
+
throw new AptosApiError(options, result, `${response.data}`);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (aptosConfig.isPepperServiceRequest(url)) {
|
|
114
|
+
throw new AptosApiError(options, result, `${response.data}`);
|
|
115
|
+
}
|
|
116
|
+
|
|
109
117
|
let errorMessage: string;
|
|
110
118
|
|
|
111
119
|
if (result && result.data && "message" in result.data && "error_code" in result.data) {
|
package/src/client/get.ts
CHANGED
|
@@ -89,6 +89,12 @@ export async function getAptosFullNode<Req extends {}, Res extends {}>(
|
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
export async function getAptosPepperService<Req extends {}, Res extends {}>(
|
|
93
|
+
options: GetAptosRequestOptions,
|
|
94
|
+
): Promise<AptosResponse<Req, Res>> {
|
|
95
|
+
return get<Req, Res>({ ...options, type: AptosApiType.PEPPER });
|
|
96
|
+
}
|
|
97
|
+
|
|
92
98
|
/// This function is a helper for paginating using a function wrapping an API
|
|
93
99
|
export async function paginateWithCursor<Req extends Record<string, any>, Res extends Array<{}>>(
|
|
94
100
|
options: GetAptosRequestOptions,
|
package/src/client/post.ts
CHANGED
|
@@ -135,3 +135,15 @@ export async function postAptosFaucet<Req extends {}, Res extends {}>(
|
|
|
135
135
|
},
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
|
+
|
|
139
|
+
export async function postAptosPepperService<Req extends {}, Res extends {}>(
|
|
140
|
+
options: PostAptosRequestOptions,
|
|
141
|
+
): Promise<AptosResponse<Req, Res>> {
|
|
142
|
+
return post<Req, Res>({ ...options, type: AptosApiType.PEPPER });
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export async function postAptosProvingService<Req extends {}, Res extends {}>(
|
|
146
|
+
options: PostAptosRequestOptions,
|
|
147
|
+
): Promise<AptosResponse<Req, Res>> {
|
|
148
|
+
return post<Req, Res>({ ...options, type: AptosApiType.PROVER });
|
|
149
|
+
}
|
|
@@ -7,7 +7,7 @@ import { Serializable, Serializer } from "../../bcs/serializer";
|
|
|
7
7
|
import { AuthenticationKey } from "../authenticationKey";
|
|
8
8
|
import { Hex } from "../hex";
|
|
9
9
|
import { HexInput, SigningScheme as AuthenticationKeyScheme } from "../../types";
|
|
10
|
-
import {
|
|
10
|
+
import { isValidHardenedPath, fromDerivationPath as fromDerivationPathInner, mnemonicToSeed } from "./hdKey";
|
|
11
11
|
import { PrivateKey } from "./privateKey";
|
|
12
12
|
import { AccountPublicKey, VerifySignatureArgs } from "./publicKey";
|
|
13
13
|
import { Signature } from "./signature";
|
|
@@ -185,29 +185,9 @@ export class Ed25519PrivateKey extends Serializable implements PrivateKey {
|
|
|
185
185
|
if (!isValidHardenedPath(path)) {
|
|
186
186
|
throw new Error(`Invalid derivation path ${path}`);
|
|
187
187
|
}
|
|
188
|
-
return Ed25519PrivateKey
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* A private inner function so we can separate from the main fromDerivationPath() method
|
|
193
|
-
* to add tests to verify we create the keys correctly.
|
|
194
|
-
*
|
|
195
|
-
* @param path the BIP44 path
|
|
196
|
-
* @param seed the seed phrase created by the mnemonics
|
|
197
|
-
* @param offset the offset used for key derivation, defaults to 0x80000000
|
|
198
|
-
* @returns
|
|
199
|
-
*/
|
|
200
|
-
private static fromDerivationPathInner(path: string, seed: Uint8Array, offset = HARDENED_OFFSET): Ed25519PrivateKey {
|
|
201
|
-
const { key, chainCode } = deriveKey(Ed25519PrivateKey.SLIP_0010_SEED, seed);
|
|
202
|
-
|
|
203
|
-
const segments = splitPath(path).map((el) => parseInt(el, 10));
|
|
204
|
-
|
|
205
|
-
// Derive the child key based on the path
|
|
206
|
-
const { key: privateKey } = segments.reduce((parentKeys, segment) => CKDPriv(parentKeys, segment + offset), {
|
|
207
|
-
key,
|
|
208
|
-
chainCode,
|
|
209
|
-
});
|
|
210
|
-
return new Ed25519PrivateKey(privateKey);
|
|
188
|
+
return new Ed25519PrivateKey(
|
|
189
|
+
fromDerivationPathInner(path, Ed25519PrivateKey.SLIP_0010_SEED, mnemonicToSeed(mnemonics)),
|
|
190
|
+
);
|
|
211
191
|
}
|
|
212
192
|
|
|
213
193
|
// endregion
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Serializer, Deserializer } from "../../bcs";
|
|
2
|
+
import { EphemeralPublicKeyVariant, EphemeralSignatureVariant, HexInput } from "../../types";
|
|
3
|
+
import { PublicKey } from "./publicKey";
|
|
4
|
+
import { Signature } from "./signature";
|
|
5
|
+
import { Ed25519PublicKey, Ed25519Signature } from "./ed25519";
|
|
6
|
+
import { Hex } from "../hex";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents ephemeral keys and signatures for Aptos Keyless accounts.
|
|
10
|
+
*
|
|
11
|
+
* TODO
|
|
12
|
+
*/
|
|
13
|
+
export class EphemeralPublicKey extends PublicKey {
|
|
14
|
+
/**
|
|
15
|
+
* Reference to the inner public key
|
|
16
|
+
*/
|
|
17
|
+
public readonly publicKey: PublicKey;
|
|
18
|
+
|
|
19
|
+
public readonly variant: EphemeralPublicKeyVariant;
|
|
20
|
+
|
|
21
|
+
constructor(publicKey: PublicKey) {
|
|
22
|
+
super();
|
|
23
|
+
const publicKeyType = publicKey.constructor.name;
|
|
24
|
+
switch (publicKeyType) {
|
|
25
|
+
case Ed25519PublicKey.name:
|
|
26
|
+
this.publicKey = publicKey;
|
|
27
|
+
this.variant = EphemeralPublicKeyVariant.Ed25519;
|
|
28
|
+
break;
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unsupported key for EphemeralPublicKey - ${publicKeyType}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get the public key in bytes (Uint8Array).
|
|
36
|
+
*
|
|
37
|
+
* @returns Uint8Array representation of the public key
|
|
38
|
+
*/
|
|
39
|
+
toUint8Array(): Uint8Array {
|
|
40
|
+
return this.bcsToBytes();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Get the public key as a hex string with the 0x prefix.
|
|
45
|
+
*
|
|
46
|
+
* @returns string representation of the public key
|
|
47
|
+
*/
|
|
48
|
+
toString(): string {
|
|
49
|
+
return this.bcsToHex().toString();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Verifies a signed data with a public key
|
|
54
|
+
*
|
|
55
|
+
* @param args.message message
|
|
56
|
+
* @param args.signature The signature
|
|
57
|
+
* @returns true if the signature is valid
|
|
58
|
+
*/
|
|
59
|
+
verifySignature(args: { message: HexInput; signature: EphemeralSignature }): boolean {
|
|
60
|
+
const { message, signature } = args;
|
|
61
|
+
return this.publicKey.verifySignature({ message, signature });
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
serialize(serializer: Serializer): void {
|
|
65
|
+
if (this.publicKey instanceof Ed25519PublicKey) {
|
|
66
|
+
serializer.serializeU32AsUleb128(EphemeralPublicKeyVariant.Ed25519);
|
|
67
|
+
this.publicKey.serialize(serializer);
|
|
68
|
+
} else {
|
|
69
|
+
throw new Error("Unknown public key type");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static deserialize(deserializer: Deserializer): EphemeralPublicKey {
|
|
74
|
+
const index = deserializer.deserializeUleb128AsU32();
|
|
75
|
+
switch (index) {
|
|
76
|
+
case EphemeralPublicKeyVariant.Ed25519:
|
|
77
|
+
return new EphemeralPublicKey(Ed25519PublicKey.deserialize(deserializer));
|
|
78
|
+
default:
|
|
79
|
+
throw new Error(`Unknown variant index for EphemeralPublicKey: ${index}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static isPublicKey(publicKey: PublicKey): publicKey is EphemeralPublicKey {
|
|
84
|
+
return publicKey instanceof EphemeralPublicKey;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
isEd25519(): this is Ed25519PublicKey {
|
|
88
|
+
return this.publicKey instanceof Ed25519PublicKey;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export class EphemeralSignature extends Signature {
|
|
93
|
+
public readonly signature: Signature;
|
|
94
|
+
|
|
95
|
+
constructor(signature: Signature) {
|
|
96
|
+
super();
|
|
97
|
+
const signatureType = signature.constructor.name;
|
|
98
|
+
switch (signatureType) {
|
|
99
|
+
case Ed25519Signature.name:
|
|
100
|
+
this.signature = signature;
|
|
101
|
+
break;
|
|
102
|
+
default:
|
|
103
|
+
throw new Error(`Unsupported signature for EphemeralSignature - ${signatureType}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Get the public key in bytes (Uint8Array).
|
|
109
|
+
*
|
|
110
|
+
* @returns Uint8Array representation of the public key
|
|
111
|
+
*/
|
|
112
|
+
toUint8Array(): Uint8Array {
|
|
113
|
+
return this.signature.toUint8Array();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Get the public key as a hex string with the 0x prefix.
|
|
118
|
+
*
|
|
119
|
+
* @returns string representation of the public key
|
|
120
|
+
*/
|
|
121
|
+
toString(): string {
|
|
122
|
+
return this.signature.toString();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static fromHex(hexInput: HexInput): EphemeralSignature {
|
|
126
|
+
const data = Hex.fromHexInput(hexInput);
|
|
127
|
+
const deserializer = new Deserializer(data.toUint8Array());
|
|
128
|
+
return EphemeralSignature.deserialize(deserializer);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
serialize(serializer: Serializer): void {
|
|
132
|
+
if (this.signature instanceof Ed25519Signature) {
|
|
133
|
+
serializer.serializeU32AsUleb128(EphemeralSignatureVariant.Ed25519);
|
|
134
|
+
this.signature.serialize(serializer);
|
|
135
|
+
} else {
|
|
136
|
+
throw new Error("Unknown signature type");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static deserialize(deserializer: Deserializer): EphemeralSignature {
|
|
141
|
+
const index = deserializer.deserializeUleb128AsU32();
|
|
142
|
+
switch (index) {
|
|
143
|
+
case EphemeralSignatureVariant.Ed25519:
|
|
144
|
+
return new EphemeralSignature(Ed25519Signature.deserialize(deserializer));
|
|
145
|
+
default:
|
|
146
|
+
throw new Error(`Unknown variant index for EphemeralSignature: ${index}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
package/src/core/crypto/hdKey.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { hmac } from "@noble/hashes/hmac";
|
|
5
5
|
import { sha512 } from "@noble/hashes/sha512";
|
|
6
6
|
import * as bip39 from "@scure/bip39";
|
|
7
|
+
import { HexInput } from "../../types";
|
|
7
8
|
|
|
8
9
|
export type DerivedKeys = {
|
|
9
10
|
key: Uint8Array;
|
|
@@ -15,6 +16,7 @@ export type DerivedKeys = {
|
|
|
15
16
|
*/
|
|
16
17
|
export const APTOS_HARDENED_REGEX = /^m\/44'\/637'\/[0-9]+'\/[0-9]+'\/[0-9]+'?$/;
|
|
17
18
|
export const APTOS_BIP44_REGEX = /^m\/44'\/637'\/[0-9]+'\/[0-9]+\/[0-9]+$/;
|
|
19
|
+
export const APTOS_BIP44_DEFAULT_DERIVATION_PATH = "m/44'/637'/0'/0'/0'";
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* A list of supported key types and associated seeds
|
|
@@ -91,6 +93,35 @@ const removeApostrophes = (val: string): string => val.replace("'", "");
|
|
|
91
93
|
*/
|
|
92
94
|
export const splitPath = (path: string): Array<string> => path.split("/").slice(1).map(removeApostrophes);
|
|
93
95
|
|
|
96
|
+
/**
|
|
97
|
+
* @param path the BIP44 path
|
|
98
|
+
* @param seed the seed phrase created by the mnemonics
|
|
99
|
+
* @param offset the offset used for key derivation, defaults to 0x80000000
|
|
100
|
+
* @returns
|
|
101
|
+
*/
|
|
102
|
+
export function fromDerivationPath(
|
|
103
|
+
path: string,
|
|
104
|
+
hashSeed: HexInput,
|
|
105
|
+
seed: Uint8Array,
|
|
106
|
+
offset = HARDENED_OFFSET,
|
|
107
|
+
): Uint8Array {
|
|
108
|
+
if (offset === HARDENED_OFFSET && !isValidHardenedPath(path)) {
|
|
109
|
+
throw new Error(`Invalid hardened derivation path ${path}`);
|
|
110
|
+
} else if (offset !== HARDENED_OFFSET && !isValidBIP44Path(path)) {
|
|
111
|
+
throw new Error(`Invalid derivation path ${path}`);
|
|
112
|
+
}
|
|
113
|
+
const { key, chainCode } = deriveKey(hashSeed, seed);
|
|
114
|
+
|
|
115
|
+
const segments = splitPath(path).map((el) => parseInt(el, 10));
|
|
116
|
+
|
|
117
|
+
// Derive the child key based on the path
|
|
118
|
+
const { key: privateKey } = segments.reduce((parentKeys, segment) => CKDPriv(parentKeys, segment + offset), {
|
|
119
|
+
key,
|
|
120
|
+
chainCode,
|
|
121
|
+
});
|
|
122
|
+
return privateKey;
|
|
123
|
+
}
|
|
124
|
+
|
|
94
125
|
/**
|
|
95
126
|
* Normalizes the mnemonic by removing extra whitespace and making it lowercase
|
|
96
127
|
* @param mnemonic the mnemonic seed phrase
|
package/src/core/crypto/index.ts
CHANGED
|
@@ -5,6 +5,8 @@ export * from "./ed25519";
|
|
|
5
5
|
export * from "./hdKey";
|
|
6
6
|
export * from "./multiEd25519";
|
|
7
7
|
export * from "./multiKey";
|
|
8
|
+
export * from "./ephemeral";
|
|
9
|
+
export * from "./keyless";
|
|
8
10
|
export * from "./privateKey";
|
|
9
11
|
export * from "./publicKey";
|
|
10
12
|
export * from "./secp256k1";
|