@aptos-labs/ts-sdk 3.1.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/chunk-6MMUUJHX.js.map +1 -1
- package/dist/common/cli/index.js.map +1 -1
- package/dist/common/index.js +13 -13
- package/dist/common/index.js.map +1 -1
- package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
- package/dist/esm/account/AbstractedAccount.mjs +1 -1
- package/dist/esm/account/Account.mjs +1 -1
- package/dist/esm/account/AccountUtils.mjs +1 -1
- package/dist/esm/account/DerivableAbstractedAccount.mjs +1 -1
- package/dist/esm/account/Ed25519Account.mjs +1 -1
- package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
- package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
- package/dist/esm/account/KeylessAccount.mjs +1 -1
- package/dist/esm/account/MultiEd25519Account.mjs +1 -1
- package/dist/esm/account/MultiKeyAccount.mjs +1 -1
- package/dist/esm/account/SingleKeyAccount.mjs +1 -1
- package/dist/esm/account/index.mjs +1 -1
- package/dist/esm/account/utils.mjs +1 -1
- package/dist/esm/api/account/abstraction.mjs +1 -1
- package/dist/esm/api/account.mjs +1 -1
- package/dist/esm/api/ans.mjs +1 -1
- package/dist/esm/api/aptos.mjs +1 -1
- package/dist/esm/api/coin.mjs +1 -1
- package/dist/esm/api/digitalAsset.mjs +1 -1
- package/dist/esm/api/event.mjs +1 -1
- package/dist/esm/api/faucet.mjs +1 -1
- package/dist/esm/api/fungibleAsset.mjs +1 -1
- package/dist/esm/api/general.mjs +1 -1
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/keyless.mjs +1 -1
- package/dist/esm/api/object.mjs +1 -1
- package/dist/esm/api/staking.mjs +1 -1
- package/dist/esm/api/table.mjs +1 -1
- package/dist/esm/api/transaction.mjs +1 -1
- package/dist/esm/api/transactionSubmission/build.mjs +1 -1
- package/dist/esm/api/transactionSubmission/helpers.d.mts +22 -9
- package/dist/esm/api/transactionSubmission/helpers.mjs +1 -1
- package/dist/esm/api/transactionSubmission/management.mjs +1 -1
- package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
- package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
- package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
- package/dist/esm/api/utils.mjs +1 -1
- package/dist/esm/bcs/index.mjs +1 -1
- package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
- package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
- package/dist/esm/{chunk-MML57K5H.mjs → chunk-2PF7UFKU.mjs} +2 -2
- package/dist/esm/chunk-75NVN2CG.mjs +2 -0
- package/dist/esm/{chunk-HUWKPKPQ.mjs.map → chunk-75NVN2CG.mjs.map} +1 -1
- package/dist/esm/{chunk-SLWIGOQL.mjs → chunk-JL6RR7ML.mjs} +2 -2
- package/dist/esm/{chunk-ACNHLCQQ.mjs → chunk-L3GEIX2R.mjs} +5 -5
- package/dist/esm/{chunk-ACNHLCQQ.mjs.map → chunk-L3GEIX2R.mjs.map} +1 -1
- package/dist/esm/{chunk-U3GMNXO4.mjs → chunk-LIS2GDBI.mjs} +2 -2
- package/dist/esm/{chunk-TYYVB2A6.mjs → chunk-LJEERFEH.mjs} +2 -2
- package/dist/esm/{chunk-XZ75T7Q7.mjs → chunk-O7WBNU4J.mjs} +2 -2
- package/dist/esm/{chunk-4COLMDT3.mjs → chunk-PXQPKCDD.mjs} +2 -2
- package/dist/esm/{chunk-2BOHKN33.mjs → chunk-Q4W3WJ2U.mjs} +2 -2
- package/dist/esm/chunk-QREVMGQZ.mjs +2 -0
- package/dist/esm/chunk-QREVMGQZ.mjs.map +1 -0
- package/dist/esm/{chunk-Z5URUE4U.mjs → chunk-S335GK43.mjs} +2 -2
- package/dist/esm/{chunk-MNDTFHDB.mjs → chunk-SZE4RT4B.mjs} +2 -2
- package/dist/esm/{chunk-FYYEPFML.mjs → chunk-V74WPKSY.mjs} +2 -2
- package/dist/esm/{chunk-5URUYE6H.mjs → chunk-VW26RFJ7.mjs} +2 -2
- package/dist/esm/cli/index.mjs +1 -1
- package/dist/esm/cli/localNode.mjs +1 -1
- package/dist/esm/client/core.mjs +1 -1
- package/dist/esm/client/get.mjs +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client/post.mjs +1 -1
- package/dist/esm/core/account/index.mjs +1 -1
- package/dist/esm/core/account/utils/address.mjs +1 -1
- package/dist/esm/core/account/utils/index.mjs +1 -1
- package/dist/esm/core/accountAddress.mjs +1 -1
- package/dist/esm/core/authenticationKey.mjs +1 -1
- package/dist/esm/core/crypto/abstraction.mjs +1 -1
- package/dist/esm/core/crypto/deserializationUtils.mjs +1 -1
- package/dist/esm/core/crypto/ed25519.mjs +1 -1
- package/dist/esm/core/crypto/ephemeral.mjs +1 -1
- package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
- package/dist/esm/core/crypto/index.mjs +1 -1
- package/dist/esm/core/crypto/keyless.mjs +1 -1
- package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
- package/dist/esm/core/crypto/multiKey.mjs +1 -1
- package/dist/esm/core/crypto/privateKey.mjs +1 -1
- package/dist/esm/core/crypto/proof.mjs +1 -1
- package/dist/esm/core/crypto/publicKey.mjs +1 -1
- package/dist/esm/core/crypto/secp256k1.mjs +1 -1
- package/dist/esm/core/crypto/signature.mjs +1 -1
- package/dist/esm/core/crypto/singleKey.mjs +1 -1
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/errors/index.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internal/abstraction.mjs +1 -1
- package/dist/esm/internal/account.mjs +1 -1
- package/dist/esm/internal/ans.mjs +1 -1
- package/dist/esm/internal/coin.mjs +1 -1
- package/dist/esm/internal/digitalAsset.mjs +1 -1
- package/dist/esm/internal/event.mjs +1 -1
- package/dist/esm/internal/faucet.mjs +1 -1
- package/dist/esm/internal/fungibleAsset.mjs +1 -1
- package/dist/esm/internal/general.mjs +1 -1
- package/dist/esm/internal/keyless.mjs +1 -1
- package/dist/esm/internal/object.mjs +1 -1
- package/dist/esm/internal/staking.mjs +1 -1
- package/dist/esm/internal/table.mjs +1 -1
- package/dist/esm/internal/transaction.mjs +1 -1
- package/dist/esm/internal/transactionSubmission.mjs +1 -1
- package/dist/esm/internal/utils/index.mjs +1 -1
- package/dist/esm/internal/utils/utils.mjs +1 -1
- package/dist/esm/internal/view.mjs +1 -1
- package/dist/esm/transactions/authenticator/account.mjs +1 -1
- package/dist/esm/transactions/authenticator/index.mjs +1 -1
- package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/transactions/instances/index.mjs +1 -1
- package/dist/esm/transactions/instances/moduleId.mjs +1 -1
- package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
- package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
- package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
- package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
- package/dist/esm/transactions/management/index.mjs +1 -1
- package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
- package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
- package/dist/esm/transactions/typeTag/index.mjs +1 -1
- package/dist/esm/transactions/typeTag/parser.mjs +1 -1
- package/dist/esm/types/index.mjs +1 -1
- package/dist/esm/utils/helpers.mjs +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/normalizeBundle.mjs +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +18 -19
- package/src/api/transactionSubmission/helpers.ts +26 -20
- package/src/api/transactionSubmission/submit.ts +3 -3
- package/src/version.ts +1 -1
- package/dist/esm/chunk-HUWKPKPQ.mjs +0 -2
- package/dist/esm/chunk-W4BSN6SK.mjs +0 -2
- package/dist/esm/chunk-W4BSN6SK.mjs.map +0 -1
- package/src/internal/move/jwks/build/jwk/BuildInfo.yaml +0 -56
- 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 +0 -1533
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator.move +0 -48
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator_factory.move +0 -66
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator_v2.move +0 -280
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_account.move +0 -443
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_coin.move +0 -204
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_governance.move +0 -1387
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/block.move +0 -394
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/chain_id.move +0 -41
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/chain_status.move +0 -48
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/code.move +0 -367
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/coin.move +0 -2214
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/config_buffer.move +0 -101
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/consensus_config.move +0 -77
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/create_signer.move +0 -21
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/delegation_pool.move +0 -5568
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +0 -228
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/dkg.move +0 -121
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/event.move +0 -92
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/execution_config.move +0 -66
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/function_info.move +0 -100
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/fungible_asset.move +0 -1566
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/gas_schedule.move +0 -176
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/genesis.move +0 -550
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/governance_proposal.move +0 -23
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/guid.move +0 -68
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/jwk_consensus_config.move +0 -148
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/jwks.move +0 -817
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/keyless_account.move +0 -312
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/managed_coin.move +0 -205
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/multisig_account.move +0 -2477
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/object.move +0 -1073
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/object_code_deployment.move +0 -147
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/optional_aggregator.move +0 -295
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/primary_fungible_store.move +0 -405
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness.move +0 -574
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_api_v0_config.move +0 -57
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_config.move +0 -153
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_config_seqnum.move +0 -49
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration.move +0 -237
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration_state.move +0 -132
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +0 -69
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/resource_account.move +0 -267
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/stake.move +0 -3286
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_config.move +0 -686
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_contract.move +0 -1618
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_proxy.move +0 -228
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/state_storage.move +0 -90
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/storage_gas.move +0 -622
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/system_addresses.move +0 -82
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/timestamp.move +0 -88
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_context.move +0 -262
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_fee.move +0 -457
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_validation.move +0 -501
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/util.move +0 -16
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/validator_consensus_info.move +0 -42
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/version.move +0 -115
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/vesting.move +0 -2183
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/voting.move +0 -1279
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/any.move +0 -57
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/aptos_hash.move +0 -253
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/big_vector.move +0 -469
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bls12381.move +0 -985
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bls12381_algebra.move +0 -802
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bn254_algebra.move +0 -855
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/capability.move +0 -193
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/comparator.move +0 -173
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/copyable_any.move +0 -45
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/crypto_algebra.move +0 -351
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/debug.move +0 -278
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ed25519.move +0 -262
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/fixed_point64.move +0 -447
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/from_bcs.move +0 -91
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math128.move +0 -381
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math64.move +0 -336
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math_fixed.move +0 -139
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math_fixed64.move +0 -142
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/multi_ed25519.move +0 -482
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/pool_u64.move +0 -571
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/pool_u64_unbound.move +0 -270
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255.move +0 -1310
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +0 -253
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +0 -234
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +0 -158
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/secp256k1.move +0 -114
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/simple_map.move +0 -319
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/smart_table.move +0 -769
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/smart_vector.move +0 -766
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/string_utils.move +0 -148
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/table.move +0 -152
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/table_with_length.move +0 -141
- package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/type_info.move +0 -351
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/acl.move +0 -46
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/bcs.move +0 -27
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/bit_vector.move +0 -239
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/error.move +0 -88
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/features.move +0 -780
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/fixed_point32.move +0 -295
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/hash.move +0 -8
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/option.move +0 -356
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/signer.move +0 -21
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/string.move +0 -93
- package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/vector.move +0 -669
- package/src/internal/move/jwks/build/jwk/sources/main.move +0 -20
- /package/dist/esm/{chunk-MML57K5H.mjs.map → chunk-2PF7UFKU.mjs.map} +0 -0
- /package/dist/esm/{chunk-SLWIGOQL.mjs.map → chunk-JL6RR7ML.mjs.map} +0 -0
- /package/dist/esm/{chunk-U3GMNXO4.mjs.map → chunk-LIS2GDBI.mjs.map} +0 -0
- /package/dist/esm/{chunk-TYYVB2A6.mjs.map → chunk-LJEERFEH.mjs.map} +0 -0
- /package/dist/esm/{chunk-XZ75T7Q7.mjs.map → chunk-O7WBNU4J.mjs.map} +0 -0
- /package/dist/esm/{chunk-4COLMDT3.mjs.map → chunk-PXQPKCDD.mjs.map} +0 -0
- /package/dist/esm/{chunk-2BOHKN33.mjs.map → chunk-Q4W3WJ2U.mjs.map} +0 -0
- /package/dist/esm/{chunk-Z5URUE4U.mjs.map → chunk-S335GK43.mjs.map} +0 -0
- /package/dist/esm/{chunk-MNDTFHDB.mjs.map → chunk-SZE4RT4B.mjs.map} +0 -0
- /package/dist/esm/{chunk-FYYEPFML.mjs.map → chunk-V74WPKSY.mjs.map} +0 -0
- /package/dist/esm/{chunk-5URUYE6H.mjs.map → chunk-VW26RFJ7.mjs.map} +0 -0
|
@@ -1,817 +0,0 @@
|
|
|
1
|
-
/// JWK functions and structs.
|
|
2
|
-
///
|
|
3
|
-
/// Note: An important design constraint for this module is that the JWK consensus Rust code is unable to
|
|
4
|
-
/// spawn a VM and make a Move function call. Instead, the JWK consensus Rust code will have to directly
|
|
5
|
-
/// write some of the resources in this file. As a result, the structs in this file are declared so as to
|
|
6
|
-
/// have a simple layout which is easily accessible in Rust.
|
|
7
|
-
module aptos_framework::jwks {
|
|
8
|
-
use std::bcs;
|
|
9
|
-
use std::error;
|
|
10
|
-
use std::option;
|
|
11
|
-
use std::option::Option;
|
|
12
|
-
use std::signer;
|
|
13
|
-
use std::string;
|
|
14
|
-
use std::string::{String, utf8};
|
|
15
|
-
use std::vector;
|
|
16
|
-
use aptos_std::comparator::{compare_u8_vector, is_greater_than, is_equal};
|
|
17
|
-
use aptos_std::copyable_any;
|
|
18
|
-
use aptos_std::copyable_any::Any;
|
|
19
|
-
use aptos_framework::chain_status;
|
|
20
|
-
use aptos_framework::config_buffer;
|
|
21
|
-
use aptos_framework::event::emit;
|
|
22
|
-
use aptos_framework::reconfiguration;
|
|
23
|
-
use aptos_framework::system_addresses;
|
|
24
|
-
#[test_only]
|
|
25
|
-
use aptos_framework::account::create_account_for_test;
|
|
26
|
-
|
|
27
|
-
friend aptos_framework::genesis;
|
|
28
|
-
friend aptos_framework::reconfiguration_with_dkg;
|
|
29
|
-
|
|
30
|
-
/// We limit the size of a `PatchedJWKs` resource installed by a dapp owner for federated keyless accounts.
|
|
31
|
-
/// Note: If too large, validators waste work reading it for invalid TXN signatures.
|
|
32
|
-
const MAX_FEDERATED_JWKS_SIZE_BYTES: u64 = 2 * 1024; // 2 KiB
|
|
33
|
-
|
|
34
|
-
const EUNEXPECTED_EPOCH: u64 = 1;
|
|
35
|
-
const EUNEXPECTED_VERSION: u64 = 2;
|
|
36
|
-
const EUNKNOWN_PATCH_VARIANT: u64 = 3;
|
|
37
|
-
const EUNKNOWN_JWK_VARIANT: u64 = 4;
|
|
38
|
-
const EISSUER_NOT_FOUND: u64 = 5;
|
|
39
|
-
const EJWK_ID_NOT_FOUND: u64 = 6;
|
|
40
|
-
const EINSTALL_FEDERATED_JWKS_AT_APTOS_FRAMEWORK: u64 = 7;
|
|
41
|
-
const EFEDERATED_JWKS_TOO_LARGE: u64 = 8;
|
|
42
|
-
|
|
43
|
-
const ENATIVE_MISSING_RESOURCE_VALIDATOR_SET: u64 = 0x0101;
|
|
44
|
-
const ENATIVE_MISSING_RESOURCE_OBSERVED_JWKS: u64 = 0x0102;
|
|
45
|
-
const ENATIVE_INCORRECT_VERSION: u64 = 0x0103;
|
|
46
|
-
const ENATIVE_MULTISIG_VERIFICATION_FAILED: u64 = 0x0104;
|
|
47
|
-
const ENATIVE_NOT_ENOUGH_VOTING_POWER: u64 = 0x0105;
|
|
48
|
-
|
|
49
|
-
/// An OIDC provider.
|
|
50
|
-
struct OIDCProvider has copy, drop, store {
|
|
51
|
-
/// The utf-8 encoded issuer string. E.g., b"https://www.facebook.com".
|
|
52
|
-
name: vector<u8>,
|
|
53
|
-
|
|
54
|
-
/// The ut8-8 encoded OpenID configuration URL of the provider.
|
|
55
|
-
/// E.g., b"https://www.facebook.com/.well-known/openid-configuration/".
|
|
56
|
-
config_url: vector<u8>,
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/// A list of OIDC providers whose JWKs should be watched by validators. Maintained by governance proposals.
|
|
60
|
-
struct SupportedOIDCProviders has copy, drop, key, store {
|
|
61
|
-
providers: vector<OIDCProvider>,
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/// An JWK variant that represents the JWKs which were observed but not yet supported by Aptos.
|
|
65
|
-
/// Observing `UnsupportedJWK`s means the providers adopted a new key type/format, and the system should be updated.
|
|
66
|
-
struct UnsupportedJWK has copy, drop, store {
|
|
67
|
-
id: vector<u8>,
|
|
68
|
-
payload: vector<u8>,
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/// A JWK variant where `kty` is `RSA`.
|
|
72
|
-
struct RSA_JWK has copy, drop, store {
|
|
73
|
-
kid: String,
|
|
74
|
-
kty: String,
|
|
75
|
-
alg: String,
|
|
76
|
-
e: String,
|
|
77
|
-
n: String,
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/// A JSON web key.
|
|
81
|
-
struct JWK has copy, drop, store {
|
|
82
|
-
/// A `JWK` variant packed as an `Any`.
|
|
83
|
-
/// Currently the variant type is one of the following.
|
|
84
|
-
/// - `RSA_JWK`
|
|
85
|
-
/// - `UnsupportedJWK`
|
|
86
|
-
variant: Any,
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/// A provider and its `JWK`s.
|
|
90
|
-
struct ProviderJWKs has copy, drop, store {
|
|
91
|
-
/// The utf-8 encoding of the issuer string (e.g., "https://www.facebook.com").
|
|
92
|
-
issuer: vector<u8>,
|
|
93
|
-
|
|
94
|
-
/// A version number is needed by JWK consensus to dedup the updates.
|
|
95
|
-
/// e.g, when on chain version = 5, multiple nodes can propose an update with version = 6.
|
|
96
|
-
/// Bumped every time the JWKs for the current issuer is updated.
|
|
97
|
-
/// The Rust authenticator only uses the latest version.
|
|
98
|
-
version: u64,
|
|
99
|
-
|
|
100
|
-
/// Vector of `JWK`'s sorted by their unique ID (from `get_jwk_id`) in dictionary order.
|
|
101
|
-
jwks: vector<JWK>,
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/// Multiple `ProviderJWKs` objects, indexed by issuer and key ID.
|
|
105
|
-
struct AllProvidersJWKs has copy, drop, store {
|
|
106
|
-
/// Vector of `ProviderJWKs` sorted by `ProviderJWKs::issuer` in dictionary order.
|
|
107
|
-
entries: vector<ProviderJWKs>,
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/// The `AllProvidersJWKs` that validators observed and agreed on.
|
|
111
|
-
struct ObservedJWKs has copy, drop, key, store {
|
|
112
|
-
jwks: AllProvidersJWKs,
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
#[event]
|
|
116
|
-
/// When `ObservedJWKs` is updated, this event is sent to resync the JWK consensus state in all validators.
|
|
117
|
-
struct ObservedJWKsUpdated has drop, store {
|
|
118
|
-
epoch: u64,
|
|
119
|
-
jwks: AllProvidersJWKs,
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/// A small edit or patch that is applied to a `AllProvidersJWKs` to obtain `PatchedJWKs`.
|
|
123
|
-
struct Patch has copy, drop, store {
|
|
124
|
-
/// A `Patch` variant packed as an `Any`.
|
|
125
|
-
/// Currently the variant type is one of the following.
|
|
126
|
-
/// - `PatchRemoveAll`
|
|
127
|
-
/// - `PatchRemoveIssuer`
|
|
128
|
-
/// - `PatchRemoveJWK`
|
|
129
|
-
/// - `PatchUpsertJWK`
|
|
130
|
-
variant: Any,
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/// A `Patch` variant to remove all JWKs.
|
|
134
|
-
struct PatchRemoveAll has copy, drop, store {}
|
|
135
|
-
|
|
136
|
-
/// A `Patch` variant to remove an issuer and all its JWKs.
|
|
137
|
-
struct PatchRemoveIssuer has copy, drop, store {
|
|
138
|
-
issuer: vector<u8>,
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/// A `Patch` variant to remove a specific JWK of an issuer.
|
|
142
|
-
struct PatchRemoveJWK has copy, drop, store {
|
|
143
|
-
issuer: vector<u8>,
|
|
144
|
-
jwk_id: vector<u8>,
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/// A `Patch` variant to upsert a JWK for an issuer.
|
|
148
|
-
struct PatchUpsertJWK has copy, drop, store {
|
|
149
|
-
issuer: vector<u8>,
|
|
150
|
-
jwk: JWK,
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/// A sequence of `Patch` objects that are applied *one by one* to the `ObservedJWKs`.
|
|
154
|
-
///
|
|
155
|
-
/// Maintained by governance proposals.
|
|
156
|
-
struct Patches has key {
|
|
157
|
-
patches: vector<Patch>,
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/// The result of applying the `Patches` to the `ObservedJWKs`.
|
|
161
|
-
/// This is what applications should consume.
|
|
162
|
-
struct PatchedJWKs has drop, key {
|
|
163
|
-
jwks: AllProvidersJWKs,
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/// JWKs for federated keyless accounts are stored in this resource.
|
|
167
|
-
struct FederatedJWKs has drop, key {
|
|
168
|
-
jwks: AllProvidersJWKs,
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
//
|
|
172
|
-
// Structs end.
|
|
173
|
-
// Functions begin.
|
|
174
|
-
//
|
|
175
|
-
|
|
176
|
-
/// Called by a federated keyless dapp owner to install the JWKs for the federated OIDC provider (e.g., Auth0, AWS
|
|
177
|
-
/// Cognito, etc).
|
|
178
|
-
///
|
|
179
|
-
/// For type-safety, we explicitly use a `struct FederatedJWKs { jwks: AllProviderJWKs }` instead of
|
|
180
|
-
/// reusing `PatchedJWKs { jwks: AllProviderJWKs }`, which is a JWK-consensus-specific struct. We'd
|
|
181
|
-
/// need to be careful how we read it in Rust (but BCS serialization should be the same).
|
|
182
|
-
public fun patch_federated_jwks(jwk_owner: &signer, patches: vector<Patch>) acquires FederatedJWKs {
|
|
183
|
-
// Prevents accidental calls in 0x1::jwks that install federated JWKs at the Aptos framework address.
|
|
184
|
-
assert!(!system_addresses::is_aptos_framework_address(signer::address_of(jwk_owner)),
|
|
185
|
-
error::invalid_argument(EINSTALL_FEDERATED_JWKS_AT_APTOS_FRAMEWORK)
|
|
186
|
-
);
|
|
187
|
-
|
|
188
|
-
let jwk_addr = signer::address_of(jwk_owner);
|
|
189
|
-
if (!exists<FederatedJWKs>(jwk_addr)) {
|
|
190
|
-
move_to(jwk_owner, FederatedJWKs { jwks: AllProvidersJWKs { entries: vector[] } });
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
let fed_jwks = borrow_global_mut<FederatedJWKs>(jwk_addr);
|
|
194
|
-
vector::for_each_ref(&patches, |obj|{
|
|
195
|
-
let patch: &Patch = obj;
|
|
196
|
-
apply_patch(&mut fed_jwks.jwks, *patch);
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
// TODO: Can we check the size more efficiently instead of serializing it via BCS?
|
|
200
|
-
let num_bytes = vector::length(&bcs::to_bytes(fed_jwks));
|
|
201
|
-
assert!(num_bytes < MAX_FEDERATED_JWKS_SIZE_BYTES, error::invalid_argument(EFEDERATED_JWKS_TOO_LARGE));
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/// Get a JWK by issuer and key ID from the `PatchedJWKs`.
|
|
205
|
-
/// Abort if such a JWK does not exist.
|
|
206
|
-
/// More convenient to call from Rust, since it does not wrap the JWK in an `Option`.
|
|
207
|
-
public fun get_patched_jwk(issuer: vector<u8>, jwk_id: vector<u8>): JWK acquires PatchedJWKs {
|
|
208
|
-
option::extract(&mut try_get_patched_jwk(issuer, jwk_id))
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/// Get a JWK by issuer and key ID from the `PatchedJWKs`, if it exists.
|
|
212
|
-
/// More convenient to call from Move, since it does not abort.
|
|
213
|
-
public fun try_get_patched_jwk(issuer: vector<u8>, jwk_id: vector<u8>): Option<JWK> acquires PatchedJWKs {
|
|
214
|
-
let jwks = &borrow_global<PatchedJWKs>(@aptos_framework).jwks;
|
|
215
|
-
try_get_jwk_by_issuer(jwks, issuer, jwk_id)
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/// Deprecated by `upsert_oidc_provider_for_next_epoch()`.
|
|
219
|
-
///
|
|
220
|
-
/// TODO: update all the tests that reference this function, then disable this function.
|
|
221
|
-
public fun upsert_oidc_provider(fx: &signer, name: vector<u8>, config_url: vector<u8>): Option<vector<u8>> acquires SupportedOIDCProviders {
|
|
222
|
-
system_addresses::assert_aptos_framework(fx);
|
|
223
|
-
chain_status::assert_genesis();
|
|
224
|
-
|
|
225
|
-
let provider_set = borrow_global_mut<SupportedOIDCProviders>(@aptos_framework);
|
|
226
|
-
|
|
227
|
-
let old_config_url= remove_oidc_provider_internal(provider_set, name);
|
|
228
|
-
vector::push_back(&mut provider_set.providers, OIDCProvider { name, config_url });
|
|
229
|
-
old_config_url
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/// Used in on-chain governances to update the supported OIDC providers, effective starting next epoch.
|
|
233
|
-
/// Example usage:
|
|
234
|
-
/// ```
|
|
235
|
-
/// aptos_framework::jwks::upsert_oidc_provider_for_next_epoch(
|
|
236
|
-
/// &framework_signer,
|
|
237
|
-
/// b"https://accounts.google.com",
|
|
238
|
-
/// b"https://accounts.google.com/.well-known/openid-configuration"
|
|
239
|
-
/// );
|
|
240
|
-
/// aptos_framework::aptos_governance::reconfigure(&framework_signer);
|
|
241
|
-
/// ```
|
|
242
|
-
public fun upsert_oidc_provider_for_next_epoch(fx: &signer, name: vector<u8>, config_url: vector<u8>): Option<vector<u8>> acquires SupportedOIDCProviders {
|
|
243
|
-
system_addresses::assert_aptos_framework(fx);
|
|
244
|
-
|
|
245
|
-
let provider_set = if (config_buffer::does_exist<SupportedOIDCProviders>()) {
|
|
246
|
-
config_buffer::extract<SupportedOIDCProviders>()
|
|
247
|
-
} else {
|
|
248
|
-
*borrow_global_mut<SupportedOIDCProviders>(@aptos_framework)
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
let old_config_url = remove_oidc_provider_internal(&mut provider_set, name);
|
|
252
|
-
vector::push_back(&mut provider_set.providers, OIDCProvider { name, config_url });
|
|
253
|
-
config_buffer::upsert(provider_set);
|
|
254
|
-
old_config_url
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/// Deprecated by `remove_oidc_provider_for_next_epoch()`.
|
|
258
|
-
///
|
|
259
|
-
/// TODO: update all the tests that reference this function, then disable this function.
|
|
260
|
-
public fun remove_oidc_provider(fx: &signer, name: vector<u8>): Option<vector<u8>> acquires SupportedOIDCProviders {
|
|
261
|
-
system_addresses::assert_aptos_framework(fx);
|
|
262
|
-
chain_status::assert_genesis();
|
|
263
|
-
|
|
264
|
-
let provider_set = borrow_global_mut<SupportedOIDCProviders>(@aptos_framework);
|
|
265
|
-
remove_oidc_provider_internal(provider_set, name)
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/// Used in on-chain governances to update the supported OIDC providers, effective starting next epoch.
|
|
269
|
-
/// Example usage:
|
|
270
|
-
/// ```
|
|
271
|
-
/// aptos_framework::jwks::remove_oidc_provider_for_next_epoch(
|
|
272
|
-
/// &framework_signer,
|
|
273
|
-
/// b"https://accounts.google.com",
|
|
274
|
-
/// );
|
|
275
|
-
/// aptos_framework::aptos_governance::reconfigure(&framework_signer);
|
|
276
|
-
/// ```
|
|
277
|
-
public fun remove_oidc_provider_for_next_epoch(fx: &signer, name: vector<u8>): Option<vector<u8>> acquires SupportedOIDCProviders {
|
|
278
|
-
system_addresses::assert_aptos_framework(fx);
|
|
279
|
-
|
|
280
|
-
let provider_set = if (config_buffer::does_exist<SupportedOIDCProviders>()) {
|
|
281
|
-
config_buffer::extract<SupportedOIDCProviders>()
|
|
282
|
-
} else {
|
|
283
|
-
*borrow_global_mut<SupportedOIDCProviders>(@aptos_framework)
|
|
284
|
-
};
|
|
285
|
-
let ret = remove_oidc_provider_internal(&mut provider_set, name);
|
|
286
|
-
config_buffer::upsert(provider_set);
|
|
287
|
-
ret
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/// Only used in reconfigurations to apply the pending `SupportedOIDCProviders`, if there is any.
|
|
291
|
-
public(friend) fun on_new_epoch(framework: &signer) acquires SupportedOIDCProviders {
|
|
292
|
-
system_addresses::assert_aptos_framework(framework);
|
|
293
|
-
if (config_buffer::does_exist<SupportedOIDCProviders>()) {
|
|
294
|
-
let new_config = config_buffer::extract<SupportedOIDCProviders>();
|
|
295
|
-
if (exists<SupportedOIDCProviders>(@aptos_framework)) {
|
|
296
|
-
*borrow_global_mut<SupportedOIDCProviders>(@aptos_framework) = new_config;
|
|
297
|
-
} else {
|
|
298
|
-
move_to(framework, new_config);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/// Set the `Patches`. Only called in governance proposals.
|
|
304
|
-
public fun set_patches(fx: &signer, patches: vector<Patch>) acquires Patches, PatchedJWKs, ObservedJWKs {
|
|
305
|
-
system_addresses::assert_aptos_framework(fx);
|
|
306
|
-
borrow_global_mut<Patches>(@aptos_framework).patches = patches;
|
|
307
|
-
regenerate_patched_jwks();
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/// Create a `Patch` that removes all entries.
|
|
311
|
-
public fun new_patch_remove_all(): Patch {
|
|
312
|
-
Patch {
|
|
313
|
-
variant: copyable_any::pack(PatchRemoveAll {}),
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/// Create a `Patch` that removes the entry of a given issuer, if exists.
|
|
318
|
-
public fun new_patch_remove_issuer(issuer: vector<u8>): Patch {
|
|
319
|
-
Patch {
|
|
320
|
-
variant: copyable_any::pack(PatchRemoveIssuer { issuer }),
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/// Create a `Patch` that removes the entry of a given issuer, if exists.
|
|
325
|
-
public fun new_patch_remove_jwk(issuer: vector<u8>, jwk_id: vector<u8>): Patch {
|
|
326
|
-
Patch {
|
|
327
|
-
variant: copyable_any::pack(PatchRemoveJWK { issuer, jwk_id })
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/// Create a `Patch` that upserts a JWK into an issuer's JWK set.
|
|
332
|
-
public fun new_patch_upsert_jwk(issuer: vector<u8>, jwk: JWK): Patch {
|
|
333
|
-
Patch {
|
|
334
|
-
variant: copyable_any::pack(PatchUpsertJWK { issuer, jwk })
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/// Create a `JWK` of variant `RSA_JWK`.
|
|
339
|
-
public fun new_rsa_jwk(kid: String, alg: String, e: String, n: String): JWK {
|
|
340
|
-
JWK {
|
|
341
|
-
variant: copyable_any::pack(RSA_JWK {
|
|
342
|
-
kid,
|
|
343
|
-
kty: utf8(b"RSA"),
|
|
344
|
-
e,
|
|
345
|
-
n,
|
|
346
|
-
alg,
|
|
347
|
-
}),
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/// Create a `JWK` of variant `UnsupportedJWK`.
|
|
352
|
-
public fun new_unsupported_jwk(id: vector<u8>, payload: vector<u8>): JWK {
|
|
353
|
-
JWK {
|
|
354
|
-
variant: copyable_any::pack(UnsupportedJWK { id, payload })
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
/// Initialize some JWK resources. Should only be invoked by genesis.
|
|
359
|
-
public fun initialize(fx: &signer) {
|
|
360
|
-
system_addresses::assert_aptos_framework(fx);
|
|
361
|
-
move_to(fx, SupportedOIDCProviders { providers: vector[] });
|
|
362
|
-
move_to(fx, ObservedJWKs { jwks: AllProvidersJWKs { entries: vector[] } });
|
|
363
|
-
move_to(fx, Patches { patches: vector[] });
|
|
364
|
-
move_to(fx, PatchedJWKs { jwks: AllProvidersJWKs { entries: vector[] } });
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
/// Helper function that removes an OIDC provider from the `SupportedOIDCProviders`.
|
|
368
|
-
/// Returns the old config URL of the provider, if any, as an `Option`.
|
|
369
|
-
fun remove_oidc_provider_internal(provider_set: &mut SupportedOIDCProviders, name: vector<u8>): Option<vector<u8>> {
|
|
370
|
-
let (name_exists, idx) = vector::find(&provider_set.providers, |obj| {
|
|
371
|
-
let provider: &OIDCProvider = obj;
|
|
372
|
-
provider.name == name
|
|
373
|
-
});
|
|
374
|
-
|
|
375
|
-
if (name_exists) {
|
|
376
|
-
let old_provider = vector::swap_remove(&mut provider_set.providers, idx);
|
|
377
|
-
option::some(old_provider.config_url)
|
|
378
|
-
} else {
|
|
379
|
-
option::none()
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/// Only used by validators to publish their observed JWK update.
|
|
384
|
-
///
|
|
385
|
-
/// NOTE: It is assumed verification has been done to ensure each update is quorum-certified,
|
|
386
|
-
/// and its `version` equals to the on-chain version + 1.
|
|
387
|
-
public fun upsert_into_observed_jwks(fx: &signer, provider_jwks_vec: vector<ProviderJWKs>) acquires ObservedJWKs, PatchedJWKs, Patches {
|
|
388
|
-
system_addresses::assert_aptos_framework(fx);
|
|
389
|
-
let observed_jwks = borrow_global_mut<ObservedJWKs>(@aptos_framework);
|
|
390
|
-
vector::for_each(provider_jwks_vec, |obj| {
|
|
391
|
-
let provider_jwks: ProviderJWKs = obj;
|
|
392
|
-
upsert_provider_jwks(&mut observed_jwks.jwks, provider_jwks);
|
|
393
|
-
});
|
|
394
|
-
|
|
395
|
-
let epoch = reconfiguration::current_epoch();
|
|
396
|
-
emit(ObservedJWKsUpdated { epoch, jwks: observed_jwks.jwks });
|
|
397
|
-
regenerate_patched_jwks();
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/// Only used by governance to delete an issuer from `ObservedJWKs`, if it exists.
|
|
401
|
-
///
|
|
402
|
-
/// Return the potentially existing `ProviderJWKs` of the given issuer.
|
|
403
|
-
public fun remove_issuer_from_observed_jwks(fx: &signer, issuer: vector<u8>): Option<ProviderJWKs> acquires ObservedJWKs, PatchedJWKs, Patches {
|
|
404
|
-
system_addresses::assert_aptos_framework(fx);
|
|
405
|
-
let observed_jwks = borrow_global_mut<ObservedJWKs>(@aptos_framework);
|
|
406
|
-
let old_value = remove_issuer(&mut observed_jwks.jwks, issuer);
|
|
407
|
-
|
|
408
|
-
let epoch = reconfiguration::current_epoch();
|
|
409
|
-
emit(ObservedJWKsUpdated { epoch, jwks: observed_jwks.jwks });
|
|
410
|
-
regenerate_patched_jwks();
|
|
411
|
-
|
|
412
|
-
old_value
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/// Regenerate `PatchedJWKs` from `ObservedJWKs` and `Patches` and save the result.
|
|
416
|
-
fun regenerate_patched_jwks() acquires PatchedJWKs, Patches, ObservedJWKs {
|
|
417
|
-
let jwks = borrow_global<ObservedJWKs>(@aptos_framework).jwks;
|
|
418
|
-
let patches = borrow_global<Patches>(@aptos_framework);
|
|
419
|
-
vector::for_each_ref(&patches.patches, |obj|{
|
|
420
|
-
let patch: &Patch = obj;
|
|
421
|
-
apply_patch(&mut jwks, *patch);
|
|
422
|
-
});
|
|
423
|
-
*borrow_global_mut<PatchedJWKs>(@aptos_framework) = PatchedJWKs { jwks };
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
/// Get a JWK by issuer and key ID from an `AllProvidersJWKs`, if it exists.
|
|
427
|
-
fun try_get_jwk_by_issuer(jwks: &AllProvidersJWKs, issuer: vector<u8>, jwk_id: vector<u8>): Option<JWK> {
|
|
428
|
-
let (issuer_found, index) = vector::find(&jwks.entries, |obj| {
|
|
429
|
-
let provider_jwks: &ProviderJWKs = obj;
|
|
430
|
-
issuer == provider_jwks.issuer
|
|
431
|
-
});
|
|
432
|
-
|
|
433
|
-
if (issuer_found) {
|
|
434
|
-
try_get_jwk_by_id(vector::borrow(&jwks.entries, index), jwk_id)
|
|
435
|
-
} else {
|
|
436
|
-
option::none()
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
/// Get a JWK by key ID from a `ProviderJWKs`, if it exists.
|
|
441
|
-
fun try_get_jwk_by_id(provider_jwks: &ProviderJWKs, jwk_id: vector<u8>): Option<JWK> {
|
|
442
|
-
let (jwk_id_found, index) = vector::find(&provider_jwks.jwks, |obj|{
|
|
443
|
-
let jwk: &JWK = obj;
|
|
444
|
-
jwk_id == get_jwk_id(jwk)
|
|
445
|
-
});
|
|
446
|
-
|
|
447
|
-
if (jwk_id_found) {
|
|
448
|
-
option::some(*vector::borrow(&provider_jwks.jwks, index))
|
|
449
|
-
} else {
|
|
450
|
-
option::none()
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
/// Get the ID of a JWK.
|
|
455
|
-
fun get_jwk_id(jwk: &JWK): vector<u8> {
|
|
456
|
-
let variant_type_name = *string::bytes(copyable_any::type_name(&jwk.variant));
|
|
457
|
-
if (variant_type_name == b"0x1::jwks::RSA_JWK") {
|
|
458
|
-
let rsa = copyable_any::unpack<RSA_JWK>(jwk.variant);
|
|
459
|
-
*string::bytes(&rsa.kid)
|
|
460
|
-
} else if (variant_type_name == b"0x1::jwks::UnsupportedJWK") {
|
|
461
|
-
let unsupported = copyable_any::unpack<UnsupportedJWK>(jwk.variant);
|
|
462
|
-
unsupported.id
|
|
463
|
-
} else {
|
|
464
|
-
abort(error::invalid_argument(EUNKNOWN_JWK_VARIANT))
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
/// Upsert a `ProviderJWKs` into an `AllProvidersJWKs`. If this upsert replaced an existing entry, return it.
|
|
469
|
-
/// Maintains the sorted-by-issuer invariant in `AllProvidersJWKs`.
|
|
470
|
-
fun upsert_provider_jwks(jwks: &mut AllProvidersJWKs, provider_jwks: ProviderJWKs): Option<ProviderJWKs> {
|
|
471
|
-
// NOTE: Using a linear-time search here because we do not expect too many providers.
|
|
472
|
-
let found = false;
|
|
473
|
-
let index = 0;
|
|
474
|
-
let num_entries = vector::length(&jwks.entries);
|
|
475
|
-
while (index < num_entries) {
|
|
476
|
-
let cur_entry = vector::borrow(&jwks.entries, index);
|
|
477
|
-
let comparison = compare_u8_vector(provider_jwks.issuer, cur_entry.issuer);
|
|
478
|
-
if (is_greater_than(&comparison)) {
|
|
479
|
-
index = index + 1;
|
|
480
|
-
} else {
|
|
481
|
-
found = is_equal(&comparison);
|
|
482
|
-
break
|
|
483
|
-
}
|
|
484
|
-
};
|
|
485
|
-
|
|
486
|
-
// Now if `found == true`, `index` points to the JWK we want to update/remove; otherwise, `index` points to
|
|
487
|
-
// where we want to insert.
|
|
488
|
-
let ret = if (found) {
|
|
489
|
-
let entry = vector::borrow_mut(&mut jwks.entries, index);
|
|
490
|
-
let old_entry = option::some(*entry);
|
|
491
|
-
*entry = provider_jwks;
|
|
492
|
-
old_entry
|
|
493
|
-
} else {
|
|
494
|
-
vector::insert(&mut jwks.entries, index, provider_jwks);
|
|
495
|
-
option::none()
|
|
496
|
-
};
|
|
497
|
-
|
|
498
|
-
ret
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
/// Remove the entry of an issuer from a `AllProvidersJWKs` and return the entry, if exists.
|
|
502
|
-
/// Maintains the sorted-by-issuer invariant in `AllProvidersJWKs`.
|
|
503
|
-
fun remove_issuer(jwks: &mut AllProvidersJWKs, issuer: vector<u8>): Option<ProviderJWKs> {
|
|
504
|
-
let (found, index) = vector::find(&jwks.entries, |obj| {
|
|
505
|
-
let provider_jwk_set: &ProviderJWKs = obj;
|
|
506
|
-
provider_jwk_set.issuer == issuer
|
|
507
|
-
});
|
|
508
|
-
|
|
509
|
-
let ret = if (found) {
|
|
510
|
-
option::some(vector::remove(&mut jwks.entries, index))
|
|
511
|
-
} else {
|
|
512
|
-
option::none()
|
|
513
|
-
};
|
|
514
|
-
|
|
515
|
-
ret
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
/// Upsert a `JWK` into a `ProviderJWKs`. If this upsert replaced an existing entry, return it.
|
|
519
|
-
fun upsert_jwk(set: &mut ProviderJWKs, jwk: JWK): Option<JWK> {
|
|
520
|
-
let found = false;
|
|
521
|
-
let index = 0;
|
|
522
|
-
let num_entries = vector::length(&set.jwks);
|
|
523
|
-
while (index < num_entries) {
|
|
524
|
-
let cur_entry = vector::borrow(&set.jwks, index);
|
|
525
|
-
let comparison = compare_u8_vector(get_jwk_id(&jwk), get_jwk_id(cur_entry));
|
|
526
|
-
if (is_greater_than(&comparison)) {
|
|
527
|
-
index = index + 1;
|
|
528
|
-
} else {
|
|
529
|
-
found = is_equal(&comparison);
|
|
530
|
-
break
|
|
531
|
-
}
|
|
532
|
-
};
|
|
533
|
-
|
|
534
|
-
// Now if `found == true`, `index` points to the JWK we want to update/remove; otherwise, `index` points to
|
|
535
|
-
// where we want to insert.
|
|
536
|
-
let ret = if (found) {
|
|
537
|
-
let entry = vector::borrow_mut(&mut set.jwks, index);
|
|
538
|
-
let old_entry = option::some(*entry);
|
|
539
|
-
*entry = jwk;
|
|
540
|
-
old_entry
|
|
541
|
-
} else {
|
|
542
|
-
vector::insert(&mut set.jwks, index, jwk);
|
|
543
|
-
option::none()
|
|
544
|
-
};
|
|
545
|
-
|
|
546
|
-
ret
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
/// Remove the entry of a key ID from a `ProviderJWKs` and return the entry, if exists.
|
|
550
|
-
fun remove_jwk(jwks: &mut ProviderJWKs, jwk_id: vector<u8>): Option<JWK> {
|
|
551
|
-
let (found, index) = vector::find(&jwks.jwks, |obj| {
|
|
552
|
-
let jwk: &JWK = obj;
|
|
553
|
-
jwk_id == get_jwk_id(jwk)
|
|
554
|
-
});
|
|
555
|
-
|
|
556
|
-
let ret = if (found) {
|
|
557
|
-
option::some(vector::remove(&mut jwks.jwks, index))
|
|
558
|
-
} else {
|
|
559
|
-
option::none()
|
|
560
|
-
};
|
|
561
|
-
|
|
562
|
-
ret
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
/// Modify an `AllProvidersJWKs` object with a `Patch`.
|
|
566
|
-
/// Maintains the sorted-by-issuer invariant in `AllProvidersJWKs`.
|
|
567
|
-
fun apply_patch(jwks: &mut AllProvidersJWKs, patch: Patch) {
|
|
568
|
-
let variant_type_name = *string::bytes(copyable_any::type_name(&patch.variant));
|
|
569
|
-
if (variant_type_name == b"0x1::jwks::PatchRemoveAll") {
|
|
570
|
-
jwks.entries = vector[];
|
|
571
|
-
} else if (variant_type_name == b"0x1::jwks::PatchRemoveIssuer") {
|
|
572
|
-
let cmd = copyable_any::unpack<PatchRemoveIssuer>(patch.variant);
|
|
573
|
-
remove_issuer(jwks, cmd.issuer);
|
|
574
|
-
} else if (variant_type_name == b"0x1::jwks::PatchRemoveJWK") {
|
|
575
|
-
let cmd = copyable_any::unpack<PatchRemoveJWK>(patch.variant);
|
|
576
|
-
// TODO: This is inefficient: we remove the issuer, modify its JWKs & and reinsert the updated issuer. Why
|
|
577
|
-
// not just update it in place?
|
|
578
|
-
let existing_jwk_set = remove_issuer(jwks, cmd.issuer);
|
|
579
|
-
if (option::is_some(&existing_jwk_set)) {
|
|
580
|
-
let jwk_set = option::extract(&mut existing_jwk_set);
|
|
581
|
-
remove_jwk(&mut jwk_set, cmd.jwk_id);
|
|
582
|
-
upsert_provider_jwks(jwks, jwk_set);
|
|
583
|
-
};
|
|
584
|
-
} else if (variant_type_name == b"0x1::jwks::PatchUpsertJWK") {
|
|
585
|
-
let cmd = copyable_any::unpack<PatchUpsertJWK>(patch.variant);
|
|
586
|
-
// TODO: This is inefficient: we remove the issuer, modify its JWKs & and reinsert the updated issuer. Why
|
|
587
|
-
// not just update it in place?
|
|
588
|
-
let existing_jwk_set = remove_issuer(jwks, cmd.issuer);
|
|
589
|
-
let jwk_set = if (option::is_some(&existing_jwk_set)) {
|
|
590
|
-
option::extract(&mut existing_jwk_set)
|
|
591
|
-
} else {
|
|
592
|
-
ProviderJWKs {
|
|
593
|
-
version: 0,
|
|
594
|
-
issuer: cmd.issuer,
|
|
595
|
-
jwks: vector[],
|
|
596
|
-
}
|
|
597
|
-
};
|
|
598
|
-
upsert_jwk(&mut jwk_set, cmd.jwk);
|
|
599
|
-
upsert_provider_jwks(jwks, jwk_set);
|
|
600
|
-
} else {
|
|
601
|
-
abort(std::error::invalid_argument(EUNKNOWN_PATCH_VARIANT))
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
//
|
|
606
|
-
// Functions end.
|
|
607
|
-
// Tests begin.
|
|
608
|
-
//
|
|
609
|
-
|
|
610
|
-
#[test_only]
|
|
611
|
-
fun initialize_for_test(aptos_framework: &signer) {
|
|
612
|
-
create_account_for_test(@aptos_framework);
|
|
613
|
-
reconfiguration::initialize_for_test(aptos_framework);
|
|
614
|
-
initialize(aptos_framework);
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
#[test(fx = @aptos_framework)]
|
|
618
|
-
fun test_observed_jwks_operations(fx: &signer) acquires ObservedJWKs, PatchedJWKs, Patches {
|
|
619
|
-
initialize_for_test(fx);
|
|
620
|
-
let jwk_0 = new_unsupported_jwk(b"key_id_0", b"key_payload_0");
|
|
621
|
-
let jwk_1 = new_unsupported_jwk(b"key_id_1", b"key_payload_1");
|
|
622
|
-
let jwk_2 = new_unsupported_jwk(b"key_id_2", b"key_payload_2");
|
|
623
|
-
let jwk_3 = new_unsupported_jwk(b"key_id_3", b"key_payload_3");
|
|
624
|
-
let jwk_4 = new_unsupported_jwk(b"key_id_4", b"key_payload_4");
|
|
625
|
-
let expected = AllProvidersJWKs { entries: vector[] };
|
|
626
|
-
assert!(expected == borrow_global<ObservedJWKs>(@aptos_framework).jwks, 1);
|
|
627
|
-
|
|
628
|
-
let alice_jwks_v1 = ProviderJWKs {
|
|
629
|
-
issuer: b"alice",
|
|
630
|
-
version: 1,
|
|
631
|
-
jwks: vector[jwk_0, jwk_1],
|
|
632
|
-
};
|
|
633
|
-
let bob_jwks_v1 = ProviderJWKs{
|
|
634
|
-
issuer: b"bob",
|
|
635
|
-
version: 1,
|
|
636
|
-
jwks: vector[jwk_2, jwk_3],
|
|
637
|
-
};
|
|
638
|
-
upsert_into_observed_jwks(fx, vector[bob_jwks_v1]);
|
|
639
|
-
upsert_into_observed_jwks(fx, vector[alice_jwks_v1]);
|
|
640
|
-
let expected = AllProvidersJWKs { entries: vector[
|
|
641
|
-
alice_jwks_v1,
|
|
642
|
-
bob_jwks_v1,
|
|
643
|
-
] };
|
|
644
|
-
assert!(expected == borrow_global<ObservedJWKs>(@aptos_framework).jwks, 2);
|
|
645
|
-
|
|
646
|
-
let alice_jwks_v2 = ProviderJWKs {
|
|
647
|
-
issuer: b"alice",
|
|
648
|
-
version: 2,
|
|
649
|
-
jwks: vector[jwk_1, jwk_4],
|
|
650
|
-
};
|
|
651
|
-
upsert_into_observed_jwks(fx, vector[alice_jwks_v2]);
|
|
652
|
-
let expected = AllProvidersJWKs { entries: vector[
|
|
653
|
-
alice_jwks_v2,
|
|
654
|
-
bob_jwks_v1,
|
|
655
|
-
] };
|
|
656
|
-
assert!(expected == borrow_global<ObservedJWKs>(@aptos_framework).jwks, 3);
|
|
657
|
-
|
|
658
|
-
remove_issuer_from_observed_jwks(fx, b"alice");
|
|
659
|
-
let expected = AllProvidersJWKs { entries: vector[bob_jwks_v1] };
|
|
660
|
-
assert!(expected == borrow_global<ObservedJWKs>(@aptos_framework).jwks, 4);
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
#[test]
|
|
664
|
-
fun test_apply_patch() {
|
|
665
|
-
let jwks = AllProvidersJWKs {
|
|
666
|
-
entries: vector[
|
|
667
|
-
ProviderJWKs {
|
|
668
|
-
issuer: b"alice",
|
|
669
|
-
version: 111,
|
|
670
|
-
jwks: vector[
|
|
671
|
-
new_rsa_jwk(
|
|
672
|
-
utf8(b"e4adfb436b9e197e2e1106af2c842284e4986aff"), // kid
|
|
673
|
-
utf8(b"RS256"), // alg
|
|
674
|
-
utf8(b"AQAB"), // e
|
|
675
|
-
utf8(b"psply8S991RswM0JQJwv51fooFFvZUtYdL8avyKObshyzj7oJuJD8vkf5DKJJF1XOGi6Wv2D-U4b3htgrVXeOjAvaKTYtrQVUG_Txwjebdm2EvBJ4R6UaOULjavcSkb8VzW4l4AmP_yWoidkHq8n6vfHt9alDAONILi7jPDzRC7NvnHQ_x0hkRVh_OAmOJCpkgb0gx9-U8zSBSmowQmvw15AZ1I0buYZSSugY7jwNS2U716oujAiqtRkC7kg4gPouW_SxMleeo8PyRsHpYCfBME66m-P8Zr9Fh1Qgmqg4cWdy_6wUuNc1cbVY_7w1BpHZtZCNeQ56AHUgUFmo2LAQQ"), // n
|
|
676
|
-
),
|
|
677
|
-
new_unsupported_jwk(b"key_id_0", b"key_content_0"),
|
|
678
|
-
],
|
|
679
|
-
},
|
|
680
|
-
ProviderJWKs {
|
|
681
|
-
issuer: b"bob",
|
|
682
|
-
version: 222,
|
|
683
|
-
jwks: vector[
|
|
684
|
-
new_unsupported_jwk(b"key_id_1", b"key_content_1"),
|
|
685
|
-
new_unsupported_jwk(b"key_id_2", b"key_content_2"),
|
|
686
|
-
],
|
|
687
|
-
},
|
|
688
|
-
],
|
|
689
|
-
};
|
|
690
|
-
|
|
691
|
-
let patch = new_patch_remove_issuer(b"alice");
|
|
692
|
-
apply_patch(&mut jwks, patch);
|
|
693
|
-
assert!(jwks == AllProvidersJWKs {
|
|
694
|
-
entries: vector[
|
|
695
|
-
ProviderJWKs {
|
|
696
|
-
issuer: b"bob",
|
|
697
|
-
version: 222,
|
|
698
|
-
jwks: vector[
|
|
699
|
-
new_unsupported_jwk(b"key_id_1", b"key_content_1"),
|
|
700
|
-
new_unsupported_jwk(b"key_id_2", b"key_content_2"),
|
|
701
|
-
],
|
|
702
|
-
},
|
|
703
|
-
],
|
|
704
|
-
}, 1);
|
|
705
|
-
|
|
706
|
-
let patch = new_patch_remove_jwk(b"bob", b"key_id_1");
|
|
707
|
-
apply_patch(&mut jwks, patch);
|
|
708
|
-
assert!(jwks == AllProvidersJWKs {
|
|
709
|
-
entries: vector[
|
|
710
|
-
ProviderJWKs {
|
|
711
|
-
issuer: b"bob",
|
|
712
|
-
version: 222,
|
|
713
|
-
jwks: vector[
|
|
714
|
-
new_unsupported_jwk(b"key_id_2", b"key_content_2"),
|
|
715
|
-
],
|
|
716
|
-
},
|
|
717
|
-
],
|
|
718
|
-
}, 1);
|
|
719
|
-
|
|
720
|
-
let patch = new_patch_upsert_jwk(b"carl", new_rsa_jwk(
|
|
721
|
-
utf8(b"0ad1fec78504f447bae65bcf5afaedb65eec9e81"), // kid
|
|
722
|
-
utf8(b"RS256"), // alg
|
|
723
|
-
utf8(b"AQAB"), // e
|
|
724
|
-
utf8(b"sm72oBH-R2Rqt4hkjp66tz5qCtq42TMnVgZg2Pdm_zs7_-EoFyNs9sD1MKsZAFaBPXBHDiWywyaHhLgwETLN9hlJIZPzGCEtV3mXJFSYG-8L6t3kyKi9X1lUTZzbmNpE0tf-eMW-3gs3VQSBJQOcQnuiANxbSXwS3PFmi173C_5fDSuC1RoYGT6X3JqLc3DWUmBGucuQjPaUF0w6LMqEIy0W_WYbW7HImwANT6dT52T72md0JWZuAKsRRnRr_bvaUX8_e3K8Pb1K_t3dD6WSLvtmEfUnGQgLynVl3aV5sRYC0Hy_IkRgoxl2fd8AaZT1X_rdPexYpx152Pl_CHJ79Q"), // n
|
|
725
|
-
));
|
|
726
|
-
apply_patch(&mut jwks, patch);
|
|
727
|
-
let edit = new_patch_upsert_jwk(b"bob", new_unsupported_jwk(b"key_id_2", b"key_content_2b"));
|
|
728
|
-
apply_patch(&mut jwks, edit);
|
|
729
|
-
let edit = new_patch_upsert_jwk(b"alice", new_unsupported_jwk(b"key_id_3", b"key_content_3"));
|
|
730
|
-
apply_patch(&mut jwks, edit);
|
|
731
|
-
let edit = new_patch_upsert_jwk(b"alice", new_unsupported_jwk(b"key_id_0", b"key_content_0b"));
|
|
732
|
-
apply_patch(&mut jwks, edit);
|
|
733
|
-
assert!(jwks == AllProvidersJWKs {
|
|
734
|
-
entries: vector[
|
|
735
|
-
ProviderJWKs {
|
|
736
|
-
issuer: b"alice",
|
|
737
|
-
version: 0,
|
|
738
|
-
jwks: vector[
|
|
739
|
-
new_unsupported_jwk(b"key_id_0", b"key_content_0b"),
|
|
740
|
-
new_unsupported_jwk(b"key_id_3", b"key_content_3"),
|
|
741
|
-
],
|
|
742
|
-
},
|
|
743
|
-
ProviderJWKs {
|
|
744
|
-
issuer: b"bob",
|
|
745
|
-
version: 222,
|
|
746
|
-
jwks: vector[
|
|
747
|
-
new_unsupported_jwk(b"key_id_2", b"key_content_2b"),
|
|
748
|
-
],
|
|
749
|
-
},
|
|
750
|
-
ProviderJWKs {
|
|
751
|
-
issuer: b"carl",
|
|
752
|
-
version: 0,
|
|
753
|
-
jwks: vector[
|
|
754
|
-
new_rsa_jwk(
|
|
755
|
-
utf8(b"0ad1fec78504f447bae65bcf5afaedb65eec9e81"), // kid
|
|
756
|
-
utf8(b"RS256"), // alg
|
|
757
|
-
utf8(b"AQAB"), // e
|
|
758
|
-
utf8(b"sm72oBH-R2Rqt4hkjp66tz5qCtq42TMnVgZg2Pdm_zs7_-EoFyNs9sD1MKsZAFaBPXBHDiWywyaHhLgwETLN9hlJIZPzGCEtV3mXJFSYG-8L6t3kyKi9X1lUTZzbmNpE0tf-eMW-3gs3VQSBJQOcQnuiANxbSXwS3PFmi173C_5fDSuC1RoYGT6X3JqLc3DWUmBGucuQjPaUF0w6LMqEIy0W_WYbW7HImwANT6dT52T72md0JWZuAKsRRnRr_bvaUX8_e3K8Pb1K_t3dD6WSLvtmEfUnGQgLynVl3aV5sRYC0Hy_IkRgoxl2fd8AaZT1X_rdPexYpx152Pl_CHJ79Q"), // n
|
|
759
|
-
)
|
|
760
|
-
],
|
|
761
|
-
},
|
|
762
|
-
],
|
|
763
|
-
}, 1);
|
|
764
|
-
|
|
765
|
-
let patch = new_patch_remove_all();
|
|
766
|
-
apply_patch(&mut jwks, patch);
|
|
767
|
-
assert!(jwks == AllProvidersJWKs { entries: vector[] }, 1);
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
#[test(aptos_framework = @aptos_framework)]
|
|
771
|
-
fun test_patched_jwks(aptos_framework: signer) acquires ObservedJWKs, PatchedJWKs, Patches {
|
|
772
|
-
initialize_for_test(&aptos_framework);
|
|
773
|
-
let jwk_0 = new_unsupported_jwk(b"key_id_0", b"key_payload_0");
|
|
774
|
-
let jwk_1 = new_unsupported_jwk(b"key_id_1", b"key_payload_1");
|
|
775
|
-
let jwk_2 = new_unsupported_jwk(b"key_id_2", b"key_payload_2");
|
|
776
|
-
let jwk_3 = new_unsupported_jwk(b"key_id_3", b"key_payload_3");
|
|
777
|
-
let jwk_3b = new_unsupported_jwk(b"key_id_3", b"key_payload_3b");
|
|
778
|
-
|
|
779
|
-
// Fake observation from validators.
|
|
780
|
-
upsert_into_observed_jwks(&aptos_framework, vector [
|
|
781
|
-
ProviderJWKs {
|
|
782
|
-
issuer: b"alice",
|
|
783
|
-
version: 111,
|
|
784
|
-
jwks: vector[jwk_0, jwk_1],
|
|
785
|
-
},
|
|
786
|
-
ProviderJWKs{
|
|
787
|
-
issuer: b"bob",
|
|
788
|
-
version: 222,
|
|
789
|
-
jwks: vector[jwk_2, jwk_3],
|
|
790
|
-
},
|
|
791
|
-
]);
|
|
792
|
-
assert!(jwk_3 == get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
793
|
-
assert!(option::some(jwk_3) == try_get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
794
|
-
|
|
795
|
-
// Ignore all Bob's keys.
|
|
796
|
-
set_patches(&aptos_framework, vector[
|
|
797
|
-
new_patch_remove_issuer(b"bob"),
|
|
798
|
-
]);
|
|
799
|
-
assert!(option::none() == try_get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
800
|
-
|
|
801
|
-
// Update one of Bob's key..
|
|
802
|
-
set_patches(&aptos_framework, vector[
|
|
803
|
-
new_patch_upsert_jwk(b"bob", jwk_3b),
|
|
804
|
-
]);
|
|
805
|
-
assert!(jwk_3b == get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
806
|
-
assert!(option::some(jwk_3b) == try_get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
807
|
-
|
|
808
|
-
// Wipe everything, then add some keys back.
|
|
809
|
-
set_patches(&aptos_framework, vector[
|
|
810
|
-
new_patch_remove_all(),
|
|
811
|
-
new_patch_upsert_jwk(b"alice", jwk_1),
|
|
812
|
-
new_patch_upsert_jwk(b"bob", jwk_3),
|
|
813
|
-
]);
|
|
814
|
-
assert!(jwk_3 == get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
815
|
-
assert!(option::some(jwk_3) == try_get_patched_jwk(b"bob", b"key_id_3"), 1);
|
|
816
|
-
}
|
|
817
|
-
}
|