@aptos-labs/ts-sdk 5.1.0 → 5.1.1-side-effect-free.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/{account-BW99GTa5.d.ts → account-Dr4y1uZG.d.ts} +1 -0
- package/dist/common/chunk-AWFAHZSB.js +4 -0
- package/dist/common/{chunk-A2XB7TVI.js.map → chunk-AWFAHZSB.js.map} +1 -1
- 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 +94 -16
- package/dist/common/index.js +34 -34
- package/dist/common/index.js.map +1 -1
- package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
- package/dist/esm/account/AbstractKeylessAccount.mjs.map +1 -1
- package/dist/esm/account/AbstractedAccount.mjs +1 -1
- package/dist/esm/account/AbstractedAccount.mjs.map +1 -1
- package/dist/esm/account/Account.mjs +1 -1
- package/dist/esm/account/Account.mjs.map +1 -1
- package/dist/esm/account/AccountUtils.mjs +1 -1
- package/dist/esm/account/AccountUtils.mjs.map +1 -1
- package/dist/esm/account/DerivableAbstractedAccount.mjs +1 -1
- package/dist/esm/account/DerivableAbstractedAccount.mjs.map +1 -1
- package/dist/esm/account/Ed25519Account.mjs +1 -1
- package/dist/esm/account/Ed25519Account.mjs.map +1 -1
- package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
- package/dist/esm/account/EphemeralKeyPair.mjs.map +1 -1
- package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
- package/dist/esm/account/FederatedKeylessAccount.mjs.map +1 -1
- package/dist/esm/account/KeylessAccount.mjs +1 -1
- package/dist/esm/account/KeylessAccount.mjs.map +1 -1
- package/dist/esm/account/MultiEd25519Account.mjs +1 -1
- package/dist/esm/account/MultiEd25519Account.mjs.map +1 -1
- package/dist/esm/account/MultiKeyAccount.mjs +1 -1
- package/dist/esm/account/MultiKeyAccount.mjs.map +1 -1
- package/dist/esm/account/SingleKeyAccount.mjs +1 -1
- package/dist/esm/account/SingleKeyAccount.mjs.map +1 -1
- package/dist/esm/account/index.mjs +1 -1
- package/dist/esm/account/index.mjs.map +1 -1
- package/dist/esm/account/utils.mjs +1 -1
- package/dist/esm/account/utils.mjs.map +1 -1
- package/dist/esm/api/account/abstraction.mjs +1 -1
- package/dist/esm/api/account/abstraction.mjs.map +1 -1
- package/dist/esm/api/account.d.mts +1 -1
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/account.mjs.map +1 -1
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/ans.mjs.map +1 -1
- package/dist/esm/api/aptos.d.mts +81 -14
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/aptos.mjs.map +1 -1
- package/dist/esm/api/aptosConfig.mjs +1 -1
- package/dist/esm/api/aptosConfig.mjs.map +1 -1
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/coin.mjs.map +1 -1
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/digitalAsset.mjs.map +1 -1
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/faucet.mjs.map +1 -1
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/fungibleAsset.mjs.map +1 -1
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/general.mjs.map +1 -1
- package/dist/esm/api/index.d.mts +2 -2
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/index.mjs.map +1 -1
- package/dist/esm/api/keyless.mjs +1 -1
- package/dist/esm/api/keyless.mjs.map +1 -1
- package/dist/esm/api/object.mjs +1 -1
- package/dist/esm/api/object.mjs.map +1 -1
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/staking.mjs.map +1 -1
- package/dist/esm/api/table.mjs +1 -1
- package/dist/esm/api/table.mjs.map +1 -1
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transaction.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/helpers.mjs +1 -1
- package/dist/esm/api/transactionSubmission/helpers.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.mjs.map +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.mjs +1 -1
- package/dist/esm/api/transactionSubmission/simulate.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.mjs.map +1 -1
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/api/utils.mjs.map +1 -1
- package/dist/esm/bcs/consts.mjs +1 -1
- package/dist/esm/bcs/consts.mjs.map +1 -1
- package/dist/esm/bcs/deserializer.mjs +1 -1
- package/dist/esm/bcs/deserializer.mjs.map +1 -1
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/index.mjs.map +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs.map +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs.map +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs.map +1 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs.map +1 -1
- package/dist/esm/bcs/serializer.mjs +1 -1
- package/dist/esm/bcs/serializer.mjs.map +1 -1
- package/dist/esm/cli/index.mjs +1 -1
- package/dist/esm/cli/index.mjs.map +1 -1
- package/dist/esm/cli/localNode.mjs +1 -1
- package/dist/esm/cli/localNode.mjs.map +1 -1
- package/dist/esm/cli/move.mjs +1 -1
- package/dist/esm/cli/move.mjs.map +1 -1
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/core.mjs.map +1 -1
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/get.mjs.map +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/index.mjs.map +1 -1
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/client/post.mjs.map +1 -1
- package/dist/esm/core/account/index.d.mts +1 -1
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/index.mjs.map +1 -1
- package/dist/esm/core/account/utils/address.d.mts +12 -1
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/address.mjs.map +1 -1
- package/dist/esm/core/account/utils/index.d.mts +1 -1
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/account/utils/index.mjs.map +1 -1
- package/dist/esm/core/accountAddress.mjs +3 -1
- package/dist/esm/core/accountAddress.mjs.map +1 -1
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/authenticationKey.mjs.map +1 -1
- package/dist/esm/core/common.mjs +1 -1
- package/dist/esm/core/common.mjs.map +1 -1
- package/dist/esm/core/crypto/abstraction.mjs +1 -1
- package/dist/esm/core/crypto/abstraction.mjs.map +1 -1
- package/dist/esm/core/crypto/deserializationUtils.mjs +1 -1
- package/dist/esm/core/crypto/deserializationUtils.mjs.map +1 -1
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ed25519.mjs.map +1 -1
- package/dist/esm/core/crypto/ephemeral.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.mjs.map +1 -1
- package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
- package/dist/esm/core/crypto/federatedKeyless.mjs.map +1 -1
- package/dist/esm/core/crypto/hdKey.mjs +1 -1
- package/dist/esm/core/crypto/hdKey.mjs.map +1 -1
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/index.mjs.map +1 -1
- package/dist/esm/core/crypto/keyless.mjs +1 -1
- package/dist/esm/core/crypto/keyless.mjs.map +1 -1
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiEd25519.mjs.map +1 -1
- package/dist/esm/core/crypto/multiKey.mjs +3 -1
- package/dist/esm/core/crypto/multiKey.mjs.map +1 -1
- package/dist/esm/core/crypto/poseidon.mjs +1 -1
- package/dist/esm/core/crypto/poseidon.mjs.map +1 -1
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/privateKey.mjs.map +1 -1
- package/dist/esm/core/crypto/proof.mjs +1 -1
- package/dist/esm/core/crypto/proof.mjs.map +1 -1
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/publicKey.mjs.map +1 -1
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.mjs.map +1 -1
- package/dist/esm/core/crypto/secp256r1.mjs +1 -1
- package/dist/esm/core/crypto/secp256r1.mjs.map +1 -1
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/signature.mjs.map +1 -1
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.mjs.map +1 -1
- package/dist/esm/core/crypto/types.mjs +0 -1
- package/dist/esm/core/crypto/utils.mjs +1 -1
- package/dist/esm/core/crypto/utils.mjs.map +1 -1
- package/dist/esm/core/hex.mjs +1 -1
- package/dist/esm/core/hex.mjs.map +1 -1
- package/dist/esm/core/index.d.mts +1 -1
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/core/index.mjs.map +1 -1
- package/dist/esm/errors/index.mjs +6 -1
- package/dist/esm/errors/index.mjs.map +1 -1
- package/dist/esm/index.d.mts +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/internal/abstraction.mjs +1 -1
- package/dist/esm/internal/abstraction.mjs.map +1 -1
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/account.mjs.map +1 -1
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/ans.mjs.map +1 -1
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/coin.mjs.map +1 -1
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/digitalAsset.mjs.map +1 -1
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/faucet.mjs.map +1 -1
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.mjs.map +1 -1
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/general.mjs.map +1 -1
- package/dist/esm/internal/keyless.mjs +1 -1
- package/dist/esm/internal/keyless.mjs.map +1 -1
- package/dist/esm/internal/object.mjs +1 -1
- package/dist/esm/internal/object.mjs.map +1 -1
- package/dist/esm/internal/staking.mjs +1 -1
- package/dist/esm/internal/staking.mjs.map +1 -1
- package/dist/esm/internal/table.mjs +1 -1
- package/dist/esm/internal/table.mjs.map +1 -1
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transaction.mjs.map +1 -1
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.mjs.map +1 -1
- package/dist/esm/internal/utils/index.mjs +1 -1
- package/dist/esm/internal/utils/index.mjs.map +1 -1
- package/dist/esm/internal/utils/utils.mjs +1 -1
- package/dist/esm/internal/utils/utils.mjs.map +1 -1
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/internal/view.mjs.map +1 -1
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/account.mjs.map +1 -1
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.mjs.map +1 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.mjs.map +1 -1
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/index.mjs.map +1 -1
- package/dist/esm/transactions/instances/chainId.mjs +1 -1
- package/dist/esm/transactions/instances/chainId.mjs.map +1 -1
- package/dist/esm/transactions/instances/identifier.mjs +1 -1
- package/dist/esm/transactions/instances/identifier.mjs.map +1 -1
- package/dist/esm/transactions/instances/index.mjs +1 -1
- package/dist/esm/transactions/instances/index.mjs.map +1 -1
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/moduleId.mjs.map +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs.map +1 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs.map +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs.map +1 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs.map +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs.map +1 -1
- package/dist/esm/transactions/instances/transactionArgument.mjs +0 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs.map +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs.map +1 -1
- package/dist/esm/transactions/management/asyncQueue.mjs +1 -1
- package/dist/esm/transactions/management/asyncQueue.mjs.map +1 -1
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/index.mjs.map +1 -1
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.mjs.map +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs.map +1 -1
- package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.mjs.map +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs.map +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs.map +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +2 -2
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs.map +1 -1
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.mjs.map +1 -1
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.mjs.map +1 -1
- package/dist/esm/transactions/types.mjs +0 -1
- package/dist/esm/types/abstraction.mjs +1 -1
- package/dist/esm/types/abstraction.mjs.map +1 -1
- package/dist/esm/types/generated/queries.mjs +493 -1
- package/dist/esm/types/generated/queries.mjs.map +1 -1
- package/dist/esm/types/generated/types.mjs +1 -1
- package/dist/esm/types/generated/types.mjs.map +1 -1
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/types/index.mjs.map +1 -1
- package/dist/esm/types/indexer.mjs +0 -1
- package/dist/esm/types/types.mjs +1 -1
- package/dist/esm/types/types.mjs.map +1 -1
- package/dist/esm/utils/apiEndpoints.d.mts +1 -0
- package/dist/esm/utils/apiEndpoints.mjs +1 -1
- package/dist/esm/utils/apiEndpoints.mjs.map +1 -1
- package/dist/esm/utils/const.mjs +1 -1
- package/dist/esm/utils/const.mjs.map +1 -1
- package/dist/esm/utils/helpers.mjs +1 -1
- package/dist/esm/utils/helpers.mjs.map +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/index.mjs.map +1 -1
- package/dist/esm/utils/memoize.mjs +1 -1
- package/dist/esm/utils/memoize.mjs.map +1 -1
- package/dist/esm/utils/normalizeBundle.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.mjs.map +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/dist/esm/version.mjs.map +1 -1
- package/package.json +39 -20
- package/src/api/aptos.ts +193 -51
- package/src/core/account/utils/address.ts +22 -0
- package/src/internal/ans.ts +1 -0
- package/src/utils/apiEndpoints.ts +7 -0
- package/src/version.ts +1 -1
- package/dist/common/chunk-A2XB7TVI.js +0 -4
- package/dist/esm/chunk-2PASUPUO.mjs +0 -2
- package/dist/esm/chunk-2PASUPUO.mjs.map +0 -1
- package/dist/esm/chunk-2XQKGWHQ.mjs +0 -2
- package/dist/esm/chunk-2XQKGWHQ.mjs.map +0 -1
- package/dist/esm/chunk-35DKMW7Q.mjs +0 -2
- package/dist/esm/chunk-35DKMW7Q.mjs.map +0 -1
- package/dist/esm/chunk-4AI7KQQ7.mjs +0 -2
- package/dist/esm/chunk-4AI7KQQ7.mjs.map +0 -1
- package/dist/esm/chunk-4QMXOWHP.mjs +0 -1
- package/dist/esm/chunk-4QMXOWHP.mjs.map +0 -1
- package/dist/esm/chunk-4RXKALLC.mjs +0 -2
- package/dist/esm/chunk-4RXKALLC.mjs.map +0 -1
- package/dist/esm/chunk-4WPQQPUF.mjs +0 -1
- package/dist/esm/chunk-4WPQQPUF.mjs.map +0 -1
- package/dist/esm/chunk-56CNRT2K.mjs +0 -2
- package/dist/esm/chunk-56CNRT2K.mjs.map +0 -1
- package/dist/esm/chunk-5HXLZHDW.mjs +0 -1
- package/dist/esm/chunk-5HXLZHDW.mjs.map +0 -1
- package/dist/esm/chunk-6OWBKU7N.mjs +0 -2
- package/dist/esm/chunk-6OWBKU7N.mjs.map +0 -1
- package/dist/esm/chunk-6WDVDEQZ.mjs +0 -7
- package/dist/esm/chunk-6WDVDEQZ.mjs.map +0 -1
- package/dist/esm/chunk-7DQDJ2SA.mjs +0 -2
- package/dist/esm/chunk-7DQDJ2SA.mjs.map +0 -1
- package/dist/esm/chunk-7ECCT6PK.mjs +0 -1
- package/dist/esm/chunk-7ECCT6PK.mjs.map +0 -1
- package/dist/esm/chunk-7EER7GWV.mjs +0 -2
- package/dist/esm/chunk-7EER7GWV.mjs.map +0 -1
- package/dist/esm/chunk-A5L76YP7.mjs +0 -2
- package/dist/esm/chunk-A5L76YP7.mjs.map +0 -1
- package/dist/esm/chunk-AMXZQPUQ.mjs +0 -2
- package/dist/esm/chunk-AMXZQPUQ.mjs.map +0 -1
- package/dist/esm/chunk-B563XRSZ.mjs +0 -2
- package/dist/esm/chunk-B563XRSZ.mjs.map +0 -1
- package/dist/esm/chunk-C3Q23D22.mjs +0 -2
- package/dist/esm/chunk-C3Q23D22.mjs.map +0 -1
- package/dist/esm/chunk-CIJA7ONS.mjs +0 -2
- package/dist/esm/chunk-CIJA7ONS.mjs.map +0 -1
- package/dist/esm/chunk-CW35YAMN.mjs +0 -2
- package/dist/esm/chunk-CW35YAMN.mjs.map +0 -1
- package/dist/esm/chunk-EBMEXURY.mjs +0 -2
- package/dist/esm/chunk-EBMEXURY.mjs.map +0 -1
- package/dist/esm/chunk-EF4FA5I6.mjs +0 -2
- package/dist/esm/chunk-EF4FA5I6.mjs.map +0 -1
- package/dist/esm/chunk-FD6FGKYY.mjs +0 -1
- package/dist/esm/chunk-FD6FGKYY.mjs.map +0 -1
- package/dist/esm/chunk-FGFLPH5K.mjs +0 -2
- package/dist/esm/chunk-FGFLPH5K.mjs.map +0 -1
- package/dist/esm/chunk-FLZPUYXQ.mjs +0 -2
- package/dist/esm/chunk-FLZPUYXQ.mjs.map +0 -1
- package/dist/esm/chunk-FZY4PMEE.mjs +0 -1
- package/dist/esm/chunk-FZY4PMEE.mjs.map +0 -1
- package/dist/esm/chunk-G3MHXDYA.mjs +0 -1
- package/dist/esm/chunk-G3MHXDYA.mjs.map +0 -1
- package/dist/esm/chunk-GOXRBEIJ.mjs +0 -2
- package/dist/esm/chunk-GOXRBEIJ.mjs.map +0 -1
- package/dist/esm/chunk-HGLO5LDS.mjs +0 -1
- package/dist/esm/chunk-HGLO5LDS.mjs.map +0 -1
- package/dist/esm/chunk-HNBVYE3N.mjs +0 -2
- package/dist/esm/chunk-HNBVYE3N.mjs.map +0 -1
- package/dist/esm/chunk-I7XT6L7S.mjs +0 -2
- package/dist/esm/chunk-I7XT6L7S.mjs.map +0 -1
- package/dist/esm/chunk-IF4UU2MT.mjs +0 -2
- package/dist/esm/chunk-IF4UU2MT.mjs.map +0 -1
- package/dist/esm/chunk-JABP65XD.mjs +0 -2
- package/dist/esm/chunk-JABP65XD.mjs.map +0 -1
- package/dist/esm/chunk-KDMSOCZY.mjs +0 -2
- package/dist/esm/chunk-KDMSOCZY.mjs.map +0 -1
- package/dist/esm/chunk-L72TIN7T.mjs +0 -4
- package/dist/esm/chunk-L72TIN7T.mjs.map +0 -1
- package/dist/esm/chunk-M3AO73ZL.mjs +0 -2
- package/dist/esm/chunk-M3AO73ZL.mjs.map +0 -1
- package/dist/esm/chunk-MCFQE4GC.mjs +0 -2
- package/dist/esm/chunk-MCFQE4GC.mjs.map +0 -1
- package/dist/esm/chunk-MT2RJ7H3.mjs +0 -2
- package/dist/esm/chunk-MT2RJ7H3.mjs.map +0 -1
- package/dist/esm/chunk-N6YTF76Q.mjs +0 -2
- package/dist/esm/chunk-N6YTF76Q.mjs.map +0 -1
- package/dist/esm/chunk-NECL5FCQ.mjs +0 -1
- package/dist/esm/chunk-NECL5FCQ.mjs.map +0 -1
- package/dist/esm/chunk-OLILO7VD.mjs +0 -2
- package/dist/esm/chunk-OLILO7VD.mjs.map +0 -1
- package/dist/esm/chunk-ORMOQWWH.mjs +0 -2
- package/dist/esm/chunk-ORMOQWWH.mjs.map +0 -1
- package/dist/esm/chunk-Q4W3WJ2U.mjs +0 -2
- package/dist/esm/chunk-Q4W3WJ2U.mjs.map +0 -1
- package/dist/esm/chunk-QP2BY4PK.mjs +0 -2
- package/dist/esm/chunk-QP2BY4PK.mjs.map +0 -1
- package/dist/esm/chunk-QREVMGQZ.mjs +0 -2
- package/dist/esm/chunk-QREVMGQZ.mjs.map +0 -1
- package/dist/esm/chunk-RCSJFTST.mjs +0 -2
- package/dist/esm/chunk-RCSJFTST.mjs.map +0 -1
- package/dist/esm/chunk-RGKRCZ36.mjs +0 -4
- package/dist/esm/chunk-RGKRCZ36.mjs.map +0 -1
- package/dist/esm/chunk-SJDCGNWU.mjs +0 -2
- package/dist/esm/chunk-SJDCGNWU.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-TOBQ5UE6.mjs +0 -2
- package/dist/esm/chunk-TOBQ5UE6.mjs.map +0 -1
- package/dist/esm/chunk-UL777LTI.mjs +0 -494
- package/dist/esm/chunk-UL777LTI.mjs.map +0 -1
- package/dist/esm/chunk-UYVPNUH3.mjs +0 -1
- package/dist/esm/chunk-UYVPNUH3.mjs.map +0 -1
- package/dist/esm/chunk-V3MBJJTL.mjs +0 -1
- package/dist/esm/chunk-V3MBJJTL.mjs.map +0 -1
- package/dist/esm/chunk-WCMW2L3P.mjs +0 -2
- package/dist/esm/chunk-WCMW2L3P.mjs.map +0 -1
- package/dist/esm/chunk-WHSTLR3F.mjs +0 -2
- package/dist/esm/chunk-WHSTLR3F.mjs.map +0 -1
- package/dist/esm/chunk-WSR5EBJM.mjs +0 -2
- package/dist/esm/chunk-WSR5EBJM.mjs.map +0 -1
- package/dist/esm/chunk-XJJVJOX5.mjs +0 -2
- package/dist/esm/chunk-XJJVJOX5.mjs.map +0 -1
- package/dist/esm/chunk-XKUIMGKU.mjs +0 -2
- package/dist/esm/chunk-XKUIMGKU.mjs.map +0 -1
- package/dist/esm/chunk-YOZBVVKL.mjs +0 -2
- package/dist/esm/chunk-YOZBVVKL.mjs.map +0 -1
- package/dist/esm/chunk-ZP4DWSQA.mjs +0 -2
- package/dist/esm/chunk-ZP4DWSQA.mjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Serializable as u}from"../../bcs/serializer";import{ChainId as h}from"./chainId";import{AccountAddress as r}from"../../core";import{TransactionPayload as m}from"./transactionPayload";import{TransactionVariants as n}from"../../types";class t extends u{constructor(e,s,a,i,o,c,d){super(),this.sender=e,this.sequence_number=s,this.payload=a,this.max_gas_amount=i,this.gas_unit_price=o,this.expiration_timestamp_secs=c,this.chain_id=d}serialize(e){this.sender.serialize(e),e.serializeU64(this.sequence_number),this.payload.serialize(e),e.serializeU64(this.max_gas_amount),e.serializeU64(this.gas_unit_price),e.serializeU64(this.expiration_timestamp_secs),this.chain_id.serialize(e)}static deserialize(e){const s=r.deserialize(e),a=e.deserializeU64(),i=m.deserialize(e),o=e.deserializeU64(),c=e.deserializeU64(),d=e.deserializeU64(),y=h.deserialize(e);return new t(s,a,i,o,c,d,y)}}class p extends u{static deserialize(e){const s=e.deserializeUleb128AsU32();switch(s){case n.MultiAgentTransaction:return l.load(e);case n.FeePayerTransaction:return _.load(e);default:throw new Error(`Unknown variant index for RawTransactionWithData: ${s}`)}}}class l extends p{constructor(e,s){super(),this.raw_txn=e,this.secondary_signer_addresses=s}serialize(e){e.serializeU32AsUleb128(n.MultiAgentTransaction),this.raw_txn.serialize(e),e.serializeVector(this.secondary_signer_addresses)}static load(e){const s=t.deserialize(e),a=e.deserializeVector(r);return new l(s,a)}}class _ extends p{constructor(e,s,a){super(),this.raw_txn=e,this.secondary_signer_addresses=s,this.fee_payer_address=a}serialize(e){e.serializeU32AsUleb128(n.FeePayerTransaction),this.raw_txn.serialize(e),e.serializeVector(this.secondary_signer_addresses),this.fee_payer_address.serialize(e)}static load(e){const s=t.deserialize(e),a=e.deserializeVector(r),i=r.deserialize(e);return new _(s,a,i)}}export{_ as FeePayerRawTransaction,l as MultiAgentRawTransaction,t as RawTransaction,p as RawTransactionWithData};
|
|
2
2
|
//# sourceMappingURL=rawTransaction.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/instances/rawTransaction.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { ChainId } from \"./chainId\";\nimport { AccountAddress } from \"../../core\";\nimport { TransactionPayload } from \"./transactionPayload\";\nimport { TransactionVariants } from \"../../types\";\n\n/**\n * Represents a raw transaction that can be serialized and deserialized.\n * Raw transactions contain the metadata and payloads that can be submitted to the Aptos chain for execution.\n * They must be signed before the Aptos chain can execute them.\n * @group Implementation\n * @category Transactions\n */\nexport class RawTransaction extends Serializable {\n public readonly sender: AccountAddress;\n\n public readonly sequence_number: bigint;\n\n public readonly payload: TransactionPayload;\n\n public readonly max_gas_amount: bigint;\n\n public readonly gas_unit_price: bigint;\n\n public readonly expiration_timestamp_secs: bigint;\n\n public readonly chain_id: ChainId;\n\n /**\n * RawTransactions contain the metadata and payloads that can be submitted to Aptos chain for execution.\n * RawTransactions must be signed before Aptos chain can execute them.\n *\n * @param sender The sender Account Address\n * @param sequence_number Sequence number of this transaction. This must match the sequence number stored in\n * the sender's account at the time the transaction executes.\n * @param payload Instructions for the Aptos Blockchain, including publishing a module,\n * execute an entry function or execute a script payload.\n * @param max_gas_amount Maximum total gas to spend for this transaction. The account must have more\n * than this gas or the transaction will be discarded during validation.\n * @param gas_unit_price Price to be paid per gas unit.\n * @param expiration_timestamp_secs The blockchain timestamp at which the blockchain would discard this transaction.\n * @param chain_id The chain ID of the blockchain that this transaction is intended to be run on.\n * @group Implementation\n * @category Transactions\n */\n constructor(\n sender: AccountAddress,\n sequence_number: bigint,\n payload: TransactionPayload,\n max_gas_amount: bigint,\n gas_unit_price: bigint,\n expiration_timestamp_secs: bigint,\n chain_id: ChainId,\n ) {\n super();\n this.sender = sender;\n this.sequence_number = sequence_number;\n this.payload = payload;\n this.max_gas_amount = max_gas_amount;\n this.gas_unit_price = gas_unit_price;\n this.expiration_timestamp_secs = expiration_timestamp_secs;\n this.chain_id = chain_id;\n }\n\n /**\n * Serializes the transaction data, including the fee payer transaction type, raw transaction, secondary signer addresses,\n * and fee payer address.\n * This function is essential for preparing the transaction for transmission or storage in a serialized format.\n *\n * @param serializer - The serializer instance used to serialize the transaction data.\n * @group Implementation\n * @category Transactions\n */\n serialize(serializer: Serializer): void {\n this.sender.serialize(serializer);\n serializer.serializeU64(this.sequence_number);\n this.payload.serialize(serializer);\n serializer.serializeU64(this.max_gas_amount);\n serializer.serializeU64(this.gas_unit_price);\n serializer.serializeU64(this.expiration_timestamp_secs);\n this.chain_id.serialize(serializer);\n }\n\n /**\n * Deserialize a Raw Transaction With Data.\n * This function retrieves the appropriate raw transaction based on the variant index provided by the deserializer.\n *\n * @param deserializer - An instance of the Deserializer used to read the serialized data.\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): RawTransaction {\n const sender = AccountAddress.deserialize(deserializer);\n const sequence_number = deserializer.deserializeU64();\n const payload = TransactionPayload.deserialize(deserializer);\n const max_gas_amount = deserializer.deserializeU64();\n const gas_unit_price = deserializer.deserializeU64();\n const expiration_timestamp_secs = deserializer.deserializeU64();\n const chain_id = ChainId.deserialize(deserializer);\n return new RawTransaction(\n sender,\n sequence_number,\n payload,\n max_gas_amount,\n gas_unit_price,\n expiration_timestamp_secs,\n chain_id,\n );\n }\n}\n\n/**\n * Represents a raw transaction with associated data that can be serialized and deserialized.\n *\n * @extends Serializable\n * @group Implementation\n * @category Transactions\n */\nexport abstract class RawTransactionWithData extends Serializable {\n /**\n * Serialize a Raw Transaction With Data\n * @group Implementation\n * @category Transactions\n */\n abstract serialize(serializer: Serializer): void;\n\n /**\n * Deserialize a Raw Transaction With Data\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): RawTransactionWithData {\n // index enum variant\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case TransactionVariants.MultiAgentTransaction:\n return MultiAgentRawTransaction.load(deserializer);\n case TransactionVariants.FeePayerTransaction:\n return FeePayerRawTransaction.load(deserializer);\n default:\n throw new Error(`Unknown variant index for RawTransactionWithData: ${index}`);\n }\n }\n}\n\n/**\n * Represents a multi-agent transaction that can be serialized and deserialized.\n *\n * @extends RawTransactionWithData\n * @group Implementation\n * @category Transactions\n */\nexport class MultiAgentRawTransaction extends RawTransactionWithData {\n /**\n * The raw transaction\n * @group Implementation\n * @category Transactions\n */\n public readonly raw_txn: RawTransaction;\n\n /**\n * The secondary signers on this transaction\n * @group Implementation\n * @category Transactions\n */\n public readonly secondary_signer_addresses: Array<AccountAddress>;\n\n constructor(raw_txn: RawTransaction, secondary_signer_addresses: Array<AccountAddress>) {\n super();\n this.raw_txn = raw_txn;\n this.secondary_signer_addresses = secondary_signer_addresses;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionVariants.MultiAgentTransaction);\n this.raw_txn.serialize(serializer);\n serializer.serializeVector(this.secondary_signer_addresses);\n }\n\n /**\n * Deserializes a Fee Payer Raw Transaction from the provided deserializer.\n * This function allows you to reconstruct a Fee Payer Raw Transaction object, which includes the raw transaction data,\n * secondary signer addresses, and the fee payer address.\n *\n * @param deserializer - The deserializer used to read the raw transaction data.\n * @returns A FeePayerRawTransaction object constructed from the deserialized data.\n * @group Implementation\n * @category Transactions\n */\n static load(deserializer: Deserializer): MultiAgentRawTransaction {\n const rawTxn = RawTransaction.deserialize(deserializer);\n const secondarySignerAddresses = deserializer.deserializeVector(AccountAddress);\n\n return new MultiAgentRawTransaction(rawTxn, secondarySignerAddresses);\n }\n}\n\n/**\n * Represents a Fee Payer Transaction that can be serialized and deserialized.\n * @group Implementation\n * @category Transactions\n */\nexport class FeePayerRawTransaction extends RawTransactionWithData {\n /**\n * The raw transaction\n * @group Implementation\n * @category Transactions\n */\n public readonly raw_txn: RawTransaction;\n\n /**\n * The secondary signers on this transaction - optional and can be empty\n * @group Implementation\n * @category Transactions\n */\n public readonly secondary_signer_addresses: Array<AccountAddress>;\n\n /**\n * The fee payer account address\n * @group Implementation\n * @category Transactions\n */\n public readonly fee_payer_address: AccountAddress;\n\n constructor(\n raw_txn: RawTransaction,\n secondary_signer_addresses: Array<AccountAddress>,\n fee_payer_address: AccountAddress,\n ) {\n super();\n this.raw_txn = raw_txn;\n this.secondary_signer_addresses = secondary_signer_addresses;\n this.fee_payer_address = fee_payer_address;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionVariants.FeePayerTransaction);\n this.raw_txn.serialize(serializer);\n serializer.serializeVector(this.secondary_signer_addresses);\n this.fee_payer_address.serialize(serializer);\n }\n\n static load(deserializer: Deserializer): FeePayerRawTransaction {\n const rawTxn = RawTransaction.deserialize(deserializer);\n const secondarySignerAddresses = deserializer.deserializeVector(AccountAddress);\n const feePayerAddress = AccountAddress.deserialize(deserializer);\n\n return new FeePayerRawTransaction(rawTxn, secondarySignerAddresses, feePayerAddress);\n }\n}\n"],"mappings":"AAMA,OAAS,gBAAAA,MAAgC,uBACzC,OAAS,WAAAC,MAAe,YACxB,OAAS,kBAAAC,MAAsB,aAC/B,OAAS,sBAAAC,MAA0B,uBACnC,OAAS,uBAAAC,MAA2B,cAS7B,MAAMC,UAAuBL,CAAa,CAgC/C,YACEM,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,MAAM,EACN,KAAK,OAASN,EACd,KAAK,gBAAkBC,EACvB,KAAK,QAAUC,EACf,KAAK,eAAiBC,EACtB,KAAK,eAAiBC,EACtB,KAAK,0BAA4BC,EACjC,KAAK,SAAWC,CAClB,CAWA,UAAUC,EAA8B,CACtC,KAAK,OAAO,UAAUA,CAAU,EAChCA,EAAW,aAAa,KAAK,eAAe,EAC5C,KAAK,QAAQ,UAAUA,CAAU,EACjCA,EAAW,aAAa,KAAK,cAAc,EAC3CA,EAAW,aAAa,KAAK,cAAc,EAC3CA,EAAW,aAAa,KAAK,yBAAyB,EACtD,KAAK,SAAS,UAAUA,CAAU,CACpC,CAUA,OAAO,YAAYC,EAA4C,CAC7D,MAAMR,EAASJ,EAAe,YAAYY,CAAY,EAChDP,EAAkBO,EAAa,eAAe,EAC9CN,EAAUL,EAAmB,YAAYW,CAAY,EACrDL,EAAiBK,EAAa,eAAe,EAC7CJ,EAAiBI,EAAa,eAAe,EAC7CH,EAA4BG,EAAa,eAAe,EACxDF,EAAWX,EAAQ,YAAYa,CAAY,EACjD,OAAO,IAAIT,EACTC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CACF,CACF,CACF,CASO,MAAeG,UAA+Bf,CAAa,CAahE,OAAO,YAAYc,EAAoD,CAErE,MAAME,EAAQF,EAAa,wBAAwB,EACnD,OAAQE,EAAO,CACb,KAAKZ,EAAoB,sBACvB,OAAOa,EAAyB,KAAKH,CAAY,EACnD,KAAKV,EAAoB,oBACvB,OAAOc,EAAuB,KAAKJ,CAAY,EACjD,QACE,MAAM,IAAI,MAAM,qDAAqDE,CAAK,EAAE,CAChF,CACF,CACF,CASO,MAAMC,UAAiCF,CAAuB,CAenE,YAAYI,EAAyBC,EAAmD,CACtF,MAAM,EACN,KAAK,QAAUD,EACf,KAAK,2BAA6BC,CACpC,CAEA,UAAUP,EAA8B,CACtCA,EAAW,sBAAsBT,EAAoB,qBAAqB,EAC1E,KAAK,QAAQ,UAAUS,CAAU,EACjCA,EAAW,gBAAgB,KAAK,0BAA0B,CAC5D,CAYA,OAAO,KAAKC,EAAsD,CAChE,MAAMO,EAAShB,EAAe,YAAYS,CAAY,EAChDQ,EAA2BR,EAAa,kBAAkBZ,CAAc,EAE9E,OAAO,IAAIe,EAAyBI,EAAQC,CAAwB,CACtE,CACF,CAOO,MAAMJ,UAA+BH,CAAuB,CAsBjE,YACEI,EACAC,EACAG,EACA,CACA,MAAM,EACN,KAAK,QAAUJ,EACf,KAAK,2BAA6BC,EAClC,KAAK,kBAAoBG,CAC3B,CAEA,UAAUV,EAA8B,CACtCA,EAAW,sBAAsBT,EAAoB,mBAAmB,EACxE,KAAK,QAAQ,UAAUS,CAAU,EACjCA,EAAW,gBAAgB,KAAK,0BAA0B,EAC1D,KAAK,kBAAkB,UAAUA,CAAU,CAC7C,CAEA,OAAO,KAAKC,EAAoD,CAC9D,MAAMO,EAAShB,EAAe,YAAYS,CAAY,EAChDQ,EAA2BR,EAAa,kBAAkBZ,CAAc,EACxEsB,EAAkBtB,EAAe,YAAYY,CAAY,EAE/D,OAAO,IAAII,EAAuBG,EAAQC,EAA0BE,CAAe,CACrF,CACF","names":["Serializable","ChainId","AccountAddress","TransactionPayload","TransactionVariants","RawTransaction","sender","sequence_number","payload","max_gas_amount","gas_unit_price","expiration_timestamp_secs","chain_id","serializer","deserializer","RawTransactionWithData","index","MultiAgentRawTransaction","FeePayerRawTransaction","raw_txn","secondary_signer_addresses","rawTxn","secondarySignerAddresses","fee_payer_address","feePayerAddress"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Serializable as t}from"../../bcs/serializer";import{AccountAddress as o}from"../../core/accountAddress";import{MoveString as r,MoveVector as i,U64 as n}from"../../bcs";class p extends t{constructor(e){super();this.accountAddress=o.ONE;this.moduleName=new r("account");this.structName=new r("RotationProofChallenge");this.sequenceNumber=new n(e.sequenceNumber),this.originator=e.originator,this.currentAuthKey=e.currentAuthKey,this.newPublicKey=i.U8(e.newPublicKey.toUint8Array())}serialize(e){e.serialize(this.accountAddress),e.serialize(this.moduleName),e.serialize(this.structName),e.serialize(this.sequenceNumber),e.serialize(this.originator),e.serialize(this.currentAuthKey),e.serialize(this.newPublicKey)}}export{p as RotationProofChallenge};
|
|
2
2
|
//# sourceMappingURL=rotationProofChallenge.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/instances/rotationProofChallenge.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Serializer, Serializable } from \"../../bcs/serializer\";\nimport { AccountAddress } from \"../../core/accountAddress\";\nimport { AnyNumber } from \"../../types\";\nimport { PublicKey } from \"../../core/crypto\";\nimport { MoveString, MoveVector, U64, U8 } from \"../../bcs\";\n\n/**\n * Represents a challenge required for the account owner to sign in order to rotate the authentication key.\n * @group Implementation\n * @category Transactions\n */\nexport class RotationProofChallenge extends Serializable {\n // Resource account address\n public readonly accountAddress: AccountAddress = AccountAddress.ONE;\n\n // Module name, i.e: 0x1::account\n public readonly moduleName: MoveString = new MoveString(\"account\");\n\n // The rotation proof challenge struct name that live under the module\n public readonly structName: MoveString = new MoveString(\"RotationProofChallenge\");\n\n // Signer's address\n public readonly originator: AccountAddress;\n\n // Signer's current authentication key\n public readonly currentAuthKey: AccountAddress;\n\n // New public key to rotate to\n public readonly newPublicKey: MoveVector<U8>;\n\n // Sequence number of the account\n public readonly sequenceNumber: U64;\n\n /**\n * Initializes a new instance of the class with the specified parameters.\n * This constructor sets up the necessary attributes for managing account keys.\n *\n * @param args - The parameters required to create the instance.\n * @param args.sequenceNumber - The sequence number associated with the transaction.\n * @param args.originator - The account address of the originator.\n * @param args.currentAuthKey - The current authentication key of the account.\n * @param args.newPublicKey - The new public key to be set for the account.\n * @group Implementation\n * @category Transactions\n */\n constructor(args: {\n sequenceNumber: AnyNumber;\n originator: AccountAddress;\n currentAuthKey: AccountAddress;\n newPublicKey: PublicKey;\n }) {\n super();\n this.sequenceNumber = new U64(args.sequenceNumber);\n this.originator = args.originator;\n this.currentAuthKey = args.currentAuthKey;\n this.newPublicKey = MoveVector.U8(args.newPublicKey.toUint8Array());\n }\n\n /**\n * Serializes the properties of the current instance for transmission or storage.\n * This function helps in converting the instance data into a format suitable for serialization.\n *\n * @param serializer - The serializer used to serialize the instance properties.\n * @param serializer.accountAddress - The account address to serialize.\n * @param serializer.moduleName - The module name to serialize.\n * @param serializer.structName - The struct name to serialize.\n * @param serializer.sequenceNumber - The sequence number to serialize.\n * @param serializer.originator - The originator to serialize.\n * @param serializer.currentAuthKey - The current authentication key to serialize.\n * @param serializer.newPublicKey - The new public key to serialize.\n * @group Implementation\n * @category Transactions\n */\n serialize(serializer: Serializer): void {\n serializer.serialize(this.accountAddress);\n serializer.serialize(this.moduleName);\n serializer.serialize(this.structName);\n serializer.serialize(this.sequenceNumber);\n serializer.serialize(this.originator);\n serializer.serialize(this.currentAuthKey);\n serializer.serialize(this.newPublicKey);\n }\n}\n"],"mappings":"AAGA,OAAqB,gBAAAA,MAAoB,uBACzC,OAAS,kBAAAC,MAAsB,4BAG/B,OAAS,cAAAC,EAAY,cAAAC,EAAY,OAAAC,MAAe,YAOzC,MAAMC,UAA+BL,CAAa,CAkCvD,YAAYM,EAKT,CACD,MAAM,EAtCR,KAAgB,eAAiCL,EAAe,IAGhE,KAAgB,WAAyB,IAAIC,EAAW,SAAS,EAGjE,KAAgB,WAAyB,IAAIA,EAAW,wBAAwB,EAiC9E,KAAK,eAAiB,IAAIE,EAAIE,EAAK,cAAc,EACjD,KAAK,WAAaA,EAAK,WACvB,KAAK,eAAiBA,EAAK,eAC3B,KAAK,aAAeH,EAAW,GAAGG,EAAK,aAAa,aAAa,CAAC,CACpE,CAiBA,UAAUC,EAA8B,CACtCA,EAAW,UAAU,KAAK,cAAc,EACxCA,EAAW,UAAU,KAAK,UAAU,EACpCA,EAAW,UAAU,KAAK,UAAU,EACpCA,EAAW,UAAU,KAAK,cAAc,EACxCA,EAAW,UAAU,KAAK,UAAU,EACpCA,EAAW,UAAU,KAAK,cAAc,EACxCA,EAAW,UAAU,KAAK,YAAY,CACxC,CACF","names":["Serializable","AccountAddress","MoveString","MoveVector","U64","RotationProofChallenge","args","serializer"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{TransactionAuthenticator as e}from"../authenticator/transaction";import{Serializable as n}from"../../bcs/serializer";import{RawTransaction as o}from"./rawTransaction";class i extends n{constructor(t,a){super(),this.raw_txn=t,this.authenticator=a}serialize(t){this.raw_txn.serialize(t),this.authenticator.serialize(t)}static deserialize(t){const a=o.deserialize(t),r=e.deserialize(t);return new i(a,r)}}export{i as SignedTransaction};
|
|
2
2
|
//# sourceMappingURL=signedTransaction.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/instances/signedTransaction.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { TransactionAuthenticator } from \"../authenticator/transaction\";\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { RawTransaction } from \"./rawTransaction\";\n\n/**\n * Represents a signed transaction that includes a raw transaction and an authenticator.\n * The authenticator contains a client's public key and the signature of the raw transaction.\n *\n * @see {@link https://aptos.dev/integration/creating-a-signed-transaction | Creating a Signed Transaction}\n * @param raw_txn - The raw transaction to be signed.\n * @param authenticator - Contains a client's public key and the signature of the raw transaction.\n * Authenticator can have three variations: single signature, multi-signature, and multi-agent.\n * @see {@link https://github.com/aptos-labs/aptos-core/blob/main/types/src/transaction/authenticator.rs} for details.\n * @group Implementation\n * @category Transactions\n */\nexport class SignedTransaction extends Serializable {\n public readonly raw_txn: RawTransaction;\n\n public readonly authenticator: TransactionAuthenticator;\n\n /**\n * Represents a signed transaction that includes a raw transaction and an authenticator.\n * The authenticator contains a client's public key and the signature of the raw transaction,\n * which can be of three types: single signature, multi-signature, and multi-agent.\n *\n * @param raw_txn The raw transaction to be signed.\n * @param authenticator Contains a client's public key and the signature of the raw transaction. The authenticator has 3\n * flavors: single signature, multi-signature and multi-agent.\n * @see {@link https://aptos.dev/integration/creating-a-signed-transaction | Creating a Signed Transaction}\n * @see {@link https://github.com/aptos-labs/aptos-core/blob/main/types/src/transaction/authenticator.rs} for details.\n * @group Implementation\n * @category Transactions\n */\n constructor(raw_txn: RawTransaction, authenticator: TransactionAuthenticator) {\n super();\n this.raw_txn = raw_txn;\n this.authenticator = authenticator;\n }\n\n /**\n * Serializes the raw transaction and its authenticator using the provided serializer.\n * This function is essential for preparing the transaction data for transmission or storage.\n *\n * @param serializer - The serializer instance used to serialize the transaction and authenticator.\n * @group Implementation\n * @category Transactions\n */\n serialize(serializer: Serializer): void {\n this.raw_txn.serialize(serializer);\n this.authenticator.serialize(serializer);\n }\n\n /**\n * Deserializes a signed transaction from the provided deserializer.\n * This function allows you to reconstruct a SignedTransaction object from its serialized form, enabling further processing or validation.\n *\n * @param deserializer - The deserializer instance used to read the serialized data.\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): SignedTransaction {\n const raw_txn = RawTransaction.deserialize(deserializer);\n const authenticator = TransactionAuthenticator.deserialize(deserializer);\n return new SignedTransaction(raw_txn, authenticator);\n }\n}\n"],"mappings":"AAKA,OAAS,4BAAAA,MAAgC,+BAEzC,OAAS,gBAAAC,MAAgC,uBACzC,OAAS,kBAAAC,MAAsB,mBAcxB,MAAMC,UAA0BF,CAAa,CAkBlD,YAAYG,EAAyBC,EAAyC,CAC5E,MAAM,EACN,KAAK,QAAUD,EACf,KAAK,cAAgBC,CACvB,CAUA,UAAUC,EAA8B,CACtC,KAAK,QAAQ,UAAUA,CAAU,EACjC,KAAK,cAAc,UAAUA,CAAU,CACzC,CAUA,OAAO,YAAYC,EAA+C,CAChE,MAAMH,EAAUF,EAAe,YAAYK,CAAY,EACjDF,EAAgBL,EAAyB,YAAYO,CAAY,EACvE,OAAO,IAAIJ,EAAkBC,EAASC,CAAa,CACrD,CACF","names":["TransactionAuthenticator","Serializable","RawTransaction","SignedTransaction","raw_txn","authenticator","serializer","deserializer"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Serializable as n}from"../../bcs/serializer";import{AccountAddress as o}from"../../core";import{RawTransaction as t}from"./rawTransaction";class i extends n{constructor(e,r){super(),this.rawTransaction=e,this.feePayerAddress=r}serialize(e){this.rawTransaction.serialize(e),this.feePayerAddress===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.feePayerAddress.serialize(e))}static deserialize(e){const r=t.deserialize(e),a=e.deserializeBool();let s;return a&&(s=o.deserialize(e)),new i(r,s)}}export{i as SimpleTransaction};
|
|
2
2
|
//# sourceMappingURL=simpleTransaction.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/instances/simpleTransaction.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { AccountAddress } from \"../../core\";\nimport { RawTransaction } from \"./rawTransaction\";\n\n/**\n * Represents a simple transaction type that can be submitted to the Aptos chain for execution.\n *\n * This transaction type is designed for a single signer and includes metadata such as the Raw Transaction\n * and an optional sponsor Account Address to cover gas fees.\n *\n * @param rawTransaction - The Raw Transaction.\n * @param feePayerAddress - The optional sponsor Account Address.\n * @group Implementation\n * @category Transactions\n */\nexport class SimpleTransaction extends Serializable {\n public rawTransaction: RawTransaction;\n\n public feePayerAddress?: AccountAddress | undefined;\n\n // We don't really need it, we add it for type checking we do\n // throughout the SDK\n public readonly secondarySignerAddresses: undefined;\n\n /**\n * SimpleTransaction represents a transaction signed by a single account that\n * can be submitted to the Aptos chain for execution.\n *\n * @param rawTransaction The Raw Transaction.\n * @param feePayerAddress The optional sponsor Account Address to pay the gas fees.\n * @group Implementation\n * @category Transactions\n */\n constructor(rawTransaction: RawTransaction, feePayerAddress?: AccountAddress) {\n super();\n this.rawTransaction = rawTransaction;\n this.feePayerAddress = feePayerAddress;\n }\n\n /**\n * Serializes the transaction data using the provided serializer.\n * This function ensures that the raw transaction and fee payer address are properly serialized for further processing.\n *\n * @param serializer - The serializer instance used to serialize the transaction data.\n * @group Implementation\n * @category Transactions\n */\n serialize(serializer: Serializer): void {\n this.rawTransaction.serialize(serializer);\n\n if (this.feePayerAddress === undefined) {\n serializer.serializeBool(false);\n } else {\n serializer.serializeBool(true);\n this.feePayerAddress.serialize(serializer);\n }\n }\n\n /**\n * Deserializes a SimpleTransaction from the given deserializer.\n * This function helps in reconstructing a SimpleTransaction object from its serialized form.\n *\n * @param deserializer - The deserializer instance used to read the serialized data.\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): SimpleTransaction {\n const rawTransaction = RawTransaction.deserialize(deserializer);\n const feePayerPresent = deserializer.deserializeBool();\n let feePayerAddress;\n if (feePayerPresent) {\n feePayerAddress = AccountAddress.deserialize(deserializer);\n }\n\n return new SimpleTransaction(rawTransaction, feePayerAddress);\n }\n}\n"],"mappings":"AAMA,OAAS,gBAAAA,MAAgC,uBACzC,OAAS,kBAAAC,MAAsB,aAC/B,OAAS,kBAAAC,MAAsB,mBAaxB,MAAMC,UAA0BH,CAAa,CAkBlD,YAAYI,EAAgCC,EAAkC,CAC5E,MAAM,EACN,KAAK,eAAiBD,EACtB,KAAK,gBAAkBC,CACzB,CAUA,UAAUC,EAA8B,CACtC,KAAK,eAAe,UAAUA,CAAU,EAEpC,KAAK,kBAAoB,OAC3BA,EAAW,cAAc,EAAK,GAE9BA,EAAW,cAAc,EAAI,EAC7B,KAAK,gBAAgB,UAAUA,CAAU,EAE7C,CAUA,OAAO,YAAYC,EAA+C,CAChE,MAAMH,EAAiBF,EAAe,YAAYK,CAAY,EACxDC,EAAkBD,EAAa,gBAAgB,EACrD,IAAIF,EACJ,OAAIG,IACFH,EAAkBJ,EAAe,YAAYM,CAAY,GAGpD,IAAIJ,EAAkBC,EAAgBC,CAAe,CAC9D,CACF","names":["Serializable","AccountAddress","RawTransaction","SimpleTransaction","rawTransaction","feePayerAddress","serializer","deserializer","feePayerPresent"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Serializable as w}from"../../bcs/serializer";import{EntryFunctionBytes as k}from"../../bcs/serializable/entryFunctionBytes";import{Bool as $,U128 as O,U16 as H,U256 as L,U32 as j,U64 as g,U8 as v}from"../../bcs/serializable/movePrimitives";import{MoveVector as q,Serialized as G}from"../../bcs/serializable/moveStructs";import{AccountAddress as A}from"../../core";import{Identifier as P}from"./identifier";import{ModuleId as _}from"./moduleId";import{ScriptTransactionArgumentVariants as a,TransactionExecutableVariants as o,TransactionExtraConfigVariants as D,TransactionInnerPayloadVariants as M,TransactionPayloadVariants as s}from"../../types";import{TypeTag as V}from"../typeTag";function J(i){const e=i.deserializeUleb128AsU32();switch(e){case a.U8:return v.deserialize(i);case a.U64:return g.deserialize(i);case a.U128:return O.deserialize(i);case a.Address:return A.deserialize(i);case a.U8Vector:return q.deserialize(i,v);case a.Bool:return $.deserialize(i);case a.U16:return H.deserialize(i);case a.U32:return j.deserialize(i);case a.U256:return L.deserialize(i);case a.Serialized:return G.deserialize(i);default:throw new Error(`Unknown variant index for ScriptTransactionArgument: ${e}`)}}class y extends w{static deserialize(e){const t=e.deserializeUleb128AsU32();switch(t){case s.Script:return m.load(e);case s.EntryFunction:return x.load(e);case s.Multisig:return b.load(e);case s.Payload:return I.deserialize(e);default:throw new Error(`Unknown variant index for TransactionPayload: ${t}`)}}}class m extends y{constructor(e){super(),this.script=e}serialize(e){e.serializeU32AsUleb128(s.Script),this.script.serialize(e)}static load(e){const t=z.deserialize(e);return new m(t)}}class x extends y{constructor(e){super(),this.entryFunction=e}serialize(e){e.serializeU32AsUleb128(s.EntryFunction),this.entryFunction.serialize(e)}static load(e){const t=c.deserialize(e);return new x(t)}}class b extends y{constructor(e){super(),this.multiSig=e}serialize(e){e.serializeU32AsUleb128(s.Multisig),this.multiSig.serialize(e)}static load(e){const t=U.deserialize(e);return new b(t)}}class c{constructor(e,t,r,n){this.module_name=e,this.function_name=t,this.type_args=r,this.args=n}static build(e,t,r,n){return new c(_.fromStr(e),new P(t),r,n)}serialize(e){this.module_name.serialize(e),this.function_name.serialize(e),e.serializeVector(this.type_args),e.serializeU32AsUleb128(this.args.length),this.args.forEach(t=>{t.serializeForEntryFunction(e)})}static deserialize(e){const t=_.deserialize(e),r=P.deserialize(e),n=e.deserializeVector(V),u=e.deserializeUleb128AsU32(),l=new Array;for(let d=0;d<u;d+=1){const C=e.deserializeUleb128AsU32(),N=k.deserialize(e,C);l.push(N)}return new c(t,r,n,l)}}class z{constructor(e,t,r){this.bytecode=e,this.type_args=t,this.args=r}serialize(e){e.serializeBytes(this.bytecode),e.serializeVector(this.type_args),e.serializeU32AsUleb128(this.args.length),this.args.forEach(t=>{t.serializeForScriptFunction(e)})}static deserialize(e){const t=e.deserializeBytes(),r=e.deserializeVector(V),n=e.deserializeUleb128AsU32(),u=new Array;for(let l=0;l<n;l+=1){const d=J(e);u.push(d)}return new z(t,r,u)}}class U{constructor(e,t){this.multisig_address=e,this.transaction_payload=t}serialize(e){this.multisig_address.serialize(e),this.transaction_payload===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.transaction_payload.serialize(e))}static deserialize(e){const t=A.deserialize(e),r=e.deserializeBool();let n;return r&&(n=h.deserialize(e)),new U(t,n)}}class h extends w{constructor(e){super(),this.transaction_payload=e}serialize(e){e.serializeU32AsUleb128(0),this.transaction_payload.serialize(e)}static deserialize(e){return e.deserializeUleb128AsU32(),new h(c.deserialize(e))}}class I extends y{static deserialize(e){const t=e.deserializeUleb128AsU32();switch(t){case M.V1:return f.load(e);default:throw new Error(`Unknown variant index for TransactionInnerPayload: ${t}`)}}}class f extends I{constructor(e,t){super(),this.executable=e,this.extra_config=t}serialize(e){e.serializeU32AsUleb128(s.Payload),e.serializeU32AsUleb128(M.V1),this.executable.serialize(e),this.extra_config.serialize(e)}static load(e){let t=p.deserialize(e),r=B.deserialize(e);return new f(t,r)}}class p{static deserialize(e){const t=e.deserializeUleb128AsU32();switch(t){case o.Script:return S.load(e);case o.EntryFunction:return T.load(e);case o.Empty:return E.load(e);default:throw new Error(`Unknown variant index for TransactionExecutable: ${t}`)}}}class S extends p{constructor(e){super(),this.script=e}serialize(e){e.serializeU32AsUleb128(o.Script),this.script.serialize(e)}static load(e){let t=z.deserialize(e);return new S(t)}}class T extends p{constructor(e){super(),this.entryFunction=e}serialize(e){e.serializeU32AsUleb128(o.EntryFunction),this.entryFunction.serialize(e)}static load(e){let t=c.deserialize(e);return new T(t)}}class E extends p{serialize(e){e.serializeU32AsUleb128(o.Empty)}static load(e){return new E}}class B{static deserialize(e){const t=e.deserializeUleb128AsU32();switch(t){case D.V1:return F.load(e);default:throw new Error(`Unknown variant index for TransactionExtraConfig: ${t}`)}}}class F extends B{constructor(e,t){super(),this.multisigAddress=e,this.replayProtectionNonce=t!==void 0?BigInt(t):void 0}serialize(e){e.serializeU32AsUleb128(D.V1),e.serializeOption(this.multisigAddress),e.serializeOption(this.replayProtectionNonce!==void 0?new g(this.replayProtectionNonce):void 0)}static load(e){const t=e.deserializeOption(A),r=e.deserializeOption(g);return new F(t,r?.value)}}export{c as EntryFunction,U as MultiSig,h as MultiSigTransactionPayload,z as Script,p as TransactionExecutable,E as TransactionExecutableEmpty,T as TransactionExecutableEntryFunction,S as TransactionExecutableScript,B as TransactionExtraConfig,F as TransactionExtraConfigV1,I as TransactionInnerPayload,f as TransactionInnerPayloadV1,y as TransactionPayload,x as TransactionPayloadEntryFunction,b as TransactionPayloadMultiSig,m as TransactionPayloadScript,J as deserializeFromScriptArgument};
|
|
2
2
|
//# sourceMappingURL=transactionPayload.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/instances/transactionPayload.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Deserializer } from \"../../bcs/deserializer\";\nimport { Serializable, Serializer } from \"../../bcs/serializer\";\nimport { EntryFunctionBytes } from \"../../bcs/serializable/entryFunctionBytes\";\nimport { Bool, U128, U16, U256, U32, U64, U8 } from \"../../bcs/serializable/movePrimitives\";\nimport { MoveVector, Serialized } from \"../../bcs/serializable/moveStructs\";\nimport { AccountAddress, Hex } from \"../../core\";\nimport { Identifier } from \"./identifier\";\nimport { ModuleId } from \"./moduleId\";\nimport type { EntryFunctionArgument, ScriptFunctionArgument, TransactionArgument } from \"./transactionArgument\";\nimport {\n AnyNumber,\n MoveModuleId,\n ScriptTransactionArgumentVariants,\n TransactionExecutableVariants,\n TransactionExtraConfigVariants,\n TransactionInnerPayloadVariants,\n TransactionPayloadVariants,\n} from \"../../types\";\nimport { TypeTag } from \"../typeTag\";\n\n/**\n * Deserialize a Script Transaction Argument.\n * This function retrieves and deserializes various types of script transaction arguments based on the provided deserializer.\n *\n * @param deserializer - The deserializer used to read the script transaction argument.\n * @returns The deserialized script transaction argument.\n * @throws Error if the variant index is unknown.\n * @group Implementation\n * @category Transactions\n */\nexport function deserializeFromScriptArgument(deserializer: Deserializer): TransactionArgument {\n // index enum variant\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case ScriptTransactionArgumentVariants.U8:\n return U8.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.U64:\n return U64.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.U128:\n return U128.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.Address:\n return AccountAddress.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.U8Vector:\n return MoveVector.deserialize(deserializer, U8);\n case ScriptTransactionArgumentVariants.Bool:\n return Bool.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.U16:\n return U16.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.U32:\n return U32.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.U256:\n return U256.deserialize(deserializer);\n case ScriptTransactionArgumentVariants.Serialized:\n return Serialized.deserialize(deserializer);\n default:\n throw new Error(`Unknown variant index for ScriptTransactionArgument: ${index}`);\n }\n}\n\n/**\n * Represents a supported Transaction Payload that can be serialized and deserialized.\n *\n * This class serves as a base for different types of transaction payloads, allowing for\n * their serialization into a format suitable for transmission and deserialization back\n * into their original form.\n * @group Implementation\n * @category Transactions\n */\nexport abstract class TransactionPayload extends Serializable {\n /**\n * Serialize a Transaction Payload\n * @group Implementation\n * @category Transactions\n */\n abstract serialize(serializer: Serializer): void;\n\n /**\n * Deserialize a Transaction Payload\n * @group Implementation\n * @category Transactions\n */\n\n /**\n * Deserializes a multisig transaction payload from the provided deserializer.\n * This function enables the reconstruction of a MultiSigTransactionPayload object from its serialized form.\n *\n * @param deserializer - The deserializer instance used to read the serialized data.\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): TransactionPayload {\n // index enum variant\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case TransactionPayloadVariants.Script:\n return TransactionPayloadScript.load(deserializer);\n case TransactionPayloadVariants.EntryFunction:\n return TransactionPayloadEntryFunction.load(deserializer);\n case TransactionPayloadVariants.Multisig:\n return TransactionPayloadMultiSig.load(deserializer);\n case TransactionPayloadVariants.Payload:\n return TransactionInnerPayload.deserialize(deserializer);\n default:\n throw new Error(`Unknown variant index for TransactionPayload: ${index}`);\n }\n }\n}\n\n/**\n * Represents a transaction payload script that can be serialized and deserialized.\n *\n * This class encapsulates a script that defines the logic for a transaction payload.\n *\n * @extends TransactionPayload\n * @group Implementation\n * @category Transactions\n */\nexport class TransactionPayloadScript extends TransactionPayload {\n public readonly script: Script;\n\n /**\n * Initializes a multi-sig account transaction with the provided payload.\n *\n * @param script - The payload of the multi-sig transaction. This can only be an EntryFunction for now, but Script might be\n * supported in the future.\n * @group Implementation\n * @category Transactions\n */\n constructor(script: Script) {\n super();\n this.script = script;\n }\n\n /**\n * Serializes the transaction payload, enabling future support for multiple types of inner transaction payloads.\n *\n * @param serializer - The serializer instance used to serialize the transaction data.\n * @group Implementation\n * @category Transactions\n */\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionPayloadVariants.Script);\n this.script.serialize(serializer);\n }\n\n /**\n * Loads a MultiSig transaction payload from the provided deserializer.\n * This function helps in reconstructing a MultiSig transaction payload from its serialized form.\n *\n * @param deserializer - The deserializer used to read the serialized data.\n * @group Implementation\n * @category Transactions\n */\n static load(deserializer: Deserializer): TransactionPayloadScript {\n const script = Script.deserialize(deserializer);\n return new TransactionPayloadScript(script);\n }\n}\n\n/**\n * Represents a transaction payload entry function that can be serialized and deserialized.\n *\n * @extends TransactionPayload\n * @group Implementation\n * @category Transactions\n */\nexport class TransactionPayloadEntryFunction extends TransactionPayload {\n public readonly entryFunction: EntryFunction;\n\n constructor(entryFunction: EntryFunction) {\n super();\n this.entryFunction = entryFunction;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionPayloadVariants.EntryFunction);\n this.entryFunction.serialize(serializer);\n }\n\n static load(deserializer: Deserializer): TransactionPayloadEntryFunction {\n const entryFunction = EntryFunction.deserialize(deserializer);\n return new TransactionPayloadEntryFunction(entryFunction);\n }\n}\n\n/**\n * Represents a multi-signature transaction payload that can be serialized and deserialized.\n * @group Implementation\n * @category Transactions\n */\nexport class TransactionPayloadMultiSig extends TransactionPayload {\n public readonly multiSig: MultiSig;\n\n constructor(multiSig: MultiSig) {\n super();\n this.multiSig = multiSig;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionPayloadVariants.Multisig);\n this.multiSig.serialize(serializer);\n }\n\n static load(deserializer: Deserializer): TransactionPayloadMultiSig {\n const value = MultiSig.deserialize(deserializer);\n return new TransactionPayloadMultiSig(value);\n }\n}\n\n/**\n * Represents an entry function that can be serialized and deserialized.\n * This class encapsulates the details required to invoke a function within a module,\n * including the module name, function name, type arguments, and function arguments.\n *\n * @param module_name - Fully qualified module name in the format \"account_address::module_name\" (e.g., \"0x1::coin\").\n * @param function_name - The name of the function (e.g., \"transfer\").\n * @param type_args - Type arguments required by the Move function.\n * @param args - Arguments to the Move function.\n * @group Implementation\n * @category Transactions\n */\nexport class EntryFunction {\n public readonly module_name: ModuleId;\n\n public readonly function_name: Identifier;\n\n public readonly type_args: Array<TypeTag>;\n\n public readonly args: Array<EntryFunctionArgument>;\n\n /**\n * Contains the payload to run a function within a module.\n * @param module_name Fully qualified module name in format \"account_address::module_name\" e.g. \"0x1::coin\"\n * @param function_name The function name. e.g \"transfer\"\n * @param type_args Type arguments that move function requires.\n *\n * @example\n * A coin transfer function has one type argument \"CoinType\".\n * ```\n * public entry fun transfer<CoinType>(from: &signer, to: address, amount: u64)\n * ```\n * @param args arguments to the move function.\n *\n * @example\n * A coin transfer function has three arguments \"from\", \"to\" and \"amount\".\n * ```\n * public entry fun transfer<CoinType>(from: &signer, to: address, amount: u64)\n * ```\n * @group Implementation\n * @category Transactions\n */\n constructor(\n module_name: ModuleId,\n function_name: Identifier,\n type_args: Array<TypeTag>,\n args: Array<EntryFunctionArgument>,\n ) {\n this.module_name = module_name;\n this.function_name = function_name;\n this.type_args = type_args;\n this.args = args;\n }\n\n /**\n * Build an EntryFunction payload from raw primitive values.\n *\n * @param module_id - Fully qualified module name in the format \"AccountAddress::module_id\", e.g., \"0x1::coin\".\n * @param function_name - The name of the function to be called.\n * @param type_args - Type arguments that the Move function requires.\n * @param args - Arguments to the Move function.\n *\n * @example\n * A coin transfer function has one type argument \"CoinType\".\n * ```\n * public(script) fun transfer<CoinType>(from: &signer, to: address, amount: u64)\n * ```\n *\n * A coin transfer function has three arguments \"from\", \"to\", and \"amount\".\n * ```\n * public(script) fun transfer<CoinType>(from: &signer, to: address, amount: u64)\n * ```\n *\n * @returns EntryFunction\n * @group Implementation\n * @category Transactions\n */\n static build(\n module_id: MoveModuleId,\n function_name: string,\n type_args: Array<TypeTag>,\n args: Array<EntryFunctionArgument>,\n ): EntryFunction {\n return new EntryFunction(ModuleId.fromStr(module_id), new Identifier(function_name), type_args, args);\n }\n\n serialize(serializer: Serializer): void {\n this.module_name.serialize(serializer);\n this.function_name.serialize(serializer);\n serializer.serializeVector<TypeTag>(this.type_args);\n serializer.serializeU32AsUleb128(this.args.length);\n this.args.forEach((item: EntryFunctionArgument) => {\n item.serializeForEntryFunction(serializer);\n });\n }\n\n /**\n * Deserializes an entry function payload with the arguments represented as EntryFunctionBytes instances.\n * @see EntryFunctionBytes\n *\n * NOTE: When you deserialize an EntryFunction payload with this method, the entry function\n * arguments are populated into the deserialized instance as type-agnostic, raw fixed bytes\n * in the form of the EntryFunctionBytes class.\n *\n * In order to correctly deserialize these arguments as their actual type representations, you\n * must know the types of the arguments beforehand and deserialize them yourself individually.\n *\n * One way you could achieve this is by using the ABIs for an entry function and deserializing each\n * argument as its given, corresponding type.\n *\n * @param deserializer\n * @returns A deserialized EntryFunction payload for a transaction.\n *\n * @group Implementation\n * @category Transactions\n */\n static deserialize(deserializer: Deserializer): EntryFunction {\n const module_name = ModuleId.deserialize(deserializer);\n const function_name = Identifier.deserialize(deserializer);\n const type_args = deserializer.deserializeVector(TypeTag);\n\n const length = deserializer.deserializeUleb128AsU32();\n const args: Array<EntryFunctionArgument> = new Array<EntryFunctionBytes>();\n\n for (let i = 0; i < length; i += 1) {\n const fixedBytesLength = deserializer.deserializeUleb128AsU32();\n const fixedBytes = EntryFunctionBytes.deserialize(deserializer, fixedBytesLength);\n args.push(fixedBytes);\n }\n\n return new EntryFunction(module_name, function_name, type_args, args);\n }\n}\n\n/**\n * Represents a Script that can be serialized and deserialized.\n * Scripts contain the Move bytecode payload that can be submitted to the Aptos chain for execution.\n * @group Implementation\n * @category Transactions\n */\nexport class Script {\n /**\n * The move module bytecode\n * @group Implementation\n * @category Transactions\n */\n public readonly bytecode: Uint8Array;\n\n /**\n * The type arguments that the bytecode function requires.\n * @group Implementation\n * @category Transactions\n */\n public readonly type_args: Array<TypeTag>;\n\n /**\n * The arguments that the bytecode function requires.\n * @group Implementation\n * @category Transactions\n */\n public readonly args: Array<ScriptFunctionArgument>;\n\n /**\n * Scripts contain the Move bytecodes payload that can be submitted to Aptos chain for execution.\n *\n * @param bytecode The move module bytecode\n * @param type_args The type arguments that the bytecode function requires.\n *\n * @example\n * A coin transfer function has one type argument \"CoinType\".\n * ```\n * public(script) fun transfer<CoinType>(from: &signer, to: address, amount: u64)\n * ```\n * @param args The arguments that the bytecode function requires.\n *\n * @example\n * A coin transfer function has three arguments \"from\", \"to\" and \"amount\".\n * ```\n * public(script) fun transfer<CoinType>(from: &signer, to: address, amount: u64)\n * ```\n * @group Implementation\n * @category Transactions\n */\n constructor(bytecode: Uint8Array, type_args: Array<TypeTag>, args: Array<ScriptFunctionArgument>) {\n this.bytecode = bytecode;\n this.type_args = type_args;\n this.args = args;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeBytes(this.bytecode);\n serializer.serializeVector<TypeTag>(this.type_args);\n serializer.serializeU32AsUleb128(this.args.length);\n this.args.forEach((item: ScriptFunctionArgument) => {\n item.serializeForScriptFunction(serializer);\n });\n }\n\n static deserialize(deserializer: Deserializer): Script {\n const bytecode = deserializer.deserializeBytes();\n const type_args = deserializer.deserializeVector(TypeTag);\n const length = deserializer.deserializeUleb128AsU32();\n const args = new Array<ScriptFunctionArgument>();\n for (let i = 0; i < length; i += 1) {\n // Note that we deserialize directly to the Move value, not its Script argument representation.\n // We are abstracting away the Script argument representation because knowing about it is\n // functionally useless.\n const scriptArgument = deserializeFromScriptArgument(deserializer);\n args.push(scriptArgument);\n }\n return new Script(bytecode, type_args, args);\n }\n}\n\n/**\n * Represents a MultiSig account that can be serialized and deserialized.\n *\n * This class encapsulates the functionality to manage multi-signature transactions, including the address of the\n * multi-sig account and the associated transaction payload.\n * @group Implementation\n * @category Transactions\n */\nexport class MultiSig {\n public readonly multisig_address: AccountAddress;\n\n public readonly transaction_payload?: MultiSigTransactionPayload;\n\n /**\n * Contains the payload to run a multi-sig account transaction.\n *\n * @param multisig_address The multi-sig account address the transaction will be executed as.\n *\n * @param transaction_payload The payload of the multi-sig transaction. This is optional when executing a multi-sig\n * transaction whose payload is already stored on chain.\n * @group Implementation\n * @category Transactions\n */\n constructor(multisig_address: AccountAddress, transaction_payload?: MultiSigTransactionPayload) {\n this.multisig_address = multisig_address;\n this.transaction_payload = transaction_payload;\n }\n\n serialize(serializer: Serializer): void {\n this.multisig_address.serialize(serializer);\n // Options are encoded with an extra u8 field before the value - 0x0 is none and 0x1 is present.\n // We use serializeBool below to create this prefix value.\n if (this.transaction_payload === undefined) {\n serializer.serializeBool(false);\n } else {\n serializer.serializeBool(true);\n this.transaction_payload.serialize(serializer);\n }\n }\n\n static deserialize(deserializer: Deserializer): MultiSig {\n const multisig_address = AccountAddress.deserialize(deserializer);\n const payloadPresent = deserializer.deserializeBool();\n let transaction_payload;\n if (payloadPresent) {\n transaction_payload = MultiSigTransactionPayload.deserialize(deserializer);\n }\n return new MultiSig(multisig_address, transaction_payload);\n }\n}\n\n/**\n * Represents a multi-signature transaction payload that can be serialized and deserialized.\n * This class is designed to encapsulate the transaction payload for multi-sig account transactions\n * as defined in the `multisig_account.move` module. Future enhancements may allow support for script\n * payloads as the `multisig_account.move` module evolves.\n * @group Implementation\n * @category Transactions\n */\nexport class MultiSigTransactionPayload extends Serializable {\n public readonly transaction_payload: EntryFunction;\n\n /**\n * Contains the payload to run a multi-sig account transaction.\n *\n * @param transaction_payload The payload of the multi-sig transaction.\n * This can only be EntryFunction for now but,\n * Script might be supported in the future.\n * @group Implementation\n * @category Transactions\n */\n constructor(transaction_payload: EntryFunction) {\n super();\n this.transaction_payload = transaction_payload;\n }\n\n serialize(serializer: Serializer): void {\n /**\n * We can support multiple types of inner transaction payload in the future.\n * For now, it's only EntryFunction but if we support more types,\n * we need to serialize with the right enum values here\n * @group Implementation\n * @category Transactions\n */\n serializer.serializeU32AsUleb128(0);\n this.transaction_payload.serialize(serializer);\n }\n\n static deserialize(deserializer: Deserializer): MultiSigTransactionPayload {\n // TODO: Support other types of payload beside EntryFunction.\n // This is the enum value indicating which type of payload the multisig tx contains.\n deserializer.deserializeUleb128AsU32();\n return new MultiSigTransactionPayload(EntryFunction.deserialize(deserializer));\n }\n}\n\n/**\n * Represents any transaction payload that can be submitted to the Aptos chain for execution.\n *\n * This is specifically required for orderless transactions, but can be used for any transaction payload.\n */\nexport abstract class TransactionInnerPayload extends TransactionPayload {\n abstract serialize(serializer: Serializer): void;\n\n static deserialize(deserializer: Deserializer): TransactionInnerPayload {\n // index enum variant\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case TransactionInnerPayloadVariants.V1:\n return TransactionInnerPayloadV1.load(deserializer);\n default:\n throw new Error(`Unknown variant index for TransactionInnerPayload: ${index}`);\n }\n }\n}\n\nexport class TransactionInnerPayloadV1 extends TransactionInnerPayload {\n executable: TransactionExecutable;\n extra_config: TransactionExtraConfig;\n\n constructor(executable: TransactionExecutable, extra_config: TransactionExtraConfig) {\n super();\n this.executable = executable;\n this.extra_config = extra_config;\n }\n\n serialize(serializer: Serializer): void {\n // This payload must be serialized as a top level TransactionPayload, so we add that here\n serializer.serializeU32AsUleb128(TransactionPayloadVariants.Payload);\n // V1 is serialized as 0\n serializer.serializeU32AsUleb128(TransactionInnerPayloadVariants.V1);\n this.executable.serialize(serializer);\n this.extra_config.serialize(serializer);\n }\n\n static load(deserializer: Deserializer): TransactionInnerPayloadV1 {\n let executable = TransactionExecutable.deserialize(deserializer);\n let extra_config = TransactionExtraConfig.deserialize(deserializer);\n return new TransactionInnerPayloadV1(executable, extra_config);\n }\n}\n\nexport abstract class TransactionExecutable {\n abstract serialize(serializer: Serializer): void;\n\n static deserialize(deserializer: Deserializer): TransactionExecutable {\n // index enum variant\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case TransactionExecutableVariants.Script:\n return TransactionExecutableScript.load(deserializer);\n case TransactionExecutableVariants.EntryFunction:\n return TransactionExecutableEntryFunction.load(deserializer);\n case TransactionExecutableVariants.Empty:\n return TransactionExecutableEmpty.load(deserializer);\n default:\n throw new Error(`Unknown variant index for TransactionExecutable: ${index}`);\n }\n }\n}\n\nexport class TransactionExecutableScript extends TransactionExecutable {\n script: Script;\n\n constructor(script: Script) {\n super();\n this.script = script;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionExecutableVariants.Script);\n this.script.serialize(serializer);\n }\n\n static load(deserializer: Deserializer): TransactionExecutableScript {\n let script = Script.deserialize(deserializer);\n return new TransactionExecutableScript(script);\n }\n}\n\nexport class TransactionExecutableEntryFunction extends TransactionExecutable {\n entryFunction: EntryFunction;\n\n constructor(entryFunction: EntryFunction) {\n super();\n this.entryFunction = entryFunction;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionExecutableVariants.EntryFunction);\n this.entryFunction.serialize(serializer);\n }\n\n static load(deserializer: Deserializer): TransactionExecutableEntryFunction {\n let entryFunction = EntryFunction.deserialize(deserializer);\n return new TransactionExecutableEntryFunction(entryFunction);\n }\n}\n\nexport class TransactionExecutableEmpty extends TransactionExecutable {\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionExecutableVariants.Empty);\n }\n\n static load(_: Deserializer): TransactionExecutableEmpty {\n return new TransactionExecutableEmpty();\n }\n}\n\nexport abstract class TransactionExtraConfig {\n abstract serialize(serializer: Serializer): void;\n\n static deserialize(deserializer: Deserializer): TransactionExtraConfig {\n // index enum variant\n const index = deserializer.deserializeUleb128AsU32();\n switch (index) {\n case TransactionExtraConfigVariants.V1:\n return TransactionExtraConfigV1.load(deserializer);\n default:\n throw new Error(`Unknown variant index for TransactionExtraConfig: ${index}`);\n }\n }\n}\n\nexport class TransactionExtraConfigV1 extends TransactionExtraConfig {\n multisigAddress?: AccountAddress;\n replayProtectionNonce?: bigint;\n\n constructor(multisigAddress?: AccountAddress, replayProtectionNonce?: AnyNumber) {\n super();\n this.multisigAddress = multisigAddress;\n this.replayProtectionNonce = replayProtectionNonce !== undefined ? BigInt(replayProtectionNonce) : undefined;\n }\n\n serialize(serializer: Serializer): void {\n serializer.serializeU32AsUleb128(TransactionExtraConfigVariants.V1);\n serializer.serializeOption<AccountAddress>(this.multisigAddress);\n serializer.serializeOption<U64>(\n this.replayProtectionNonce !== undefined ? new U64(this.replayProtectionNonce) : undefined,\n );\n }\n\n static load(deserializer: Deserializer): TransactionExtraConfigV1 {\n const multisigAddress = deserializer.deserializeOption(AccountAddress);\n const replayProtectionNonce = deserializer.deserializeOption(U64);\n return new TransactionExtraConfigV1(multisigAddress, replayProtectionNonce?.value);\n }\n}\n"],"mappings":"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","names":["Serializable","EntryFunctionBytes","Bool","U128","U16","U256","U32","U64","U8","MoveVector","Serialized","AccountAddress","Identifier","ModuleId","ScriptTransactionArgumentVariants","TransactionExecutableVariants","TransactionExtraConfigVariants","TransactionInnerPayloadVariants","TransactionPayloadVariants","TypeTag","deserializeFromScriptArgument","deserializer","index","TransactionPayload","TransactionPayloadScript","TransactionPayloadEntryFunction","TransactionPayloadMultiSig","TransactionInnerPayload","script","serializer","Script","entryFunction","EntryFunction","multiSig","value","MultiSig","module_name","function_name","type_args","args","module_id","item","length","i","fixedBytesLength","fixedBytes","bytecode","scriptArgument","multisig_address","transaction_payload","payloadPresent","MultiSigTransactionPayload","TransactionInnerPayloadV1","executable","extra_config","TransactionExecutable","TransactionExtraConfig","TransactionExecutableScript","TransactionExecutableEntryFunction","TransactionExecutableEmpty","_","TransactionExtraConfigV1","multisigAddress","replayProtectionNonce"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{getInfo as s}from"../../internal/account";import{nowInSeconds as e,sleep as n}from"../../utils/helpers";class g{constructor(t,i,r,o,a){this.lastUncommintedNumber=null;this.currentNumber=null;this.lock=!1;this.aptosConfig=t,this.account=i,this.maxWaitTime=r,this.maximumInFlight=o,this.sleepTime=a}async nextSequenceNumber(){for(;this.lock;)await n(this.sleepTime);this.lock=!0;let t=BigInt(0);try{if((this.lastUncommintedNumber===null||this.currentNumber===null)&&await this.initialize(),this.currentNumber-this.lastUncommintedNumber>=this.maximumInFlight){await this.update();const i=e();for(;this.currentNumber-this.lastUncommintedNumber>=this.maximumInFlight;)await n(this.sleepTime),e()-i>this.maxWaitTime?(console.warn(`Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`),await this.initialize()):await this.update()}t=this.currentNumber,this.currentNumber+=BigInt(1)}catch(i){console.error("error in getting next sequence number for this account",i)}finally{this.lock=!1}return t}async initialize(){const{sequence_number:t}=await s({aptosConfig:this.aptosConfig,accountAddress:this.account.accountAddress});this.currentNumber=BigInt(t),this.lastUncommintedNumber=BigInt(t)}async update(){const{sequence_number:t}=await s({aptosConfig:this.aptosConfig,accountAddress:this.account.accountAddress});return this.lastUncommintedNumber=BigInt(t),this.lastUncommintedNumber}async synchronize(){if(this.lastUncommintedNumber!==this.currentNumber){for(;this.lock;)await n(this.sleepTime);this.lock=!0;try{await this.update();const t=e();for(;this.lastUncommintedNumber!==this.currentNumber;)e()-t>this.maxWaitTime?(console.warn(`Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`),await this.initialize()):(await n(this.sleepTime),await this.update())}catch(t){console.error("error in synchronizing this account sequence number with the one on chain",t)}finally{this.lock=!1}}}}export{g as AccountSequenceNumber};
|
|
2
2
|
//# sourceMappingURL=accountSequenceNumber.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/management/accountSequenceNumber.ts"],"sourcesContent":["/**\n * A wrapper that handles and manages an account sequence number.\n *\n * Submit up to `maximumInFlight` transactions per account in parallel with a timeout of `sleepTime`\n * If local assumes `maximumInFlight` are in flight, determine the actual committed state from the network\n * If there are less than `maximumInFlight` due to some being committed, adjust the window\n * If `maximumInFlight` are in flight, wait `sleepTime` seconds before re-evaluating\n * If ever waiting more than `maxWaitTime` restart the sequence number to the current on-chain state\n *\n * Assumptions:\n * Accounts are expected to be managed by a single AccountSequenceNumber and not used otherwise.\n * They are initialized to the current on-chain state, so if there are already transactions in\n * flight, they may take some time to reset.\n * Accounts are automatically initialized if not explicitly\n *\n * Notes:\n * This is co-routine safe, that is many async tasks can be reading from this concurrently.\n * The state of an account cannot be used across multiple AccountSequenceNumber services.\n * The synchronize method will create a barrier that prevents additional nextSequenceNumber\n * calls until it is complete.\n * This only manages the distribution of sequence numbers it does not help handle transaction\n * failures.\n * If a transaction fails, you should call synchronize and wait for timeouts.\n * @group Implementation\n * @category Transactions\n */\n\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport { Account } from \"../../account\";\nimport { getInfo } from \"../../internal/account\";\nimport { nowInSeconds, sleep } from \"../../utils/helpers\";\n\n/**\n * Represents an account's sequence number management for transaction handling on the Aptos blockchain.\n * This class provides methods to retrieve the next available sequence number, synchronize with the on-chain sequence number,\n * and manage local sequence numbers while ensuring thread safety.\n *\n * @param aptosConfig - The configuration settings for Aptos.\n * @param account - The account associated with the sequence number.\n * @param maxWaitTime - The maximum time to wait for a transaction to commit.\n * @param maximumInFlight - The maximum number of transactions that can be in flight at once.\n * @param sleepTime - The time to wait before retrying to get the sequence number.\n * @group Implementation\n * @category Transactions\n */\nexport class AccountSequenceNumber {\n readonly aptosConfig: AptosConfig;\n\n readonly account: Account;\n\n // sequence number on chain\n // TODO: Change to Uncommitted\n lastUncommintedNumber: bigint | null = null;\n\n // local sequence number\n currentNumber: bigint | null = null;\n\n /**\n * We want to guarantee that we preserve ordering of workers to requests.\n *\n * `lock` is used to try to prevent multiple coroutines from accessing a shared resource at the same time,\n * which can result in race conditions and data inconsistency.\n * This code actually doesn't do it though, since we aren't giving out a slot, it is still somewhat a race condition.\n *\n * The ideal solution is likely that each thread grabs the next number from an incremental integer.\n * When they complete, they increment that number and that entity is able to enter the `lock`.\n * That would guarantee ordering.\n * @group Implementation\n * @category Transactions\n */\n lock = false;\n\n maxWaitTime: number;\n\n maximumInFlight: number;\n\n sleepTime: number;\n\n /**\n * Creates an instance of the class with the specified configuration and account details.\n * This constructor initializes the necessary parameters for managing Aptos transactions.\n *\n * @param aptosConfig - The configuration settings for Aptos.\n * @param account - The account associated with the Aptos transactions.\n * @param maxWaitTime - The maximum time to wait for a transaction to be processed, in milliseconds.\n * @param maximumInFlight - The maximum number of transactions that can be in flight at the same time.\n * @param sleepTime - The time to sleep between transaction checks, in milliseconds.\n * @group Implementation\n * @category Transactions\n */\n constructor(\n aptosConfig: AptosConfig,\n account: Account,\n maxWaitTime: number,\n maximumInFlight: number,\n sleepTime: number,\n ) {\n this.aptosConfig = aptosConfig;\n this.account = account;\n this.maxWaitTime = maxWaitTime;\n this.maximumInFlight = maximumInFlight;\n this.sleepTime = sleepTime;\n }\n\n /**\n * Returns the next available sequence number for this account.\n * This function ensures that the sequence number is updated and synchronized, handling potential delays in transaction commits.\n *\n * @returns {BigInt} The next available sequence number.\n * @group Implementation\n * @category Transactions\n */\n async nextSequenceNumber(): Promise<bigint | null> {\n /* eslint-disable no-await-in-loop */\n while (this.lock) {\n await sleep(this.sleepTime);\n }\n\n this.lock = true;\n let nextNumber = BigInt(0);\n try {\n if (this.lastUncommintedNumber === null || this.currentNumber === null) {\n await this.initialize();\n }\n\n if (this.currentNumber! - this.lastUncommintedNumber! >= this.maximumInFlight) {\n await this.update();\n\n const startTime = nowInSeconds();\n while (this.currentNumber! - this.lastUncommintedNumber! >= this.maximumInFlight) {\n await sleep(this.sleepTime);\n if (nowInSeconds() - startTime > this.maxWaitTime) {\n /* eslint-disable no-console */\n console.warn(\n `Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`,\n );\n await this.initialize();\n } else {\n await this.update();\n }\n }\n }\n nextNumber = this.currentNumber!;\n this.currentNumber! += BigInt(1);\n } catch (e) {\n console.error(\"error in getting next sequence number for this account\", e);\n } finally {\n this.lock = false;\n }\n return nextNumber;\n }\n\n /**\n * Initializes this account with the sequence number on chain.\n *\n * @returns {Promise<void>} A promise that resolves when the account has been initialized.\n *\n * @throws {Error} Throws an error if the account information cannot be retrieved.\n * @group Implementation\n * @category Transactions\n */\n async initialize(): Promise<void> {\n const { sequence_number: sequenceNumber } = await getInfo({\n aptosConfig: this.aptosConfig,\n accountAddress: this.account.accountAddress,\n });\n this.currentNumber = BigInt(sequenceNumber);\n this.lastUncommintedNumber = BigInt(sequenceNumber);\n }\n\n /**\n * Updates this account's sequence number with the one on-chain.\n *\n * @returns The on-chain sequence number for this account.\n * @group Implementation\n * @category Transactions\n */\n async update(): Promise<bigint> {\n const { sequence_number: sequenceNumber } = await getInfo({\n aptosConfig: this.aptosConfig,\n accountAddress: this.account.accountAddress,\n });\n this.lastUncommintedNumber = BigInt(sequenceNumber);\n return this.lastUncommintedNumber;\n }\n\n /**\n * Synchronizes the local sequence number with the sequence number on-chain for the specified account.\n * This function polls the network until all submitted transactions have either been committed or until the maximum wait time has elapsed.\n *\n * @throws {Error} Throws an error if there is an issue synchronizing the account sequence number with the one on-chain.\n * @group Implementation\n * @category Transactions\n */\n async synchronize(): Promise<void> {\n if (this.lastUncommintedNumber === this.currentNumber) return;\n\n /* eslint-disable no-await-in-loop */\n while (this.lock) {\n await sleep(this.sleepTime);\n }\n\n this.lock = true;\n\n try {\n await this.update();\n const startTime = nowInSeconds();\n while (this.lastUncommintedNumber !== this.currentNumber) {\n if (nowInSeconds() - startTime > this.maxWaitTime) {\n /* eslint-disable no-console */\n console.warn(\n `Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`,\n );\n await this.initialize();\n } else {\n await sleep(this.sleepTime);\n await this.update();\n }\n }\n } catch (e) {\n console.error(\"error in synchronizing this account sequence number with the one on chain\", e);\n } finally {\n this.lock = false;\n }\n }\n}\n"],"mappings":"AA6BA,OAAS,WAAAA,MAAe,yBACxB,OAAS,gBAAAC,EAAc,SAAAC,MAAa,sBAe7B,MAAMC,CAAsB,CA6CjC,YACEC,EACAC,EACAC,EACAC,EACAC,EACA,CA5CF,2BAAuC,KAGvC,mBAA+B,KAe/B,UAAO,GA2BL,KAAK,YAAcJ,EACnB,KAAK,QAAUC,EACf,KAAK,YAAcC,EACnB,KAAK,gBAAkBC,EACvB,KAAK,UAAYC,CACnB,CAUA,MAAM,oBAA6C,CAEjD,KAAO,KAAK,MACV,MAAMN,EAAM,KAAK,SAAS,EAG5B,KAAK,KAAO,GACZ,IAAIO,EAAa,OAAO,CAAC,EACzB,GAAI,CAKF,IAJI,KAAK,wBAA0B,MAAQ,KAAK,gBAAkB,OAChE,MAAM,KAAK,WAAW,EAGpB,KAAK,cAAiB,KAAK,uBAA0B,KAAK,gBAAiB,CAC7E,MAAM,KAAK,OAAO,EAElB,MAAMC,EAAYT,EAAa,EAC/B,KAAO,KAAK,cAAiB,KAAK,uBAA0B,KAAK,iBAC/D,MAAMC,EAAM,KAAK,SAAS,EACtBD,EAAa,EAAIS,EAAY,KAAK,aAEpC,QAAQ,KACN,kEAAkE,KAAK,QAAQ,eAAe,SAAS,CAAC,EAC1G,EACA,MAAM,KAAK,WAAW,GAEtB,MAAM,KAAK,OAAO,CAGxB,CACAD,EAAa,KAAK,cAClB,KAAK,eAAkB,OAAO,CAAC,CACjC,OAASE,EAAG,CACV,QAAQ,MAAM,yDAA0DA,CAAC,CAC3E,QAAE,CACA,KAAK,KAAO,EACd,CACA,OAAOF,CACT,CAWA,MAAM,YAA4B,CAChC,KAAM,CAAE,gBAAiBG,CAAe,EAAI,MAAMZ,EAAQ,CACxD,YAAa,KAAK,YAClB,eAAgB,KAAK,QAAQ,cAC/B,CAAC,EACD,KAAK,cAAgB,OAAOY,CAAc,EAC1C,KAAK,sBAAwB,OAAOA,CAAc,CACpD,CASA,MAAM,QAA0B,CAC9B,KAAM,CAAE,gBAAiBA,CAAe,EAAI,MAAMZ,EAAQ,CACxD,YAAa,KAAK,YAClB,eAAgB,KAAK,QAAQ,cAC/B,CAAC,EACD,YAAK,sBAAwB,OAAOY,CAAc,EAC3C,KAAK,qBACd,CAUA,MAAM,aAA6B,CACjC,GAAI,KAAK,wBAA0B,KAAK,cAGxC,MAAO,KAAK,MACV,MAAMV,EAAM,KAAK,SAAS,EAG5B,KAAK,KAAO,GAEZ,GAAI,CACF,MAAM,KAAK,OAAO,EAClB,MAAMQ,EAAYT,EAAa,EAC/B,KAAO,KAAK,wBAA0B,KAAK,eACrCA,EAAa,EAAIS,EAAY,KAAK,aAEpC,QAAQ,KACN,kEAAkE,KAAK,QAAQ,eAAe,SAAS,CAAC,EAC1G,EACA,MAAM,KAAK,WAAW,IAEtB,MAAMR,EAAM,KAAK,SAAS,EAC1B,MAAM,KAAK,OAAO,EAGxB,OAASS,EAAG,CACV,QAAQ,MAAM,4EAA6EA,CAAC,CAC9F,QAAE,CACA,KAAK,KAAO,EACd,EACF,CACF","names":["getInfo","nowInSeconds","sleep","AccountSequenceNumber","aptosConfig","account","maxWaitTime","maximumInFlight","sleepTime","nextNumber","startTime","e","sequenceNumber"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
class i{constructor(){this.queue=[];this.pendingDequeue=[];this.cancelled=!1}enqueue(e){if(this.cancelled=!1,this.pendingDequeue.length>0){this.pendingDequeue.shift()?.resolve(e);return}this.queue.push(e)}async dequeue(){return this.queue.length>0?Promise.resolve(this.queue.shift()):new Promise((e,n)=>{this.pendingDequeue.push({resolve:e,reject:n})})}isEmpty(){return this.queue.length===0}cancel(){this.cancelled=!0,this.pendingDequeue.forEach(async({reject:e})=>{e(new s("Task cancelled"))}),this.pendingDequeue=[],this.queue.length=0}isCancelled(){return this.cancelled}pendingDequeueLength(){return this.pendingDequeue.length}}class s extends Error{}export{i as AsyncQueue,s as AsyncQueueCancelledError};
|
|
2
2
|
//# sourceMappingURL=asyncQueue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/management/asyncQueue.ts"],"sourcesContent":["/**\n * The AsyncQueue class is an async-aware data structure that provides a queue-like\n * behavior for managing asynchronous tasks or operations.\n * It allows to enqueue items and dequeue them asynchronously.\n * This is not thread-safe, but it is async concurrency safe, and\n * it does not guarantee ordering for those that call into and await on enqueue.\n * @group Implementation\n * @category Transactions\n */\n\ninterface PendingDequeue<T> {\n resolve: (value: T) => void;\n reject: (reason?: AsyncQueueCancelledError) => void;\n}\n\nexport class AsyncQueue<T> {\n readonly queue: T[] = [];\n\n // The pendingDequeue is used to handle the resolution of promises when items are enqueued and dequeued.\n private pendingDequeue: PendingDequeue<T>[] = [];\n\n private cancelled: boolean = false;\n\n /**\n * Adds an item to the queue. If there are pending dequeued promises, it resolves the oldest promise with the enqueued item\n * immediately; otherwise, it adds the item to the queue.\n *\n * @param item - The item to be added to the queue.\n * @group Implementation\n * @category Transactions\n */\n enqueue(item: T): void {\n this.cancelled = false;\n\n if (this.pendingDequeue.length > 0) {\n const promise = this.pendingDequeue.shift();\n\n promise?.resolve(item);\n\n return;\n }\n\n this.queue.push(item);\n }\n\n /**\n * Dequeues the next item from the queue and returns a promise that resolves to it.\n * If the queue is empty, it creates a new promise that will be resolved when an item is enqueued.\n *\n * @returns Promise<T>\n * @group Implementation\n * @category Transactions\n */\n async dequeue(): Promise<T> {\n if (this.queue.length > 0) {\n return Promise.resolve(this.queue.shift()!);\n }\n\n return new Promise<T>((resolve, reject) => {\n this.pendingDequeue.push({ resolve, reject });\n });\n }\n\n /**\n * Determine whether the queue is empty.\n *\n * @returns boolean - Returns true if the queue has no elements, otherwise false.\n * @group Implementation\n * @category Transactions\n */\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n /**\n * Cancels all pending promises in the queue and rejects them with an AsyncQueueCancelledError.\n * This ensures that any awaiting code can handle the cancellation appropriately.\n *\n * @returns {void}\n * @group Implementation\n * @category Transactions\n */\n cancel(): void {\n this.cancelled = true;\n\n this.pendingDequeue.forEach(async ({ reject }) => {\n reject(new AsyncQueueCancelledError(\"Task cancelled\"));\n });\n\n this.pendingDequeue = [];\n\n this.queue.length = 0;\n }\n\n /**\n * Determine whether the queue has been cancelled.\n *\n * @returns boolean - Returns true if the queue is cancelled, otherwise false.\n * @group Implementation\n * @category Transactions\n */\n isCancelled(): boolean {\n return this.cancelled;\n }\n\n /**\n * Retrieve the length of the pending dequeue.\n *\n * @returns number - The number of items currently in the pending dequeue.\n * @group Implementation\n * @category Transactions\n */\n pendingDequeueLength(): number {\n return this.pendingDequeue.length;\n }\n}\n\n/**\n * Represents an error that occurs when an asynchronous queue operation is cancelled.\n * This error extends the built-in Error class to provide additional context for cancellation events.\n *\n * @extends Error\n * @group Implementation\n * @category Transactions\n */\nexport class AsyncQueueCancelledError extends Error {}\n"],"mappings":"AAeO,MAAMA,CAAc,CAApB,cACL,KAAS,MAAa,CAAC,EAGvB,KAAQ,eAAsC,CAAC,EAE/C,KAAQ,UAAqB,GAU7B,QAAQC,EAAe,CAGrB,GAFA,KAAK,UAAY,GAEb,KAAK,eAAe,OAAS,EAAG,CAClB,KAAK,eAAe,MAAM,GAEjC,QAAQA,CAAI,EAErB,MACF,CAEA,KAAK,MAAM,KAAKA,CAAI,CACtB,CAUA,MAAM,SAAsB,CAC1B,OAAI,KAAK,MAAM,OAAS,EACf,QAAQ,QAAQ,KAAK,MAAM,MAAM,CAAE,EAGrC,IAAI,QAAW,CAACC,EAASC,IAAW,CACzC,KAAK,eAAe,KAAK,CAAE,QAAAD,EAAS,OAAAC,CAAO,CAAC,CAC9C,CAAC,CACH,CASA,SAAmB,CACjB,OAAO,KAAK,MAAM,SAAW,CAC/B,CAUA,QAAe,CACb,KAAK,UAAY,GAEjB,KAAK,eAAe,QAAQ,MAAO,CAAE,OAAAA,CAAO,IAAM,CAChDA,EAAO,IAAIC,EAAyB,gBAAgB,CAAC,CACvD,CAAC,EAED,KAAK,eAAiB,CAAC,EAEvB,KAAK,MAAM,OAAS,CACtB,CASA,aAAuB,CACrB,OAAO,KAAK,SACd,CASA,sBAA+B,CAC7B,OAAO,KAAK,eAAe,MAC7B,CACF,CAUO,MAAMA,UAAiC,KAAM,CAAC","names":["AsyncQueue","item","resolve","reject","AsyncQueueCancelledError"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export*from"./accountSequenceNumber";export*from"./transactionWorker";
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/management/index.ts"],"sourcesContent":["export * from \"./accountSequenceNumber\";\nexport * from \"./transactionWorker\";\n"],"mappings":"AAAA,WAAc,0BACd,WAAc","names":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import h from"eventemitter3";import{waitForTransaction as d}from"../../internal/transaction";import{generateTransaction as l,signAndSubmitTransaction as p}from"../../internal/transactionSubmission";import{AccountSequenceNumber as m}from"./accountSequenceNumber";import{AsyncQueue as o,AsyncQueueCancelledError as c}from"./asyncQueue";const u="fulfilled";var g=(n=>(n.TransactionSent="transactionSent",n.TransactionSendFailed="transactionSendFailed",n.TransactionExecuted="transactionExecuted",n.TransactionExecutionFailed="transactionExecutionFailed",n.ExecutionFinish="executionFinish",n))(g||{});class G extends h{constructor(t,e,a=30,n=100,i=10){super();this.taskQueue=new o;this.transactionsQueue=new o;this.outstandingTransactions=new o;this.sentTransactions=[];this.executedTransactions=[];this.aptosConfig=t,this.account=e,this.started=!1,this.accountSequnceNumber=new m(t,e,a,n,i)}async submitNextTransaction(){try{for(;;){const t=await this.accountSequnceNumber.nextSequenceNumber();if(t===null)return;const e=await this.generateNextTransaction(this.account,t);if(!e)return;const a=p({aptosConfig:this.aptosConfig,transaction:e,signer:this.account});await this.outstandingTransactions.enqueue([a,t])}}catch(t){if(t instanceof c)return;throw new Error(`Submit transaction failed for ${this.account.accountAddress.toString()} with error ${t}`)}}async processTransactions(){try{for(;;){const t=[],e=[];let[a,n]=await this.outstandingTransactions.dequeue();for(t.push(a),e.push(n);!this.outstandingTransactions.isEmpty();)[a,n]=await this.outstandingTransactions.dequeue(),t.push(a),e.push(n);const i=await Promise.allSettled(t);for(let s=0;s<i.length&&s<e.length;s+=1){const r=i[s];n=e[s],r.status===u?(this.sentTransactions.push([r.value.hash,n,null]),this.emit("transactionSent",{message:`transaction hash ${r.value.hash} has been committed to chain`,transactionHash:r.value.hash}),await this.checkTransaction(r,n)):(this.sentTransactions.push([r.status,n,r.reason]),this.emit("transactionSendFailed",{message:`failed to commit transaction ${this.sentTransactions.length} with error ${r.reason}`,error:r.reason}))}this.emit("executionFinish",{message:`execute ${i.length} transactions finished`})}}catch(t){if(t instanceof c)return;throw new Error(`Process execution failed for ${this.account.accountAddress.toString()} with error ${t}`)}}async checkTransaction(t,e){try{const a=[];a.push(d({aptosConfig:this.aptosConfig,transactionHash:t.value.hash}));const n=await Promise.allSettled(a);for(let i=0;i<n.length;i+=1){const s=n[i];s.status===u?(this.executedTransactions.push([s.value.hash,e,null]),this.emit("transactionExecuted",{message:`transaction hash ${s.value.hash} has been executed on chain`,transactionHash:t.value.hash})):(this.executedTransactions.push([s.status,e,s.reason]),this.emit("transactionExecutionFailed",{message:`failed to execute transaction ${this.executedTransactions.length} with error ${s.reason}`,error:s.reason}))}}catch(a){throw new Error(`Check transaction failed for ${this.account.accountAddress.toString()} with error ${a}`)}}async push(t,e){this.transactionsQueue.enqueue([t,e])}async generateNextTransaction(t,e){if(this.transactionsQueue.isEmpty())return;const[a,n]=await this.transactionsQueue.dequeue();return l({aptosConfig:this.aptosConfig,sender:t.accountAddress,data:a,options:{...n,accountSequenceNumber:e,replayProtectionNonce:void 0}})}async run(){try{for(;!this.taskQueue.isCancelled();)await(await this.taskQueue.dequeue())()}catch(t){throw new Error(`Unable to start transaction batching: ${t}`)}}start(){if(this.started)throw new Error("worker has already started");this.started=!0,this.taskQueue.enqueue(()=>this.submitNextTransaction()),this.taskQueue.enqueue(()=>this.processTransactions()),this.run()}stop(){if(this.taskQueue.isCancelled())throw new Error("worker has already stopped");this.started=!1,this.taskQueue.cancel()}}export{G as TransactionWorker,g as TransactionWorkerEventsEnum,u as promiseFulfilledStatus};
|
|
2
2
|
//# sourceMappingURL=transactionWorker.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/management/transactionWorker.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\n\nimport EventEmitter from \"eventemitter3\";\nimport { AptosConfig } from \"../../api/aptosConfig\";\nimport { Account } from \"../../account\";\nimport { waitForTransaction } from \"../../internal/transaction\";\nimport { generateTransaction, signAndSubmitTransaction } from \"../../internal/transactionSubmission\";\nimport { PendingTransactionResponse, TransactionResponse } from \"../../types\";\nimport { InputGenerateTransactionOptions, InputGenerateTransactionPayloadData } from \"../types\";\nimport { AccountSequenceNumber } from \"./accountSequenceNumber\";\nimport { AsyncQueue, AsyncQueueCancelledError } from \"./asyncQueue\";\nimport { SimpleTransaction } from \"../instances/simpleTransaction\";\n\n/**\n * @group Implementation\n * @category Transactions\n */\nexport const promiseFulfilledStatus = \"fulfilled\";\n\n/**\n * Events emitted by the transaction worker during its operation, allowing the dapp to respond to various transaction states.\n * @group Implementation\n * @category Transactions\n */\nexport enum TransactionWorkerEventsEnum {\n // fired after a transaction gets sent to the chain\n TransactionSent = \"transactionSent\",\n // fired if there is an error sending the transaction to the chain\n TransactionSendFailed = \"transactionSendFailed\",\n // fired when a single transaction has executed successfully\n TransactionExecuted = \"transactionExecuted\",\n // fired if a single transaction fails in execution\n TransactionExecutionFailed = \"transactionExecutionFailed\",\n // fired when the worker has finished its job / when the queue has been emptied\n ExecutionFinish = \"executionFinish\",\n}\n\n/**\n * Defines the events emitted by the transaction worker during various stages of transaction processing. *\n * @group Implementation\n * @category Transactions\n */\nexport interface TransactionWorkerEvents {\n transactionSent: (data: SuccessEventData) => void;\n transactionSendFailed: (data: FailureEventData) => void;\n transactionExecuted: (data: SuccessEventData) => void;\n transactionExecutionFailed: (data: FailureEventData) => void;\n executionFinish: (data: ExecutionFinishEventData) => void;\n}\n\n/**\n * The payload for when the worker has finished its job.\n * @group Implementation\n * @category Transactions\n */\nexport type ExecutionFinishEventData = {\n message: string;\n};\n\n/**\n * The payload for a success event.\n * @group Implementation\n * @category Transactions\n */\nexport type SuccessEventData = {\n message: string;\n transactionHash: string;\n};\n\n/**\n * The payload for a failure event.\n * @group Implementation\n * @category Transactions\n */\nexport type FailureEventData = {\n message: string;\n error: string;\n};\n\n/**\n * TransactionWorker provides a simple framework for receiving payloads to be processed.\n *\n * Once one `start()` the process and pushes a new transaction, the worker acquires\n * the current account's next sequence number (by using the AccountSequenceNumber class),\n * generates a signed transaction and pushes an async submission process into the `outstandingTransactions` queue.\n * At the same time, the worker processes transactions by reading the `outstandingTransactions` queue\n * and submits the next transaction to chain, it\n * 1) waits for resolution of the submission process or get pre-execution validation error\n * and 2) waits for the resolution of the execution process or get an execution error.\n * The worker fires events for any submission and/or execution success and/or failure.\n * @group Implementation\n * @category Transactions\n */\nexport class TransactionWorker extends EventEmitter<TransactionWorkerEvents> {\n readonly aptosConfig: AptosConfig;\n\n readonly account: Account;\n\n // current account sequence number\n // TODO: Rename Sequnce -> Sequence\n readonly accountSequnceNumber: AccountSequenceNumber;\n\n readonly taskQueue: AsyncQueue<() => Promise<void>> = new AsyncQueue<() => Promise<void>>();\n\n // process has started\n started: boolean;\n\n /**\n * transactions payloads waiting to be generated and signed\n *\n * TODO support entry function payload from ABI builder\n * @group Implementation\n * @category Transactions\n */\n transactionsQueue = new AsyncQueue<\n [InputGenerateTransactionPayloadData, InputGenerateTransactionOptions | undefined]\n >();\n\n /**\n * signed transactions waiting to be submitted\n * @group Implementation\n * @category Transactions\n */\n outstandingTransactions = new AsyncQueue<[Promise<PendingTransactionResponse>, bigint]>();\n\n /**\n * transactions that have been submitted to chain\n * @group Implementation\n * @category Transactions\n */\n sentTransactions: Array<[string, bigint, any]> = [];\n\n /**\n * transactions that have been committed to chain\n * @group Implementation\n * @category Transactions\n */\n executedTransactions: Array<[string, bigint, any]> = [];\n\n /**\n * Initializes a new instance of the class, providing a framework for receiving payloads to be processed.\n *\n * @param aptosConfig - A configuration object for Aptos.\n * @param account - The account that will be used for sending transactions.\n * @param maxWaitTime - The maximum wait time to wait before re-syncing the sequence number to the current on-chain state,\n * default is 30 seconds.\n * @param maximumInFlight - The maximum number of transactions that can be submitted per account, default is 100.\n * @param sleepTime - The time to wait in seconds before re-evaluating if the maximum number of transactions are in flight,\n * default is 10 seconds.\n * @group Implementation\n * @category Transactions\n */\n constructor(\n aptosConfig: AptosConfig,\n account: Account,\n maxWaitTime: number = 30,\n maximumInFlight: number = 100,\n sleepTime: number = 10,\n ) {\n super();\n this.aptosConfig = aptosConfig;\n this.account = account;\n this.started = false;\n this.accountSequnceNumber = new AccountSequenceNumber(\n aptosConfig,\n account,\n maxWaitTime,\n maximumInFlight,\n sleepTime,\n );\n }\n\n /**\n * Submits the next transaction for the account by generating it with the current sequence number\n * and adding it to the outstanding transaction queue for processing.\n * This function continues to submit transactions until there are no more to process.\n *\n * @throws {Error} Throws an error if the transaction submission fails.\n * @group Implementation\n * @category Transactions\n */\n async submitNextTransaction() {\n try {\n /* eslint-disable no-constant-condition */\n while (true) {\n const sequenceNumber = await this.accountSequnceNumber.nextSequenceNumber();\n if (sequenceNumber === null) return;\n const transaction = await this.generateNextTransaction(this.account, sequenceNumber);\n if (!transaction) return;\n const pendingTransaction = signAndSubmitTransaction({\n aptosConfig: this.aptosConfig,\n transaction,\n signer: this.account,\n });\n await this.outstandingTransactions.enqueue([pendingTransaction, sequenceNumber]);\n }\n } catch (error: any) {\n if (error instanceof AsyncQueueCancelledError) {\n return;\n }\n throw new Error(`Submit transaction failed for ${this.account.accountAddress.toString()} with error ${error}`);\n }\n }\n\n /**\n * Reads the outstanding transaction queue and submits the transactions to the chain.\n * This function processes each transaction, checking their status and emitting events based on whether they were successfully\n * sent or failed.\n *\n * @throws {Error} Throws an error if the process execution fails.\n * @event TransactionWorkerEventsEnum.TransactionSent - Emitted when a transaction has been successfully committed to the chain.\n * @event TransactionWorkerEventsEnum.TransactionSendFailed - Emitted when a transaction fails to commit, along with the error\n * reason.\n * @event TransactionWorkerEventsEnum.ExecutionFinish - Emitted when the execution of transactions is complete.\n * @group Implementation\n * @category Transactions\n */\n async processTransactions() {\n try {\n /* eslint-disable no-constant-condition */\n while (true) {\n const awaitingTransactions = [];\n const sequenceNumbers = [];\n let [pendingTransaction, sequenceNumber] = await this.outstandingTransactions.dequeue();\n\n awaitingTransactions.push(pendingTransaction);\n sequenceNumbers.push(sequenceNumber);\n\n while (!this.outstandingTransactions.isEmpty()) {\n [pendingTransaction, sequenceNumber] = await this.outstandingTransactions.dequeue();\n\n awaitingTransactions.push(pendingTransaction);\n sequenceNumbers.push(sequenceNumber);\n }\n // send awaiting transactions to chain\n const sentTransactions = await Promise.allSettled(awaitingTransactions);\n for (let i = 0; i < sentTransactions.length && i < sequenceNumbers.length; i += 1) {\n // check sent transaction status\n const sentTransaction = sentTransactions[i];\n sequenceNumber = sequenceNumbers[i];\n if (sentTransaction.status === promiseFulfilledStatus) {\n // transaction sent to chain\n this.sentTransactions.push([sentTransaction.value.hash, sequenceNumber, null]);\n // check sent transaction execution\n this.emit(TransactionWorkerEventsEnum.TransactionSent, {\n message: `transaction hash ${sentTransaction.value.hash} has been committed to chain`,\n transactionHash: sentTransaction.value.hash,\n });\n await this.checkTransaction(sentTransaction, sequenceNumber);\n } else {\n // send transaction failed\n this.sentTransactions.push([sentTransaction.status, sequenceNumber, sentTransaction.reason]);\n this.emit(TransactionWorkerEventsEnum.TransactionSendFailed, {\n message: `failed to commit transaction ${this.sentTransactions.length} with error ${sentTransaction.reason}`,\n error: sentTransaction.reason,\n });\n }\n }\n this.emit(TransactionWorkerEventsEnum.ExecutionFinish, {\n message: `execute ${sentTransactions.length} transactions finished`,\n });\n }\n } catch (error: any) {\n if (error instanceof AsyncQueueCancelledError) {\n return;\n }\n throw new Error(`Process execution failed for ${this.account.accountAddress.toString()} with error ${error}`);\n }\n }\n\n /**\n * Once a transaction has been sent to the chain, this function checks for its execution status.\n * @param sentTransaction - The transaction that was sent to the chain and is now waiting to be executed.\n * @param sequenceNumber - The account's sequence number that was sent with the transaction.\n * @group Implementation\n * @category Transactions\n */\n async checkTransaction(sentTransaction: PromiseFulfilledResult<PendingTransactionResponse>, sequenceNumber: bigint) {\n try {\n const waitFor: Array<Promise<TransactionResponse>> = [];\n waitFor.push(waitForTransaction({ aptosConfig: this.aptosConfig, transactionHash: sentTransaction.value.hash }));\n const sentTransactions = await Promise.allSettled(waitFor);\n\n for (let i = 0; i < sentTransactions.length; i += 1) {\n const executedTransaction = sentTransactions[i];\n if (executedTransaction.status === promiseFulfilledStatus) {\n // transaction executed to chain\n this.executedTransactions.push([executedTransaction.value.hash, sequenceNumber, null]);\n this.emit(TransactionWorkerEventsEnum.TransactionExecuted, {\n message: `transaction hash ${executedTransaction.value.hash} has been executed on chain`,\n transactionHash: sentTransaction.value.hash,\n });\n } else {\n // transaction execution failed\n this.executedTransactions.push([executedTransaction.status, sequenceNumber, executedTransaction.reason]);\n this.emit(TransactionWorkerEventsEnum.TransactionExecutionFailed, {\n message: `failed to execute transaction ${this.executedTransactions.length} with error ${executedTransaction.reason}`,\n error: executedTransaction.reason,\n });\n }\n }\n } catch (error: any) {\n throw new Error(`Check transaction failed for ${this.account.accountAddress.toString()} with error ${error}`);\n }\n }\n\n /**\n * Pushes a transaction to the transactions queue for processing.\n *\n * @param transactionData - The transaction payload containing necessary details.\n * @param transactionData.abi - For all entry function payloads, the ABI to skip remote ABI lookups.\n * @param options - Optional parameters for transaction configuration.\n * @param options.maxGasAmount - Maximum gas amount for the transaction.\n * @param options.gasUnitPrice - Gas unit price for the transaction.\n * @param options.expireTimestamp - Expiration timestamp on the transaction.\n * @param options.accountSequenceNumber - The sequence number for the transaction.\n * @group Implementation\n * @category Transactions\n */\n async push(\n transactionData: InputGenerateTransactionPayloadData,\n options?: InputGenerateTransactionOptions,\n ): Promise<void> {\n this.transactionsQueue.enqueue([transactionData, options]);\n }\n\n /**\n * Generates a signed transaction that can be submitted to the chain.\n *\n * @param account - An Aptos account used as the sender of the transaction.\n * @param sequenceNumber - A sequence number the transaction will be generated with.\n * @returns A signed transaction object or undefined if the transaction queue is empty.\n * @group Implementation\n * @category Transactions\n */\n async generateNextTransaction(account: Account, sequenceNumber: bigint): Promise<SimpleTransaction | undefined> {\n if (this.transactionsQueue.isEmpty()) return undefined;\n const [transactionData, options] = await this.transactionsQueue.dequeue();\n return generateTransaction({\n aptosConfig: this.aptosConfig,\n sender: account.accountAddress,\n data: transactionData,\n options: { ...options, accountSequenceNumber: sequenceNumber, replayProtectionNonce: undefined },\n });\n }\n\n /**\n * Starts transaction submission and processing by executing tasks from the queue until it is cancelled.\n *\n * @throws {Error} Throws an error if unable to start transaction batching.\n * @group Implementation\n * @category Transactions\n */\n async run() {\n try {\n while (!this.taskQueue.isCancelled()) {\n const task = await this.taskQueue.dequeue();\n await task();\n }\n } catch (error: any) {\n throw new Error(`Unable to start transaction batching: ${error}`);\n }\n }\n\n /**\n * Starts the transaction management process.\n *\n * @throws {Error} Throws an error if the worker has already started.\n * @group Implementation\n * @category Transactions\n */\n start() {\n if (this.started) {\n throw new Error(\"worker has already started\");\n }\n this.started = true;\n this.taskQueue.enqueue(() => this.submitNextTransaction());\n this.taskQueue.enqueue(() => this.processTransactions());\n this.run();\n }\n\n /**\n * Stops the transaction management process.\n *\n * @throws {Error} Throws an error if the worker has already stopped.\n * @group Implementation\n * @category Transactions\n */\n stop() {\n if (this.taskQueue.isCancelled()) {\n throw new Error(\"worker has already stopped\");\n }\n this.started = false;\n this.taskQueue.cancel();\n }\n}\n"],"mappings":"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","names":["EventEmitter","waitForTransaction","generateTransaction","signAndSubmitTransaction","AccountSequenceNumber","AsyncQueue","AsyncQueueCancelledError","promiseFulfilledStatus","TransactionWorkerEventsEnum","TransactionWorker","aptosConfig","account","maxWaitTime","maximumInFlight","sleepTime","sequenceNumber","transaction","pendingTransaction","error","awaitingTransactions","sequenceNumbers","sentTransactions","i","sentTransaction","waitFor","executedTransaction","transactionData","options"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Bool as r,FixedBytes as i,MoveOption as o,MoveString as u,MoveVector as s,U128 as p,U16 as c,U256 as y,U32 as m,U64 as a,U8 as f}from"../../bcs";import{AccountAddress as g}from"../../core";function W(n){return typeof n=="boolean"}function A(n){return typeof n=="string"}function F(n){return typeof n=="number"}function $(n){if(F(n))return n;if(A(n)&&n!=="")return Number.parseInt(n,10)}function L(n){return typeof n=="number"||typeof n=="bigint"||typeof n=="string"}function V(n){return n==null}function j(n){return T(n)||x(n)||S(n)||B(n)||U(n)||b(n)||I(n)||E(n)||l(n)||d(n)||n instanceof s||n instanceof o}function T(n){return n instanceof r}function E(n){return n instanceof g}function l(n){return n instanceof u}function d(n){return n instanceof i}function x(n){return n instanceof f}function S(n){return n instanceof c}function B(n){return n instanceof m}function U(n){return n instanceof a}function b(n){return n instanceof p}function I(n){return n instanceof y}function k(n){return"bytecode"in n}function q(n,t){throw new Error(`Type mismatch for argument ${t}, expected '${n}'`)}function z(n){const t=n.params.findIndex(e=>e!=="signer"&&e!=="&signer");return t<0?n.params.length:t}export{$ as convertNumber,z as findFirstNonSignerArg,E as isBcsAddress,T as isBcsBool,d as isBcsFixedBytes,l as isBcsString,b as isBcsU128,S as isBcsU16,I as isBcsU256,B as isBcsU32,U as isBcsU64,x as isBcsU8,W as isBool,V as isEmptyOption,j as isEncodedEntryFunctionArgument,L as isLargeNumber,F as isNumber,k as isScriptDataInput,A as isString,q as throwTypeMismatch};
|
|
2
2
|
//# sourceMappingURL=helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/transactionBuilder/helpers.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n EntryFunctionArgumentTypes,\n InputGenerateTransactionPayloadData,\n InputGenerateTransactionPayloadDataWithRemoteABI,\n InputScriptData,\n SimpleEntryFunctionArgumentTypes,\n} from \"../types\";\nimport { Bool, FixedBytes, MoveOption, MoveString, MoveVector, U128, U16, U256, U32, U64, U8 } from \"../../bcs\";\nimport { AccountAddress } from \"../../core\";\nimport { MoveFunction } from \"../../types\";\n\n/**\n * Determines if the provided argument is of type boolean.\n * This can help in validating input types before processing them further.\n *\n * @param arg - The argument to check, which can be of various types.\n * @returns A boolean indicating whether the argument is a boolean.\n * @group Implementation\n * @category Transactions\n */\nexport function isBool(arg: SimpleEntryFunctionArgumentTypes): arg is boolean {\n return typeof arg === \"boolean\";\n}\n\n/**\n * Checks if the provided argument is of type string.\n *\n * @param arg - The value to be checked for string type.\n * @returns A boolean indicating whether the argument is a string.\n * @group Implementation\n * @category Transactions\n */\nexport function isString(arg: any): arg is string {\n return typeof arg === \"string\";\n}\n\n/**\n * Determines if the provided argument is of type number.\n *\n * @param arg - The argument to check, which can be of various types.\n * @returns A boolean indicating whether the argument is a number.\n * @group Implementation\n * @category Transactions\n */\nexport function isNumber(arg: SimpleEntryFunctionArgumentTypes): arg is number {\n return typeof arg === \"number\";\n}\n\n/**\n * Converts a number or a string representation of a number into a number type.\n * This function is useful for ensuring that the input is in a consistent numeric format,\n * which can help prevent type mismatches in further processing.\n *\n * @param arg - The input value to be converted. This can be a number, a string representing a number, or any other type.\n * @returns Returns the converted number if the input is valid; otherwise, it returns undefined.\n * @group Implementation\n * @category Transactions\n */\nexport function convertNumber(arg: SimpleEntryFunctionArgumentTypes): number | undefined {\n if (isNumber(arg)) {\n return arg;\n }\n if (isString(arg) && arg !== \"\") {\n return Number.parseInt(arg, 10);\n }\n\n return undefined;\n}\n\n/**\n * Determines if the provided argument is a large number, which can be a number, bigint, or string representation of a number.\n *\n * @param arg - The argument to check, which can be of type number, bigint, or string.\n * @group Implementation\n * @category Transactions\n */\nexport function isLargeNumber(arg: SimpleEntryFunctionArgumentTypes): arg is number | bigint | string {\n return typeof arg === \"number\" || typeof arg === \"bigint\" || typeof arg === \"string\";\n}\n\n/**\n * Checks if the provided argument is empty, meaning it is either null or undefined.\n *\n * @param arg - The argument to check for emptiness.\n * @returns A boolean indicating whether the argument is empty.\n * @group Implementation\n * @category Transactions\n */\nexport function isEmptyOption(arg: SimpleEntryFunctionArgumentTypes): arg is null | undefined {\n return arg === null || arg === undefined;\n}\n\n/**\n * Determines if the provided argument is a valid encoded entry function argument type.\n * This function helps validate that the argument conforms to the expected types for entry function parameters.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\nexport function isEncodedEntryFunctionArgument(\n arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes,\n): arg is EntryFunctionArgumentTypes {\n return (\n /**\n * Determines if the provided argument is an instance of the Bool class.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsBool(arg) ||\n /**\n * Determines if the provided argument is an instance of U8.\n * This function helps validate the type of the argument passed to ensure it is a U8 type.\n *\n * @param arg - The argument to be checked, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsU8(arg) ||\n /**\n * Determines if the provided argument is an instance of U16.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsU16(arg) ||\n /**\n * Determines if the provided argument is an instance of U32.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @returns A boolean indicating whether the argument is a U32 instance.\n * @group Implementation\n * @category Transactions\n */\n isBcsU32(arg) ||\n /**\n * Determine if the provided argument is an instance of U64.\n * This function helps validate that the argument conforms to the expected U64 type.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsU64(arg) ||\n /**\n * Determines if the provided argument is an instance of U128.\n * This function helps validate the type of the argument passed to ensure it is a U128 type.\n *\n * @param arg - The argument to be checked, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsU128(arg) ||\n /**\n * Determines if the provided argument is an instance of U256.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @returns A boolean indicating whether the argument is a U256 instance.\n * @group Implementation\n * @category Transactions\n */\n isBcsU256(arg) ||\n /**\n * Determines if the provided argument is an instance of AccountAddress.\n * This function helps validate whether a given input corresponds to a valid BCS address type.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsAddress(arg) ||\n /**\n * Determine if the provided argument is an instance of MoveString.\n *\n * @param arg - The argument to check, which can be of types EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsString(arg) ||\n /**\n * Determine if the provided argument is an instance of FixedBytes.\n * This function helps to validate the type of the argument being passed.\n *\n * @param arg - The argument to check, which can be of type EntryFunctionArgumentTypes or SimpleEntryFunctionArgumentTypes.\n * @group Implementation\n * @category Transactions\n */\n isBcsFixedBytes(arg) ||\n arg instanceof MoveVector ||\n arg instanceof MoveOption\n );\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsBool(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is Bool {\n return arg instanceof Bool;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsAddress(\n arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes,\n): arg is AccountAddress {\n return arg instanceof AccountAddress;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsString(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is MoveString {\n return arg instanceof MoveString;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsFixedBytes(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is FixedBytes {\n return arg instanceof FixedBytes;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsU8(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is U8 {\n return arg instanceof U8;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsU16(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is U16 {\n return arg instanceof U16;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsU32(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is U32 {\n return arg instanceof U32;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsU64(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is U64 {\n return arg instanceof U64;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsU128(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is U128 {\n return arg instanceof U128;\n}\n/**\n * @group Implementation\n * @category Transactions\n */\nexport function isBcsU256(arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes): arg is U256 {\n return arg instanceof U256;\n}\n\n/**\n * Determines if the provided argument contains script data input by checking for the presence of bytecode.\n *\n * @param arg - The input data to be checked, which can either be a payload with remote ABI or a standard payload.\n * @param arg.bytecode - The bytecode of the script, present if the input is script data.\n * @param arg.function - The function associated with the transaction, which is relevant for standard payloads.\n * @param arg.args - The arguments for the function, applicable in the context of standard payloads.\n * @group Implementation\n * @category Transactions\n */\nexport function isScriptDataInput(\n arg: InputGenerateTransactionPayloadDataWithRemoteABI | InputGenerateTransactionPayloadData,\n): arg is InputScriptData {\n return \"bytecode\" in arg;\n}\n\n/**\n * Throws an error indicating a type mismatch for a specified argument position.\n * This function helps in debugging by providing clear feedback on expected types.\n *\n * @param expectedType - The type that was expected for the argument.\n * @param position - The position of the argument that caused the type mismatch.\n * @group Implementation\n * @category Transactions\n */\nexport function throwTypeMismatch(expectedType: string, position: number) {\n throw new Error(`Type mismatch for argument ${position}, expected '${expectedType}'`);\n}\n\n/**\n * Finds the index of the first non-signer argument in the function ABI parameters.\n *\n * A function is often defined with a `signer` or `&signer` arguments at the start, which are filled in\n * by signatures and not by the caller. This function helps identify the position of the first argument that\n * can be provided by the caller, allowing for easier handling of function parameters.\n *\n * @param functionAbi - The ABI of the function to analyze.\n * @returns The index of the first non-signer argument, or the length of the parameters array if none are found.\n * @group Implementation\n * @category Transactions\n */\nexport function findFirstNonSignerArg(functionAbi: MoveFunction): number {\n const index = functionAbi.params.findIndex((param) => param !== \"signer\" && param !== \"&signer\");\n if (index < 0) {\n return functionAbi.params.length;\n }\n return index;\n}\n"],"mappings":"AAUA,OAAS,QAAAA,EAAM,cAAAC,EAAY,cAAAC,EAAY,cAAAC,EAAY,cAAAC,EAAY,QAAAC,EAAM,OAAAC,EAAK,QAAAC,EAAM,OAAAC,EAAK,OAAAC,EAAK,MAAAC,MAAU,YACpG,OAAS,kBAAAC,MAAsB,aAYxB,SAASC,EAAOC,EAAuD,CAC5E,OAAO,OAAOA,GAAQ,SACxB,CAUO,SAASC,EAASD,EAAyB,CAChD,OAAO,OAAOA,GAAQ,QACxB,CAUO,SAASE,EAASF,EAAsD,CAC7E,OAAO,OAAOA,GAAQ,QACxB,CAYO,SAASG,EAAcH,EAA2D,CACvF,GAAIE,EAASF,CAAG,EACd,OAAOA,EAET,GAAIC,EAASD,CAAG,GAAKA,IAAQ,GAC3B,OAAO,OAAO,SAASA,EAAK,EAAE,CAIlC,CASO,SAASI,EAAcJ,EAAwE,CACpG,OAAO,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,QAC9E,CAUO,SAASK,EAAcL,EAAgE,CAC5F,OAAOA,GAAQ,IACjB,CAUO,SAASM,EACdN,EACmC,CACnC,OAQEO,EAAUP,CAAG,GASbQ,EAAQR,CAAG,GAQXS,EAAST,CAAG,GASZU,EAASV,CAAG,GASZW,EAASX,CAAG,GASZY,EAAUZ,CAAG,GASba,EAAUb,CAAG,GASbc,EAAad,CAAG,GAQhBe,EAAYf,CAAG,GASfgB,EAAgBhB,CAAG,GACnBA,aAAeT,GACfS,aAAeX,CAEnB,CAKO,SAASkB,EAAUP,EAAiF,CACzG,OAAOA,aAAeb,CACxB,CAKO,SAAS2B,EACdd,EACuB,CACvB,OAAOA,aAAeF,CACxB,CAKO,SAASiB,EAAYf,EAAuF,CACjH,OAAOA,aAAeV,CACxB,CAKO,SAAS0B,EAAgBhB,EAAuF,CACrH,OAAOA,aAAeZ,CACxB,CAKO,SAASoB,EAAQR,EAA+E,CACrG,OAAOA,aAAeH,CACxB,CAKO,SAASY,EAAST,EAAgF,CACvG,OAAOA,aAAeP,CACxB,CAKO,SAASiB,EAASV,EAAgF,CACvG,OAAOA,aAAeL,CACxB,CAKO,SAASgB,EAASX,EAAgF,CACvG,OAAOA,aAAeJ,CACxB,CAKO,SAASgB,EAAUZ,EAAiF,CACzG,OAAOA,aAAeR,CACxB,CAKO,SAASqB,EAAUb,EAAiF,CACzG,OAAOA,aAAeN,CACxB,CAYO,SAASuB,EACdjB,EACwB,CACxB,MAAO,aAAcA,CACvB,CAWO,SAASkB,EAAkBC,EAAsBC,EAAkB,CACxE,MAAM,IAAI,MAAM,8BAA8BA,CAAQ,eAAeD,CAAY,GAAG,CACtF,CAcO,SAASE,EAAsBC,EAAmC,CACvE,MAAMC,EAAQD,EAAY,OAAO,UAAWE,GAAUA,IAAU,UAAYA,IAAU,SAAS,EAC/F,OAAID,EAAQ,EACHD,EAAY,OAAO,OAErBC,CACT","names":["Bool","FixedBytes","MoveOption","MoveString","MoveVector","U128","U16","U256","U32","U64","U8","AccountAddress","isBool","arg","isString","isNumber","convertNumber","isLargeNumber","isEmptyOption","isEncodedEntryFunctionArgument","isBcsBool","isBcsU8","isBcsU16","isBcsU32","isBcsU64","isBcsU128","isBcsU256","isBcsAddress","isBcsString","isBcsFixedBytes","isScriptDataInput","throwTypeMismatch","expectedType","position","findFirstNonSignerArg","functionAbi","index","param"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export*from"./helpers";export*from"./transactionBuilder";export*from"./remoteAbi";export*from"./signingMessage";
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/transactions/transactionBuilder/index.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nexport * from \"./helpers\";\nexport * from \"./transactionBuilder\";\nexport * from \"./remoteAbi\";\nexport * from \"./signingMessage\";\n"],"mappings":"AAGA,WAAc,YACd,WAAc,uBACd,WAAc,cACd,WAAc","names":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{parseTypeTag as w}from"../typeTag/parser";import{TypeTagAddress as v,TypeTagBool as E,TypeTagStruct as a,TypeTagU128 as S,TypeTagU16 as F,TypeTagU256 as x,TypeTagU32 as b,TypeTagU64 as I,TypeTagU8 as M}from"../typeTag";import{Bool as d,FixedBytes as A,MoveOption as c,MoveString as C,MoveVector as l,U128 as _,U16 as k,U256 as G,U32 as V,U64 as j,U8 as D}from"../../bcs";import{AccountAddress as U}from"../../core";import{getModule as P}from"../../internal/account";import{findFirstNonSignerArg as L,isBcsAddress as B,isBcsBool as O,isBcsString as R,isBcsU128 as z,isBcsU16 as J,isBcsU256 as K,isBcsU32 as W,isBcsU64 as X,isBcsU8 as q,isBool as H,isEncodedEntryFunctionArgument as Q,isLargeNumber as g,isEmptyOption as Y,isString as y,throwTypeMismatch as o,convertNumber as p}from"./helpers";const Z=new TextEncoder;function Bn(n){return n?.map(e=>y(e)?w(e):e)??[]}async function N(n,e,t){return(await P({aptosConfig:t,accountAddress:n,moduleName:e})).abi}async function h(n,e,t,u){const r=await N(n,e,u);if(!r)throw new Error(`Could not find module ABI for '${n}::${e}'`);return r.exposed_functions.find(f=>f.name===t)}async function $n(n,e,t,u){const r=await h(n,e,t,u);if(!r)throw new Error(`Could not find function ABI for '${n}::${e}::${t}'`);const f=[];for(let i=0;i<r.params.length;i+=1)f.push(w(r.params[i],{allowGenerics:!0}));return{typeParameters:r.generic_type_params,parameters:f}}async function vn(n,e,t,u){const r=await h(n,e,t,u);if(!r)throw new Error(`Could not find entry function ABI for '${n}::${e}::${t}'`);if(!r.is_entry)throw new Error(`'${n}::${e}::${t}' is not an entry function`);const f=L(r),i=[];for(let s=f;s<r.params.length;s+=1)i.push(w(r.params[s],{allowGenerics:!0}));return{signers:f,typeParameters:r.generic_type_params,parameters:i}}async function En(n,e,t,u){const r=await h(n,e,t,u);if(!r)throw new Error(`Could not find view function ABI for '${n}::${e}::${t}'`);if(!r.is_view)throw new Error(`'${n}::${e}::${t}' is not an view function`);const f=[];for(let s=0;s<r.params.length;s+=1)f.push(w(r.params[s],{allowGenerics:!0}));const i=[];for(let s=0;s<r.return.length;s+=1)i.push(w(r.return[s],{allowGenerics:!0}));return{typeParameters:r.generic_type_params,parameters:f,returnTypes:i}}function an(n,e,t,u,r,f){let i;if("exposed_functions"in e){const s=e.exposed_functions.find($=>$.name===n);if(!s)throw new Error(`Could not find function ABI for '${e.address}::${e.name}::${n}'`);if(u>=s.params.length)throw new Error(`Too many arguments for '${n}', expected ${s.params.length}`);i=w(s.params[u],{allowGenerics:!0})}else{if(u>=e.parameters.length)throw new Error(`Too many arguments for '${n}', expected ${e.parameters.length}`);i=e.parameters[u]}return T(t,i,u,r,"exposed_functions"in e?e:void 0,f)}function T(n,e,t,u,r,f){return Q(n)?(m(e,n,t),n):nn(n,e,t,u,r,f)}function nn(n,e,t,u,r,f){if(e.isBool()){if(H(n))return new d(n);if(y(n)){if(n==="true")return new d(!0);if(n==="false")return new d(!1)}o("boolean",t)}if(e.isAddress()){if(y(n))return U.fromString(n);if(n&&typeof n=="object"&&"data"in n&&n.data instanceof Uint8Array)return new U(n.data);o("string | AccountAddress",t)}if(e.isU8()){const i=p(n);if(i!==void 0)return new D(i);o("number | string",t)}if(e.isU16()){const i=p(n);if(i!==void 0)return new k(i);o("number | string",t)}if(e.isU32()){const i=p(n);if(i!==void 0)return new V(i);o("number | string",t)}if(e.isU64()){if(g(n))return new j(BigInt(n));o("bigint | number | string",t)}if(e.isU128()){if(g(n))return new _(BigInt(n));o("bigint | number | string",t)}if(e.isU256()){if(g(n))return new G(BigInt(n));o("bigint | number | string",t)}if(e.isGeneric()){const i=e.value;if(i<0||i>=u.length)throw new Error(`Generic argument ${e.toString()} is invalid for argument ${t}`);return T(n,u[i],t,u,r)}if(e.isVector()){if(e.value.isU8()){if(y(n))return l.U8(Z.encode(n));if(n instanceof Uint8Array)return l.U8(n);if(n instanceof ArrayBuffer)return l.U8(new Uint8Array(n))}if(y(n)&&n.startsWith("["))return T(JSON.parse(n),e,t,u);if(Array.isArray(n))return new l(n.map(i=>T(i,e.value,t,u,r)));throw new Error(`Type mismatch for argument ${t}, type '${e.toString()}'`)}if(e.isStruct()){if(e.isString()){if(y(n))return new C(n);o("string",t)}if(e.isObject()){if(y(n))return U.fromString(n);if(n&&typeof n=="object"&&"data"in n&&n.data instanceof Uint8Array)return new U(n.data);o("string | AccountAddress",t)}if(e.isDelegationKey()||e.isRateLimiter()){if(n instanceof Uint8Array)return new A(n);o("Uint8Array",t)}if(e.isOption()){if(Y(n)){const s=e.value.typeArgs[0];return s instanceof E?new c(null):s instanceof v?new c(null):s instanceof M?new c(null):s instanceof F?new c(null):s instanceof b?new c(null):s instanceof I?new c(null):s instanceof S?new c(null):s instanceof x?new c(null):new c(null)}return new c(T(n,e.value.typeArgs[0],t,u,r))}if(r?.structs.find(s=>s.name===e.value.name.identifier)?.fields.length===0&&n instanceof Uint8Array)return new A(n);if(n instanceof Uint8Array&&f?.allowUnknownStructs)return console.warn(`Unsupported struct input type for argument ${t}. Continuing since 'allowUnknownStructs' is enabled.`),new A(n);throw new Error(`Unsupported struct input type for argument ${t}, type '${e.toString()}'`)}throw new Error(`Type mismatch for argument ${t}, type '${e.toString()}'`)}function m(n,e,t){if(n.isBool()){if(O(e))return;o("Bool",t)}if(n.isAddress()){if(B(e))return;o("AccountAddress",t)}if(n.isU8()){if(q(e))return;o("U8",t)}if(n.isU16()){if(J(e))return;o("U16",t)}if(n.isU32()){if(W(e))return;o("U32",t)}if(n.isU64()){if(X(e))return;o("U64",t)}if(n.isU128()){if(z(e))return;o("U128",t)}if(n.isU256()){if(K(e))return;o("U256",t)}if(n.isVector()){if(e instanceof l){e.values.length>0&&m(n.value,e.values[0],t);return}o("MoveVector",t)}if(n instanceof a){if(n.isString()){if(R(e))return;o("MoveString",t)}if(n.isObject()){if(B(e))return;o("AccountAddress",t)}if(n.isOption()){if(e instanceof c){e.value!==void 0&&m(n.value.typeArgs[0],e.value,t);return}o("MoveOption",t)}}throw new Error(`Type mismatch for argument ${t}, expected '${n.toString()}'`)}export{T as checkOrConvertArgument,an as convertArgument,vn as fetchEntryFunctionAbi,h as fetchFunctionAbi,N as fetchModuleAbi,$n as fetchMoveFunctionAbi,En as fetchViewFunctionAbi,Bn as standardizeTypeTags};
|
|
2
2
|
//# sourceMappingURL=remoteAbi.mjs.map
|