@aptos-labs/ts-sdk 3.1.3 → 4.0.0-zeta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/{account-Bb5REyaT.d.ts → account-D4dsN-1K.d.ts} +1 -1
- package/dist/common/chunk-MU4IJVW5.js +1390 -0
- package/dist/common/chunk-MU4IJVW5.js.map +1 -0
- package/dist/common/cli/index.d.ts +1 -1
- package/dist/common/cli/index.js +480 -1
- package/dist/common/cli/index.js.map +1 -1
- package/dist/common/index.d.ts +598 -511
- package/dist/common/index.js +19842 -451
- package/dist/common/index.js.map +1 -1
- package/dist/esm/account/AbstractKeylessAccount.mjs +66 -1
- package/dist/esm/account/AbstractedAccount.mjs +62 -1
- package/dist/esm/account/Account.mjs +62 -1
- package/dist/esm/account/AccountUtils.mjs +62 -1
- package/dist/esm/account/DerivableAbstractedAccount.mjs +62 -1
- package/dist/esm/account/Ed25519Account.mjs +62 -1
- package/dist/esm/account/EphemeralKeyPair.mjs +62 -1
- package/dist/esm/account/FederatedKeylessAccount.mjs +62 -1
- package/dist/esm/account/KeylessAccount.mjs +62 -1
- package/dist/esm/account/MultiEd25519Account.mjs +62 -1
- package/dist/esm/account/MultiKeyAccount.mjs +62 -1
- package/dist/esm/account/SingleKeyAccount.mjs +64 -1
- package/dist/esm/account/index.mjs +90 -1
- package/dist/esm/account/utils.mjs +62 -1
- package/dist/esm/api/account/abstraction.mjs +62 -1
- package/dist/esm/api/account.d.mts +1 -0
- package/dist/esm/api/account.mjs +62 -1
- package/dist/esm/api/ans.mjs +62 -1
- package/dist/esm/api/aptos.d.mts +3 -4
- package/dist/esm/api/aptos.mjs +62 -1
- package/dist/esm/api/aptosConfig.mjs +9 -1
- package/dist/esm/api/coin.mjs +62 -1
- package/dist/esm/api/digitalAsset.mjs +62 -1
- package/dist/esm/api/faucet.mjs +62 -1
- package/dist/esm/api/fungibleAsset.mjs +62 -1
- package/dist/esm/api/general.mjs +62 -1
- package/dist/esm/api/index.d.mts +2 -1
- package/dist/esm/api/index.mjs +67 -1
- package/dist/esm/api/keyless.mjs +62 -1
- package/dist/esm/api/manager.d.mts +313 -0
- package/dist/esm/api/manager.mjs +63 -0
- package/dist/esm/api/object.mjs +62 -1
- package/dist/esm/api/staking.mjs +62 -1
- package/dist/esm/api/table.mjs +39 -1
- package/dist/esm/api/transaction.d.mts +56 -36
- package/dist/esm/api/transaction.mjs +62 -1
- package/dist/esm/api/transactionSubmission/build.mjs +62 -1
- package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
- package/dist/esm/api/transactionSubmission/management.mjs +62 -1
- package/dist/esm/api/transactionSubmission/sign.mjs +182 -1
- package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/simulate.mjs +62 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +62 -1
- package/dist/esm/api/utils.mjs +37 -1
- package/dist/esm/bcs/consts.mjs +17 -1
- package/dist/esm/bcs/deserializer.mjs +10 -1
- package/dist/esm/bcs/index.mjs +60 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
- package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +26 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +22 -1
- package/dist/esm/bcs/serializer.mjs +18 -1
- package/dist/esm/chunk-2EQWS4BO.mjs +15 -0
- package/dist/esm/{chunk-CW35YAMN.mjs.map → chunk-2EQWS4BO.mjs.map} +1 -1
- package/dist/esm/chunk-3WEOSEUE.mjs +221 -0
- package/dist/esm/{chunk-Y7ZQTLH4.mjs.map → chunk-3WEOSEUE.mjs.map} +1 -1
- package/dist/esm/chunk-4OAWQT57.mjs +281 -0
- package/dist/esm/{chunk-DAGUHPTV.mjs.map → chunk-4OAWQT57.mjs.map} +1 -1
- package/dist/esm/chunk-53SXUNRK.mjs +12 -0
- package/dist/esm/{chunk-XJJVJOX5.mjs.map → chunk-53SXUNRK.mjs.map} +1 -1
- package/dist/esm/chunk-55VEYGKK.mjs +46 -0
- package/dist/esm/{chunk-XKUIMGKU.mjs.map → chunk-55VEYGKK.mjs.map} +1 -1
- package/dist/esm/chunk-6ZZZXQX5.mjs +138 -0
- package/dist/esm/{chunk-FGFLPH5K.mjs.map → chunk-6ZZZXQX5.mjs.map} +1 -1
- package/dist/esm/chunk-A4IKXI43.mjs +339 -0
- package/dist/esm/{chunk-6WDVDEQZ.mjs.map → chunk-A4IKXI43.mjs.map} +1 -1
- package/dist/esm/{chunk-UL777LTI.mjs → chunk-A5FS7NAD.mjs} +380 -31
- package/dist/esm/{chunk-UL777LTI.mjs.map → chunk-A5FS7NAD.mjs.map} +1 -1
- package/dist/esm/chunk-APM7OSLS.mjs +122 -0
- package/dist/esm/{chunk-GOXRBEIJ.mjs.map → chunk-APM7OSLS.mjs.map} +1 -1
- package/dist/esm/chunk-BEYIOC2H.mjs +34 -0
- package/dist/esm/{chunk-YOZBVVKL.mjs.map → chunk-BEYIOC2H.mjs.map} +1 -1
- package/dist/esm/chunk-BQCCGCK4.mjs +22 -0
- package/dist/esm/{chunk-QREVMGQZ.mjs.map → chunk-BQCCGCK4.mjs.map} +1 -1
- package/dist/esm/chunk-CYKMZPCW.mjs +71 -0
- package/dist/esm/{chunk-2XQKGWHQ.mjs.map → chunk-CYKMZPCW.mjs.map} +1 -1
- package/dist/esm/chunk-DTLPTPJW.mjs +7 -0
- package/dist/esm/{chunk-ZIB2TU7B.mjs.map → chunk-DTLPTPJW.mjs.map} +1 -1
- package/dist/esm/chunk-DUYTCDXO.mjs +29 -0
- package/dist/esm/{chunk-HNBVYE3N.mjs.map → chunk-DUYTCDXO.mjs.map} +1 -1
- package/dist/esm/chunk-EPKBDH2H.mjs +177 -0
- package/dist/esm/{chunk-GMEBV7NZ.mjs.map → chunk-EPKBDH2H.mjs.map} +1 -1
- package/dist/esm/chunk-F7W7KS5C.mjs +52 -0
- package/dist/esm/{chunk-C3Q23D22.mjs.map → chunk-F7W7KS5C.mjs.map} +1 -1
- package/dist/esm/chunk-FHHBIGGL.mjs +43 -0
- package/dist/esm/{chunk-JCFTAG5Z.mjs.map → chunk-FHHBIGGL.mjs.map} +1 -1
- package/dist/esm/chunk-FJJ3KCPC.mjs +376 -0
- package/dist/esm/{chunk-EBMEXURY.mjs.map → chunk-FJJ3KCPC.mjs.map} +1 -1
- package/dist/esm/chunk-GHQTJGG6.mjs +196 -0
- package/dist/esm/{chunk-STY74NUA.mjs.map → chunk-GHQTJGG6.mjs.map} +1 -1
- package/dist/esm/chunk-GREMFKLA.mjs +84 -0
- package/dist/esm/{chunk-QVLV73OB.mjs.map → chunk-GREMFKLA.mjs.map} +1 -1
- package/dist/esm/chunk-GUA5YTIK.mjs +362 -0
- package/dist/esm/{chunk-35DKMW7Q.mjs.map → chunk-GUA5YTIK.mjs.map} +1 -1
- package/dist/esm/chunk-HKXZMGVA.mjs +73 -0
- package/dist/esm/{chunk-MT2RJ7H3.mjs.map → chunk-HKXZMGVA.mjs.map} +1 -1
- package/dist/esm/chunk-HXS6ZS4S.mjs +16311 -0
- package/dist/esm/chunk-HXS6ZS4S.mjs.map +1 -0
- package/dist/esm/chunk-IBRCEHIR.mjs +77 -0
- package/dist/esm/{chunk-TOBQ5UE6.mjs.map → chunk-IBRCEHIR.mjs.map} +1 -1
- package/dist/esm/chunk-ITS22VZT.mjs +48 -0
- package/dist/esm/{chunk-WSR5EBJM.mjs.map → chunk-ITS22VZT.mjs.map} +1 -1
- package/dist/esm/chunk-KJY6HBMF.mjs +114 -0
- package/dist/esm/{chunk-MGMCLJQC.mjs.map → chunk-KJY6HBMF.mjs.map} +1 -1
- package/dist/esm/chunk-MOQKSDHO.mjs +33 -0
- package/dist/esm/{chunk-WCMW2L3P.mjs.map → chunk-MOQKSDHO.mjs.map} +1 -1
- package/dist/esm/chunk-NATYEXGE.mjs +45 -0
- package/dist/esm/{chunk-N6YTF76Q.mjs.map → chunk-NATYEXGE.mjs.map} +1 -1
- package/dist/esm/chunk-O3EP3HB3.mjs +257 -0
- package/dist/esm/{chunk-IJE2LVZG.mjs.map → chunk-O3EP3HB3.mjs.map} +1 -1
- package/dist/esm/chunk-ORIVGO5I.mjs +73 -0
- package/dist/esm/{chunk-KJW3XYRT.mjs.map → chunk-ORIVGO5I.mjs.map} +1 -1
- package/dist/esm/chunk-OWG3TOG6.mjs +11 -0
- package/dist/esm/{chunk-KJH4KKG6.mjs.map → chunk-OWG3TOG6.mjs.map} +1 -1
- package/dist/esm/chunk-P6RWWRGG.mjs +440 -0
- package/dist/esm/{chunk-RGKRCZ36.mjs.map → chunk-P6RWWRGG.mjs.map} +1 -1
- package/dist/esm/chunk-PT2QHUB6.mjs +96 -0
- package/dist/esm/{chunk-A5L76YP7.mjs.map → chunk-PT2QHUB6.mjs.map} +1 -1
- package/dist/esm/chunk-Q5W46UAQ.mjs +123 -0
- package/dist/esm/{chunk-B563XRSZ.mjs.map → chunk-Q5W46UAQ.mjs.map} +1 -1
- package/dist/esm/chunk-QIM243UU.mjs +89 -0
- package/dist/esm/{chunk-TZRRQMCT.mjs.map → chunk-QIM243UU.mjs.map} +1 -1
- package/dist/esm/chunk-QPT4BSAB.mjs +20 -0
- package/dist/esm/{chunk-IF4UU2MT.mjs.map → chunk-QPT4BSAB.mjs.map} +1 -1
- package/dist/esm/chunk-SAWN7RJP.mjs +15 -0
- package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
- package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
- package/dist/esm/chunk-SCWOUBOV.mjs +101 -0
- package/dist/esm/{chunk-7DQDJ2SA.mjs.map → chunk-SCWOUBOV.mjs.map} +1 -1
- package/dist/esm/chunk-SFLQPB72.mjs +63 -0
- package/dist/esm/{chunk-4RXKALLC.mjs.map → chunk-SFLQPB72.mjs.map} +1 -1
- package/dist/esm/chunk-SQ3VDIBO.mjs +47 -0
- package/dist/esm/{chunk-NIXUOEWL.mjs.map → chunk-SQ3VDIBO.mjs.map} +1 -1
- package/dist/esm/chunk-TPJY5GTS.mjs +502 -0
- package/dist/esm/{chunk-Q4W3WJ2U.mjs.map → chunk-TPJY5GTS.mjs.map} +1 -1
- package/dist/esm/chunk-TSXVHRQB.mjs +216 -0
- package/dist/esm/{chunk-ORMOQWWH.mjs.map → chunk-TSXVHRQB.mjs.map} +1 -1
- package/dist/esm/chunk-UAXZDOSV.mjs +19 -0
- package/dist/esm/{chunk-XZQAMU5W.mjs.map → chunk-UAXZDOSV.mjs.map} +1 -1
- package/dist/esm/chunk-UKXKN5YN.mjs +72 -0
- package/dist/esm/{chunk-ROT6S6BM.mjs.map → chunk-UKXKN5YN.mjs.map} +1 -1
- package/dist/esm/chunk-WZD3K77H.mjs +53 -0
- package/dist/esm/{chunk-RQX6JOEN.mjs.map → chunk-WZD3K77H.mjs.map} +1 -1
- package/dist/esm/chunk-XBBBLYRH.mjs +66 -0
- package/dist/esm/{chunk-JEEUU42Q.mjs.map → chunk-XBBBLYRH.mjs.map} +1 -1
- package/dist/esm/chunk-YJJUYS67.mjs +329 -0
- package/dist/esm/{chunk-FLZPUYXQ.mjs.map → chunk-YJJUYS67.mjs.map} +1 -1
- package/dist/esm/cli/index.mjs +21 -1
- package/dist/esm/cli/localNode.mjs +17 -1
- package/dist/esm/cli/move.mjs +7 -1
- package/dist/esm/client/core.mjs +31 -1
- package/dist/esm/client/get.mjs +40 -1
- package/dist/esm/client/index.mjs +60 -1
- package/dist/esm/client/post.mjs +40 -1
- package/dist/esm/core/account/index.mjs +21 -1
- package/dist/esm/core/account/utils/address.mjs +19 -1
- package/dist/esm/core/account/utils/index.mjs +20 -1
- package/dist/esm/core/accountAddress.mjs +16 -1
- package/dist/esm/core/authenticationKey.mjs +15 -1
- package/dist/esm/core/common.mjs +7 -1
- package/dist/esm/core/crypto/abstraction.mjs +26 -1
- package/dist/esm/core/crypto/deserializationUtils.mjs +64 -1
- package/dist/esm/core/crypto/ed25519.mjs +68 -1
- package/dist/esm/core/crypto/ephemeral.mjs +64 -1
- package/dist/esm/core/crypto/federatedKeyless.mjs +62 -1
- package/dist/esm/core/crypto/hdKey.mjs +25 -1
- package/dist/esm/core/crypto/index.mjs +196 -1
- package/dist/esm/core/crypto/keyless.mjs +110 -1
- package/dist/esm/core/crypto/multiEd25519.mjs +64 -1
- package/dist/esm/core/crypto/multiKey.mjs +66 -1
- package/dist/esm/core/crypto/poseidon.mjs +15 -1
- package/dist/esm/core/crypto/privateKey.mjs +12 -1
- package/dist/esm/core/crypto/proof.mjs +20 -1
- package/dist/esm/core/crypto/publicKey.mjs +22 -1
- package/dist/esm/core/crypto/secp256k1.mjs +66 -1
- package/dist/esm/core/crypto/signature.mjs +20 -1
- package/dist/esm/core/crypto/singleKey.mjs +64 -1
- package/dist/esm/core/crypto/types.mjs +1 -1
- package/dist/esm/core/crypto/utils.d.mts +5 -2
- package/dist/esm/core/crypto/utils.mjs +66 -1
- package/dist/esm/core/hex.mjs +12 -1
- package/dist/esm/core/index.mjs +221 -1
- package/dist/esm/errors/index.mjs +26 -1
- package/dist/esm/index.d.mts +1 -1
- package/dist/esm/index.mjs +716 -1
- package/dist/esm/internal/abstraction.mjs +66 -1
- package/dist/esm/internal/account.d.mts +27 -21
- package/dist/esm/internal/account.mjs +108 -1
- package/dist/esm/internal/ans.d.mts +19 -8
- package/dist/esm/internal/ans.mjs +100 -1
- package/dist/esm/internal/coin.mjs +62 -1
- package/dist/esm/internal/digitalAsset.mjs +108 -1
- package/dist/esm/internal/faucet.mjs +62 -1
- package/dist/esm/internal/fungibleAsset.mjs +70 -1
- package/dist/esm/internal/general.mjs +44 -1
- package/dist/esm/internal/keyless.mjs +68 -1
- package/dist/esm/internal/object.mjs +64 -1
- package/dist/esm/internal/staking.mjs +66 -1
- package/dist/esm/internal/table.mjs +39 -1
- package/dist/esm/internal/transaction.mjs +58 -1
- package/dist/esm/internal/transactionSubmission.mjs +82 -1
- package/dist/esm/internal/utils/index.mjs +37 -1
- package/dist/esm/internal/utils/utils.mjs +36 -1
- package/dist/esm/internal/view.mjs +64 -1
- package/dist/esm/transactions/authenticator/account.mjs +74 -1
- package/dist/esm/transactions/authenticator/index.mjs +86 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +72 -1
- package/dist/esm/transactions/index.mjs +277 -1
- package/dist/esm/transactions/instances/chainId.mjs +11 -1
- package/dist/esm/transactions/instances/identifier.mjs +11 -1
- package/dist/esm/transactions/instances/index.mjs +119 -1
- package/dist/esm/transactions/instances/moduleId.mjs +62 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +62 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +68 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +21 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +62 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +62 -1
- package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +94 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +62 -1
- package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
- package/dist/esm/transactions/management/index.mjs +68 -1
- package/dist/esm/transactions/management/transactionWorker.mjs +66 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +100 -1
- package/dist/esm/transactions/transactionBuilder/index.mjs +148 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +76 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +68 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +84 -1
- package/dist/esm/transactions/typeTag/index.mjs +98 -1
- package/dist/esm/transactions/typeTag/parser.mjs +66 -1
- package/dist/esm/transactions/types.mjs +1 -1
- package/dist/esm/types/abstraction.mjs +7 -1
- package/dist/esm/types/generated/queries.mjs +65 -1
- package/dist/esm/types/generated/types.mjs +758 -1
- package/dist/esm/types/generated/types.mjs.map +1 -1
- package/dist/esm/types/index.mjs +83 -1
- package/dist/esm/types/indexer.d.mts +1 -1
- package/dist/esm/types/indexer.mjs +1 -1
- package/dist/esm/types/types.mjs +81 -1
- package/dist/esm/utils/apiEndpoints.mjs +21 -1
- package/dist/esm/utils/const.mjs +25 -1
- package/dist/esm/utils/helpers.mjs +42 -1
- package/dist/esm/utils/index.mjs +93 -1
- package/dist/esm/utils/memoize.mjs +9 -1
- package/dist/esm/utils/normalizeBundle.mjs +20 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +7 -1
- package/package.json +1 -1
- package/src/api/aptos.ts +10 -9
- package/src/api/index.ts +1 -0
- package/src/api/manager.ts +872 -0
- package/src/api/transaction.ts +59 -36
- package/src/core/crypto/utils.ts +38 -1
- package/src/internal/account.ts +36 -83
- package/src/internal/ans.ts +19 -8
- package/src/internal/move/jwks/build/jwk/BuildInfo.yaml +56 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
- package/src/internal/move/jwks/build/jwk/bytecode_scripts/main.mv +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/source_maps/main.mvsm +0 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/account.move +1533 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator.move +48 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator_factory.move +66 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator_v2.move +280 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_account.move +443 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_governance.move +1387 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/block.move +394 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/chain_id.move +41 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/chain_status.move +48 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/code.move +367 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/coin.move +2214 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/config_buffer.move +101 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/consensus_config.move +77 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/create_signer.move +21 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/dkg.move +121 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/event.move +92 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/execution_config.move +66 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/function_info.move +100 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/fungible_asset.move +1566 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/genesis.move +550 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/guid.move +68 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/jwks.move +817 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/keyless_account.move +312 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/managed_coin.move +205 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/multisig_account.move +2477 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/object.move +1073 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/optional_aggregator.move +295 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness.move +574 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_config.move +153 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration.move +237 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/resource_account.move +267 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/stake.move +3286 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_config.move +686 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_contract.move +1618 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/state_storage.move +90 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/storage_gas.move +622 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/system_addresses.move +82 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/timestamp.move +88 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_context.move +262 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_fee.move +457 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_validation.move +501 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/util.move +16 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/version.move +115 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/vesting.move +2183 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/voting.move +1279 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/any.move +57 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/big_vector.move +469 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bls12381.move +985 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/capability.move +193 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/comparator.move +173 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/debug.move +278 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ed25519.move +262 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math128.move +381 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math64.move +336 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/simple_map.move +319 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/smart_table.move +769 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/string_utils.move +148 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/table.move +152 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/type_info.move +351 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/acl.move +46 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/bcs.move +27 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/error.move +88 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/features.move +780 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/hash.move +8 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/option.move +356 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/signer.move +21 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/string.move +93 -0
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/vector.move +669 -0
- package/src/internal/move/jwks/build/jwk/sources/main.move +20 -0
- package/src/version.ts +1 -1
- package/dist/common/chunk-6MMUUJHX.js +0 -4
- package/dist/common/chunk-6MMUUJHX.js.map +0 -1
- package/dist/esm/api/event.d.mts +0 -193
- package/dist/esm/api/event.mjs +0 -2
- package/dist/esm/chunk-2XQKGWHQ.mjs +0 -2
- package/dist/esm/chunk-35DKMW7Q.mjs +0 -2
- package/dist/esm/chunk-4RXKALLC.mjs +0 -2
- package/dist/esm/chunk-56CNRT2K.mjs +0 -2
- package/dist/esm/chunk-6WDVDEQZ.mjs +0 -7
- package/dist/esm/chunk-7DQDJ2SA.mjs +0 -2
- package/dist/esm/chunk-A5L76YP7.mjs +0 -2
- package/dist/esm/chunk-B563XRSZ.mjs +0 -2
- package/dist/esm/chunk-C3Q23D22.mjs +0 -2
- package/dist/esm/chunk-CFQFFP6N.mjs +0 -2
- package/dist/esm/chunk-CFQFFP6N.mjs.map +0 -1
- package/dist/esm/chunk-CO67Y6YE.mjs +0 -2
- package/dist/esm/chunk-CO67Y6YE.mjs.map +0 -1
- package/dist/esm/chunk-CW35YAMN.mjs +0 -2
- package/dist/esm/chunk-DAGUHPTV.mjs +0 -2
- package/dist/esm/chunk-DPW6ELCQ.mjs +0 -2
- package/dist/esm/chunk-DPW6ELCQ.mjs.map +0 -1
- package/dist/esm/chunk-EBMEXURY.mjs +0 -2
- package/dist/esm/chunk-FGFLPH5K.mjs +0 -2
- package/dist/esm/chunk-FLZPUYXQ.mjs +0 -2
- package/dist/esm/chunk-GMEBV7NZ.mjs +0 -2
- package/dist/esm/chunk-GOXRBEIJ.mjs +0 -2
- package/dist/esm/chunk-GXDOOLCG.mjs +0 -6
- package/dist/esm/chunk-GXDOOLCG.mjs.map +0 -1
- package/dist/esm/chunk-HNBVYE3N.mjs +0 -2
- package/dist/esm/chunk-IF4UU2MT.mjs +0 -2
- package/dist/esm/chunk-IJE2LVZG.mjs +0 -2
- package/dist/esm/chunk-JCFTAG5Z.mjs +0 -2
- package/dist/esm/chunk-JEEUU42Q.mjs +0 -2
- package/dist/esm/chunk-KDMSOCZY.mjs +0 -2
- package/dist/esm/chunk-KJH4KKG6.mjs +0 -2
- package/dist/esm/chunk-KJW3XYRT.mjs +0 -2
- package/dist/esm/chunk-MGMCLJQC.mjs +0 -2
- package/dist/esm/chunk-MT2RJ7H3.mjs +0 -2
- package/dist/esm/chunk-N6YTF76Q.mjs +0 -2
- package/dist/esm/chunk-NIXUOEWL.mjs +0 -2
- package/dist/esm/chunk-ORMOQWWH.mjs +0 -2
- package/dist/esm/chunk-Q4W3WJ2U.mjs +0 -2
- package/dist/esm/chunk-QREVMGQZ.mjs +0 -2
- package/dist/esm/chunk-QVLV73OB.mjs +0 -2
- package/dist/esm/chunk-RGKRCZ36.mjs +0 -4
- package/dist/esm/chunk-ROT6S6BM.mjs +0 -2
- package/dist/esm/chunk-RQX6JOEN.mjs +0 -2
- package/dist/esm/chunk-STY74NUA.mjs +0 -2
- package/dist/esm/chunk-TOBQ5UE6.mjs +0 -2
- package/dist/esm/chunk-TZRRQMCT.mjs +0 -2
- package/dist/esm/chunk-UQWF24SS.mjs +0 -2
- package/dist/esm/chunk-UQWF24SS.mjs.map +0 -1
- package/dist/esm/chunk-WCMW2L3P.mjs +0 -2
- package/dist/esm/chunk-WSR5EBJM.mjs +0 -2
- package/dist/esm/chunk-XJJVJOX5.mjs +0 -2
- package/dist/esm/chunk-XKUIMGKU.mjs +0 -2
- package/dist/esm/chunk-XZQAMU5W.mjs +0 -2
- package/dist/esm/chunk-Y7ZQTLH4.mjs +0 -2
- package/dist/esm/chunk-YOZBVVKL.mjs +0 -2
- package/dist/esm/chunk-ZIB2TU7B.mjs +0 -2
- package/dist/esm/internal/event.d.mts +0 -82
- package/dist/esm/internal/event.mjs +0 -2
- package/dist/esm/internal/event.mjs.map +0 -1
- package/src/api/event.ts +0 -230
- package/src/internal/event.ts +0 -171
- /package/dist/esm/api/{event.mjs.map → manager.mjs.map} +0 -0
- /package/dist/esm/{chunk-KDMSOCZY.mjs.map → chunk-SAWN7RJP.mjs.map} +0 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Hex
|
|
3
|
+
} from "./chunk-GHQTJGG6.mjs";
|
|
4
|
+
import {
|
|
5
|
+
MAX_U128_BIG_INT,
|
|
6
|
+
MAX_U16_NUMBER,
|
|
7
|
+
MAX_U256_BIG_INT,
|
|
8
|
+
MAX_U32_NUMBER,
|
|
9
|
+
MAX_U64_BIG_INT,
|
|
10
|
+
MAX_U8_NUMBER
|
|
11
|
+
} from "./chunk-SBB4YEPT.mjs";
|
|
12
|
+
import {
|
|
13
|
+
__decorateClass
|
|
14
|
+
} from "./chunk-SAWN7RJP.mjs";
|
|
15
|
+
|
|
16
|
+
// src/bcs/serializer.ts
|
|
17
|
+
var Serializable = class {
|
|
18
|
+
/**
|
|
19
|
+
* Serializes a `Serializable` value to its BCS representation.
|
|
20
|
+
* This function is the TypeScript SDK equivalent of `bcs::to_bytes` in Move.
|
|
21
|
+
* @returns the BCS representation of the Serializable instance as a byte buffer.
|
|
22
|
+
* @group Implementation
|
|
23
|
+
* @category BCS
|
|
24
|
+
*/
|
|
25
|
+
bcsToBytes() {
|
|
26
|
+
const serializer = new Serializer();
|
|
27
|
+
this.serialize(serializer);
|
|
28
|
+
return serializer.toUint8Array();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Converts the BCS-serialized bytes of a value into a Hex instance.
|
|
32
|
+
* This function provides a Hex representation of the BCS-serialized data for easier handling and manipulation.
|
|
33
|
+
* @returns A Hex instance with the BCS-serialized bytes loaded into its underlying Uint8Array.
|
|
34
|
+
* @group Implementation
|
|
35
|
+
* @category BCS
|
|
36
|
+
*/
|
|
37
|
+
bcsToHex() {
|
|
38
|
+
const bcsBytes = this.bcsToBytes();
|
|
39
|
+
return Hex.fromHexInput(bcsBytes);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns the hex string representation of the `Serializable` value without the 0x prefix.
|
|
43
|
+
* @returns the hex format as a string without `0x` prefix.
|
|
44
|
+
*/
|
|
45
|
+
toStringWithoutPrefix() {
|
|
46
|
+
return this.bcsToHex().toStringWithoutPrefix();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns the hex string representation of the `Serializable` value with the 0x prefix.
|
|
50
|
+
* @returns the hex formatas a string prefixed by `0x`.
|
|
51
|
+
*/
|
|
52
|
+
toString() {
|
|
53
|
+
return `0x${this.toStringWithoutPrefix()}`;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
var Serializer = class {
|
|
57
|
+
/**
|
|
58
|
+
* Constructs a serializer with a buffer of size `length` bytes, 64 bytes by default.
|
|
59
|
+
* The `length` must be greater than 0.
|
|
60
|
+
*
|
|
61
|
+
* @param length - The size of the buffer in bytes.
|
|
62
|
+
* @group Implementation
|
|
63
|
+
* @category BCS
|
|
64
|
+
*/
|
|
65
|
+
constructor(length = 64) {
|
|
66
|
+
if (length <= 0) {
|
|
67
|
+
throw new Error("Length needs to be greater than 0");
|
|
68
|
+
}
|
|
69
|
+
this.buffer = new ArrayBuffer(length);
|
|
70
|
+
this.offset = 0;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Ensures that the internal buffer can accommodate the specified number of bytes.
|
|
74
|
+
* This function dynamically resizes the buffer if the current size is insufficient.
|
|
75
|
+
*
|
|
76
|
+
* @param bytes - The number of bytes to ensure the buffer can handle.
|
|
77
|
+
* @group Implementation
|
|
78
|
+
* @category BCS
|
|
79
|
+
*/
|
|
80
|
+
ensureBufferWillHandleSize(bytes) {
|
|
81
|
+
while (this.buffer.byteLength < this.offset + bytes) {
|
|
82
|
+
const newBuffer = new ArrayBuffer(this.buffer.byteLength * 2);
|
|
83
|
+
new Uint8Array(newBuffer).set(new Uint8Array(this.buffer));
|
|
84
|
+
this.buffer = newBuffer;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Appends the specified values to the buffer, ensuring that the buffer can accommodate the new data.
|
|
89
|
+
*
|
|
90
|
+
* @param {Uint8Array} values - The values to be appended to the buffer.
|
|
91
|
+
* @group Implementation
|
|
92
|
+
* @category BCS
|
|
93
|
+
*/
|
|
94
|
+
appendToBuffer(values) {
|
|
95
|
+
this.ensureBufferWillHandleSize(values.length);
|
|
96
|
+
new Uint8Array(this.buffer, this.offset).set(values);
|
|
97
|
+
this.offset += values.length;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Serializes a value into the buffer using the provided function, ensuring the buffer can accommodate the size.
|
|
101
|
+
*
|
|
102
|
+
* @param fn - The function to serialize the value, which takes a byte offset, the value to serialize, and an optional little-endian flag.
|
|
103
|
+
* @param fn.byteOffset - The byte offset at which to write the value.
|
|
104
|
+
* @param fn.value - The numeric value to serialize into the buffer.
|
|
105
|
+
* @param fn.littleEndian - Optional flag indicating whether to use little-endian byte order (defaults to true).
|
|
106
|
+
* @group Implementation
|
|
107
|
+
* @category BCS
|
|
108
|
+
*/
|
|
109
|
+
// TODO: JSDoc bytesLength and value
|
|
110
|
+
serializeWithFunction(fn, bytesLength, value) {
|
|
111
|
+
this.ensureBufferWillHandleSize(bytesLength);
|
|
112
|
+
const dv = new DataView(this.buffer, this.offset);
|
|
113
|
+
fn.apply(dv, [0, value, true]);
|
|
114
|
+
this.offset += bytesLength;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Serializes a string. UTF8 string is supported.
|
|
118
|
+
* The number of bytes in the string content is serialized first, as a uleb128-encoded u32 integer.
|
|
119
|
+
* Then the string content is serialized as UTF8 encoded bytes.
|
|
120
|
+
*
|
|
121
|
+
* BCS layout for "string": string_length | string_content
|
|
122
|
+
* where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.
|
|
123
|
+
*
|
|
124
|
+
* @param value - The string to serialize.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const serializer = new Serializer();
|
|
129
|
+
* serializer.serializeStr("1234abcd");
|
|
130
|
+
* assert(serializer.toUint8Array() === new Uint8Array([8, 49, 50, 51, 52, 97, 98, 99, 100]));
|
|
131
|
+
* ```
|
|
132
|
+
* @group Implementation
|
|
133
|
+
* @category BCS
|
|
134
|
+
*/
|
|
135
|
+
serializeStr(value) {
|
|
136
|
+
const textEncoder = new TextEncoder();
|
|
137
|
+
this.serializeBytes(textEncoder.encode(value));
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Serializes an array of bytes.
|
|
141
|
+
*
|
|
142
|
+
* This function encodes the length of the byte array as a u32 integer in uleb128 format, followed by the byte array itself.
|
|
143
|
+
* BCS layout for "bytes": bytes_length | bytes
|
|
144
|
+
* where bytes_length is a u32 integer encoded as a uleb128 integer, equal to the length of the bytes array.
|
|
145
|
+
* @param value - The byte array to serialize.
|
|
146
|
+
* @group Implementation
|
|
147
|
+
* @category BCS
|
|
148
|
+
*/
|
|
149
|
+
serializeBytes(value) {
|
|
150
|
+
this.serializeU32AsUleb128(value.length);
|
|
151
|
+
this.appendToBuffer(value);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Serializes an array of bytes with a known length, allowing for efficient deserialization without needing to serialize the
|
|
155
|
+
* length itself.
|
|
156
|
+
* When deserializing, the number of bytes to deserialize needs to be passed in.
|
|
157
|
+
|
|
158
|
+
* @param value - The Uint8Array to be serialized.
|
|
159
|
+
* @group Implementation
|
|
160
|
+
* @category BCS
|
|
161
|
+
*/
|
|
162
|
+
serializeFixedBytes(value) {
|
|
163
|
+
this.appendToBuffer(value);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Serializes a boolean value into a byte representation.
|
|
167
|
+
*
|
|
168
|
+
* The BCS layout for a boolean uses one byte, where "0x01" represents true and "0x00" represents false.
|
|
169
|
+
*
|
|
170
|
+
* @param value - The boolean value to serialize.
|
|
171
|
+
* @group Implementation
|
|
172
|
+
* @category BCS
|
|
173
|
+
*/
|
|
174
|
+
serializeBool(value) {
|
|
175
|
+
ensureBoolean(value);
|
|
176
|
+
const byteValue = value ? 1 : 0;
|
|
177
|
+
this.appendToBuffer(new Uint8Array([byteValue]));
|
|
178
|
+
}
|
|
179
|
+
serializeU8(value) {
|
|
180
|
+
this.appendToBuffer(new Uint8Array([value]));
|
|
181
|
+
}
|
|
182
|
+
serializeU16(value) {
|
|
183
|
+
this.serializeWithFunction(DataView.prototype.setUint16, 2, value);
|
|
184
|
+
}
|
|
185
|
+
serializeU32(value) {
|
|
186
|
+
this.serializeWithFunction(DataView.prototype.setUint32, 4, value);
|
|
187
|
+
}
|
|
188
|
+
serializeU64(value) {
|
|
189
|
+
const low = BigInt(value) & BigInt(MAX_U32_NUMBER);
|
|
190
|
+
const high = BigInt(value) >> BigInt(32);
|
|
191
|
+
this.serializeU32(Number(low));
|
|
192
|
+
this.serializeU32(Number(high));
|
|
193
|
+
}
|
|
194
|
+
serializeU128(value) {
|
|
195
|
+
const low = BigInt(value) & MAX_U64_BIG_INT;
|
|
196
|
+
const high = BigInt(value) >> BigInt(64);
|
|
197
|
+
this.serializeU64(low);
|
|
198
|
+
this.serializeU64(high);
|
|
199
|
+
}
|
|
200
|
+
serializeU256(value) {
|
|
201
|
+
const low = BigInt(value) & MAX_U128_BIG_INT;
|
|
202
|
+
const high = BigInt(value) >> BigInt(128);
|
|
203
|
+
this.serializeU128(low);
|
|
204
|
+
this.serializeU128(high);
|
|
205
|
+
}
|
|
206
|
+
serializeU32AsUleb128(val) {
|
|
207
|
+
let value = val;
|
|
208
|
+
const valueArray = [];
|
|
209
|
+
while (value >>> 7 !== 0) {
|
|
210
|
+
valueArray.push(value & 127 | 128);
|
|
211
|
+
value >>>= 7;
|
|
212
|
+
}
|
|
213
|
+
valueArray.push(value);
|
|
214
|
+
this.appendToBuffer(new Uint8Array(valueArray));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Returns the buffered bytes as a Uint8Array.
|
|
218
|
+
*
|
|
219
|
+
* This function allows you to retrieve the byte representation of the buffer up to the current offset.
|
|
220
|
+
*
|
|
221
|
+
* @returns Uint8Array - The byte array representation of the buffer.
|
|
222
|
+
* @group Implementation
|
|
223
|
+
* @category BCS
|
|
224
|
+
*/
|
|
225
|
+
toUint8Array() {
|
|
226
|
+
return new Uint8Array(this.buffer).slice(0, this.offset);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Serializes a `Serializable` value, facilitating composable serialization.
|
|
230
|
+
*
|
|
231
|
+
* @param value The Serializable value to serialize.
|
|
232
|
+
*
|
|
233
|
+
* @returns the serializer instance
|
|
234
|
+
* @group Implementation
|
|
235
|
+
* @category BCS
|
|
236
|
+
*/
|
|
237
|
+
serialize(value) {
|
|
238
|
+
value.serialize(this);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Serializes an array of BCS Serializable values to a serializer instance.
|
|
242
|
+
* The bytes are added to the serializer instance's byte buffer.
|
|
243
|
+
*
|
|
244
|
+
* @param values The array of BCS Serializable values
|
|
245
|
+
* @example
|
|
246
|
+
* const addresses = new Array<AccountAddress>(
|
|
247
|
+
* AccountAddress.from("0x1"),
|
|
248
|
+
* AccountAddress.from("0x2"),
|
|
249
|
+
* AccountAddress.from("0xa"),
|
|
250
|
+
* AccountAddress.from("0xb"),
|
|
251
|
+
* );
|
|
252
|
+
* const serializer = new Serializer();
|
|
253
|
+
* serializer.serializeVector(addresses);
|
|
254
|
+
* const serializedBytes = serializer.toUint8Array();
|
|
255
|
+
* // serializedBytes is now the BCS-serialized bytes
|
|
256
|
+
* // The equivalent value in Move would be:
|
|
257
|
+
* // `bcs::to_bytes(&vector<address> [@0x1, @0x2, @0xa, @0xb])`;
|
|
258
|
+
* @group Implementation
|
|
259
|
+
* @category BCS
|
|
260
|
+
*/
|
|
261
|
+
serializeVector(values) {
|
|
262
|
+
this.serializeU32AsUleb128(values.length);
|
|
263
|
+
values.forEach((item) => {
|
|
264
|
+
item.serialize(this);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Serializes an optional value which can be a Serializable, string, or Uint8Array.
|
|
269
|
+
* For strings and Uint8Arrays, it uses the appropriate serialization method.
|
|
270
|
+
*
|
|
271
|
+
* @param value The value to serialize (Serializable, string, Uint8Array, or undefined)
|
|
272
|
+
* @param len Optional fixed length for Uint8Array serialization. If provided, uses serializeFixedBytes instead of serializeBytes
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* const serializer = new Serializer();
|
|
277
|
+
* serializer.serializeOption("hello"); // Serializes optional string
|
|
278
|
+
* serializer.serializeOption(new Uint8Array([1, 2, 3])); // Serializes optional bytes
|
|
279
|
+
* serializer.serializeOption(new Uint8Array([1, 2, 3]), 3); // Serializes optional fixed-length bytes
|
|
280
|
+
* serializer.serializeOption(new AccountAddress(...)); // Serializes optional Serializable
|
|
281
|
+
* serializer.serializeOption(undefined); // Serializes none case
|
|
282
|
+
* ```
|
|
283
|
+
* @group Implementation
|
|
284
|
+
* @category BCS
|
|
285
|
+
*/
|
|
286
|
+
serializeOption(value, len) {
|
|
287
|
+
const hasValue = value !== void 0;
|
|
288
|
+
this.serializeBool(hasValue);
|
|
289
|
+
if (hasValue) {
|
|
290
|
+
if (typeof value === "string") {
|
|
291
|
+
this.serializeStr(value);
|
|
292
|
+
} else if (value instanceof Uint8Array) {
|
|
293
|
+
if (len !== void 0) {
|
|
294
|
+
this.serializeFixedBytes(value);
|
|
295
|
+
} else {
|
|
296
|
+
this.serializeBytes(value);
|
|
297
|
+
}
|
|
298
|
+
} else {
|
|
299
|
+
value.serialize(this);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* @deprecated use `serializeOption` instead.
|
|
305
|
+
* Serializes an optional string, supporting UTF8 encoding.
|
|
306
|
+
* The function encodes the existence of the string first, followed by the length and content if it exists.
|
|
307
|
+
*
|
|
308
|
+
* BCS layout for optional "string": 1 | string_length | string_content
|
|
309
|
+
* where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.
|
|
310
|
+
* BCS layout for undefined: 0
|
|
311
|
+
*
|
|
312
|
+
* @param value - The optional string to serialize. If undefined, it will serialize as 0.
|
|
313
|
+
* @group Implementation
|
|
314
|
+
* @category BCS
|
|
315
|
+
*/
|
|
316
|
+
serializeOptionStr(value) {
|
|
317
|
+
if (value === void 0) {
|
|
318
|
+
this.serializeU32AsUleb128(0);
|
|
319
|
+
} else {
|
|
320
|
+
this.serializeU32AsUleb128(1);
|
|
321
|
+
this.serializeStr(value);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
__decorateClass([
|
|
326
|
+
checkNumberRange(0, MAX_U8_NUMBER)
|
|
327
|
+
], Serializer.prototype, "serializeU8", 1);
|
|
328
|
+
__decorateClass([
|
|
329
|
+
checkNumberRange(0, MAX_U16_NUMBER)
|
|
330
|
+
], Serializer.prototype, "serializeU16", 1);
|
|
331
|
+
__decorateClass([
|
|
332
|
+
checkNumberRange(0, MAX_U32_NUMBER)
|
|
333
|
+
], Serializer.prototype, "serializeU32", 1);
|
|
334
|
+
__decorateClass([
|
|
335
|
+
checkNumberRange(BigInt(0), MAX_U64_BIG_INT)
|
|
336
|
+
], Serializer.prototype, "serializeU64", 1);
|
|
337
|
+
__decorateClass([
|
|
338
|
+
checkNumberRange(BigInt(0), MAX_U128_BIG_INT)
|
|
339
|
+
], Serializer.prototype, "serializeU128", 1);
|
|
340
|
+
__decorateClass([
|
|
341
|
+
checkNumberRange(BigInt(0), MAX_U256_BIG_INT)
|
|
342
|
+
], Serializer.prototype, "serializeU256", 1);
|
|
343
|
+
__decorateClass([
|
|
344
|
+
checkNumberRange(0, MAX_U32_NUMBER)
|
|
345
|
+
], Serializer.prototype, "serializeU32AsUleb128", 1);
|
|
346
|
+
function ensureBoolean(value) {
|
|
347
|
+
if (typeof value !== "boolean") {
|
|
348
|
+
throw new Error(`${value} is not a boolean value`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
var outOfRangeErrorMessage = (value, min, max) => `${value} is out of range: [${min}, ${max}]`;
|
|
352
|
+
function validateNumberInRange(value, minValue, maxValue) {
|
|
353
|
+
const valueBigInt = BigInt(value);
|
|
354
|
+
if (valueBigInt > BigInt(maxValue) || valueBigInt < BigInt(minValue)) {
|
|
355
|
+
throw new Error(outOfRangeErrorMessage(value, minValue, maxValue));
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
function checkNumberRange(minValue, maxValue) {
|
|
359
|
+
return (target, propertyKey, descriptor) => {
|
|
360
|
+
const childFunction = descriptor.value;
|
|
361
|
+
descriptor.value = function deco(value) {
|
|
362
|
+
validateNumberInRange(value, minValue, maxValue);
|
|
363
|
+
return childFunction.apply(this, [value]);
|
|
364
|
+
};
|
|
365
|
+
return descriptor;
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
export {
|
|
370
|
+
Serializable,
|
|
371
|
+
Serializer,
|
|
372
|
+
ensureBoolean,
|
|
373
|
+
outOfRangeErrorMessage,
|
|
374
|
+
validateNumberInRange
|
|
375
|
+
};
|
|
376
|
+
//# sourceMappingURL=chunk-FJJ3KCPC.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bcs/serializer.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-bitwise */\nimport {\n MAX_U128_BIG_INT,\n MAX_U16_NUMBER,\n MAX_U32_NUMBER,\n MAX_U64_BIG_INT,\n MAX_U8_NUMBER,\n MAX_U256_BIG_INT,\n} from \"./consts\";\nimport { Hex } from \"../core/hex\";\nimport { AnyNumber, Uint16, Uint32, Uint8 } from \"../types\";\n\n/**\n * This class serves as a base class for all serializable types. It facilitates\n * composable serialization of complex types and enables the serialization of\n * instances to their BCS (Binary Canonical Serialization) representation.\n * @group Implementation\n * @category BCS\n */\nexport abstract class Serializable {\n abstract serialize(serializer: Serializer): void;\n\n /**\n * Serializes a `Serializable` value to its BCS representation.\n * This function is the TypeScript SDK equivalent of `bcs::to_bytes` in Move.\n * @returns the BCS representation of the Serializable instance as a byte buffer.\n * @group Implementation\n * @category BCS\n */\n bcsToBytes(): Uint8Array {\n const serializer = new Serializer();\n this.serialize(serializer);\n return serializer.toUint8Array();\n }\n\n /**\n * Converts the BCS-serialized bytes of a value into a Hex instance.\n * This function provides a Hex representation of the BCS-serialized data for easier handling and manipulation.\n * @returns A Hex instance with the BCS-serialized bytes loaded into its underlying Uint8Array.\n * @group Implementation\n * @category BCS\n */\n bcsToHex(): Hex {\n const bcsBytes = this.bcsToBytes();\n return Hex.fromHexInput(bcsBytes);\n }\n\n /**\n * Returns the hex string representation of the `Serializable` value without the 0x prefix.\n * @returns the hex format as a string without `0x` prefix.\n */\n toStringWithoutPrefix(): string {\n return this.bcsToHex().toStringWithoutPrefix();\n }\n\n /**\n * Returns the hex string representation of the `Serializable` value with the 0x prefix.\n * @returns the hex formatas a string prefixed by `0x`.\n */\n toString(): string {\n return `0x${this.toStringWithoutPrefix()}`;\n }\n}\n\n/**\n * A class for serializing various data types into a binary format.\n * It provides methods to serialize strings, bytes, numbers, and other serializable objects\n * using the Binary Coded Serialization (BCS) layout. The serialized data can be retrieved as a\n * Uint8Array.\n * @group Implementation\n * @category BCS\n */\nexport class Serializer {\n private buffer: ArrayBuffer;\n\n private offset: number;\n\n /**\n * Constructs a serializer with a buffer of size `length` bytes, 64 bytes by default.\n * The `length` must be greater than 0.\n *\n * @param length - The size of the buffer in bytes.\n * @group Implementation\n * @category BCS\n */\n constructor(length: number = 64) {\n if (length <= 0) {\n throw new Error(\"Length needs to be greater than 0\");\n }\n this.buffer = new ArrayBuffer(length);\n this.offset = 0;\n }\n\n /**\n * Ensures that the internal buffer can accommodate the specified number of bytes.\n * This function dynamically resizes the buffer if the current size is insufficient.\n *\n * @param bytes - The number of bytes to ensure the buffer can handle.\n * @group Implementation\n * @category BCS\n */\n private ensureBufferWillHandleSize(bytes: number) {\n while (this.buffer.byteLength < this.offset + bytes) {\n const newBuffer = new ArrayBuffer(this.buffer.byteLength * 2);\n new Uint8Array(newBuffer).set(new Uint8Array(this.buffer));\n this.buffer = newBuffer;\n }\n }\n\n /**\n * Appends the specified values to the buffer, ensuring that the buffer can accommodate the new data.\n *\n * @param {Uint8Array} values - The values to be appended to the buffer.\n * @group Implementation\n * @category BCS\n */\n protected appendToBuffer(values: Uint8Array) {\n this.ensureBufferWillHandleSize(values.length);\n new Uint8Array(this.buffer, this.offset).set(values);\n this.offset += values.length;\n }\n\n /**\n * Serializes a value into the buffer using the provided function, ensuring the buffer can accommodate the size.\n *\n * @param fn - The function to serialize the value, which takes a byte offset, the value to serialize, and an optional little-endian flag.\n * @param fn.byteOffset - The byte offset at which to write the value.\n * @param fn.value - The numeric value to serialize into the buffer.\n * @param fn.littleEndian - Optional flag indicating whether to use little-endian byte order (defaults to true).\n * @group Implementation\n * @category BCS\n */\n // TODO: JSDoc bytesLength and value\n private serializeWithFunction(\n fn: (byteOffset: number, value: number, littleEndian?: boolean) => void,\n bytesLength: number,\n value: number,\n ) {\n this.ensureBufferWillHandleSize(bytesLength);\n const dv = new DataView(this.buffer, this.offset);\n fn.apply(dv, [0, value, true]);\n this.offset += bytesLength;\n }\n\n /**\n * Serializes a string. UTF8 string is supported.\n * The number of bytes in the string content is serialized first, as a uleb128-encoded u32 integer.\n * Then the string content is serialized as UTF8 encoded bytes.\n *\n * BCS layout for \"string\": string_length | string_content\n * where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.\n *\n * @param value - The string to serialize.\n *\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeStr(\"1234abcd\");\n * assert(serializer.toUint8Array() === new Uint8Array([8, 49, 50, 51, 52, 97, 98, 99, 100]));\n * ```\n * @group Implementation\n * @category BCS\n */\n serializeStr(value: string) {\n const textEncoder = new TextEncoder();\n this.serializeBytes(textEncoder.encode(value));\n }\n\n /**\n * Serializes an array of bytes.\n *\n * This function encodes the length of the byte array as a u32 integer in uleb128 format, followed by the byte array itself.\n * BCS layout for \"bytes\": bytes_length | bytes\n * where bytes_length is a u32 integer encoded as a uleb128 integer, equal to the length of the bytes array.\n * @param value - The byte array to serialize.\n * @group Implementation\n * @category BCS\n */\n serializeBytes(value: Uint8Array) {\n this.serializeU32AsUleb128(value.length);\n this.appendToBuffer(value);\n }\n\n /**\n * Serializes an array of bytes with a known length, allowing for efficient deserialization without needing to serialize the\n * length itself.\n * When deserializing, the number of bytes to deserialize needs to be passed in.\n\n * @param value - The Uint8Array to be serialized.\n * @group Implementation\n * @category BCS\n */\n serializeFixedBytes(value: Uint8Array) {\n this.appendToBuffer(value);\n }\n\n /**\n * Serializes a boolean value into a byte representation.\n *\n * The BCS layout for a boolean uses one byte, where \"0x01\" represents true and \"0x00\" represents false.\n *\n * @param value - The boolean value to serialize.\n * @group Implementation\n * @category BCS\n */\n serializeBool(value: boolean) {\n /**\n * Ensures that the provided value is a boolean.\n * This function throws an error if the value is not a boolean, helping to enforce type safety in your code.\n *\n * @param value - The value to be checked for boolean type.\n * @throws {Error} Throws an error if the value is not a boolean.\n * @group Implementation\n * @category BCS\n */\n ensureBoolean(value);\n const byteValue = value ? 1 : 0;\n this.appendToBuffer(new Uint8Array([byteValue]));\n }\n\n /**\n * Serializes a Uint8 value and appends it to the buffer.\n * BCS layout for \"uint8\": One byte. Binary format in little-endian representation.\n *\n * @param value - The Uint8 value to serialize.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U8_NUMBER)\n serializeU8(value: Uint8) {\n this.appendToBuffer(new Uint8Array([value]));\n }\n\n /**\n * Serializes a uint16 number.\n *\n * @group Implementation\n * @category BCS\n\n */\n\n /**\n * Serializes a 16-bit unsigned integer value into a binary format.\n * BCS layout for \"uint16\": Two bytes. Binary format in little-endian representation.\n *\n * @param value - The 16-bit unsigned integer value to serialize.\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeU16(4660);\n * assert(serializer.toUint8Array() === new Uint8Array([0x34, 0x12]));\n * ```\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U16_NUMBER)\n serializeU16(value: Uint16) {\n this.serializeWithFunction(DataView.prototype.setUint16, 2, value);\n }\n\n /**\n * Serializes a 32-bit unsigned integer value into a binary format.\n * This function is useful for encoding data that needs to be stored or transmitted in a compact form.\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeU32(305419896);\n * assert(serializer.toUint8Array() === new Uint8Array([0x78, 0x56, 0x34, 0x12]));\n * ```\n * @param value - The 32-bit unsigned integer value to serialize.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U32_NUMBER)\n serializeU32(value: Uint32) {\n this.serializeWithFunction(DataView.prototype.setUint32, 4, value);\n }\n\n /**\n * Serializes a 64-bit unsigned integer into a format suitable for storage or transmission.\n * This function breaks down the value into two 32-bit components and writes them in little-endian order.\n *\n * @param value - The 64-bit unsigned integer to serialize, represented as a number.\n * @example\n * ```ts\n * const serializer = new Serializer();\n * serializer.serializeU64(1311768467750121216);\n * assert(serializer.toUint8Array() === new Uint8Array([0x00, 0xEF, 0xCD, 0xAB, 0x78, 0x56, 0x34, 0x12]));\n * ```\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(BigInt(0), MAX_U64_BIG_INT)\n serializeU64(value: AnyNumber) {\n const low = BigInt(value) & BigInt(MAX_U32_NUMBER);\n const high = BigInt(value) >> BigInt(32);\n\n // write little endian number\n this.serializeU32(Number(low));\n this.serializeU32(Number(high));\n }\n\n /**\n * Serializes a U128 value into a format suitable for storage or transmission.\n *\n * @param value - The U128 value to serialize, represented as a number.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(BigInt(0), MAX_U128_BIG_INT)\n serializeU128(value: AnyNumber) {\n const low = BigInt(value) & MAX_U64_BIG_INT;\n const high = BigInt(value) >> BigInt(64);\n\n // write little endian number\n this.serializeU64(low);\n this.serializeU64(high);\n }\n\n /**\n * Serializes a U256 value into a byte representation.\n * This function is essential for encoding large numbers in a compact format suitable for transmission or storage.\n *\n * @param value - The U256 value to serialize, represented as an AnyNumber.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(BigInt(0), MAX_U256_BIG_INT)\n serializeU256(value: AnyNumber) {\n const low = BigInt(value) & MAX_U128_BIG_INT;\n const high = BigInt(value) >> BigInt(128);\n\n // write little endian number\n this.serializeU128(low);\n this.serializeU128(high);\n }\n\n /**\n * Serializes a 32-bit unsigned integer as a variable-length ULEB128 encoded byte array.\n * BCS uses uleb128 encoding in two cases: (1) lengths of variable-length sequences and (2) tags of enum values\n *\n * @param val - The 32-bit unsigned integer value to be serialized.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U32_NUMBER)\n serializeU32AsUleb128(val: Uint32) {\n let value = val;\n const valueArray = [];\n while (value >>> 7 !== 0) {\n valueArray.push((value & 0x7f) | 0x80);\n value >>>= 7;\n }\n valueArray.push(value);\n this.appendToBuffer(new Uint8Array(valueArray));\n }\n\n /**\n * Returns the buffered bytes as a Uint8Array.\n *\n * This function allows you to retrieve the byte representation of the buffer up to the current offset.\n *\n * @returns Uint8Array - The byte array representation of the buffer.\n * @group Implementation\n * @category BCS\n */\n toUint8Array(): Uint8Array {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n }\n\n /**\n * Serializes a `Serializable` value, facilitating composable serialization.\n *\n * @param value The Serializable value to serialize.\n *\n * @returns the serializer instance\n * @group Implementation\n * @category BCS\n */\n serialize<T extends Serializable>(value: T): void {\n // NOTE: The `serialize` method called by `value` is defined in `value`'s\n // Serializable interface, not the one defined in this class.\n value.serialize(this);\n }\n\n /**\n * Serializes an array of BCS Serializable values to a serializer instance.\n * The bytes are added to the serializer instance's byte buffer.\n *\n * @param values The array of BCS Serializable values\n * @example\n * const addresses = new Array<AccountAddress>(\n * AccountAddress.from(\"0x1\"),\n * AccountAddress.from(\"0x2\"),\n * AccountAddress.from(\"0xa\"),\n * AccountAddress.from(\"0xb\"),\n * );\n * const serializer = new Serializer();\n * serializer.serializeVector(addresses);\n * const serializedBytes = serializer.toUint8Array();\n * // serializedBytes is now the BCS-serialized bytes\n * // The equivalent value in Move would be:\n * // `bcs::to_bytes(&vector<address> [@0x1, @0x2, @0xa, @0xb])`;\n * @group Implementation\n * @category BCS\n */\n serializeVector<T extends Serializable>(values: Array<T>): void {\n this.serializeU32AsUleb128(values.length);\n values.forEach((item) => {\n item.serialize(this);\n });\n }\n\n /**\n * Serializes an optional value which can be a Serializable, string, or Uint8Array.\n * For strings and Uint8Arrays, it uses the appropriate serialization method.\n *\n * @param value The value to serialize (Serializable, string, Uint8Array, or undefined)\n * @param len Optional fixed length for Uint8Array serialization. If provided, uses serializeFixedBytes instead of serializeBytes\n *\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeOption(\"hello\"); // Serializes optional string\n * serializer.serializeOption(new Uint8Array([1, 2, 3])); // Serializes optional bytes\n * serializer.serializeOption(new Uint8Array([1, 2, 3]), 3); // Serializes optional fixed-length bytes\n * serializer.serializeOption(new AccountAddress(...)); // Serializes optional Serializable\n * serializer.serializeOption(undefined); // Serializes none case\n * ```\n * @group Implementation\n * @category BCS\n */\n serializeOption<T extends Serializable | string | Uint8Array>(value?: T, len?: number): void {\n const hasValue = value !== undefined;\n this.serializeBool(hasValue);\n if (hasValue) {\n if (typeof value === \"string\") {\n this.serializeStr(value);\n } else if (value instanceof Uint8Array) {\n if (len !== undefined) {\n this.serializeFixedBytes(value);\n } else {\n this.serializeBytes(value);\n }\n } else {\n value.serialize(this);\n }\n }\n }\n\n /**\n * @deprecated use `serializeOption` instead.\n * Serializes an optional string, supporting UTF8 encoding.\n * The function encodes the existence of the string first, followed by the length and content if it exists.\n *\n * BCS layout for optional \"string\": 1 | string_length | string_content\n * where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.\n * BCS layout for undefined: 0\n *\n * @param value - The optional string to serialize. If undefined, it will serialize as 0.\n * @group Implementation\n * @category BCS\n */\n serializeOptionStr(value?: string): void {\n if (value === undefined) {\n this.serializeU32AsUleb128(0);\n } else {\n this.serializeU32AsUleb128(1);\n this.serializeStr(value);\n }\n }\n}\n\n/**\n * @group Implementation\n * @category BCS\n */\nexport function ensureBoolean(value: unknown): asserts value is boolean {\n if (typeof value !== \"boolean\") {\n throw new Error(`${value} is not a boolean value`);\n }\n}\n/**\n * @group Implementation\n * @category BCS\n */\nexport const outOfRangeErrorMessage = (value: AnyNumber, min: AnyNumber, max: AnyNumber) =>\n `${value} is out of range: [${min}, ${max}]`;\n\n/**\n * Validates that a given number is within a specified range.\n * This function throws an error if the value is outside the defined minimum and maximum bounds.\n *\n * @param value - The number to validate.\n * @param minValue - The minimum allowable value (inclusive).\n * @param maxValue - The maximum allowable value (inclusive).\n * @group Implementation\n * @category BCS\n */\nexport function validateNumberInRange<T extends AnyNumber>(value: T, minValue: T, maxValue: T) {\n const valueBigInt = BigInt(value);\n if (valueBigInt > BigInt(maxValue) || valueBigInt < BigInt(minValue)) {\n throw new Error(outOfRangeErrorMessage(value, minValue, maxValue));\n }\n}\n\n/**\n * A decorator that validates that the input argument for a function is within a specified range.\n * This ensures that the function is only called with valid input values, preventing potential errors.\n *\n * @param minValue - The input argument must be greater than or equal to this value.\n * @param maxValue - The input argument must be less than or equal to this value.\n * @group Implementation\n * @category BCS\n */\nfunction checkNumberRange<T extends AnyNumber>(minValue: T, maxValue: T) {\n return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const childFunction = descriptor.value;\n // eslint-disable-next-line no-param-reassign\n descriptor.value = function deco(value: AnyNumber) {\n validateNumberInRange(value, minValue, maxValue);\n return childFunction.apply(this, [value]);\n };\n\n return descriptor;\n };\n}\n"],"mappings":"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","names":["Serializable","serializer","Serializer","bcsBytes","Hex","length","bytes","newBuffer","values","fn","bytesLength","value","dv","textEncoder","ensureBoolean","byteValue","low","MAX_U32_NUMBER","high","MAX_U64_BIG_INT","MAX_U128_BIG_INT","val","valueArray","item","len","hasValue","__decorateClass","checkNumberRange","MAX_U8_NUMBER","MAX_U16_NUMBER","MAX_U256_BIG_INT","outOfRangeErrorMessage","min","max","validateNumberInRange","minValue","maxValue","valueBigInt","target","propertyKey","descriptor","childFunction"]}
|
|
1
|
+
{"version":3,"sources":["../../src/bcs/serializer.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-bitwise */\nimport {\n MAX_U128_BIG_INT,\n MAX_U16_NUMBER,\n MAX_U32_NUMBER,\n MAX_U64_BIG_INT,\n MAX_U8_NUMBER,\n MAX_U256_BIG_INT,\n} from \"./consts\";\nimport { Hex } from \"../core/hex\";\nimport { AnyNumber, Uint16, Uint32, Uint8 } from \"../types\";\n\n/**\n * This class serves as a base class for all serializable types. It facilitates\n * composable serialization of complex types and enables the serialization of\n * instances to their BCS (Binary Canonical Serialization) representation.\n * @group Implementation\n * @category BCS\n */\nexport abstract class Serializable {\n abstract serialize(serializer: Serializer): void;\n\n /**\n * Serializes a `Serializable` value to its BCS representation.\n * This function is the TypeScript SDK equivalent of `bcs::to_bytes` in Move.\n * @returns the BCS representation of the Serializable instance as a byte buffer.\n * @group Implementation\n * @category BCS\n */\n bcsToBytes(): Uint8Array {\n const serializer = new Serializer();\n this.serialize(serializer);\n return serializer.toUint8Array();\n }\n\n /**\n * Converts the BCS-serialized bytes of a value into a Hex instance.\n * This function provides a Hex representation of the BCS-serialized data for easier handling and manipulation.\n * @returns A Hex instance with the BCS-serialized bytes loaded into its underlying Uint8Array.\n * @group Implementation\n * @category BCS\n */\n bcsToHex(): Hex {\n const bcsBytes = this.bcsToBytes();\n return Hex.fromHexInput(bcsBytes);\n }\n\n /**\n * Returns the hex string representation of the `Serializable` value without the 0x prefix.\n * @returns the hex format as a string without `0x` prefix.\n */\n toStringWithoutPrefix(): string {\n return this.bcsToHex().toStringWithoutPrefix();\n }\n\n /**\n * Returns the hex string representation of the `Serializable` value with the 0x prefix.\n * @returns the hex formatas a string prefixed by `0x`.\n */\n toString(): string {\n return `0x${this.toStringWithoutPrefix()}`;\n }\n}\n\n/**\n * A class for serializing various data types into a binary format.\n * It provides methods to serialize strings, bytes, numbers, and other serializable objects\n * using the Binary Coded Serialization (BCS) layout. The serialized data can be retrieved as a\n * Uint8Array.\n * @group Implementation\n * @category BCS\n */\nexport class Serializer {\n private buffer: ArrayBuffer;\n\n private offset: number;\n\n /**\n * Constructs a serializer with a buffer of size `length` bytes, 64 bytes by default.\n * The `length` must be greater than 0.\n *\n * @param length - The size of the buffer in bytes.\n * @group Implementation\n * @category BCS\n */\n constructor(length: number = 64) {\n if (length <= 0) {\n throw new Error(\"Length needs to be greater than 0\");\n }\n this.buffer = new ArrayBuffer(length);\n this.offset = 0;\n }\n\n /**\n * Ensures that the internal buffer can accommodate the specified number of bytes.\n * This function dynamically resizes the buffer if the current size is insufficient.\n *\n * @param bytes - The number of bytes to ensure the buffer can handle.\n * @group Implementation\n * @category BCS\n */\n private ensureBufferWillHandleSize(bytes: number) {\n while (this.buffer.byteLength < this.offset + bytes) {\n const newBuffer = new ArrayBuffer(this.buffer.byteLength * 2);\n new Uint8Array(newBuffer).set(new Uint8Array(this.buffer));\n this.buffer = newBuffer;\n }\n }\n\n /**\n * Appends the specified values to the buffer, ensuring that the buffer can accommodate the new data.\n *\n * @param {Uint8Array} values - The values to be appended to the buffer.\n * @group Implementation\n * @category BCS\n */\n protected appendToBuffer(values: Uint8Array) {\n this.ensureBufferWillHandleSize(values.length);\n new Uint8Array(this.buffer, this.offset).set(values);\n this.offset += values.length;\n }\n\n /**\n * Serializes a value into the buffer using the provided function, ensuring the buffer can accommodate the size.\n *\n * @param fn - The function to serialize the value, which takes a byte offset, the value to serialize, and an optional little-endian flag.\n * @param fn.byteOffset - The byte offset at which to write the value.\n * @param fn.value - The numeric value to serialize into the buffer.\n * @param fn.littleEndian - Optional flag indicating whether to use little-endian byte order (defaults to true).\n * @group Implementation\n * @category BCS\n */\n // TODO: JSDoc bytesLength and value\n private serializeWithFunction(\n fn: (byteOffset: number, value: number, littleEndian?: boolean) => void,\n bytesLength: number,\n value: number,\n ) {\n this.ensureBufferWillHandleSize(bytesLength);\n const dv = new DataView(this.buffer, this.offset);\n fn.apply(dv, [0, value, true]);\n this.offset += bytesLength;\n }\n\n /**\n * Serializes a string. UTF8 string is supported.\n * The number of bytes in the string content is serialized first, as a uleb128-encoded u32 integer.\n * Then the string content is serialized as UTF8 encoded bytes.\n *\n * BCS layout for \"string\": string_length | string_content\n * where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.\n *\n * @param value - The string to serialize.\n *\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeStr(\"1234abcd\");\n * assert(serializer.toUint8Array() === new Uint8Array([8, 49, 50, 51, 52, 97, 98, 99, 100]));\n * ```\n * @group Implementation\n * @category BCS\n */\n serializeStr(value: string) {\n const textEncoder = new TextEncoder();\n this.serializeBytes(textEncoder.encode(value));\n }\n\n /**\n * Serializes an array of bytes.\n *\n * This function encodes the length of the byte array as a u32 integer in uleb128 format, followed by the byte array itself.\n * BCS layout for \"bytes\": bytes_length | bytes\n * where bytes_length is a u32 integer encoded as a uleb128 integer, equal to the length of the bytes array.\n * @param value - The byte array to serialize.\n * @group Implementation\n * @category BCS\n */\n serializeBytes(value: Uint8Array) {\n this.serializeU32AsUleb128(value.length);\n this.appendToBuffer(value);\n }\n\n /**\n * Serializes an array of bytes with a known length, allowing for efficient deserialization without needing to serialize the\n * length itself.\n * When deserializing, the number of bytes to deserialize needs to be passed in.\n\n * @param value - The Uint8Array to be serialized.\n * @group Implementation\n * @category BCS\n */\n serializeFixedBytes(value: Uint8Array) {\n this.appendToBuffer(value);\n }\n\n /**\n * Serializes a boolean value into a byte representation.\n *\n * The BCS layout for a boolean uses one byte, where \"0x01\" represents true and \"0x00\" represents false.\n *\n * @param value - The boolean value to serialize.\n * @group Implementation\n * @category BCS\n */\n serializeBool(value: boolean) {\n /**\n * Ensures that the provided value is a boolean.\n * This function throws an error if the value is not a boolean, helping to enforce type safety in your code.\n *\n * @param value - The value to be checked for boolean type.\n * @throws {Error} Throws an error if the value is not a boolean.\n * @group Implementation\n * @category BCS\n */\n ensureBoolean(value);\n const byteValue = value ? 1 : 0;\n this.appendToBuffer(new Uint8Array([byteValue]));\n }\n\n /**\n * Serializes a Uint8 value and appends it to the buffer.\n * BCS layout for \"uint8\": One byte. Binary format in little-endian representation.\n *\n * @param value - The Uint8 value to serialize.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U8_NUMBER)\n serializeU8(value: Uint8) {\n this.appendToBuffer(new Uint8Array([value]));\n }\n\n /**\n * Serializes a uint16 number.\n *\n * @group Implementation\n * @category BCS\n\n */\n\n /**\n * Serializes a 16-bit unsigned integer value into a binary format.\n * BCS layout for \"uint16\": Two bytes. Binary format in little-endian representation.\n *\n * @param value - The 16-bit unsigned integer value to serialize.\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeU16(4660);\n * assert(serializer.toUint8Array() === new Uint8Array([0x34, 0x12]));\n * ```\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U16_NUMBER)\n serializeU16(value: Uint16) {\n this.serializeWithFunction(DataView.prototype.setUint16, 2, value);\n }\n\n /**\n * Serializes a 32-bit unsigned integer value into a binary format.\n * This function is useful for encoding data that needs to be stored or transmitted in a compact form.\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeU32(305419896);\n * assert(serializer.toUint8Array() === new Uint8Array([0x78, 0x56, 0x34, 0x12]));\n * ```\n * @param value - The 32-bit unsigned integer value to serialize.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U32_NUMBER)\n serializeU32(value: Uint32) {\n this.serializeWithFunction(DataView.prototype.setUint32, 4, value);\n }\n\n /**\n * Serializes a 64-bit unsigned integer into a format suitable for storage or transmission.\n * This function breaks down the value into two 32-bit components and writes them in little-endian order.\n *\n * @param value - The 64-bit unsigned integer to serialize, represented as a number.\n * @example\n * ```ts\n * const serializer = new Serializer();\n * serializer.serializeU64(1311768467750121216);\n * assert(serializer.toUint8Array() === new Uint8Array([0x00, 0xEF, 0xCD, 0xAB, 0x78, 0x56, 0x34, 0x12]));\n * ```\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(BigInt(0), MAX_U64_BIG_INT)\n serializeU64(value: AnyNumber) {\n const low = BigInt(value) & BigInt(MAX_U32_NUMBER);\n const high = BigInt(value) >> BigInt(32);\n\n // write little endian number\n this.serializeU32(Number(low));\n this.serializeU32(Number(high));\n }\n\n /**\n * Serializes a U128 value into a format suitable for storage or transmission.\n *\n * @param value - The U128 value to serialize, represented as a number.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(BigInt(0), MAX_U128_BIG_INT)\n serializeU128(value: AnyNumber) {\n const low = BigInt(value) & MAX_U64_BIG_INT;\n const high = BigInt(value) >> BigInt(64);\n\n // write little endian number\n this.serializeU64(low);\n this.serializeU64(high);\n }\n\n /**\n * Serializes a U256 value into a byte representation.\n * This function is essential for encoding large numbers in a compact format suitable for transmission or storage.\n *\n * @param value - The U256 value to serialize, represented as an AnyNumber.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(BigInt(0), MAX_U256_BIG_INT)\n serializeU256(value: AnyNumber) {\n const low = BigInt(value) & MAX_U128_BIG_INT;\n const high = BigInt(value) >> BigInt(128);\n\n // write little endian number\n this.serializeU128(low);\n this.serializeU128(high);\n }\n\n /**\n * Serializes a 32-bit unsigned integer as a variable-length ULEB128 encoded byte array.\n * BCS uses uleb128 encoding in two cases: (1) lengths of variable-length sequences and (2) tags of enum values\n *\n * @param val - The 32-bit unsigned integer value to be serialized.\n * @group Implementation\n * @category BCS\n */\n @checkNumberRange(0, MAX_U32_NUMBER)\n serializeU32AsUleb128(val: Uint32) {\n let value = val;\n const valueArray = [];\n while (value >>> 7 !== 0) {\n valueArray.push((value & 0x7f) | 0x80);\n value >>>= 7;\n }\n valueArray.push(value);\n this.appendToBuffer(new Uint8Array(valueArray));\n }\n\n /**\n * Returns the buffered bytes as a Uint8Array.\n *\n * This function allows you to retrieve the byte representation of the buffer up to the current offset.\n *\n * @returns Uint8Array - The byte array representation of the buffer.\n * @group Implementation\n * @category BCS\n */\n toUint8Array(): Uint8Array {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n }\n\n /**\n * Serializes a `Serializable` value, facilitating composable serialization.\n *\n * @param value The Serializable value to serialize.\n *\n * @returns the serializer instance\n * @group Implementation\n * @category BCS\n */\n serialize<T extends Serializable>(value: T): void {\n // NOTE: The `serialize` method called by `value` is defined in `value`'s\n // Serializable interface, not the one defined in this class.\n value.serialize(this);\n }\n\n /**\n * Serializes an array of BCS Serializable values to a serializer instance.\n * The bytes are added to the serializer instance's byte buffer.\n *\n * @param values The array of BCS Serializable values\n * @example\n * const addresses = new Array<AccountAddress>(\n * AccountAddress.from(\"0x1\"),\n * AccountAddress.from(\"0x2\"),\n * AccountAddress.from(\"0xa\"),\n * AccountAddress.from(\"0xb\"),\n * );\n * const serializer = new Serializer();\n * serializer.serializeVector(addresses);\n * const serializedBytes = serializer.toUint8Array();\n * // serializedBytes is now the BCS-serialized bytes\n * // The equivalent value in Move would be:\n * // `bcs::to_bytes(&vector<address> [@0x1, @0x2, @0xa, @0xb])`;\n * @group Implementation\n * @category BCS\n */\n serializeVector<T extends Serializable>(values: Array<T>): void {\n this.serializeU32AsUleb128(values.length);\n values.forEach((item) => {\n item.serialize(this);\n });\n }\n\n /**\n * Serializes an optional value which can be a Serializable, string, or Uint8Array.\n * For strings and Uint8Arrays, it uses the appropriate serialization method.\n *\n * @param value The value to serialize (Serializable, string, Uint8Array, or undefined)\n * @param len Optional fixed length for Uint8Array serialization. If provided, uses serializeFixedBytes instead of serializeBytes\n *\n * @example\n * ```typescript\n * const serializer = new Serializer();\n * serializer.serializeOption(\"hello\"); // Serializes optional string\n * serializer.serializeOption(new Uint8Array([1, 2, 3])); // Serializes optional bytes\n * serializer.serializeOption(new Uint8Array([1, 2, 3]), 3); // Serializes optional fixed-length bytes\n * serializer.serializeOption(new AccountAddress(...)); // Serializes optional Serializable\n * serializer.serializeOption(undefined); // Serializes none case\n * ```\n * @group Implementation\n * @category BCS\n */\n serializeOption<T extends Serializable | string | Uint8Array>(value?: T, len?: number): void {\n const hasValue = value !== undefined;\n this.serializeBool(hasValue);\n if (hasValue) {\n if (typeof value === \"string\") {\n this.serializeStr(value);\n } else if (value instanceof Uint8Array) {\n if (len !== undefined) {\n this.serializeFixedBytes(value);\n } else {\n this.serializeBytes(value);\n }\n } else {\n value.serialize(this);\n }\n }\n }\n\n /**\n * @deprecated use `serializeOption` instead.\n * Serializes an optional string, supporting UTF8 encoding.\n * The function encodes the existence of the string first, followed by the length and content if it exists.\n *\n * BCS layout for optional \"string\": 1 | string_length | string_content\n * where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.\n * BCS layout for undefined: 0\n *\n * @param value - The optional string to serialize. If undefined, it will serialize as 0.\n * @group Implementation\n * @category BCS\n */\n serializeOptionStr(value?: string): void {\n if (value === undefined) {\n this.serializeU32AsUleb128(0);\n } else {\n this.serializeU32AsUleb128(1);\n this.serializeStr(value);\n }\n }\n}\n\n/**\n * @group Implementation\n * @category BCS\n */\nexport function ensureBoolean(value: unknown): asserts value is boolean {\n if (typeof value !== \"boolean\") {\n throw new Error(`${value} is not a boolean value`);\n }\n}\n/**\n * @group Implementation\n * @category BCS\n */\nexport const outOfRangeErrorMessage = (value: AnyNumber, min: AnyNumber, max: AnyNumber) =>\n `${value} is out of range: [${min}, ${max}]`;\n\n/**\n * Validates that a given number is within a specified range.\n * This function throws an error if the value is outside the defined minimum and maximum bounds.\n *\n * @param value - The number to validate.\n * @param minValue - The minimum allowable value (inclusive).\n * @param maxValue - The maximum allowable value (inclusive).\n * @group Implementation\n * @category BCS\n */\nexport function validateNumberInRange<T extends AnyNumber>(value: T, minValue: T, maxValue: T) {\n const valueBigInt = BigInt(value);\n if (valueBigInt > BigInt(maxValue) || valueBigInt < BigInt(minValue)) {\n throw new Error(outOfRangeErrorMessage(value, minValue, maxValue));\n }\n}\n\n/**\n * A decorator that validates that the input argument for a function is within a specified range.\n * This ensures that the function is only called with valid input values, preventing potential errors.\n *\n * @param minValue - The input argument must be greater than or equal to this value.\n * @param maxValue - The input argument must be less than or equal to this value.\n * @group Implementation\n * @category BCS\n */\nfunction checkNumberRange<T extends AnyNumber>(minValue: T, maxValue: T) {\n return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const childFunction = descriptor.value;\n // eslint-disable-next-line no-param-reassign\n descriptor.value = function deco(value: AnyNumber) {\n validateNumberInRange(value, minValue, maxValue);\n return childFunction.apply(this, [value]);\n };\n\n return descriptor;\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ParsingError
|
|
3
|
+
} from "./chunk-QPT4BSAB.mjs";
|
|
4
|
+
|
|
5
|
+
// src/core/hex.ts
|
|
6
|
+
import { bytesToHex, hexToBytes } from "@noble/hashes/utils";
|
|
7
|
+
var HexInvalidReason = /* @__PURE__ */ ((HexInvalidReason2) => {
|
|
8
|
+
HexInvalidReason2["TOO_SHORT"] = "too_short";
|
|
9
|
+
HexInvalidReason2["INVALID_LENGTH"] = "invalid_length";
|
|
10
|
+
HexInvalidReason2["INVALID_HEX_CHARS"] = "invalid_hex_chars";
|
|
11
|
+
return HexInvalidReason2;
|
|
12
|
+
})(HexInvalidReason || {});
|
|
13
|
+
var Hex = class _Hex {
|
|
14
|
+
/**
|
|
15
|
+
* Create a new Hex instance from a Uint8Array.
|
|
16
|
+
*
|
|
17
|
+
* @param data - The Uint8Array containing the data to initialize the Hex instance.
|
|
18
|
+
* @group Implementation
|
|
19
|
+
* @category Serialization
|
|
20
|
+
*/
|
|
21
|
+
constructor(data) {
|
|
22
|
+
this.data = data;
|
|
23
|
+
}
|
|
24
|
+
// ===
|
|
25
|
+
// Methods for representing an instance of Hex as other types.
|
|
26
|
+
// ===
|
|
27
|
+
/**
|
|
28
|
+
* Get the inner hex data as a Uint8Array. The inner data is already a Uint8Array, so no conversion takes place.
|
|
29
|
+
*
|
|
30
|
+
* @returns Hex data as Uint8Array
|
|
31
|
+
* @group Implementation
|
|
32
|
+
* @category Serialization
|
|
33
|
+
*/
|
|
34
|
+
toUint8Array() {
|
|
35
|
+
return this.data;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the hex data as a string without the 0x prefix.
|
|
39
|
+
*
|
|
40
|
+
* @returns Hex string without 0x prefix
|
|
41
|
+
* @group Implementation
|
|
42
|
+
* @category Serialization
|
|
43
|
+
*/
|
|
44
|
+
toStringWithoutPrefix() {
|
|
45
|
+
return bytesToHex(this.data);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the hex data as a string with the 0x prefix.
|
|
49
|
+
*
|
|
50
|
+
* @returns Hex string with 0x prefix
|
|
51
|
+
* @group Implementation
|
|
52
|
+
* @category Serialization
|
|
53
|
+
*/
|
|
54
|
+
toString() {
|
|
55
|
+
return `0x${this.toStringWithoutPrefix()}`;
|
|
56
|
+
}
|
|
57
|
+
// ===
|
|
58
|
+
// Methods for creating an instance of Hex from other types.
|
|
59
|
+
// ===
|
|
60
|
+
/**
|
|
61
|
+
* Converts a hex string into a Hex instance, allowing for both prefixed and non-prefixed formats.
|
|
62
|
+
*
|
|
63
|
+
* @param str - A hex string, with or without the 0x prefix.
|
|
64
|
+
*
|
|
65
|
+
* @throws ParsingError - If the hex string is too short, has an odd number of characters, or contains invalid hex characters.
|
|
66
|
+
*
|
|
67
|
+
* @returns Hex - The resulting Hex instance created from the provided string.
|
|
68
|
+
* @group Implementation
|
|
69
|
+
* @category Serialization
|
|
70
|
+
*/
|
|
71
|
+
static fromHexString(str) {
|
|
72
|
+
let input = str;
|
|
73
|
+
if (input.startsWith("0x")) {
|
|
74
|
+
input = input.slice(2);
|
|
75
|
+
}
|
|
76
|
+
if (input.length === 0) {
|
|
77
|
+
throw new ParsingError(
|
|
78
|
+
"Hex string is too short, must be at least 1 char long, excluding the optional leading 0x.",
|
|
79
|
+
"too_short" /* TOO_SHORT */
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (input.length % 2 !== 0) {
|
|
83
|
+
throw new ParsingError("Hex string must be an even number of hex characters.", "invalid_length" /* INVALID_LENGTH */);
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
return new _Hex(hexToBytes(input));
|
|
87
|
+
} catch (error) {
|
|
88
|
+
throw new ParsingError(
|
|
89
|
+
`Hex string contains invalid hex characters: ${error?.message}`,
|
|
90
|
+
"invalid_hex_chars" /* INVALID_HEX_CHARS */
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Converts an instance of HexInput, which can be a string or a Uint8Array, into a Hex instance.
|
|
96
|
+
* This function is useful for transforming hexadecimal representations into a structured Hex object for further manipulation.
|
|
97
|
+
*
|
|
98
|
+
* @param hexInput - A HexInput which can be a string or Uint8Array.
|
|
99
|
+
* @returns A Hex instance created from the provided hexInput.
|
|
100
|
+
* @group Implementation
|
|
101
|
+
* @category Serialization
|
|
102
|
+
*/
|
|
103
|
+
static fromHexInput(hexInput) {
|
|
104
|
+
if (hexInput instanceof Uint8Array) return new _Hex(hexInput);
|
|
105
|
+
return _Hex.fromHexString(hexInput);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Converts an instance of HexInput, which can be a string or a Uint8Array, into a Uint8Array.
|
|
109
|
+
*
|
|
110
|
+
* @param hexInput - A HexInput which can be a string or Uint8Array.
|
|
111
|
+
* @returns A Uint8Array created from the provided hexInput.
|
|
112
|
+
*/
|
|
113
|
+
static hexInputToUint8Array(hexInput) {
|
|
114
|
+
if (hexInput instanceof Uint8Array) return hexInput;
|
|
115
|
+
return _Hex.fromHexString(hexInput).toUint8Array();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Converts a HexInput (string or Uint8Array) to a hex string with '0x' prefix.
|
|
119
|
+
*
|
|
120
|
+
* @param hexInput - The input to convert, either a hex string (with/without '0x' prefix) or Uint8Array
|
|
121
|
+
* @returns A hex string with '0x' prefix (e.g., "0x1234")
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* Hex.hexInputToString("1234") // returns "0x1234"
|
|
126
|
+
* Hex.hexInputToString("0x1234") // returns "0x1234"
|
|
127
|
+
* Hex.hexInputToString(new Uint8Array([0x12, 0x34])) // returns "0x1234"
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
static hexInputToString(hexInput) {
|
|
131
|
+
return _Hex.fromHexInput(hexInput).toString();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Converts a HexInput (string or Uint8Array) to a hex string without '0x' prefix.
|
|
135
|
+
*
|
|
136
|
+
* @param hexInput - The input to convert, either a hex string (with/without '0x' prefix) or Uint8Array
|
|
137
|
+
* @returns A hex string without '0x' prefix (e.g., "1234")
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* Hex.hexInputToStringWithoutPrefix("1234") // returns "1234"
|
|
142
|
+
* Hex.hexInputToStringWithoutPrefix("0x1234") // returns "1234"
|
|
143
|
+
* Hex.hexInputToStringWithoutPrefix(new Uint8Array([0x12, 0x34])) // returns "1234"
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
static hexInputToStringWithoutPrefix(hexInput) {
|
|
147
|
+
return _Hex.fromHexInput(hexInput).toStringWithoutPrefix();
|
|
148
|
+
}
|
|
149
|
+
// ===
|
|
150
|
+
// Methods for checking validity.
|
|
151
|
+
// ===
|
|
152
|
+
/**
|
|
153
|
+
* Check if the provided string is a valid hexadecimal representation.
|
|
154
|
+
*
|
|
155
|
+
* @param str - A hex string representing byte data.
|
|
156
|
+
*
|
|
157
|
+
* @returns An object containing:
|
|
158
|
+
* - valid: A boolean indicating whether the string is valid.
|
|
159
|
+
* - invalidReason: The reason for invalidity if the string is not valid.
|
|
160
|
+
* - invalidReasonMessage: A message explaining why the string is invalid.
|
|
161
|
+
* @group Implementation
|
|
162
|
+
* @category Serialization
|
|
163
|
+
*/
|
|
164
|
+
static isValid(str) {
|
|
165
|
+
try {
|
|
166
|
+
_Hex.fromHexString(str);
|
|
167
|
+
return { valid: true };
|
|
168
|
+
} catch (error) {
|
|
169
|
+
return {
|
|
170
|
+
valid: false,
|
|
171
|
+
invalidReason: error?.invalidReason,
|
|
172
|
+
invalidReasonMessage: error?.message
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Determine if two Hex instances are equal by comparing their underlying byte data.
|
|
178
|
+
*
|
|
179
|
+
* @param other The Hex instance to compare to.
|
|
180
|
+
* @returns true if the Hex instances are equal, false if not.
|
|
181
|
+
* @group Implementation
|
|
182
|
+
* @category Serialization
|
|
183
|
+
*/
|
|
184
|
+
equals(other) {
|
|
185
|
+
if (this.data.length !== other.data.length) return false;
|
|
186
|
+
return this.data.every((value, index) => value === other.data[index]);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
var hexToAsciiString = (hex) => new TextDecoder().decode(Hex.fromHexInput(hex).toUint8Array());
|
|
190
|
+
|
|
191
|
+
export {
|
|
192
|
+
HexInvalidReason,
|
|
193
|
+
Hex,
|
|
194
|
+
hexToAsciiString
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=chunk-GHQTJGG6.mjs.map
|