@aptos-labs/ts-sdk 3.0.0 → 3.1.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-CEmLe1wW.d.ts → account-Bb5REyaT.d.ts} +60 -11
- package/dist/common/chunk-6MMUUJHX.js +4 -0
- package/dist/common/chunk-6MMUUJHX.js.map +1 -0
- package/dist/common/cli/index.d.ts +1 -1
- package/dist/common/cli/index.js +1 -1
- package/dist/common/cli/index.js.map +1 -1
- package/dist/common/index.d.ts +121 -9
- package/dist/common/index.js +53 -32
- package/dist/common/index.js.map +1 -1
- package/dist/esm/{Ed25519Account-Ccxj1zdx.d.mts → Ed25519Account-ndmdpFe9.d.mts} +1 -1
- package/dist/esm/account/AbstractKeylessAccount.d.mts +3 -3
- package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
- package/dist/esm/account/AbstractedAccount.d.mts +2 -2
- package/dist/esm/account/AbstractedAccount.mjs +1 -1
- package/dist/esm/account/Account.d.mts +2 -2
- package/dist/esm/account/Account.mjs +1 -1
- package/dist/esm/account/AccountUtils.d.mts +3 -3
- package/dist/esm/account/AccountUtils.mjs +1 -1
- package/dist/esm/account/DerivableAbstractedAccount.d.mts +2 -2
- package/dist/esm/account/DerivableAbstractedAccount.mjs +1 -1
- package/dist/esm/account/Ed25519Account.d.mts +2 -2
- package/dist/esm/account/Ed25519Account.mjs +1 -1
- package/dist/esm/account/EphemeralKeyPair.d.mts +1 -1
- package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
- package/dist/esm/account/FederatedKeylessAccount.d.mts +4 -3
- package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
- package/dist/esm/account/KeylessAccount.d.mts +4 -3
- package/dist/esm/account/KeylessAccount.mjs +1 -1
- package/dist/esm/account/MultiEd25519Account.d.mts +2 -2
- package/dist/esm/account/MultiEd25519Account.mjs +1 -1
- package/dist/esm/account/MultiKeyAccount.d.mts +3 -3
- package/dist/esm/account/MultiKeyAccount.mjs +1 -1
- package/dist/esm/account/SingleKeyAccount.d.mts +2 -2
- package/dist/esm/account/SingleKeyAccount.mjs +1 -1
- package/dist/esm/account/index.d.mts +3 -3
- package/dist/esm/account/index.mjs +1 -1
- package/dist/esm/account/utils.d.mts +1 -1
- package/dist/esm/account/utils.mjs +1 -1
- package/dist/esm/{account-9G6tix5T.d.mts → account--Q9z_xMN.d.mts} +37 -3
- package/dist/esm/api/account/abstraction.d.mts +1 -1
- package/dist/esm/api/account/abstraction.mjs +1 -1
- package/dist/esm/api/account.d.mts +94 -3
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/ans.d.mts +2 -2
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/aptos.d.mts +6 -4
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/aptosConfig.d.mts +1 -1
- package/dist/esm/api/aptosConfig.mjs +1 -1
- package/dist/esm/api/coin.d.mts +1 -1
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/digitalAsset.d.mts +2 -2
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/event.d.mts +1 -1
- package/dist/esm/api/event.mjs +1 -1
- package/dist/esm/api/faucet.d.mts +1 -1
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/fungibleAsset.d.mts +2 -2
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/general.d.mts +1 -1
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/index.d.mts +6 -4
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/keyless.d.mts +3 -3
- package/dist/esm/api/keyless.mjs +1 -1
- package/dist/esm/api/object.d.mts +1 -1
- package/dist/esm/api/object.mjs +1 -1
- package/dist/esm/api/staking.d.mts +1 -1
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/table.d.mts +1 -1
- package/dist/esm/api/table.mjs +1 -1
- package/dist/esm/api/transaction.d.mts +3 -2
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.d.mts +2 -2
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.d.mts +2 -2
- package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
- package/dist/esm/api/transactionSubmission/simulate.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.d.mts +1 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/utils.d.mts +1 -1
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/bcs/consts.d.mts +1 -1
- package/dist/esm/bcs/deserializer.d.mts +1 -1
- package/dist/esm/bcs/index.d.mts +1 -1
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +1 -1
- package/dist/esm/bcs/serializable/fixedBytes.d.mts +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.d.mts +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.d.mts +1 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/bcs/serializer.d.mts +1 -1
- package/dist/esm/{chunk-Q4W3WJ2U.mjs → chunk-2BOHKN33.mjs} +2 -2
- package/dist/esm/{chunk-SAMHWS73.mjs → chunk-4COLMDT3.mjs} +2 -2
- package/dist/esm/chunk-5HXLZHDW.mjs +1 -0
- package/dist/esm/chunk-5HXLZHDW.mjs.map +1 -0
- package/dist/esm/{chunk-5ZRPV4YI.mjs → chunk-5URUYE6H.mjs} +2 -2
- package/dist/esm/chunk-ACNHLCQQ.mjs +6 -0
- package/dist/esm/chunk-ACNHLCQQ.mjs.map +1 -0
- package/dist/esm/{chunk-2XQKGWHQ.mjs → chunk-FYYEPFML.mjs} +2 -2
- package/dist/esm/chunk-HUWKPKPQ.mjs +2 -0
- package/dist/esm/{chunk-HMUIOIBG.mjs.map → chunk-HUWKPKPQ.mjs.map} +1 -1
- package/dist/esm/chunk-IJE2LVZG.mjs +2 -0
- package/dist/esm/chunk-IJE2LVZG.mjs.map +1 -0
- package/dist/esm/chunk-JCFTAG5Z.mjs +2 -0
- package/dist/esm/{chunk-RJ7F4JDV.mjs.map → chunk-JCFTAG5Z.mjs.map} +1 -1
- package/dist/esm/{chunk-YHGGNYYL.mjs → chunk-MML57K5H.mjs} +2 -2
- package/dist/esm/{chunk-PFXXFUBL.mjs → chunk-MNDTFHDB.mjs} +2 -2
- package/dist/esm/{chunk-FSP4QM2T.mjs → chunk-SLWIGOQL.mjs} +2 -2
- package/dist/esm/{chunk-7T62PEFI.mjs → chunk-TYYVB2A6.mjs} +2 -2
- package/dist/esm/{chunk-WOTQ7227.mjs → chunk-U3GMNXO4.mjs} +2 -2
- package/dist/esm/{chunk-VHNX2NUR.mjs → chunk-UL777LTI.mjs} +47 -26
- package/dist/esm/chunk-UL777LTI.mjs.map +1 -0
- package/dist/esm/{chunk-IDHVW7HS.mjs → chunk-XZ75T7Q7.mjs} +2 -2
- package/dist/esm/{chunk-UIVX6WSC.mjs → chunk-Y7ZQTLH4.mjs} +2 -2
- package/dist/esm/{chunk-R7NQJWDG.mjs → chunk-Z5URUE4U.mjs} +2 -2
- package/dist/esm/cli/index.d.mts +1 -1
- package/dist/esm/cli/index.mjs +1 -1
- package/dist/esm/cli/localNode.mjs +1 -1
- package/dist/esm/cli/move.d.mts +1 -1
- package/dist/esm/client/core.d.mts +1 -1
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/get.d.mts +1 -1
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/index.d.mts +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/post.d.mts +1 -1
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/core/account/index.d.mts +1 -1
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/utils/address.d.mts +1 -1
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/index.d.mts +1 -1
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/accountAddress.d.mts +1 -1
- package/dist/esm/core/accountAddress.mjs +1 -1
- package/dist/esm/core/authenticationKey.d.mts +1 -1
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/crypto/abstraction.d.mts +1 -1
- package/dist/esm/core/crypto/abstraction.mjs +1 -1
- package/dist/esm/core/crypto/deserializationUtils.d.mts +1 -1
- package/dist/esm/core/crypto/deserializationUtils.mjs +1 -1
- package/dist/esm/core/crypto/ed25519.d.mts +1 -1
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.d.mts +1 -1
- package/dist/esm/core/crypto/ephemeral.mjs +1 -1
- package/dist/esm/core/crypto/federatedKeyless.d.mts +2 -2
- package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
- package/dist/esm/core/crypto/index.d.mts +3 -2
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/keyless.d.mts +2 -2
- package/dist/esm/core/crypto/keyless.mjs +1 -1
- package/dist/esm/core/crypto/multiEd25519.d.mts +1 -1
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiKey.d.mts +1 -1
- package/dist/esm/core/crypto/multiKey.mjs +1 -1
- package/dist/esm/core/crypto/privateKey.d.mts +1 -1
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/proof.d.mts +1 -1
- package/dist/esm/core/crypto/proof.mjs +1 -1
- package/dist/esm/core/crypto/publicKey.d.mts +1 -1
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.d.mts +1 -1
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/signature.d.mts +1 -1
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.d.mts +1 -1
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/crypto/types.d.mts +11 -0
- package/dist/esm/core/crypto/types.mjs +2 -0
- package/dist/esm/core/crypto/types.mjs.map +1 -0
- package/dist/esm/core/crypto/utils.d.mts +1 -1
- package/dist/esm/core/hex.d.mts +1 -1
- package/dist/esm/core/index.d.mts +3 -2
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/errors/index.d.mts +1 -1
- package/dist/esm/errors/index.mjs +1 -1
- package/dist/esm/{federatedKeyless-CVKW5pnz.d.mts → federatedKeyless-CiyplsOB.d.mts} +1 -1
- package/dist/esm/index.d.mts +6 -4
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal/abstraction.d.mts +1 -1
- package/dist/esm/internal/abstraction.mjs +1 -1
- package/dist/esm/internal/account.d.mts +38 -8
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/ans.d.mts +2 -2
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/coin.d.mts +1 -1
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/digitalAsset.d.mts +2 -2
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/event.d.mts +1 -1
- package/dist/esm/internal/event.mjs +1 -1
- package/dist/esm/internal/faucet.d.mts +1 -1
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.d.mts +2 -2
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/general.d.mts +1 -1
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/keyless.d.mts +12 -3
- package/dist/esm/internal/keyless.mjs +1 -1
- package/dist/esm/internal/object.d.mts +1 -1
- package/dist/esm/internal/object.mjs +1 -1
- package/dist/esm/internal/staking.d.mts +1 -1
- package/dist/esm/internal/staking.mjs +1 -1
- package/dist/esm/internal/table.d.mts +1 -1
- package/dist/esm/internal/table.mjs +1 -1
- package/dist/esm/internal/transaction.d.mts +1 -1
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.d.mts +2 -2
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/utils/index.d.mts +1 -1
- package/dist/esm/internal/utils/index.mjs +1 -1
- package/dist/esm/internal/utils/utils.d.mts +1 -1
- package/dist/esm/internal/utils/utils.mjs +1 -1
- package/dist/esm/internal/view.d.mts +1 -1
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/transactions/authenticator/account.d.mts +1 -1
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.d.mts +1 -1
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.d.mts +1 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/index.d.mts +1 -1
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/instances/chainId.d.mts +1 -1
- package/dist/esm/transactions/instances/identifier.d.mts +1 -1
- package/dist/esm/transactions/instances/index.d.mts +1 -1
- package/dist/esm/transactions/instances/index.mjs +1 -1
- package/dist/esm/transactions/instances/moduleId.d.mts +1 -1
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.d.mts +1 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.d.mts +1 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.d.mts +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/transactionArgument.d.mts +1 -1
- package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/index.d.mts +2 -2
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.d.mts +2 -2
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.d.mts +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.d.mts +1 -1
- package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.d.mts +1 -1
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.d.mts +1 -1
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/transactions/types.d.mts +1 -1
- package/dist/esm/types/generated/operations.d.mts +37 -10
- package/dist/esm/types/generated/queries.d.mts +6 -2
- package/dist/esm/types/generated/queries.mjs +1 -1
- package/dist/esm/types/generated/types.d.mts +584 -1172
- package/dist/esm/types/generated/types.mjs +1 -1
- package/dist/esm/types/generated/types.mjs.map +1 -1
- package/dist/esm/types/index.d.mts +2 -2
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/types/indexer.d.mts +8 -2
- package/dist/esm/types/types.d.mts +1 -1
- package/dist/esm/types/types.mjs +1 -1
- package/dist/esm/utils/const.d.mts +1 -0
- package/dist/esm/utils/const.mjs +1 -1
- package/dist/esm/utils/helpers.d.mts +1 -1
- package/dist/esm/utils/helpers.mjs +1 -1
- package/dist/esm/utils/index.d.mts +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.d.mts +1 -1
- package/dist/esm/utils/normalizeBundle.mjs +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +19 -18
- package/src/account/FederatedKeylessAccount.ts +7 -1
- package/src/account/KeylessAccount.ts +17 -2
- package/src/api/account.ts +135 -2
- package/src/api/transaction.ts +1 -0
- package/src/core/crypto/index.ts +1 -0
- package/src/core/crypto/multiEd25519.ts +26 -0
- package/src/core/crypto/multiKey.ts +6 -0
- package/src/core/crypto/types.ts +9 -0
- package/src/internal/account.ts +526 -59
- package/src/internal/keyless.ts +10 -0
- 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/internal/queries/getAccountAddressesForAuthKey.graphql +8 -0
- package/src/internal/queries/getAuthKeysForPublicKey.graphql +11 -0
- package/src/types/codegen.yaml +1 -1
- package/src/types/generated/operations.ts +39 -8
- package/src/types/generated/queries.ts +53 -0
- package/src/types/generated/types.ts +620 -1239
- package/src/types/indexer.ts +8 -0
- package/src/types/types.ts +40 -3
- package/src/utils/const.ts +1 -0
- package/src/version.ts +1 -1
- package/dist/common/chunk-5JIJXVJ5.js +0 -4
- package/dist/common/chunk-5JIJXVJ5.js.map +0 -1
- package/dist/esm/chunk-4H2RMR7D.mjs +0 -2
- package/dist/esm/chunk-4H2RMR7D.mjs.map +0 -1
- package/dist/esm/chunk-GMDBBVDH.mjs +0 -6
- package/dist/esm/chunk-GMDBBVDH.mjs.map +0 -1
- package/dist/esm/chunk-HMUIOIBG.mjs +0 -2
- package/dist/esm/chunk-RJ7F4JDV.mjs +0 -2
- package/dist/esm/chunk-VHNX2NUR.mjs.map +0 -1
- /package/dist/esm/{chunk-Q4W3WJ2U.mjs.map → chunk-2BOHKN33.mjs.map} +0 -0
- /package/dist/esm/{chunk-SAMHWS73.mjs.map → chunk-4COLMDT3.mjs.map} +0 -0
- /package/dist/esm/{chunk-5ZRPV4YI.mjs.map → chunk-5URUYE6H.mjs.map} +0 -0
- /package/dist/esm/{chunk-2XQKGWHQ.mjs.map → chunk-FYYEPFML.mjs.map} +0 -0
- /package/dist/esm/{chunk-YHGGNYYL.mjs.map → chunk-MML57K5H.mjs.map} +0 -0
- /package/dist/esm/{chunk-PFXXFUBL.mjs.map → chunk-MNDTFHDB.mjs.map} +0 -0
- /package/dist/esm/{chunk-FSP4QM2T.mjs.map → chunk-SLWIGOQL.mjs.map} +0 -0
- /package/dist/esm/{chunk-7T62PEFI.mjs.map → chunk-TYYVB2A6.mjs.map} +0 -0
- /package/dist/esm/{chunk-WOTQ7227.mjs.map → chunk-U3GMNXO4.mjs.map} +0 -0
- /package/dist/esm/{chunk-IDHVW7HS.mjs.map → chunk-XZ75T7Q7.mjs.map} +0 -0
- /package/dist/esm/{chunk-UIVX6WSC.mjs.map → chunk-Y7ZQTLH4.mjs.map} +0 -0
- /package/dist/esm/{chunk-R7NQJWDG.mjs.map → chunk-Z5URUE4U.mjs.map} +0 -0
|
@@ -0,0 +1,1073 @@
|
|
|
1
|
+
/// This defines the Move object model with the following properties:
|
|
2
|
+
/// - Simplified storage interface that supports a heterogeneous collection of resources to be
|
|
3
|
+
/// stored together. This enables data types to share a common core data layer (e.g., tokens),
|
|
4
|
+
/// while having richer extensions (e.g., concert ticket, sword).
|
|
5
|
+
/// - Globally accessible data and ownership model that enables creators and developers to dictate
|
|
6
|
+
/// the application and lifetime of data.
|
|
7
|
+
/// - Extensible programming model that supports individualization of user applications that
|
|
8
|
+
/// leverage the core framework including tokens.
|
|
9
|
+
/// - Support emitting events directly, thus improving discoverability of events associated with
|
|
10
|
+
/// objects.
|
|
11
|
+
/// - Considerate of the underlying system by leveraging resource groups for gas efficiency,
|
|
12
|
+
/// avoiding costly deserialization and serialization costs, and supporting deletability.
|
|
13
|
+
///
|
|
14
|
+
/// TODO:
|
|
15
|
+
/// * There is no means to borrow an object or a reference to an object. We are exploring how to
|
|
16
|
+
/// make it so that a reference to a global object can be returned from a function.
|
|
17
|
+
module aptos_framework::object {
|
|
18
|
+
use std::bcs;
|
|
19
|
+
use std::error;
|
|
20
|
+
use std::hash;
|
|
21
|
+
use std::signer;
|
|
22
|
+
use std::vector;
|
|
23
|
+
|
|
24
|
+
use aptos_std::from_bcs;
|
|
25
|
+
|
|
26
|
+
use aptos_framework::account;
|
|
27
|
+
use aptos_framework::transaction_context;
|
|
28
|
+
use aptos_framework::create_signer::create_signer;
|
|
29
|
+
use aptos_framework::event;
|
|
30
|
+
use aptos_framework::guid;
|
|
31
|
+
|
|
32
|
+
friend aptos_framework::coin;
|
|
33
|
+
friend aptos_framework::primary_fungible_store;
|
|
34
|
+
|
|
35
|
+
/// An object already exists at this address
|
|
36
|
+
const EOBJECT_EXISTS: u64 = 1;
|
|
37
|
+
/// An object does not exist at this address
|
|
38
|
+
const EOBJECT_DOES_NOT_EXIST: u64 = 2;
|
|
39
|
+
/// The object does not have ungated transfers enabled
|
|
40
|
+
const ENO_UNGATED_TRANSFERS: u64 = 3;
|
|
41
|
+
/// The caller does not have ownership permissions
|
|
42
|
+
const ENOT_OBJECT_OWNER: u64 = 4;
|
|
43
|
+
/// The object does not allow for deletion
|
|
44
|
+
const ECANNOT_DELETE: u64 = 5;
|
|
45
|
+
/// Exceeds maximum nesting for an object transfer.
|
|
46
|
+
const EMAXIMUM_NESTING: u64 = 6;
|
|
47
|
+
/// The resource is not stored at the specified address.
|
|
48
|
+
const ERESOURCE_DOES_NOT_EXIST: u64 = 7;
|
|
49
|
+
/// Cannot reclaim objects that weren't burnt.
|
|
50
|
+
const EOBJECT_NOT_BURNT: u64 = 8;
|
|
51
|
+
/// Object is untransferable any operations that might result in a transfer are disallowed.
|
|
52
|
+
const EOBJECT_NOT_TRANSFERRABLE: u64 = 9;
|
|
53
|
+
|
|
54
|
+
/// Explicitly separate the GUID space between Object and Account to prevent accidental overlap.
|
|
55
|
+
const INIT_GUID_CREATION_NUM: u64 = 0x4000000000000;
|
|
56
|
+
|
|
57
|
+
/// Maximum nesting from one object to another. That is objects can technically have infinte
|
|
58
|
+
/// nesting, but any checks such as transfer will only be evaluated this deep.
|
|
59
|
+
const MAXIMUM_OBJECT_NESTING: u8 = 8;
|
|
60
|
+
|
|
61
|
+
/// generate_unique_address uses this for domain separation within its native implementation
|
|
62
|
+
const DERIVE_AUID_ADDRESS_SCHEME: u8 = 0xFB;
|
|
63
|
+
|
|
64
|
+
/// Scheme identifier used to generate an object's address `obj_addr` as derived from another object.
|
|
65
|
+
/// The object's address is generated as:
|
|
66
|
+
/// ```
|
|
67
|
+
/// obj_addr = sha3_256(account addr | derived from object's address | 0xFC)
|
|
68
|
+
/// ```
|
|
69
|
+
///
|
|
70
|
+
/// This 0xFC constant serves as a domain separation tag to prevent existing authentication key and resource account
|
|
71
|
+
/// derivation to produce an object address.
|
|
72
|
+
const OBJECT_DERIVED_SCHEME: u8 = 0xFC;
|
|
73
|
+
|
|
74
|
+
/// Scheme identifier used to generate an object's address `obj_addr` via a fresh GUID generated by the creator at
|
|
75
|
+
/// `source_addr`. The object's address is generated as:
|
|
76
|
+
/// ```
|
|
77
|
+
/// obj_addr = sha3_256(guid | 0xFD)
|
|
78
|
+
/// ```
|
|
79
|
+
/// where `guid = account::create_guid(create_signer(source_addr))`
|
|
80
|
+
///
|
|
81
|
+
/// This 0xFD constant serves as a domain separation tag to prevent existing authentication key and resource account
|
|
82
|
+
/// derivation to produce an object address.
|
|
83
|
+
const OBJECT_FROM_GUID_ADDRESS_SCHEME: u8 = 0xFD;
|
|
84
|
+
|
|
85
|
+
/// Scheme identifier used to generate an object's address `obj_addr` from the creator's `source_addr` and a `seed` as:
|
|
86
|
+
/// obj_addr = sha3_256(source_addr | seed | 0xFE).
|
|
87
|
+
///
|
|
88
|
+
/// This 0xFE constant serves as a domain separation tag to prevent existing authentication key and resource account
|
|
89
|
+
/// derivation to produce an object address.
|
|
90
|
+
const OBJECT_FROM_SEED_ADDRESS_SCHEME: u8 = 0xFE;
|
|
91
|
+
|
|
92
|
+
/// Address where unwanted objects can be forcefully transferred to.
|
|
93
|
+
const BURN_ADDRESS: address = @0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
|
|
94
|
+
|
|
95
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
96
|
+
/// The core of the object model that defines ownership, transferability, and events.
|
|
97
|
+
struct ObjectCore has key {
|
|
98
|
+
/// Used by guid to guarantee globally unique objects and create event streams
|
|
99
|
+
guid_creation_num: u64,
|
|
100
|
+
/// The address (object or account) that owns this object
|
|
101
|
+
owner: address,
|
|
102
|
+
/// Object transferring is a common operation, this allows for disabling and enabling
|
|
103
|
+
/// transfers bypassing the use of a TransferRef.
|
|
104
|
+
allow_ungated_transfer: bool,
|
|
105
|
+
/// Emitted events upon transferring of ownership.
|
|
106
|
+
transfer_events: event::EventHandle<TransferEvent>,
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
110
|
+
/// This is added to objects that are burnt (ownership transferred to BURN_ADDRESS).
|
|
111
|
+
struct TombStone has key {
|
|
112
|
+
/// Track the previous owner before the object is burnt so they can reclaim later if so desired.
|
|
113
|
+
original_owner: address,
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
117
|
+
/// The existence of this renders all `TransferRef`s irrelevant. The object cannot be moved.
|
|
118
|
+
struct Untransferable has key {}
|
|
119
|
+
|
|
120
|
+
#[resource_group(scope = global)]
|
|
121
|
+
/// A shared resource group for storing object resources together in storage.
|
|
122
|
+
struct ObjectGroup {}
|
|
123
|
+
|
|
124
|
+
/// A pointer to an object -- these can only provide guarantees based upon the underlying data
|
|
125
|
+
/// type, that is the validity of T existing at an address is something that cannot be verified
|
|
126
|
+
/// by any other module than the module that defined T. Similarly, the module that defines T
|
|
127
|
+
/// can remove it from storage at any point in time.
|
|
128
|
+
struct Object<phantom T> has copy, drop, store {
|
|
129
|
+
inner: address,
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/// This is a one time ability given to the creator to configure the object as necessary
|
|
133
|
+
struct ConstructorRef has drop {
|
|
134
|
+
self: address,
|
|
135
|
+
/// True if the object can be deleted. Named objects are not deletable.
|
|
136
|
+
can_delete: bool,
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/// Used to remove an object from storage.
|
|
140
|
+
struct DeleteRef has drop, store {
|
|
141
|
+
self: address,
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/// Used to create events or move additional resources into object storage.
|
|
145
|
+
struct ExtendRef has drop, store {
|
|
146
|
+
self: address,
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/// Used to create LinearTransferRef, hence ownership transfer.
|
|
150
|
+
struct TransferRef has drop, store {
|
|
151
|
+
self: address,
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/// Used to perform transfers. This locks transferring ability to a single time use bound to
|
|
155
|
+
/// the current owner.
|
|
156
|
+
struct LinearTransferRef has drop {
|
|
157
|
+
self: address,
|
|
158
|
+
owner: address,
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/// Used to create derived objects from a given objects.
|
|
162
|
+
struct DeriveRef has drop, store {
|
|
163
|
+
self: address,
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/// Emitted whenever the object's owner field is changed.
|
|
167
|
+
struct TransferEvent has drop, store {
|
|
168
|
+
object: address,
|
|
169
|
+
from: address,
|
|
170
|
+
to: address,
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
#[event]
|
|
174
|
+
/// Emitted whenever the object's owner field is changed.
|
|
175
|
+
struct Transfer has drop, store {
|
|
176
|
+
object: address,
|
|
177
|
+
from: address,
|
|
178
|
+
to: address,
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
#[view]
|
|
182
|
+
public fun is_untransferable<T: key>(object: Object<T>): bool {
|
|
183
|
+
exists<Untransferable>(object.inner)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
#[view]
|
|
187
|
+
public fun is_burnt<T: key>(object: Object<T>): bool {
|
|
188
|
+
exists<TombStone>(object.inner)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/// Produces an ObjectId from the given address. This is not verified.
|
|
192
|
+
public fun address_to_object<T: key>(object: address): Object<T> {
|
|
193
|
+
assert!(exists<ObjectCore>(object), error::not_found(EOBJECT_DOES_NOT_EXIST));
|
|
194
|
+
assert!(exists_at<T>(object), error::not_found(ERESOURCE_DOES_NOT_EXIST));
|
|
195
|
+
Object<T> { inner: object }
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/// Returns true if there exists an object or the remnants of an object.
|
|
199
|
+
public fun is_object(object: address): bool {
|
|
200
|
+
exists<ObjectCore>(object)
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/// Returns true if there exists an object with resource T.
|
|
204
|
+
public fun object_exists<T: key>(object: address): bool {
|
|
205
|
+
exists<ObjectCore>(object) && exists_at<T>(object)
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/// Derives an object address from source material: sha3_256([creator address | seed | 0xFE]).
|
|
209
|
+
public fun create_object_address(source: &address, seed: vector<u8>): address {
|
|
210
|
+
let bytes = bcs::to_bytes(source);
|
|
211
|
+
vector::append(&mut bytes, seed);
|
|
212
|
+
vector::push_back(&mut bytes, OBJECT_FROM_SEED_ADDRESS_SCHEME);
|
|
213
|
+
from_bcs::to_address(hash::sha3_256(bytes))
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
native fun create_user_derived_object_address_impl(source: address, derive_from: address): address;
|
|
217
|
+
|
|
218
|
+
/// Derives an object address from the source address and an object: sha3_256([source | object addr | 0xFC]).
|
|
219
|
+
public fun create_user_derived_object_address(source: address, derive_from: address): address {
|
|
220
|
+
if (std::features::object_native_derived_address_enabled()) {
|
|
221
|
+
create_user_derived_object_address_impl(source, derive_from)
|
|
222
|
+
} else {
|
|
223
|
+
let bytes = bcs::to_bytes(&source);
|
|
224
|
+
vector::append(&mut bytes, bcs::to_bytes(&derive_from));
|
|
225
|
+
vector::push_back(&mut bytes, OBJECT_DERIVED_SCHEME);
|
|
226
|
+
from_bcs::to_address(hash::sha3_256(bytes))
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/// Derives an object from an Account GUID.
|
|
231
|
+
public fun create_guid_object_address(source: address, creation_num: u64): address {
|
|
232
|
+
let id = guid::create_id(source, creation_num);
|
|
233
|
+
let bytes = bcs::to_bytes(&id);
|
|
234
|
+
vector::push_back(&mut bytes, OBJECT_FROM_GUID_ADDRESS_SCHEME);
|
|
235
|
+
from_bcs::to_address(hash::sha3_256(bytes))
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
native fun exists_at<T: key>(object: address): bool;
|
|
239
|
+
|
|
240
|
+
/// Returns the address of within an ObjectId.
|
|
241
|
+
public fun object_address<T: key>(object: &Object<T>): address {
|
|
242
|
+
object.inner
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/// Convert Object<X> to Object<Y>.
|
|
246
|
+
public fun convert<X: key, Y: key>(object: Object<X>): Object<Y> {
|
|
247
|
+
address_to_object<Y>(object.inner)
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/// Create a new named object and return the ConstructorRef. Named objects can be queried globally
|
|
251
|
+
/// by knowing the user generated seed used to create them. Named objects cannot be deleted.
|
|
252
|
+
public fun create_named_object(creator: &signer, seed: vector<u8>): ConstructorRef {
|
|
253
|
+
let creator_address = signer::address_of(creator);
|
|
254
|
+
let obj_addr = create_object_address(&creator_address, seed);
|
|
255
|
+
create_object_internal(creator_address, obj_addr, false)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/// Create a new object whose address is derived based on the creator account address and another object.
|
|
259
|
+
/// Derivde objects, similar to named objects, cannot be deleted.
|
|
260
|
+
public(friend) fun create_user_derived_object(creator_address: address, derive_ref: &DeriveRef): ConstructorRef {
|
|
261
|
+
let obj_addr = create_user_derived_object_address(creator_address, derive_ref.self);
|
|
262
|
+
create_object_internal(creator_address, obj_addr, false)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/// Create a new object by generating a random unique address based on transaction hash.
|
|
266
|
+
/// The unique address is computed sha3_256([transaction hash | auid counter | 0xFB]).
|
|
267
|
+
/// The created object is deletable as we can guarantee the same unique address can
|
|
268
|
+
/// never be regenerated with future txs.
|
|
269
|
+
public fun create_object(owner_address: address): ConstructorRef {
|
|
270
|
+
let unique_address = transaction_context::generate_auid_address();
|
|
271
|
+
create_object_internal(owner_address, unique_address, true)
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/// Same as `create_object` except the object to be created will be undeletable.
|
|
275
|
+
public fun create_sticky_object(owner_address: address): ConstructorRef {
|
|
276
|
+
let unique_address = transaction_context::generate_auid_address();
|
|
277
|
+
create_object_internal(owner_address, unique_address, false)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/// Create a sticky object at a specific address. Only used by aptos_framework::coin.
|
|
281
|
+
public(friend) fun create_sticky_object_at_address(
|
|
282
|
+
owner_address: address,
|
|
283
|
+
object_address: address,
|
|
284
|
+
): ConstructorRef {
|
|
285
|
+
create_object_internal(owner_address, object_address, false)
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
#[deprecated]
|
|
289
|
+
/// Use `create_object` instead.
|
|
290
|
+
/// Create a new object from a GUID generated by an account.
|
|
291
|
+
/// As the GUID creation internally increments a counter, two transactions that executes
|
|
292
|
+
/// `create_object_from_account` function for the same creator run sequentially.
|
|
293
|
+
/// Therefore, using `create_object` method for creating objects is preferrable as it
|
|
294
|
+
/// doesn't have the same bottlenecks.
|
|
295
|
+
public fun create_object_from_account(creator: &signer): ConstructorRef {
|
|
296
|
+
let guid = account::create_guid(creator);
|
|
297
|
+
create_object_from_guid(signer::address_of(creator), guid)
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
#[deprecated]
|
|
301
|
+
/// Use `create_object` instead.
|
|
302
|
+
/// Create a new object from a GUID generated by an object.
|
|
303
|
+
/// As the GUID creation internally increments a counter, two transactions that executes
|
|
304
|
+
/// `create_object_from_object` function for the same creator run sequentially.
|
|
305
|
+
/// Therefore, using `create_object` method for creating objects is preferrable as it
|
|
306
|
+
/// doesn't have the same bottlenecks.
|
|
307
|
+
public fun create_object_from_object(creator: &signer): ConstructorRef acquires ObjectCore {
|
|
308
|
+
let guid = create_guid(creator);
|
|
309
|
+
create_object_from_guid(signer::address_of(creator), guid)
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
fun create_object_from_guid(creator_address: address, guid: guid::GUID): ConstructorRef {
|
|
313
|
+
let bytes = bcs::to_bytes(&guid);
|
|
314
|
+
vector::push_back(&mut bytes, OBJECT_FROM_GUID_ADDRESS_SCHEME);
|
|
315
|
+
let obj_addr = from_bcs::to_address(hash::sha3_256(bytes));
|
|
316
|
+
create_object_internal(creator_address, obj_addr, true)
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
fun create_object_internal(
|
|
320
|
+
creator_address: address,
|
|
321
|
+
object: address,
|
|
322
|
+
can_delete: bool,
|
|
323
|
+
): ConstructorRef {
|
|
324
|
+
assert!(!exists<ObjectCore>(object), error::already_exists(EOBJECT_EXISTS));
|
|
325
|
+
|
|
326
|
+
let object_signer = create_signer(object);
|
|
327
|
+
let guid_creation_num = INIT_GUID_CREATION_NUM;
|
|
328
|
+
let transfer_events_guid = guid::create(object, &mut guid_creation_num);
|
|
329
|
+
|
|
330
|
+
move_to(
|
|
331
|
+
&object_signer,
|
|
332
|
+
ObjectCore {
|
|
333
|
+
guid_creation_num,
|
|
334
|
+
owner: creator_address,
|
|
335
|
+
allow_ungated_transfer: true,
|
|
336
|
+
transfer_events: event::new_event_handle(transfer_events_guid),
|
|
337
|
+
},
|
|
338
|
+
);
|
|
339
|
+
ConstructorRef { self: object, can_delete }
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// Creation helpers
|
|
343
|
+
|
|
344
|
+
/// Generates the DeleteRef, which can be used to remove ObjectCore from global storage.
|
|
345
|
+
public fun generate_delete_ref(ref: &ConstructorRef): DeleteRef {
|
|
346
|
+
assert!(ref.can_delete, error::permission_denied(ECANNOT_DELETE));
|
|
347
|
+
DeleteRef { self: ref.self }
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/// Generates the ExtendRef, which can be used to add new events and resources to the object.
|
|
351
|
+
public fun generate_extend_ref(ref: &ConstructorRef): ExtendRef {
|
|
352
|
+
ExtendRef { self: ref.self }
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/// Generates the TransferRef, which can be used to manage object transfers.
|
|
356
|
+
public fun generate_transfer_ref(ref: &ConstructorRef): TransferRef {
|
|
357
|
+
assert!(!exists<Untransferable>(ref.self), error::permission_denied(EOBJECT_NOT_TRANSFERRABLE));
|
|
358
|
+
TransferRef { self: ref.self }
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/// Generates the DeriveRef, which can be used to create determnistic derived objects from the current object.
|
|
362
|
+
public fun generate_derive_ref(ref: &ConstructorRef): DeriveRef {
|
|
363
|
+
DeriveRef { self: ref.self }
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/// Create a signer for the ConstructorRef
|
|
367
|
+
public fun generate_signer(ref: &ConstructorRef): signer {
|
|
368
|
+
create_signer(ref.self)
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/// Returns the address associated with the constructor
|
|
372
|
+
public fun address_from_constructor_ref(ref: &ConstructorRef): address {
|
|
373
|
+
ref.self
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/// Returns an Object<T> from within a ConstructorRef
|
|
377
|
+
public fun object_from_constructor_ref<T: key>(ref: &ConstructorRef): Object<T> {
|
|
378
|
+
address_to_object<T>(ref.self)
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/// Returns whether or not the ConstructorRef can be used to create DeleteRef
|
|
382
|
+
public fun can_generate_delete_ref(ref: &ConstructorRef): bool {
|
|
383
|
+
ref.can_delete
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// Signer required functions
|
|
387
|
+
|
|
388
|
+
/// Create a guid for the object, typically used for events
|
|
389
|
+
public fun create_guid(object: &signer): guid::GUID acquires ObjectCore {
|
|
390
|
+
let addr = signer::address_of(object);
|
|
391
|
+
let object_data = borrow_global_mut<ObjectCore>(addr);
|
|
392
|
+
guid::create(addr, &mut object_data.guid_creation_num)
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/// Generate a new event handle.
|
|
396
|
+
public fun new_event_handle<T: drop + store>(
|
|
397
|
+
object: &signer,
|
|
398
|
+
): event::EventHandle<T> acquires ObjectCore {
|
|
399
|
+
event::new_event_handle(create_guid(object))
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// Deletion helpers
|
|
403
|
+
|
|
404
|
+
/// Returns the address associated with the constructor
|
|
405
|
+
public fun address_from_delete_ref(ref: &DeleteRef): address {
|
|
406
|
+
ref.self
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/// Returns an Object<T> from within a DeleteRef.
|
|
410
|
+
public fun object_from_delete_ref<T: key>(ref: &DeleteRef): Object<T> {
|
|
411
|
+
address_to_object<T>(ref.self)
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/// Removes from the specified Object from global storage.
|
|
415
|
+
public fun delete(ref: DeleteRef) acquires Untransferable, ObjectCore {
|
|
416
|
+
let object_core = move_from<ObjectCore>(ref.self);
|
|
417
|
+
let ObjectCore {
|
|
418
|
+
guid_creation_num: _,
|
|
419
|
+
owner: _,
|
|
420
|
+
allow_ungated_transfer: _,
|
|
421
|
+
transfer_events,
|
|
422
|
+
} = object_core;
|
|
423
|
+
|
|
424
|
+
if (exists<Untransferable>(ref.self)) {
|
|
425
|
+
let Untransferable {} = move_from<Untransferable>(ref.self);
|
|
426
|
+
};
|
|
427
|
+
|
|
428
|
+
event::destroy_handle(transfer_events);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
// Extension helpers
|
|
432
|
+
|
|
433
|
+
/// Create a signer for the ExtendRef
|
|
434
|
+
public fun generate_signer_for_extending(ref: &ExtendRef): signer {
|
|
435
|
+
create_signer(ref.self)
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/// Returns an address from within a ExtendRef.
|
|
439
|
+
public fun address_from_extend_ref(ref: &ExtendRef): address {
|
|
440
|
+
ref.self
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// Transfer functionality
|
|
444
|
+
|
|
445
|
+
/// Disable direct transfer, transfers can only be triggered via a TransferRef
|
|
446
|
+
public fun disable_ungated_transfer(ref: &TransferRef) acquires ObjectCore {
|
|
447
|
+
let object = borrow_global_mut<ObjectCore>(ref.self);
|
|
448
|
+
object.allow_ungated_transfer = false;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/// Prevent moving of the object
|
|
452
|
+
public fun set_untransferable(ref: &ConstructorRef) acquires ObjectCore {
|
|
453
|
+
let object = borrow_global_mut<ObjectCore>(ref.self);
|
|
454
|
+
object.allow_ungated_transfer = false;
|
|
455
|
+
let object_signer = generate_signer(ref);
|
|
456
|
+
move_to(&object_signer, Untransferable {});
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/// Enable direct transfer.
|
|
460
|
+
public fun enable_ungated_transfer(ref: &TransferRef) acquires ObjectCore {
|
|
461
|
+
assert!(!exists<Untransferable>(ref.self), error::permission_denied(EOBJECT_NOT_TRANSFERRABLE));
|
|
462
|
+
let object = borrow_global_mut<ObjectCore>(ref.self);
|
|
463
|
+
object.allow_ungated_transfer = true;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/// Create a LinearTransferRef for a one-time transfer. This requires that the owner at the
|
|
467
|
+
/// time of generation is the owner at the time of transferring.
|
|
468
|
+
public fun generate_linear_transfer_ref(ref: &TransferRef): LinearTransferRef acquires ObjectCore {
|
|
469
|
+
assert!(!exists<Untransferable>(ref.self), error::permission_denied(EOBJECT_NOT_TRANSFERRABLE));
|
|
470
|
+
let owner = owner(Object<ObjectCore> { inner: ref.self });
|
|
471
|
+
LinearTransferRef {
|
|
472
|
+
self: ref.self,
|
|
473
|
+
owner,
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/// Transfer to the destination address using a LinearTransferRef.
|
|
478
|
+
public fun transfer_with_ref(ref: LinearTransferRef, to: address) acquires ObjectCore, TombStone {
|
|
479
|
+
assert!(!exists<Untransferable>(ref.self), error::permission_denied(EOBJECT_NOT_TRANSFERRABLE));
|
|
480
|
+
|
|
481
|
+
// Undo soft burn if present as we don't want the original owner to be able to reclaim by calling unburn later.
|
|
482
|
+
if (exists<TombStone>(ref.self)) {
|
|
483
|
+
let TombStone { original_owner: _ } = move_from<TombStone>(ref.self);
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
let object = borrow_global_mut<ObjectCore>(ref.self);
|
|
487
|
+
assert!(
|
|
488
|
+
object.owner == ref.owner,
|
|
489
|
+
error::permission_denied(ENOT_OBJECT_OWNER),
|
|
490
|
+
);
|
|
491
|
+
if (std::features::module_event_migration_enabled()) {
|
|
492
|
+
event::emit(
|
|
493
|
+
Transfer {
|
|
494
|
+
object: ref.self,
|
|
495
|
+
from: object.owner,
|
|
496
|
+
to,
|
|
497
|
+
},
|
|
498
|
+
);
|
|
499
|
+
};
|
|
500
|
+
event::emit_event(
|
|
501
|
+
&mut object.transfer_events,
|
|
502
|
+
TransferEvent {
|
|
503
|
+
object: ref.self,
|
|
504
|
+
from: object.owner,
|
|
505
|
+
to,
|
|
506
|
+
},
|
|
507
|
+
);
|
|
508
|
+
object.owner = to;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/// Entry function that can be used to transfer, if allow_ungated_transfer is set true.
|
|
512
|
+
public entry fun transfer_call(
|
|
513
|
+
owner: &signer,
|
|
514
|
+
object: address,
|
|
515
|
+
to: address,
|
|
516
|
+
) acquires ObjectCore {
|
|
517
|
+
transfer_raw(owner, object, to)
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
/// Transfers ownership of the object (and all associated resources) at the specified address
|
|
521
|
+
/// for Object<T> to the "to" address.
|
|
522
|
+
public entry fun transfer<T: key>(
|
|
523
|
+
owner: &signer,
|
|
524
|
+
object: Object<T>,
|
|
525
|
+
to: address,
|
|
526
|
+
) acquires ObjectCore {
|
|
527
|
+
transfer_raw(owner, object.inner, to)
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
/// Attempts to transfer using addresses only. Transfers the given object if
|
|
531
|
+
/// allow_ungated_transfer is set true. Note, that this allows the owner of a nested object to
|
|
532
|
+
/// transfer that object, so long as allow_ungated_transfer is enabled at each stage in the
|
|
533
|
+
/// hierarchy.
|
|
534
|
+
public fun transfer_raw(
|
|
535
|
+
owner: &signer,
|
|
536
|
+
object: address,
|
|
537
|
+
to: address,
|
|
538
|
+
) acquires ObjectCore {
|
|
539
|
+
let owner_address = signer::address_of(owner);
|
|
540
|
+
verify_ungated_and_descendant(owner_address, object);
|
|
541
|
+
transfer_raw_inner(object, to);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
inline fun transfer_raw_inner(object: address, to: address) acquires ObjectCore {
|
|
545
|
+
let object_core = borrow_global_mut<ObjectCore>(object);
|
|
546
|
+
if (object_core.owner != to) {
|
|
547
|
+
if (std::features::module_event_migration_enabled()) {
|
|
548
|
+
event::emit(
|
|
549
|
+
Transfer {
|
|
550
|
+
object,
|
|
551
|
+
from: object_core.owner,
|
|
552
|
+
to,
|
|
553
|
+
},
|
|
554
|
+
);
|
|
555
|
+
};
|
|
556
|
+
event::emit_event(
|
|
557
|
+
&mut object_core.transfer_events,
|
|
558
|
+
TransferEvent {
|
|
559
|
+
object,
|
|
560
|
+
from: object_core.owner,
|
|
561
|
+
to,
|
|
562
|
+
},
|
|
563
|
+
);
|
|
564
|
+
object_core.owner = to;
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
/// Transfer the given object to another object. See `transfer` for more information.
|
|
569
|
+
public entry fun transfer_to_object<O: key, T: key>(
|
|
570
|
+
owner: &signer,
|
|
571
|
+
object: Object<O>,
|
|
572
|
+
to: Object<T>,
|
|
573
|
+
) acquires ObjectCore {
|
|
574
|
+
transfer(owner, object, to.inner)
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/// This checks that the destination address is eventually owned by the owner and that each
|
|
578
|
+
/// object between the two allows for ungated transfers. Note, this is limited to a depth of 8
|
|
579
|
+
/// objects may have cyclic dependencies.
|
|
580
|
+
fun verify_ungated_and_descendant(owner: address, destination: address) acquires ObjectCore {
|
|
581
|
+
let current_address = destination;
|
|
582
|
+
assert!(
|
|
583
|
+
exists<ObjectCore>(current_address),
|
|
584
|
+
error::not_found(EOBJECT_DOES_NOT_EXIST),
|
|
585
|
+
);
|
|
586
|
+
|
|
587
|
+
let object = borrow_global<ObjectCore>(current_address);
|
|
588
|
+
assert!(
|
|
589
|
+
object.allow_ungated_transfer,
|
|
590
|
+
error::permission_denied(ENO_UNGATED_TRANSFERS),
|
|
591
|
+
);
|
|
592
|
+
|
|
593
|
+
let current_address = object.owner;
|
|
594
|
+
let count = 0;
|
|
595
|
+
while (owner != current_address) {
|
|
596
|
+
count = count + 1;
|
|
597
|
+
assert!(count < MAXIMUM_OBJECT_NESTING, error::out_of_range(EMAXIMUM_NESTING));
|
|
598
|
+
// At this point, the first object exists and so the more likely case is that the
|
|
599
|
+
// object's owner is not an object. So we return a more sensible error.
|
|
600
|
+
assert!(
|
|
601
|
+
exists<ObjectCore>(current_address),
|
|
602
|
+
error::permission_denied(ENOT_OBJECT_OWNER),
|
|
603
|
+
);
|
|
604
|
+
let object = borrow_global<ObjectCore>(current_address);
|
|
605
|
+
assert!(
|
|
606
|
+
object.allow_ungated_transfer,
|
|
607
|
+
error::permission_denied(ENO_UNGATED_TRANSFERS),
|
|
608
|
+
);
|
|
609
|
+
current_address = object.owner;
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/// Forcefully transfer an unwanted object to BURN_ADDRESS, ignoring whether ungated_transfer is allowed.
|
|
614
|
+
/// This only works for objects directly owned and for simplicity does not apply to indirectly owned objects.
|
|
615
|
+
/// Original owners can reclaim burnt objects any time in the future by calling unburn.
|
|
616
|
+
public entry fun burn<T: key>(owner: &signer, object: Object<T>) acquires ObjectCore {
|
|
617
|
+
let original_owner = signer::address_of(owner);
|
|
618
|
+
assert!(is_owner(object, original_owner), error::permission_denied(ENOT_OBJECT_OWNER));
|
|
619
|
+
let object_addr = object.inner;
|
|
620
|
+
move_to(&create_signer(object_addr), TombStone { original_owner });
|
|
621
|
+
transfer_raw_inner(object_addr, BURN_ADDRESS);
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
/// Allow origin owners to reclaim any objects they previous burnt.
|
|
625
|
+
public entry fun unburn<T: key>(
|
|
626
|
+
original_owner: &signer,
|
|
627
|
+
object: Object<T>,
|
|
628
|
+
) acquires TombStone, ObjectCore {
|
|
629
|
+
let object_addr = object.inner;
|
|
630
|
+
assert!(exists<TombStone>(object_addr), error::invalid_argument(EOBJECT_NOT_BURNT));
|
|
631
|
+
|
|
632
|
+
let TombStone { original_owner: original_owner_addr } = move_from<TombStone>(object_addr);
|
|
633
|
+
assert!(original_owner_addr == signer::address_of(original_owner), error::permission_denied(ENOT_OBJECT_OWNER));
|
|
634
|
+
transfer_raw_inner(object_addr, original_owner_addr);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
/// Accessors
|
|
638
|
+
/// Return true if ungated transfer is allowed.
|
|
639
|
+
public fun ungated_transfer_allowed<T: key>(object: Object<T>): bool acquires ObjectCore {
|
|
640
|
+
assert!(
|
|
641
|
+
exists<ObjectCore>(object.inner),
|
|
642
|
+
error::not_found(EOBJECT_DOES_NOT_EXIST),
|
|
643
|
+
);
|
|
644
|
+
borrow_global<ObjectCore>(object.inner).allow_ungated_transfer
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
/// Return the current owner.
|
|
648
|
+
public fun owner<T: key>(object: Object<T>): address acquires ObjectCore {
|
|
649
|
+
assert!(
|
|
650
|
+
exists<ObjectCore>(object.inner),
|
|
651
|
+
error::not_found(EOBJECT_DOES_NOT_EXIST),
|
|
652
|
+
);
|
|
653
|
+
borrow_global<ObjectCore>(object.inner).owner
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
/// Return true if the provided address is the current owner.
|
|
657
|
+
public fun is_owner<T: key>(object: Object<T>, owner: address): bool acquires ObjectCore {
|
|
658
|
+
owner(object) == owner
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/// Return true if the provided address has indirect or direct ownership of the provided object.
|
|
662
|
+
public fun owns<T: key>(object: Object<T>, owner: address): bool acquires ObjectCore {
|
|
663
|
+
let current_address = object_address(&object);
|
|
664
|
+
if (current_address == owner) {
|
|
665
|
+
return true
|
|
666
|
+
};
|
|
667
|
+
|
|
668
|
+
assert!(
|
|
669
|
+
exists<ObjectCore>(current_address),
|
|
670
|
+
error::not_found(EOBJECT_DOES_NOT_EXIST),
|
|
671
|
+
);
|
|
672
|
+
|
|
673
|
+
let object = borrow_global<ObjectCore>(current_address);
|
|
674
|
+
let current_address = object.owner;
|
|
675
|
+
|
|
676
|
+
let count = 0;
|
|
677
|
+
while (owner != current_address) {
|
|
678
|
+
count = count + 1;
|
|
679
|
+
assert!(count < MAXIMUM_OBJECT_NESTING, error::out_of_range(EMAXIMUM_NESTING));
|
|
680
|
+
if (!exists<ObjectCore>(current_address)) {
|
|
681
|
+
return false
|
|
682
|
+
};
|
|
683
|
+
|
|
684
|
+
let object = borrow_global<ObjectCore>(current_address);
|
|
685
|
+
current_address = object.owner;
|
|
686
|
+
};
|
|
687
|
+
true
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
/// Returns the root owner of an object. As objects support nested ownership, it can be useful
|
|
691
|
+
/// to determine the identity of the starting point of ownership.
|
|
692
|
+
public fun root_owner<T: key>(object: Object<T>): address acquires ObjectCore {
|
|
693
|
+
let obj_owner = owner(object);
|
|
694
|
+
while (is_object(obj_owner)) {
|
|
695
|
+
obj_owner = owner(address_to_object<ObjectCore>(obj_owner));
|
|
696
|
+
};
|
|
697
|
+
obj_owner
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
#[test_only]
|
|
701
|
+
use std::option::{Self, Option};
|
|
702
|
+
|
|
703
|
+
#[test_only]
|
|
704
|
+
const EHERO_DOES_NOT_EXIST: u64 = 0x100;
|
|
705
|
+
#[test_only]
|
|
706
|
+
const EWEAPON_DOES_NOT_EXIST: u64 = 0x101;
|
|
707
|
+
|
|
708
|
+
#[test_only]
|
|
709
|
+
struct HeroEquipEvent has drop, store {
|
|
710
|
+
weapon_id: Option<Object<Weapon>>,
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
#[test_only]
|
|
714
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
715
|
+
struct Hero has key {
|
|
716
|
+
equip_events: event::EventHandle<HeroEquipEvent>,
|
|
717
|
+
weapon: Option<Object<Weapon>>,
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
#[test_only]
|
|
721
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
722
|
+
struct Weapon has key {}
|
|
723
|
+
|
|
724
|
+
#[test_only]
|
|
725
|
+
public fun create_hero(creator: &signer): (ConstructorRef, Object<Hero>) acquires ObjectCore {
|
|
726
|
+
let hero_constructor_ref = create_named_object(creator, b"hero");
|
|
727
|
+
let hero_signer = generate_signer(&hero_constructor_ref);
|
|
728
|
+
let guid_for_equip_events = create_guid(&hero_signer);
|
|
729
|
+
move_to(
|
|
730
|
+
&hero_signer,
|
|
731
|
+
Hero {
|
|
732
|
+
weapon: option::none(),
|
|
733
|
+
equip_events: event::new_event_handle(guid_for_equip_events),
|
|
734
|
+
},
|
|
735
|
+
);
|
|
736
|
+
|
|
737
|
+
let hero = object_from_constructor_ref<Hero>(&hero_constructor_ref);
|
|
738
|
+
(hero_constructor_ref, hero)
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
#[test_only]
|
|
742
|
+
public fun create_weapon(creator: &signer): (ConstructorRef, Object<Weapon>) {
|
|
743
|
+
let weapon_constructor_ref = create_named_object(creator, b"weapon");
|
|
744
|
+
let weapon_signer = generate_signer(&weapon_constructor_ref);
|
|
745
|
+
move_to(&weapon_signer, Weapon {});
|
|
746
|
+
let weapon = object_from_constructor_ref<Weapon>(&weapon_constructor_ref);
|
|
747
|
+
(weapon_constructor_ref, weapon)
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
#[test_only]
|
|
751
|
+
public fun hero_equip(
|
|
752
|
+
owner: &signer,
|
|
753
|
+
hero: Object<Hero>,
|
|
754
|
+
weapon: Object<Weapon>,
|
|
755
|
+
) acquires Hero, ObjectCore {
|
|
756
|
+
transfer_to_object(owner, weapon, hero);
|
|
757
|
+
let hero_obj = borrow_global_mut<Hero>(object_address(&hero));
|
|
758
|
+
option::fill(&mut hero_obj.weapon, weapon);
|
|
759
|
+
event::emit_event(
|
|
760
|
+
&mut hero_obj.equip_events,
|
|
761
|
+
HeroEquipEvent { weapon_id: option::some(weapon) },
|
|
762
|
+
);
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
#[test_only]
|
|
766
|
+
public fun hero_unequip(
|
|
767
|
+
owner: &signer,
|
|
768
|
+
hero: Object<Hero>,
|
|
769
|
+
weapon: Object<Weapon>,
|
|
770
|
+
) acquires Hero, ObjectCore {
|
|
771
|
+
transfer(owner, weapon, signer::address_of(owner));
|
|
772
|
+
let hero = borrow_global_mut<Hero>(object_address(&hero));
|
|
773
|
+
option::extract(&mut hero.weapon);
|
|
774
|
+
event::emit_event(
|
|
775
|
+
&mut hero.equip_events,
|
|
776
|
+
HeroEquipEvent { weapon_id: option::none() },
|
|
777
|
+
);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
#[test(creator = @0x123)]
|
|
781
|
+
fun test_object(creator: &signer) acquires Hero, ObjectCore {
|
|
782
|
+
let (_, hero) = create_hero(creator);
|
|
783
|
+
let (_, weapon) = create_weapon(creator);
|
|
784
|
+
|
|
785
|
+
assert!(owns(weapon, @0x123), 0);
|
|
786
|
+
hero_equip(creator, hero, weapon);
|
|
787
|
+
assert!(owns(weapon, @0x123), 1);
|
|
788
|
+
hero_unequip(creator, hero, weapon);
|
|
789
|
+
assert!(root_owner(hero) == @0x123, 2);
|
|
790
|
+
assert!(root_owner(weapon) == @0x123, 3);
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
#[test(creator = @0x123)]
|
|
794
|
+
fun test_linear_transfer(creator: &signer) acquires ObjectCore, TombStone {
|
|
795
|
+
let (hero_constructor, hero) = create_hero(creator);
|
|
796
|
+
assert!(root_owner(hero) == @0x123, 0);
|
|
797
|
+
|
|
798
|
+
let transfer_ref = generate_transfer_ref(&hero_constructor);
|
|
799
|
+
let linear_transfer_ref = generate_linear_transfer_ref(&transfer_ref);
|
|
800
|
+
transfer_with_ref(linear_transfer_ref, @0x456);
|
|
801
|
+
assert!(owner(hero) == @0x456, 1);
|
|
802
|
+
assert!(owns(hero, @0x456), 2);
|
|
803
|
+
assert!(root_owner(hero) == @0x456, 3);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
#[test(creator = @0x123)]
|
|
807
|
+
#[expected_failure(abort_code = 0x50004, location = Self)]
|
|
808
|
+
fun test_bad_linear_transfer(creator: &signer) acquires ObjectCore, TombStone {
|
|
809
|
+
let (hero_constructor, hero) = create_hero(creator);
|
|
810
|
+
let transfer_ref = generate_transfer_ref(&hero_constructor);
|
|
811
|
+
let linear_transfer_ref_good = generate_linear_transfer_ref(&transfer_ref);
|
|
812
|
+
// This will contain the address of the creator
|
|
813
|
+
let linear_transfer_ref_bad = generate_linear_transfer_ref(&transfer_ref);
|
|
814
|
+
transfer_with_ref(linear_transfer_ref_good, @0x456);
|
|
815
|
+
assert!(owner(hero) == @0x456, 0);
|
|
816
|
+
transfer_with_ref(linear_transfer_ref_bad, @0x789);
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
#[test(creator = @0x123)]
|
|
820
|
+
#[expected_failure(abort_code = 0x10008, location = Self)]
|
|
821
|
+
fun test_cannot_unburn_after_transfer_with_ref(creator: &signer) acquires ObjectCore, TombStone {
|
|
822
|
+
let (hero_constructor, hero) = create_hero(creator);
|
|
823
|
+
burn(creator, hero);
|
|
824
|
+
let transfer_ref = generate_transfer_ref(&hero_constructor);
|
|
825
|
+
transfer_with_ref(generate_linear_transfer_ref(&transfer_ref), @0x456);
|
|
826
|
+
unburn(creator, hero);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
#[test(fx = @std)]
|
|
830
|
+
fun test_correct_auid() {
|
|
831
|
+
let auid1 = aptos_framework::transaction_context::generate_auid_address();
|
|
832
|
+
let bytes = aptos_framework::transaction_context::get_transaction_hash();
|
|
833
|
+
std::vector::push_back(&mut bytes, 1);
|
|
834
|
+
std::vector::push_back(&mut bytes, 0);
|
|
835
|
+
std::vector::push_back(&mut bytes, 0);
|
|
836
|
+
std::vector::push_back(&mut bytes, 0);
|
|
837
|
+
std::vector::push_back(&mut bytes, 0);
|
|
838
|
+
std::vector::push_back(&mut bytes, 0);
|
|
839
|
+
std::vector::push_back(&mut bytes, 0);
|
|
840
|
+
std::vector::push_back(&mut bytes, 0);
|
|
841
|
+
std::vector::push_back(&mut bytes, DERIVE_AUID_ADDRESS_SCHEME);
|
|
842
|
+
let auid2 = aptos_framework::from_bcs::to_address(std::hash::sha3_256(bytes));
|
|
843
|
+
assert!(auid1 == auid2, 0);
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
#[test(fx = @std)]
|
|
847
|
+
fun test_correct_derived_object_address(fx: signer) {
|
|
848
|
+
use std::features;
|
|
849
|
+
use aptos_framework::object;
|
|
850
|
+
let feature = features::get_object_native_derived_address_feature();
|
|
851
|
+
|
|
852
|
+
let source = @0x12345;
|
|
853
|
+
let derive_from = @0x7890;
|
|
854
|
+
|
|
855
|
+
features::change_feature_flags_for_testing(&fx, vector[], vector[feature]);
|
|
856
|
+
let in_move = object::create_user_derived_object_address(source, derive_from);
|
|
857
|
+
|
|
858
|
+
features::change_feature_flags_for_testing(&fx, vector[feature], vector[]);
|
|
859
|
+
let in_native = object::create_user_derived_object_address(source, derive_from);
|
|
860
|
+
|
|
861
|
+
assert!(in_move == in_native, 0);
|
|
862
|
+
|
|
863
|
+
let bytes = bcs::to_bytes(&source);
|
|
864
|
+
vector::append(&mut bytes, bcs::to_bytes(&derive_from));
|
|
865
|
+
vector::push_back(&mut bytes, OBJECT_DERIVED_SCHEME);
|
|
866
|
+
let directly = from_bcs::to_address(hash::sha3_256(bytes));
|
|
867
|
+
|
|
868
|
+
assert!(directly == in_native, 0);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
#[test(creator = @0x123)]
|
|
872
|
+
fun test_burn_and_unburn(creator: &signer) acquires ObjectCore, TombStone {
|
|
873
|
+
let (hero_constructor, hero) = create_hero(creator);
|
|
874
|
+
// Freeze the object.
|
|
875
|
+
let transfer_ref = generate_transfer_ref(&hero_constructor);
|
|
876
|
+
disable_ungated_transfer(&transfer_ref);
|
|
877
|
+
|
|
878
|
+
// Owner should be able to burn, despite ungated transfer disallowed.
|
|
879
|
+
burn(creator, hero);
|
|
880
|
+
assert!(owner(hero) == BURN_ADDRESS, 0);
|
|
881
|
+
assert!(!ungated_transfer_allowed(hero), 0);
|
|
882
|
+
|
|
883
|
+
// Owner should be able to reclaim.
|
|
884
|
+
unburn(creator, hero);
|
|
885
|
+
assert!(owner(hero) == signer::address_of(creator), 0);
|
|
886
|
+
// Object still frozen.
|
|
887
|
+
assert!(!ungated_transfer_allowed(hero), 0);
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
#[test(creator = @0x123)]
|
|
891
|
+
#[expected_failure(abort_code = 0x50004, location = Self)]
|
|
892
|
+
fun test_burn_indirectly_owned_should_fail(creator: &signer) acquires ObjectCore {
|
|
893
|
+
let (_, hero) = create_hero(creator);
|
|
894
|
+
let (_, weapon) = create_weapon(creator);
|
|
895
|
+
transfer_to_object(creator, weapon, hero);
|
|
896
|
+
|
|
897
|
+
// Owner should be not be able to burn weapon directly.
|
|
898
|
+
assert!(owner(weapon) == object_address(&hero), 0);
|
|
899
|
+
assert!(owns(weapon, signer::address_of(creator)), 0);
|
|
900
|
+
burn(creator, weapon);
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
#[test(creator = @0x123)]
|
|
904
|
+
#[expected_failure(abort_code = 0x10008, location = Self)]
|
|
905
|
+
fun test_unburn_object_not_burnt_should_fail(creator: &signer) acquires ObjectCore, TombStone {
|
|
906
|
+
let (_, hero) = create_hero(creator);
|
|
907
|
+
unburn(creator, hero);
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
#[test_only]
|
|
911
|
+
fun create_simple_object(creator: &signer, seed: vector<u8>): Object<ObjectCore> {
|
|
912
|
+
object_from_constructor_ref<ObjectCore>(&create_named_object(creator, seed))
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
#[test(creator = @0x123)]
|
|
916
|
+
#[expected_failure(abort_code = 131078, location = Self)]
|
|
917
|
+
fun test_exceeding_maximum_object_nesting_owns_should_fail(creator: &signer) acquires ObjectCore {
|
|
918
|
+
let obj1 = create_simple_object(creator, b"1");
|
|
919
|
+
let obj2 = create_simple_object(creator, b"2");
|
|
920
|
+
let obj3 = create_simple_object(creator, b"3");
|
|
921
|
+
let obj4 = create_simple_object(creator, b"4");
|
|
922
|
+
let obj5 = create_simple_object(creator, b"5");
|
|
923
|
+
let obj6 = create_simple_object(creator, b"6");
|
|
924
|
+
let obj7 = create_simple_object(creator, b"7");
|
|
925
|
+
let obj8 = create_simple_object(creator, b"8");
|
|
926
|
+
let obj9 = create_simple_object(creator, b"9");
|
|
927
|
+
|
|
928
|
+
transfer(creator, obj1, object_address(&obj2));
|
|
929
|
+
transfer(creator, obj2, object_address(&obj3));
|
|
930
|
+
transfer(creator, obj3, object_address(&obj4));
|
|
931
|
+
transfer(creator, obj4, object_address(&obj5));
|
|
932
|
+
transfer(creator, obj5, object_address(&obj6));
|
|
933
|
+
transfer(creator, obj6, object_address(&obj7));
|
|
934
|
+
transfer(creator, obj7, object_address(&obj8));
|
|
935
|
+
transfer(creator, obj8, object_address(&obj9));
|
|
936
|
+
|
|
937
|
+
assert!(owns(obj9, signer::address_of(creator)), 1);
|
|
938
|
+
assert!(owns(obj8, signer::address_of(creator)), 1);
|
|
939
|
+
assert!(owns(obj7, signer::address_of(creator)), 1);
|
|
940
|
+
assert!(owns(obj6, signer::address_of(creator)), 1);
|
|
941
|
+
assert!(owns(obj5, signer::address_of(creator)), 1);
|
|
942
|
+
assert!(owns(obj4, signer::address_of(creator)), 1);
|
|
943
|
+
assert!(owns(obj3, signer::address_of(creator)), 1);
|
|
944
|
+
assert!(owns(obj2, signer::address_of(creator)), 1);
|
|
945
|
+
|
|
946
|
+
// Calling `owns` should fail as the nesting is too deep.
|
|
947
|
+
assert!(owns(obj1, signer::address_of(creator)), 1);
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
#[test(creator = @0x123)]
|
|
951
|
+
#[expected_failure(abort_code = 131078, location = Self)]
|
|
952
|
+
fun test_exceeding_maximum_object_nesting_transfer_should_fail(creator: &signer) acquires ObjectCore {
|
|
953
|
+
let obj1 = create_simple_object(creator, b"1");
|
|
954
|
+
let obj2 = create_simple_object(creator, b"2");
|
|
955
|
+
let obj3 = create_simple_object(creator, b"3");
|
|
956
|
+
let obj4 = create_simple_object(creator, b"4");
|
|
957
|
+
let obj5 = create_simple_object(creator, b"5");
|
|
958
|
+
let obj6 = create_simple_object(creator, b"6");
|
|
959
|
+
let obj7 = create_simple_object(creator, b"7");
|
|
960
|
+
let obj8 = create_simple_object(creator, b"8");
|
|
961
|
+
let obj9 = create_simple_object(creator, b"9");
|
|
962
|
+
|
|
963
|
+
transfer(creator, obj1, object_address(&obj2));
|
|
964
|
+
transfer(creator, obj2, object_address(&obj3));
|
|
965
|
+
transfer(creator, obj3, object_address(&obj4));
|
|
966
|
+
transfer(creator, obj4, object_address(&obj5));
|
|
967
|
+
transfer(creator, obj5, object_address(&obj6));
|
|
968
|
+
transfer(creator, obj6, object_address(&obj7));
|
|
969
|
+
transfer(creator, obj7, object_address(&obj8));
|
|
970
|
+
transfer(creator, obj8, object_address(&obj9));
|
|
971
|
+
|
|
972
|
+
// This should fail as the nesting is too deep.
|
|
973
|
+
transfer(creator, obj1, @0x1);
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
#[test(creator = @0x123)]
|
|
977
|
+
#[expected_failure(abort_code = 131078, location = Self)]
|
|
978
|
+
fun test_cyclic_ownership_transfer_should_fail(creator: &signer) acquires ObjectCore {
|
|
979
|
+
let obj1 = create_simple_object(creator, b"1");
|
|
980
|
+
// This creates a cycle (self-loop) in ownership.
|
|
981
|
+
transfer(creator, obj1, object_address(&obj1));
|
|
982
|
+
// This should fails as the ownership is cyclic.
|
|
983
|
+
transfer(creator, obj1, object_address(&obj1));
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
#[test(creator = @0x123)]
|
|
987
|
+
#[expected_failure(abort_code = 131078, location = Self)]
|
|
988
|
+
fun test_cyclic_ownership_owns_should_fail(creator: &signer) acquires ObjectCore {
|
|
989
|
+
let obj1 = create_simple_object(creator, b"1");
|
|
990
|
+
// This creates a cycle (self-loop) in ownership.
|
|
991
|
+
transfer(creator, obj1, object_address(&obj1));
|
|
992
|
+
// This should fails as the ownership is cyclic.
|
|
993
|
+
let _ = owns(obj1, signer::address_of(creator));
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
#[test(creator = @0x123)]
|
|
997
|
+
#[expected_failure(abort_code = 327683, location = Self)]
|
|
998
|
+
fun test_untransferable_direct_ownership_transfer(creator: &signer) acquires ObjectCore {
|
|
999
|
+
let (hero_constructor_ref, hero) = create_hero(creator);
|
|
1000
|
+
set_untransferable(&hero_constructor_ref);
|
|
1001
|
+
transfer(creator, hero, @0x456);
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
#[test(creator = @0x123)]
|
|
1005
|
+
#[expected_failure(abort_code = 327689, location = Self)]
|
|
1006
|
+
fun test_untransferable_direct_ownership_gen_transfer_ref(creator: &signer) acquires ObjectCore {
|
|
1007
|
+
let (hero_constructor_ref, _) = create_hero(creator);
|
|
1008
|
+
set_untransferable(&hero_constructor_ref);
|
|
1009
|
+
generate_transfer_ref(&hero_constructor_ref);
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
#[test(creator = @0x123)]
|
|
1013
|
+
#[expected_failure(abort_code = 327689, location = Self)]
|
|
1014
|
+
fun test_untransferable_direct_ownership_gen_linear_transfer_ref(creator: &signer) acquires ObjectCore {
|
|
1015
|
+
let (hero_constructor_ref, _) = create_hero(creator);
|
|
1016
|
+
let transfer_ref = generate_transfer_ref(&hero_constructor_ref);
|
|
1017
|
+
set_untransferable(&hero_constructor_ref);
|
|
1018
|
+
generate_linear_transfer_ref(&transfer_ref);
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
#[test(creator = @0x123)]
|
|
1022
|
+
#[expected_failure(abort_code = 327689, location = Self)]
|
|
1023
|
+
fun test_untransferable_direct_ownership_with_linear_transfer_ref(creator: &signer) acquires ObjectCore, TombStone {
|
|
1024
|
+
let (hero_constructor_ref, _) = create_hero(creator);
|
|
1025
|
+
let transfer_ref = generate_transfer_ref(&hero_constructor_ref);
|
|
1026
|
+
let linear_transfer_ref = generate_linear_transfer_ref(&transfer_ref);
|
|
1027
|
+
set_untransferable(&hero_constructor_ref);
|
|
1028
|
+
transfer_with_ref(linear_transfer_ref, @0x456);
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
#[test(creator = @0x123)]
|
|
1032
|
+
#[expected_failure(abort_code = 327683, location = Self)]
|
|
1033
|
+
fun test_untransferable_indirect_ownership_transfer(creator: &signer) acquires ObjectCore {
|
|
1034
|
+
let (_, hero) = create_hero(creator);
|
|
1035
|
+
let (weapon_constructor_ref, weapon) = create_weapon(creator);
|
|
1036
|
+
transfer_to_object(creator, weapon, hero);
|
|
1037
|
+
set_untransferable(&weapon_constructor_ref);
|
|
1038
|
+
transfer(creator, weapon, @0x456);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
#[test(creator = @0x123)]
|
|
1042
|
+
#[expected_failure(abort_code = 327689, location = Self)]
|
|
1043
|
+
fun test_untransferable_indirect_ownership_gen_transfer_ref(creator: &signer) acquires ObjectCore {
|
|
1044
|
+
let (_, hero) = create_hero(creator);
|
|
1045
|
+
let (weapon_constructor_ref, weapon) = create_weapon(creator);
|
|
1046
|
+
transfer_to_object(creator, weapon, hero);
|
|
1047
|
+
set_untransferable(&weapon_constructor_ref);
|
|
1048
|
+
generate_transfer_ref(&weapon_constructor_ref);
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
#[test(creator = @0x123)]
|
|
1052
|
+
#[expected_failure(abort_code = 327689, location = Self)]
|
|
1053
|
+
fun test_untransferable_indirect_ownership_gen_linear_transfer_ref(creator: &signer) acquires ObjectCore {
|
|
1054
|
+
let (_, hero) = create_hero(creator);
|
|
1055
|
+
let (weapon_constructor_ref, weapon) = create_weapon(creator);
|
|
1056
|
+
transfer_to_object(creator, weapon, hero);
|
|
1057
|
+
let transfer_ref = generate_transfer_ref(&weapon_constructor_ref);
|
|
1058
|
+
set_untransferable(&weapon_constructor_ref);
|
|
1059
|
+
generate_linear_transfer_ref(&transfer_ref);
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
#[test(creator = @0x123)]
|
|
1063
|
+
#[expected_failure(abort_code = 327689, location = Self)]
|
|
1064
|
+
fun test_untransferable_indirect_ownership_with_linear_transfer_ref(creator: &signer) acquires ObjectCore, TombStone {
|
|
1065
|
+
let (_, hero) = create_hero(creator);
|
|
1066
|
+
let (weapon_constructor_ref, weapon) = create_weapon(creator);
|
|
1067
|
+
transfer_to_object(creator, weapon, hero);
|
|
1068
|
+
let transfer_ref = generate_transfer_ref(&weapon_constructor_ref);
|
|
1069
|
+
let linear_transfer_ref = generate_linear_transfer_ref(&transfer_ref);
|
|
1070
|
+
set_untransferable(&weapon_constructor_ref);
|
|
1071
|
+
transfer_with_ref(linear_transfer_ref, @0x456);
|
|
1072
|
+
}
|
|
1073
|
+
}
|