From f0d297045719a6557487bcddf50a9e39c1c90dc4 Mon Sep 17 00:00:00 2001 From: Alin Tomescu Date: Tue, 20 Feb 2024 13:30:57 -0800 Subject: [PATCH 1/5] adopt AIP-61 terminology for consistency --- api/doc/spec.json | 8 +- api/doc/spec.yaml | 8 +- api/types/src/transaction.rs | 54 +- .../aptos-release-builder/data/release.yaml | 6 +- .../src/components/feature_flags.rs | 12 +- aptos-move/aptos-vm/src/aptos_vm.rs | 4 +- aptos-move/aptos-vm/src/zkid_validation.rs | 50 +- .../aptos-framework/doc/openid_account.md | 466 ++++++++++++++++++ .../framework/aptos-framework/doc/overview.md | 2 +- .../framework/aptos-framework/doc/zkid.md | 464 ----------------- .../{zkid.move => openid_account.move} | 40 +- .../framework/move-stdlib/doc/features.md | 92 ++-- .../move-stdlib/sources/configs/features.move | 20 +- aptos-move/vm-genesis/src/lib.rs | 14 +- crates/aptos-crypto/src/poseidon_bn254.rs | 2 +- .../indexer-grpc-fullnode/src/convert.rs | 6 +- .../generate-format/tests/staged/api.yaml | 38 +- .../generate-format/tests/staged/aptos.yaml | 38 +- .../tests/staged/consensus.yaml | 38 +- testsuite/smoke-test/src/zkid.rs | 106 ++-- types/src/jwks/rsa/mod.rs | 2 +- types/src/on_chain_config/aptos_features.rs | 18 +- types/src/transaction/authenticator.rs | 58 +-- types/src/transaction/mod.rs | 12 +- types/src/zkid/bn254_circom.rs | 10 +- types/src/zkid/circuit_constants.rs | 2 +- types/src/zkid/circuit_testcases.rs | 14 +- types/src/zkid/configuration.rs | 12 +- types/src/zkid/groth16_sig.rs | 2 +- types/src/zkid/groth16_vk.rs | 4 +- types/src/zkid/mod.rs | 44 +- types/src/zkid/openid_sig.rs | 10 +- types/src/zkid/test_utils.rs | 24 +- types/src/zkid/tests.rs | 50 +- 34 files changed, 867 insertions(+), 863 deletions(-) create mode 100644 aptos-move/framework/aptos-framework/doc/openid_account.md delete mode 100644 aptos-move/framework/aptos-framework/doc/zkid.md rename aptos-move/framework/aptos-framework/sources/{zkid.move => openid_account.move} (83%) diff --git a/api/doc/spec.json b/api/doc/spec.json index 01743f5643b0f..d3b99f3aabc8c 100644 --- a/api/doc/spec.json +++ b/api/doc/spec.json @@ -13433,7 +13433,7 @@ "ed25519": "#/components/schemas/PublicKey_string(HexEncodedBytes)", "secp256k1_ecdsa": "#/components/schemas/PublicKey_string(HexEncodedBytes)", "secp256r1_ecdsa": "#/components/schemas/PublicKey_string(HexEncodedBytes)", - "zk_id": "#/components/schemas/PublicKey_string(HexEncodedBytes)" + "oidb": "#/components/schemas/PublicKey_string(HexEncodedBytes)" } } }, @@ -13447,7 +13447,7 @@ "properties": { "type": { "type": "string", - "example": "zk_id" + "example": "oidb" } } }, @@ -13538,7 +13538,7 @@ "ed25519": "#/components/schemas/Signature_string(HexEncodedBytes)", "secp256k1_ecdsa": "#/components/schemas/Signature_string(HexEncodedBytes)", "web_authn": "#/components/schemas/Signature_string(HexEncodedBytes)", - "zk_id": "#/components/schemas/Signature_string(HexEncodedBytes)" + "oidb": "#/components/schemas/Signature_string(HexEncodedBytes)" } } }, @@ -13552,7 +13552,7 @@ "properties": { "type": { "type": "string", - "example": "zk_id" + "example": "oidb" } } }, diff --git a/api/doc/spec.yaml b/api/doc/spec.yaml index d24bc416dcde1..9d21ee68a6c7f 100644 --- a/api/doc/spec.yaml +++ b/api/doc/spec.yaml @@ -10115,7 +10115,7 @@ components: ed25519: '#/components/schemas/PublicKey_string(HexEncodedBytes)' secp256k1_ecdsa: '#/components/schemas/PublicKey_string(HexEncodedBytes)' secp256r1_ecdsa: '#/components/schemas/PublicKey_string(HexEncodedBytes)' - zk_id: '#/components/schemas/PublicKey_string(HexEncodedBytes)' + oidb: '#/components/schemas/PublicKey_string(HexEncodedBytes)' PublicKey_string(HexEncodedBytes): allOf: - type: object @@ -10124,7 +10124,7 @@ components: properties: type: type: string - example: zk_id + example: oidb - $ref: '#/components/schemas/HexEncodedBytes' RawTableItemRequest: type: object @@ -10181,7 +10181,7 @@ components: ed25519: '#/components/schemas/Signature_string(HexEncodedBytes)' secp256k1_ecdsa: '#/components/schemas/Signature_string(HexEncodedBytes)' web_authn: '#/components/schemas/Signature_string(HexEncodedBytes)' - zk_id: '#/components/schemas/Signature_string(HexEncodedBytes)' + oidb: '#/components/schemas/Signature_string(HexEncodedBytes)' Signature_string(HexEncodedBytes): allOf: - type: object @@ -10190,7 +10190,7 @@ components: properties: type: type: string - example: zk_id + example: oidb - $ref: '#/components/schemas/HexEncodedBytes' SingleKeySignature: type: object diff --git a/api/types/src/transaction.rs b/api/types/src/transaction.rs index 7d058586f261c..dc8e93ff411c4 100755 --- a/api/types/src/transaction.rs +++ b/api/types/src/transaction.rs @@ -1198,24 +1198,24 @@ impl VerifyInput for WebAuthnSignature { } #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Object)] -pub struct ZkIdSignature { +pub struct OidbSignature { pub public_key: HexEncodedBytes, pub signature: HexEncodedBytes, } -impl VerifyInput for ZkIdSignature { +impl VerifyInput for OidbSignature { fn verify(&self) -> anyhow::Result<()> { let public_key_len = self.public_key.inner().len(); let signature_len = self.signature.inner().len(); - if public_key_len > zkid::ZkIdPublicKey::MAX_LEN { + if public_key_len > zkid::OidbPublicKey::MAX_LEN { bail!( - "zkID public key length is greater than the maximum number of {} bytes: found {} bytes", - zkid::ZkIdPublicKey::MAX_LEN, public_key_len + "OIDB public key length is greater than the maximum number of {} bytes: found {} bytes", + zkid::OidbPublicKey::MAX_LEN, public_key_len ) - } else if signature_len > zkid::ZkIdSignature::MAX_LEN { + } else if signature_len > zkid::OidbSignature::MAX_LEN { bail!( - "zkID signature length is greater than the maximum number of {} bytes: found {} bytes", - zkid::ZkIdSignature::MAX_LEN, signature_len + "OIDB signature length is greater than the maximum number of {} bytes: found {} bytes", + zkid::OidbSignature::MAX_LEN, signature_len ) } else { Ok(()) @@ -1230,7 +1230,7 @@ pub enum Signature { Ed25519(HexEncodedBytes), Secp256k1Ecdsa(HexEncodedBytes), WebAuthn(HexEncodedBytes), - ZkId(HexEncodedBytes), + Oidb(HexEncodedBytes), } impl TryFrom for AnySignature { @@ -1241,7 +1241,7 @@ impl TryFrom for AnySignature { Signature::Ed25519(s) => AnySignature::ed25519(s.inner().try_into()?), Signature::Secp256k1Ecdsa(s) => AnySignature::secp256k1_ecdsa(s.inner().try_into()?), Signature::WebAuthn(s) => AnySignature::webauthn(s.inner().try_into()?), - Signature::ZkId(s) => AnySignature::zkid(s.inner().try_into()?), + Signature::Oidb(s) => AnySignature::oidb(s.inner().try_into()?), }) } } @@ -1258,7 +1258,7 @@ impl From for Signature { AnySignature::WebAuthn { signature } => { Signature::WebAuthn(signature.to_bytes().to_vec().into()) }, - AnySignature::ZkId { signature } => Signature::ZkId(signature.to_bytes().into()), + AnySignature::OIDB { signature } => Signature::Oidb(signature.to_bytes().into()), } } } @@ -1270,7 +1270,7 @@ pub enum PublicKey { Ed25519(HexEncodedBytes), Secp256k1Ecdsa(HexEncodedBytes), Secp256r1Ecdsa(HexEncodedBytes), - ZkId(HexEncodedBytes), + Oidb(HexEncodedBytes), } impl TryFrom for AnyPublicKey { @@ -1281,7 +1281,7 @@ impl TryFrom for AnyPublicKey { PublicKey::Ed25519(p) => AnyPublicKey::ed25519(p.inner().try_into()?), PublicKey::Secp256k1Ecdsa(p) => AnyPublicKey::secp256k1_ecdsa(p.inner().try_into()?), PublicKey::Secp256r1Ecdsa(p) => AnyPublicKey::secp256r1_ecdsa(p.inner().try_into()?), - PublicKey::ZkId(p) => AnyPublicKey::zkid(p.inner().try_into()?), + PublicKey::Oidb(p) => AnyPublicKey::oidb(p.inner().try_into()?), }) } } @@ -1298,7 +1298,7 @@ impl From for PublicKey { AnyPublicKey::Secp256r1Ecdsa { public_key } => { PublicKey::Secp256r1Ecdsa(public_key.to_bytes().to_vec().into()) }, - AnyPublicKey::ZkId { public_key } => PublicKey::ZkId(public_key.to_bytes().into()), + AnyPublicKey::OIDB { public_key } => PublicKey::Oidb(public_key.to_bytes().into()), } } } @@ -1330,7 +1330,7 @@ impl VerifyInput for SingleKeySignature { signature: s.clone(), } .verify(), - (PublicKey::ZkId(p), Signature::ZkId(s)) => ZkIdSignature { + (PublicKey::Oidb(p), Signature::Oidb(s)) => OidbSignature { public_key: p.clone(), signature: s.clone(), } @@ -1374,12 +1374,12 @@ impl TryFrom for AccountAuthenticator { )?; AnyPublicKey::secp256r1_ecdsa(key) }, - PublicKey::ZkId(p) => { + PublicKey::Oidb(p) => { let key = p .inner() .try_into() - .context("Failed to parse given public_key bytes as ZkIdPublicKey")?; - AnyPublicKey::zkid(key) + .context("Failed to parse given public_key bytes as OidbPublicKey")?; + AnyPublicKey::oidb(key) }, }; @@ -1405,12 +1405,12 @@ impl TryFrom for AccountAuthenticator { .context( "Failed to parse given signature bytes as PartialAuthenticatorAssertionResponse")?; AnySignature::webauthn(signature) }, - Signature::ZkId(s) => { + Signature::Oidb(s) => { let signature = s .inner() .try_into() - .context("Failed to parse given signature bytes as ZkIdSignature")?; - AnySignature::zkid(signature) + .context("Failed to parse given signature bytes as OidbSignature")?; + AnySignature::oidb(signature) }, }; @@ -1475,12 +1475,12 @@ impl TryFrom for AccountAuthenticator { )?; AnyPublicKey::secp256r1_ecdsa(key) }, - PublicKey::ZkId(p) => { + PublicKey::Oidb(p) => { let key = p .inner() .try_into() - .context("Failed to parse given public_key bytes as ZkIdPublicKey")?; - AnyPublicKey::zkid(key) + .context("Failed to parse given public_key bytes as OidbPublicKey")?; + AnyPublicKey::oidb(key) }, }; public_keys.push(key); @@ -1508,12 +1508,12 @@ impl TryFrom for AccountAuthenticator { )?; AnySignature::webauthn(paar) }, - Signature::ZkId(s) => { + Signature::Oidb(s) => { let signature = s .inner() .try_into() - .context("Failed to parse given signature as ZkIdSignature")?; - AnySignature::zkid(signature) + .context("Failed to parse given signature as OidbSignature")?; + AnySignature::oidb(signature) }, }; signatures.push((indexed_signature.index, signature)); diff --git a/aptos-move/aptos-release-builder/data/release.yaml b/aptos-move/aptos-release-builder/data/release.yaml index 135cd52e7f94f..27f89e14552fe 100644 --- a/aptos-move/aptos-release-builder/data/release.yaml +++ b/aptos-move/aptos-release-builder/data/release.yaml @@ -151,16 +151,16 @@ proposals: - FeatureFlag: enabled: - jwk_consensus - - name: step_12_enable_zkid + - name: step_12_enable_oidb metadata: title: "AIP-61: OpenID blockchain (OIDB) accounts" - description: "Enable validation of zkID transactions, allowing users to transact using their Web2 accounts" + description: "Enable validation of OIDB transactions, allowing users to transact using their Web2 accounts" discussion_url: "https://github.com/aptos-foundation/AIPs/issues/297" execution_mode: MultiStep update_sequence: - FeatureFlag: enabled: - - zk_id_signature + - oidb_signature - name: step_13_start_watching_google_jwks metadata: title: "Start JWK consensus for Google" diff --git a/aptos-move/aptos-release-builder/src/components/feature_flags.rs b/aptos-move/aptos-release-builder/src/components/feature_flags.rs index 3c0b0e485855b..d8378144c7dec 100644 --- a/aptos-move/aptos-release-builder/src/components/feature_flags.rs +++ b/aptos-move/aptos-release-builder/src/components/feature_flags.rs @@ -96,8 +96,8 @@ pub enum FeatureFlag { Bn254Structures, WebAuthnSignature, ReconfigureWithDkg, - ZkIdSignature, - ZkIdZkLessSignature, + OidbSignature, + OidbZkLessSignature, RemoveDetailedError, JwkConsensus, ConcurrentFungibleAssets, @@ -257,8 +257,8 @@ impl From for AptosFeatureFlag { FeatureFlag::Bn254Structures => AptosFeatureFlag::BN254_STRUCTURES, FeatureFlag::WebAuthnSignature => AptosFeatureFlag::WEBAUTHN_SIGNATURE, FeatureFlag::ReconfigureWithDkg => AptosFeatureFlag::RECONFIGURE_WITH_DKG, - FeatureFlag::ZkIdSignature => AptosFeatureFlag::ZK_ID_SIGNATURES, - FeatureFlag::ZkIdZkLessSignature => AptosFeatureFlag::ZK_ID_ZKLESS_SIGNATURE, + FeatureFlag::OidbSignature => AptosFeatureFlag::OIDB_SIGNATURE, + FeatureFlag::OidbZkLessSignature => AptosFeatureFlag::OIDB_ZKLESS_SIGNATURE, FeatureFlag::RemoveDetailedError => AptosFeatureFlag::REMOVE_DETAILED_ERROR_FROM_HASH, FeatureFlag::JwkConsensus => AptosFeatureFlag::JWK_CONSENSUS, FeatureFlag::ConcurrentFungibleAssets => AptosFeatureFlag::CONCURRENT_FUNGIBLE_ASSETS, @@ -341,8 +341,8 @@ impl From for FeatureFlag { AptosFeatureFlag::BN254_STRUCTURES => FeatureFlag::Bn254Structures, AptosFeatureFlag::WEBAUTHN_SIGNATURE => FeatureFlag::WebAuthnSignature, AptosFeatureFlag::RECONFIGURE_WITH_DKG => FeatureFlag::ReconfigureWithDkg, - AptosFeatureFlag::ZK_ID_SIGNATURES => FeatureFlag::ZkIdSignature, - AptosFeatureFlag::ZK_ID_ZKLESS_SIGNATURE => FeatureFlag::ZkIdZkLessSignature, + AptosFeatureFlag::OIDB_SIGNATURE => FeatureFlag::OidbSignature, + AptosFeatureFlag::OIDB_ZKLESS_SIGNATURE => FeatureFlag::OidbZkLessSignature, AptosFeatureFlag::REMOVE_DETAILED_ERROR_FROM_HASH => FeatureFlag::RemoveDetailedError, AptosFeatureFlag::JWK_CONSENSUS => FeatureFlag::JwkConsensus, AptosFeatureFlag::CONCURRENT_FUNGIBLE_ASSETS => FeatureFlag::ConcurrentFungibleAssets, diff --git a/aptos-move/aptos-vm/src/aptos_vm.rs b/aptos-move/aptos-vm/src/aptos_vm.rs index ebadab6d2487d..d5089fa20b721 100644 --- a/aptos-move/aptos-vm/src/aptos_vm.rs +++ b/aptos-move/aptos-vm/src/aptos_vm.rs @@ -1293,9 +1293,9 @@ impl AptosVM { )); } - let authenticators = aptos_types::zkid::get_zkid_authenticators(transaction) + let authenticators = aptos_types::zkid::get_oidb_authenticators(transaction) .map_err(|_| VMStatus::error(StatusCode::INVALID_SIGNATURE, None))?; - zkid_validation::validate_zkid_authenticators(&authenticators, self.features(), resolver)?; + zkid_validation::validate_oidb_authenticators(&authenticators, self.features(), resolver)?; // The prologue MUST be run AFTER any validation. Otherwise you may run prologue and hit // SEQUENCE_NUMBER_TOO_NEW if there is more than one transaction from the same sender and diff --git a/aptos-move/aptos-vm/src/zkid_validation.rs b/aptos-move/aptos-vm/src/zkid_validation.rs index 34351ace2c341..636844d0d87e5 100644 --- a/aptos-move/aptos-vm/src/zkid_validation.rs +++ b/aptos-move/aptos-vm/src/zkid_validation.rs @@ -11,8 +11,8 @@ use aptos_types::{ transaction::authenticator::EphemeralPublicKey, vm_status::{StatusCode, VMStatus}, zkid::{ - get_public_inputs_hash, Configuration, Groth16VerificationKey, ZkIdPublicKey, - ZkIdSignature, ZkpOrOpenIdSig, + get_public_inputs_hash, Configuration, Groth16VerificationKey, OidbPublicKey, + OidbSignature, ZkpOrOpenIdSig, }, }; use move_binary_format::errors::Location; @@ -78,20 +78,20 @@ fn get_configs_onchain( get_resource_on_chain::(resolver) } -fn get_jwk_for_zkid_authenticator( +fn get_jwk_for_oidb_authenticator( jwks: &PatchedJWKs, - zkid_pub_key: &ZkIdPublicKey, - zkid_sig: &ZkIdSignature, + oidb_pub_key: &OidbPublicKey, + oidb_sig: &OidbSignature, ) -> Result { - let jwt_header = zkid_sig + let jwt_header = oidb_sig .parse_jwt_header() .map_err(|_| invalid_signature!("Failed to parse JWT header"))?; let jwk_move_struct = jwks - .get_jwk(&zkid_pub_key.iss_val, &jwt_header.kid) + .get_jwk(&oidb_pub_key.iss_val, &jwt_header.kid) .map_err(|_| { invalid_signature!(format!( "JWK for {} with KID {} was not found", - zkid_pub_key.iss_val, jwt_header.kid + oidb_pub_key.iss_val, jwt_header.kid )) })?; @@ -100,17 +100,17 @@ fn get_jwk_for_zkid_authenticator( Ok(jwk) } -pub(crate) fn validate_zkid_authenticators( - authenticators: &Vec<(ZkIdPublicKey, ZkIdSignature)>, +pub(crate) fn validate_oidb_authenticators( + authenticators: &Vec<(OidbPublicKey, OidbSignature)>, features: &Features, resolver: &impl AptosMoveResolver, ) -> Result<(), VMStatus> { - // zkID feature gating. + // OIDB feature gating. for (_, sig) in authenticators { - if !features.is_zkid_enabled() && matches!(sig.sig, ZkpOrOpenIdSig::Groth16Zkp { .. }) { + if !features.is_oidb_enabled() && matches!(sig.sig, ZkpOrOpenIdSig::Groth16Zkp { .. }) { return Err(VMStatus::error(StatusCode::FEATURE_UNDER_GATING, None)); } - if (!features.is_zkid_enabled() || !features.is_zkid_zkless_enabled()) + if (!features.is_oidb_enabled() || !features.is_oidb_zkless_enabled()) && matches!(sig.sig, ZkpOrOpenIdSig::OpenIdSig { .. }) { return Err(VMStatus::error(StatusCode::FEATURE_UNDER_GATING, None)); @@ -122,14 +122,14 @@ pub(crate) fn validate_zkid_authenticators( } let config = &get_configs_onchain(resolver)?; - if authenticators.len() > config.max_zkid_signatures_per_txn as usize { - return Err(invalid_signature!("Too many zkID authenticators")); + if authenticators.len() > config.max_oidb_signatures_per_txn as usize { + return Err(invalid_signature!("Too many OIDB authenticators")); } let onchain_timestamp_obj = get_current_time_onchain(resolver)?; // Check the expiry timestamp on all authenticators first to fail fast - for (_, zkid_sig) in authenticators { - zkid_sig + for (_, oidb_sig) in authenticators { + oidb_sig .verify_expiry(&onchain_timestamp_obj) .map_err(|_| invalid_signature!("The ephemeral keypair has expired"))?; } @@ -148,10 +148,10 @@ pub(crate) fn validate_zkid_authenticators( )), }; - for (zkid_pub_key, zkid_sig) in authenticators { - let jwk = get_jwk_for_zkid_authenticator(&patched_jwks, zkid_pub_key, zkid_sig)?; + for (oidb_pub_key, oidb_sig) in authenticators { + let jwk = get_jwk_for_oidb_authenticator(&patched_jwks, oidb_pub_key, oidb_sig)?; - match &zkid_sig.sig { + match &oidb_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(proof) => match jwk { JWK::RSA(rsa_jwk) => { if proof.exp_horizon_secs > config.max_exp_horizon_secs { @@ -174,7 +174,7 @@ pub(crate) fn validate_zkid_authenticators( } let public_inputs_hash = - get_public_inputs_hash(zkid_sig, zkid_pub_key, &rsa_jwk, config).map_err( + get_public_inputs_hash(oidb_sig, oidb_pub_key, &rsa_jwk, config).map_err( |_| invalid_signature!("Could not compute public inputs hash"), )?; proof @@ -188,9 +188,9 @@ pub(crate) fn validate_zkid_authenticators( JWK::RSA(rsa_jwk) => { openid_sig .verify_jwt_claims( - zkid_sig.exp_timestamp_secs, - &zkid_sig.ephemeral_pubkey, - zkid_pub_key, + oidb_sig.exp_timestamp_secs, + &oidb_sig.ephemeral_pubkey, + oidb_pub_key, config, ) .map_err(|_| invalid_signature!("OpenID claim verification failed"))?; @@ -207,7 +207,7 @@ pub(crate) fn validate_zkid_authenticators( // // We are now ready to verify the RSA signature openid_sig - .verify_jwt_signature(&rsa_jwk, &zkid_sig.jwt_header_b64) + .verify_jwt_signature(&rsa_jwk, &oidb_sig.jwt_header_b64) .map_err(|_| { invalid_signature!( "RSA signature verification failed for OpenIdSig" diff --git a/aptos-move/framework/aptos-framework/doc/openid_account.md b/aptos-move/framework/aptos-framework/doc/openid_account.md new file mode 100644 index 0000000000000..1b1f7993f0b3a --- /dev/null +++ b/aptos-move/framework/aptos-framework/doc/openid_account.md @@ -0,0 +1,466 @@ + + + +# Module `0x1::openid_account` + +This module is responsible for configuring OpenID-based blockchain accounts (OIDBs), which were introduced in +[AIP-61](https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-61.md). + + +- [Struct `Group`](#0x1_openid_account_Group) +- [Resource `Groth16VerificationKey`](#0x1_openid_account_Groth16VerificationKey) +- [Resource `Configuration`](#0x1_openid_account_Configuration) +- [Constants](#@Constants_0) +- [Function `new_groth16_verification_key`](#0x1_openid_account_new_groth16_verification_key) +- [Function `new_configuration`](#0x1_openid_account_new_configuration) +- [Function `update_groth16_verification_key`](#0x1_openid_account_update_groth16_verification_key) +- [Function `update_configuration`](#0x1_openid_account_update_configuration) +- [Function `update_training_wheels`](#0x1_openid_account_update_training_wheels) +- [Function `update_max_exp_horizon`](#0x1_openid_account_update_max_exp_horizon) +- [Function `remove_all_override_auds`](#0x1_openid_account_remove_all_override_auds) +- [Function `add_override_aud`](#0x1_openid_account_add_override_aud) + + +
use 0x1::option;
+use 0x1::signer;
+use 0x1::string;
+use 0x1::system_addresses;
+
+ + + + + +## Struct `Group` + + + +
#[resource_group(#[scope = global])]
+struct Group
+
+ + + +
+Fields + + +
+
+dummy_field: bool +
+
+ +
+
+ + +
+ + + +## Resource `Groth16VerificationKey` + +The 288-byte Groth16 verification key (VK) for the ZK relation that implements OIDBs. + + +
#[resource_group_member(#[group = 0x1::openid_account::Group])]
+struct Groth16VerificationKey has store, key
+
+ + + +
+Fields + + +
+
+alpha_g1: vector<u8> +
+
+ 32-byte serialization of alpha * G, where G is the generator of G1. +
+
+beta_g2: vector<u8> +
+
+ 64-byte serialization of alpha * H, where H is the generator of G2. +
+
+gamma_g2: vector<u8> +
+
+ 64-byte serialization of gamma * H, where H is the generator of G2. +
+
+delta_g2: vector<u8> +
+
+ 64-byte serialization of delta * H, where H is the generator of G2. +
+
+gamma_abc_g1: vector<vector<u8>> +
+
+ \forall i \in {0, ..., \ell}, 64-byte serialization of gamma^{-1} * (beta * a_i + alpha * b_i + c_i) * H, where + H is the generator of G1 and \ell is 1 for the ZK relation. +
+
+ + +
+ + + +## Resource `Configuration` + + + +
#[resource_group_member(#[group = 0x1::openid_account::Group])]
+struct Configuration has store, key
+
+ + + +
+Fields + + +
+
+override_aud_vals: vector<string::String> +
+
+ An override aud for the identity of a recovery service, which will help users recover their OIDB accounts + associated with dapps or wallets that have disappeared. + IMPORTANT: This recovery service **cannot** on its own take over user accounts; a user must first sign in + via OAuth in the recovery service in order to allow it to rotate any of that user's OIDB accounts. +
+
+max_oidb_signatures_per_txn: u16 +
+
+ No transaction can have more than this many OIDB signatures. +
+
+max_exp_horizon_secs: u64 +
+
+ How far in the future from the JWT issued at time the EPK expiry can be set. +
+
+training_wheels_pubkey: option::Option<vector<u8>> +
+
+ The training wheels PK, if training wheels are on +
+
+max_commited_epk_bytes: u16 +
+
+ The max length of an ephemeral public key supported in our circuit (93 bytes) +
+
+max_iss_val_bytes: u16 +
+
+ The max length of the value of the JWT's iss field supported in our circuit (e.g., "https://accounts.google.com") +
+
+max_extra_field_bytes: u16 +
+
+ The max length of the JWT field name and value (e.g., "max_age":"18") supported in our circuit +
+
+max_jwt_header_b64_bytes: u32 +
+
+ The max length of the base64url-encoded JWT header in bytes supported in our circuit +
+
+ + +
+ + + +## Constants + + + + +The training wheels PK needs to be 32 bytes long. + + +
const E_TRAINING_WHEELS_PK_WRONG_SIZE: u64 = 1;
+
+ + + + + +## Function `new_groth16_verification_key` + + + +
public fun new_groth16_verification_key(alpha_g1: vector<u8>, beta_g2: vector<u8>, gamma_g2: vector<u8>, delta_g2: vector<u8>, gamma_abc_g1: vector<vector<u8>>): openid_account::Groth16VerificationKey
+
+ + + +
+Implementation + + +
public fun new_groth16_verification_key(alpha_g1: vector<u8>,
+                                        beta_g2: vector<u8>,
+                                        gamma_g2: vector<u8>,
+                                        delta_g2: vector<u8>,
+                                        gamma_abc_g1: vector<vector<u8>>
+): Groth16VerificationKey {
+    Groth16VerificationKey {
+        alpha_g1,
+        beta_g2,
+        gamma_g2,
+        delta_g2,
+        gamma_abc_g1,
+    }
+}
+
+ + + +
+ + + +## Function `new_configuration` + + + +
public fun new_configuration(override_aud_val: vector<string::String>, max_oidb_signatures_per_txn: u16, max_exp_horizon_secs: u64, training_wheels_pubkey: option::Option<vector<u8>>, max_commited_epk_bytes: u16, max_iss_val_bytes: u16, max_extra_field_bytes: u16, max_jwt_header_b64_bytes: u32): openid_account::Configuration
+
+ + + +
+Implementation + + +
public fun new_configuration(
+    override_aud_val: vector<String>,
+    max_oidb_signatures_per_txn: u16,
+    max_exp_horizon_secs: u64,
+    training_wheels_pubkey: Option<vector<u8>>,
+    max_commited_epk_bytes: u16,
+    max_iss_val_bytes: u16,
+    max_extra_field_bytes: u16,
+    max_jwt_header_b64_bytes: u32
+): Configuration {
+    Configuration {
+        override_aud_vals: override_aud_val,
+        max_oidb_signatures_per_txn,
+        max_exp_horizon_secs,
+        training_wheels_pubkey,
+        max_commited_epk_bytes,
+        max_iss_val_bytes,
+        max_extra_field_bytes,
+        max_jwt_header_b64_bytes,
+    }
+}
+
+ + + +
+ + + +## Function `update_groth16_verification_key` + + + +
public fun update_groth16_verification_key(fx: &signer, vk: openid_account::Groth16VerificationKey)
+
+ + + +
+Implementation + + +
public fun update_groth16_verification_key(fx: &signer, vk: Groth16VerificationKey) acquires Groth16VerificationKey {
+    system_addresses::assert_aptos_framework(fx);
+
+    if (exists<Groth16VerificationKey>(signer::address_of(fx))) {
+        let Groth16VerificationKey {
+            alpha_g1: _,
+            beta_g2: _,
+            gamma_g2: _,
+            delta_g2: _,
+            gamma_abc_g1: _
+        } = move_from<Groth16VerificationKey>(signer::address_of(fx));
+    };
+
+    move_to(fx, vk);
+}
+
+ + + +
+ + + +## Function `update_configuration` + + + +
public fun update_configuration(fx: &signer, config: openid_account::Configuration)
+
+ + + +
+Implementation + + +
public fun update_configuration(fx: &signer, config: Configuration) acquires Configuration {
+    system_addresses::assert_aptos_framework(fx);
+
+    if (exists<Configuration>(signer::address_of(fx))) {
+        let Configuration {
+            override_aud_vals: _,
+            max_oidb_signatures_per_txn: _,
+            max_exp_horizon_secs: _,
+            training_wheels_pubkey: _,
+            max_commited_epk_bytes: _,
+            max_iss_val_bytes: _,
+            max_extra_field_bytes: _,
+            max_jwt_header_b64_bytes: _,
+        } = move_from<Configuration>(signer::address_of(fx));
+    };
+
+    move_to(fx, config);
+}
+
+ + + +
+ + + +## Function `update_training_wheels` + + + +
public fun update_training_wheels(fx: &signer, pk: option::Option<vector<u8>>)
+
+ + + +
+Implementation + + +
public fun update_training_wheels(fx: &signer, pk: Option<vector<u8>>) acquires Configuration {
+    system_addresses::assert_aptos_framework(fx);
+    if (option::is_some(&pk)) {
+        assert!(vector::length(option::borrow(&pk)) == 32, E_TRAINING_WHEELS_PK_WRONG_SIZE)
+    };
+
+    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
+    config.training_wheels_pubkey = pk;
+}
+
+ + + +
+ + + +## Function `update_max_exp_horizon` + + + +
public fun update_max_exp_horizon(fx: &signer, max_exp_horizon_secs: u64)
+
+ + + +
+Implementation + + +
public fun update_max_exp_horizon(fx: &signer, max_exp_horizon_secs: u64) acquires Configuration {
+    system_addresses::assert_aptos_framework(fx);
+
+    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
+    config.max_exp_horizon_secs = max_exp_horizon_secs;
+}
+
+ + + +
+ + + +## Function `remove_all_override_auds` + + + +
public fun remove_all_override_auds(fx: &signer)
+
+ + + +
+Implementation + + +
public fun remove_all_override_auds(fx: &signer) acquires Configuration {
+    system_addresses::assert_aptos_framework(fx);
+
+    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
+    config.override_aud_vals = vector[];
+}
+
+ + + +
+ + + +## Function `add_override_aud` + + + +
public fun add_override_aud(fx: &signer, aud: string::String)
+
+ + + +
+Implementation + + +
public fun add_override_aud(fx: &signer, aud: String) acquires Configuration {
+    system_addresses::assert_aptos_framework(fx);
+
+    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
+    vector::push_back(&mut config.override_aud_vals, aud);
+}
+
+ + + +
+ + +[move-book]: https://aptos.dev/move/book/SUMMARY diff --git a/aptos-move/framework/aptos-framework/doc/overview.md b/aptos-move/framework/aptos-framework/doc/overview.md index 1a3b685080a8d..10520e74c33e0 100644 --- a/aptos-move/framework/aptos-framework/doc/overview.md +++ b/aptos-move/framework/aptos-framework/doc/overview.md @@ -39,6 +39,7 @@ This is the reference documentation of the Aptos framework. - [`0x1::multisig_account`](multisig_account.md#0x1_multisig_account) - [`0x1::object`](object.md#0x1_object) - [`0x1::object_code_deployment`](object_code_deployment.md#0x1_object_code_deployment) +- [`0x1::openid_account`](openid_account.md#0x1_openid_account) - [`0x1::optional_aggregator`](optional_aggregator.md#0x1_optional_aggregator) - [`0x1::primary_fungible_store`](primary_fungible_store.md#0x1_primary_fungible_store) - [`0x1::reconfiguration`](reconfiguration.md#0x1_reconfiguration) @@ -58,7 +59,6 @@ This is the reference documentation of the Aptos framework. - [`0x1::version`](version.md#0x1_version) - [`0x1::vesting`](vesting.md#0x1_vesting) - [`0x1::voting`](voting.md#0x1_voting) -- [`0x1::zkid`](zkid.md#0x1_zkid) [move-book]: https://aptos.dev/move/book/SUMMARY diff --git a/aptos-move/framework/aptos-framework/doc/zkid.md b/aptos-move/framework/aptos-framework/doc/zkid.md deleted file mode 100644 index 11af85a6f12d2..0000000000000 --- a/aptos-move/framework/aptos-framework/doc/zkid.md +++ /dev/null @@ -1,464 +0,0 @@ - - - -# Module `0x1::zkid` - - - -- [Struct `Group`](#0x1_zkid_Group) -- [Resource `Groth16VerificationKey`](#0x1_zkid_Groth16VerificationKey) -- [Resource `Configuration`](#0x1_zkid_Configuration) -- [Constants](#@Constants_0) -- [Function `new_groth16_verification_key`](#0x1_zkid_new_groth16_verification_key) -- [Function `new_configuration`](#0x1_zkid_new_configuration) -- [Function `update_groth16_verification_key`](#0x1_zkid_update_groth16_verification_key) -- [Function `update_configuration`](#0x1_zkid_update_configuration) -- [Function `update_training_wheels`](#0x1_zkid_update_training_wheels) -- [Function `update_max_exp_horizon`](#0x1_zkid_update_max_exp_horizon) -- [Function `remove_all_override_auds`](#0x1_zkid_remove_all_override_auds) -- [Function `add_override_aud`](#0x1_zkid_add_override_aud) - - -
use 0x1::option;
-use 0x1::signer;
-use 0x1::string;
-use 0x1::system_addresses;
-
- - - - - -## Struct `Group` - - - -
#[resource_group(#[scope = global])]
-struct Group
-
- - - -
-Fields - - -
-
-dummy_field: bool -
-
- -
-
- - -
- - - -## Resource `Groth16VerificationKey` - -The 288-byte Groth16 verification key (VK) for the zkID relation. - - -
#[resource_group_member(#[group = 0x1::zkid::Group])]
-struct Groth16VerificationKey has store, key
-
- - - -
-Fields - - -
-
-alpha_g1: vector<u8> -
-
- 32-byte serialization of alpha * G, where G is the generator of G1. -
-
-beta_g2: vector<u8> -
-
- 64-byte serialization of alpha * H, where H is the generator of G2. -
-
-gamma_g2: vector<u8> -
-
- 64-byte serialization of gamma * H, where H is the generator of G2. -
-
-delta_g2: vector<u8> -
-
- 64-byte serialization of delta * H, where H is the generator of G2. -
-
-gamma_abc_g1: vector<vector<u8>> -
-
- \forall i \in {0, ..., \ell}, 64-byte serialization of gamma^{-1} * (beta * a_i + alpha * b_i + c_i) * H, where - H is the generator of G1 and \ell is 1 for the zkID relation. -
-
- - -
- - - -## Resource `Configuration` - - - -
#[resource_group_member(#[group = 0x1::zkid::Group])]
-struct Configuration has store, key
-
- - - -
-Fields - - -
-
-override_aud_vals: vector<string::String> -
-
- An override aud for the identity of a recovery service, which will help users recover their zkID accounts - associated with dapps or wallets that have disappeared. - IMPORTANT: This recovery service **cannot** on its own take over user accounts; a user must first sign in - via OAuth in the recovery service in order to allow it to rotate any of that user's zkID accounts. -
-
-max_zkid_signatures_per_txn: u16 -
-
- No transaction can have more than this many zkID signatures. -
-
-max_exp_horizon_secs: u64 -
-
- How far in the future from the JWT issued at time the EPK expiry can be set. -
-
-training_wheels_pubkey: option::Option<vector<u8>> -
-
- The training wheels PK, if training wheels are on -
-
-max_commited_epk_bytes: u16 -
-
- The max length of an ephemeral public key supported in our circuit (93 bytes) -
-
-max_iss_val_bytes: u16 -
-
- The max length of the value of the JWT's iss field supported in our circuit (e.g., "https://accounts.google.com") -
-
-max_extra_field_bytes: u16 -
-
- The max length of the JWT field name and value (e.g., "max_age":"18") supported in our circuit -
-
-max_jwt_header_b64_bytes: u32 -
-
- The max length of the base64url-encoded JWT header in bytes supported in our circuit -
-
- - -
- - - -## Constants - - - - -The training wheels PK needs to be 32 bytes long. - - -
const E_TRAINING_WHEELS_PK_WRONG_SIZE: u64 = 1;
-
- - - - - -## Function `new_groth16_verification_key` - - - -
public fun new_groth16_verification_key(alpha_g1: vector<u8>, beta_g2: vector<u8>, gamma_g2: vector<u8>, delta_g2: vector<u8>, gamma_abc_g1: vector<vector<u8>>): zkid::Groth16VerificationKey
-
- - - -
-Implementation - - -
public fun new_groth16_verification_key(alpha_g1: vector<u8>,
-                                        beta_g2: vector<u8>,
-                                        gamma_g2: vector<u8>,
-                                        delta_g2: vector<u8>,
-                                        gamma_abc_g1: vector<vector<u8>>
-): Groth16VerificationKey {
-    Groth16VerificationKey {
-        alpha_g1,
-        beta_g2,
-        gamma_g2,
-        delta_g2,
-        gamma_abc_g1,
-    }
-}
-
- - - -
- - - -## Function `new_configuration` - - - -
public fun new_configuration(override_aud_val: vector<string::String>, max_zkid_signatures_per_txn: u16, max_exp_horizon_secs: u64, training_wheels_pubkey: option::Option<vector<u8>>, max_commited_epk_bytes: u16, max_iss_val_bytes: u16, max_extra_field_bytes: u16, max_jwt_header_b64_bytes: u32): zkid::Configuration
-
- - - -
-Implementation - - -
public fun new_configuration(
-    override_aud_val: vector<String>,
-    max_zkid_signatures_per_txn: u16,
-    max_exp_horizon_secs: u64,
-    training_wheels_pubkey: Option<vector<u8>>,
-    max_commited_epk_bytes: u16,
-    max_iss_val_bytes: u16,
-    max_extra_field_bytes: u16,
-    max_jwt_header_b64_bytes: u32
-): Configuration {
-    Configuration {
-        override_aud_vals: override_aud_val,
-        max_zkid_signatures_per_txn,
-        max_exp_horizon_secs,
-        training_wheels_pubkey,
-        max_commited_epk_bytes,
-        max_iss_val_bytes,
-        max_extra_field_bytes,
-        max_jwt_header_b64_bytes,
-    }
-}
-
- - - -
- - - -## Function `update_groth16_verification_key` - - - -
public fun update_groth16_verification_key(fx: &signer, vk: zkid::Groth16VerificationKey)
-
- - - -
-Implementation - - -
public fun update_groth16_verification_key(fx: &signer, vk: Groth16VerificationKey) acquires Groth16VerificationKey {
-    system_addresses::assert_aptos_framework(fx);
-
-    if (exists<Groth16VerificationKey>(signer::address_of(fx))) {
-        let Groth16VerificationKey {
-            alpha_g1: _,
-            beta_g2: _,
-            gamma_g2: _,
-            delta_g2: _,
-            gamma_abc_g1: _
-        } = move_from<Groth16VerificationKey>(signer::address_of(fx));
-    };
-
-    move_to(fx, vk);
-}
-
- - - -
- - - -## Function `update_configuration` - - - -
public fun update_configuration(fx: &signer, config: zkid::Configuration)
-
- - - -
-Implementation - - -
public fun update_configuration(fx: &signer, config: Configuration) acquires Configuration {
-    system_addresses::assert_aptos_framework(fx);
-
-    if (exists<Configuration>(signer::address_of(fx))) {
-        let Configuration {
-            override_aud_vals: _,
-            max_zkid_signatures_per_txn: _,
-            max_exp_horizon_secs: _,
-            training_wheels_pubkey: _,
-            max_commited_epk_bytes: _,
-            max_iss_val_bytes: _,
-            max_extra_field_bytes: _,
-            max_jwt_header_b64_bytes: _,
-        } = move_from<Configuration>(signer::address_of(fx));
-    };
-
-    move_to(fx, config);
-}
-
- - - -
- - - -## Function `update_training_wheels` - - - -
public fun update_training_wheels(fx: &signer, pk: option::Option<vector<u8>>)
-
- - - -
-Implementation - - -
public fun update_training_wheels(fx: &signer, pk: Option<vector<u8>>) acquires Configuration {
-    system_addresses::assert_aptos_framework(fx);
-    if (option::is_some(&pk)) {
-        assert!(vector::length(option::borrow(&pk)) == 32, E_TRAINING_WHEELS_PK_WRONG_SIZE)
-    };
-
-    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
-    config.training_wheels_pubkey = pk;
-}
-
- - - -
- - - -## Function `update_max_exp_horizon` - - - -
public fun update_max_exp_horizon(fx: &signer, max_exp_horizon_secs: u64)
-
- - - -
-Implementation - - -
public fun update_max_exp_horizon(fx: &signer, max_exp_horizon_secs: u64) acquires Configuration {
-    system_addresses::assert_aptos_framework(fx);
-
-    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
-    config.max_exp_horizon_secs = max_exp_horizon_secs;
-}
-
- - - -
- - - -## Function `remove_all_override_auds` - - - -
public fun remove_all_override_auds(fx: &signer)
-
- - - -
-Implementation - - -
public fun remove_all_override_auds(fx: &signer) acquires Configuration {
-    system_addresses::assert_aptos_framework(fx);
-
-    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
-    config.override_aud_vals = vector[];
-}
-
- - - -
- - - -## Function `add_override_aud` - - - -
public fun add_override_aud(fx: &signer, aud: string::String)
-
- - - -
-Implementation - - -
public fun add_override_aud(fx: &signer, aud: String) acquires Configuration {
-    system_addresses::assert_aptos_framework(fx);
-
-    let config = borrow_global_mut<Configuration>(signer::address_of(fx));
-    vector::push_back(&mut config.override_aud_vals, aud);
-}
-
- - - -
- - -[move-book]: https://aptos.dev/move/book/SUMMARY diff --git a/aptos-move/framework/aptos-framework/sources/zkid.move b/aptos-move/framework/aptos-framework/sources/openid_account.move similarity index 83% rename from aptos-move/framework/aptos-framework/sources/zkid.move rename to aptos-move/framework/aptos-framework/sources/openid_account.move index 96a73d06a5d66..524c25e9d74f9 100644 --- a/aptos-move/framework/aptos-framework/sources/zkid.move +++ b/aptos-move/framework/aptos-framework/sources/openid_account.move @@ -1,4 +1,6 @@ -module aptos_framework::zkid { +/// This module is responsible for configuring OpenID-based blockchain accounts (OIDBs), which were introduced in +/// [AIP-61](https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-61.md). +module aptos_framework::openid_account { use std::option; use std::option::Option; use std::signer; @@ -12,8 +14,8 @@ module aptos_framework::zkid { #[resource_group(scope = global)] struct Group {} - #[resource_group_member(group = aptos_framework::zkid::Group)] - /// The 288-byte Groth16 verification key (VK) for the zkID relation. + #[resource_group_member(group = aptos_framework::openid_account::Group)] + /// The 288-byte Groth16 verification key (VK) for the ZK relation that implements OIDBs. struct Groth16VerificationKey has key, store { /// 32-byte serialization of `alpha * G`, where `G` is the generator of `G1`. alpha_g1: vector, @@ -24,19 +26,19 @@ module aptos_framework::zkid { /// 64-byte serialization of `delta * H`, where `H` is the generator of `G2`. delta_g2: vector, /// `\forall i \in {0, ..., \ell}, 64-byte serialization of gamma^{-1} * (beta * a_i + alpha * b_i + c_i) * H`, where - /// `H` is the generator of `G1` and `\ell` is 1 for the zkID relation. + /// `H` is the generator of `G1` and `\ell` is 1 for the ZK relation. gamma_abc_g1: vector>, } - #[resource_group_member(group = aptos_framework::zkid::Group)] + #[resource_group_member(group = aptos_framework::openid_account::Group)] struct Configuration has key, store { - /// An override `aud` for the identity of a recovery service, which will help users recover their zkID accounts + /// An override `aud` for the identity of a recovery service, which will help users recover their OIDB accounts /// associated with dapps or wallets that have disappeared. /// IMPORTANT: This recovery service **cannot** on its own take over user accounts; a user must first sign in - /// via OAuth in the recovery service in order to allow it to rotate any of that user's zkID accounts. + /// via OAuth in the recovery service in order to allow it to rotate any of that user's OIDB accounts. override_aud_vals: vector, - /// No transaction can have more than this many zkID signatures. - max_zkid_signatures_per_txn: u16, + /// No transaction can have more than this many OIDB signatures. + max_oidb_signatures_per_txn: u16, /// How far in the future from the JWT issued at time the EPK expiry can be set. max_exp_horizon_secs: u64, /// The training wheels PK, if training wheels are on @@ -76,7 +78,7 @@ module aptos_framework::zkid { public fun new_configuration( override_aud_val: vector, - max_zkid_signatures_per_txn: u16, + max_oidb_signatures_per_txn: u16, max_exp_horizon_secs: u64, training_wheels_pubkey: Option>, max_commited_epk_bytes: u16, @@ -86,7 +88,7 @@ module aptos_framework::zkid { ): Configuration { Configuration { override_aud_vals: override_aud_val, - max_zkid_signatures_per_txn, + max_oidb_signatures_per_txn, max_exp_horizon_secs, training_wheels_pubkey, max_commited_epk_bytes, @@ -96,7 +98,7 @@ module aptos_framework::zkid { } } - // Sets the zkID Groth16 verification key, only callable via governance proposal. + // Sets the OIDB Groth16 verification key, only callable via governance proposal. // WARNING: If a malicious key is set, this would lead to stolen funds. public fun update_groth16_verification_key(fx: &signer, vk: Groth16VerificationKey) acquires Groth16VerificationKey { system_addresses::assert_aptos_framework(fx); @@ -114,7 +116,7 @@ module aptos_framework::zkid { move_to(fx, vk); } - // Sets the zkID configuration, only callable via governance proposal. + // Sets the OIDB configuration, only callable via governance proposal. // WARNING: If a malicious key is set, this would lead to stolen funds. public fun update_configuration(fx: &signer, config: Configuration) acquires Configuration { system_addresses::assert_aptos_framework(fx); @@ -122,7 +124,7 @@ module aptos_framework::zkid { if (exists(signer::address_of(fx))) { let Configuration { override_aud_vals: _, - max_zkid_signatures_per_txn: _, + max_oidb_signatures_per_txn: _, max_exp_horizon_secs: _, training_wheels_pubkey: _, max_commited_epk_bytes: _, @@ -135,7 +137,7 @@ module aptos_framework::zkid { move_to(fx, config); } - // Convenience method to set the zkID training wheels, only callable via governance proposal. + // Convenience method to set the OIDB training wheels, only callable via governance proposal. // WARNING: If a malicious key is set, this would lead to stolen funds. public fun update_training_wheels(fx: &signer, pk: Option>) acquires Configuration { system_addresses::assert_aptos_framework(fx); @@ -147,7 +149,7 @@ module aptos_framework::zkid { config.training_wheels_pubkey = pk; } - // Convenience method to set the zkID max expiration horizon, only callable via governance proposal. + // Convenience method to set the max expiration horizon, only callable via governance proposal. public fun update_max_exp_horizon(fx: &signer, max_exp_horizon_secs: u64) acquires Configuration { system_addresses::assert_aptos_framework(fx); @@ -155,8 +157,8 @@ module aptos_framework::zkid { config.max_exp_horizon_secs = max_exp_horizon_secs; } - // Convenience method to append to clear the set of zkID override `aud`'s, only callable via governance proposal. - // WARNING: When no override `aud` is set, recovery of zkID accounts associated with applications that disappeared + // Convenience method to clear the set of override `aud`'s, only callable via governance proposal. + // WARNING: When no override `aud` is set, recovery of OIDB accounts associated with applications that disappeared // is no longer possible. public fun remove_all_override_auds(fx: &signer) acquires Configuration { system_addresses::assert_aptos_framework(fx); @@ -165,7 +167,7 @@ module aptos_framework::zkid { config.override_aud_vals = vector[]; } - // Convenience method to append to the set of zkID override `aud`'s, only callable via governance proposal. + // Convenience method to append to the set of override `aud`'s, only callable via governance proposal. // WARNING: If a malicious override `aud` is set, this would lead to stolen funds. public fun add_override_aud(fx: &signer, aud: String) acquires Configuration { system_addresses::assert_aptos_framework(fx); diff --git a/aptos-move/framework/move-stdlib/doc/features.md b/aptos-move/framework/move-stdlib/doc/features.md index 6d07ef635a342..357f55b2cd184 100644 --- a/aptos-move/framework/move-stdlib/doc/features.md +++ b/aptos-move/framework/move-stdlib/doc/features.md @@ -86,10 +86,10 @@ return true. - [Function `commission_change_delegation_pool_enabled`](#0x1_features_commission_change_delegation_pool_enabled) - [Function `get_bn254_strutures_feature`](#0x1_features_get_bn254_strutures_feature) - [Function `bn254_structures_enabled`](#0x1_features_bn254_structures_enabled) -- [Function `get_zkid_feature`](#0x1_features_get_zkid_feature) -- [Function `zkid_feature_enabled`](#0x1_features_zkid_feature_enabled) -- [Function `get_zkid_zkless_feature`](#0x1_features_get_zkid_zkless_feature) -- [Function `zkid_zkless_feature_enabled`](#0x1_features_zkid_zkless_feature_enabled) +- [Function `get_oidb_feature`](#0x1_features_get_oidb_feature) +- [Function `oidb_feature_enabled`](#0x1_features_oidb_feature_enabled) +- [Function `get_oidb_zkless_feature`](#0x1_features_get_oidb_zkless_feature) +- [Function `oidb_zkless_feature_enabled`](#0x1_features_oidb_zkless_feature_enabled) - [Function `get_jwk_consensus_feature`](#0x1_features_get_jwk_consensus_feature) - [Function `jwk_consensus_enabled`](#0x1_features_jwk_consensus_enabled) - [Function `get_concurrent_fungible_assets_feature`](#0x1_features_get_concurrent_fungible_assets_feature) @@ -462,6 +462,30 @@ Whether deploying to objects is enabled. + + +Whether the OIDB feature is enabled, possibly with the ZK-less verification mode. + +Lifetime: transient + + +
const OIDB_SIGNATURE: u64 = 46;
+
+ + + + + +Whether the ZK-less mode of the OIDB feature is enabled. + +Lifetime: transient + + +
const OIDB_ZKLESS_SIGNATURE: u64 = 47;
+
+ + + Whether allow changing beneficiaries for operators. @@ -631,30 +655,6 @@ Lifetime: transient - - -Whether the zkID feature is enabled, possibly with the ZK-less verification mode. - -Lifetime: transient - - -
const ZK_ID_SIGNATURES: u64 = 46;
-
- - - - - -Whether the ZK-less mode of the zkID feature is enabled. - -Lifetime: transient - - -
const ZK_ID_ZKLESS_SIGNATURE: u64 = 47;
-
- - - ## Function `code_dependency_check_enabled` @@ -1932,13 +1932,13 @@ Lifetime: transient - + -## Function `get_zkid_feature` +## Function `get_oidb_feature` -
public fun get_zkid_feature(): u64
+
public fun get_oidb_feature(): u64
 
@@ -1947,20 +1947,20 @@ Lifetime: transient Implementation -
public fun get_zkid_feature(): u64 { ZK_ID_SIGNATURES }
+
public fun get_oidb_feature(): u64 { OIDB_SIGNATURE }
 
- + -## Function `zkid_feature_enabled` +## Function `oidb_feature_enabled` -
public fun zkid_feature_enabled(): bool
+
public fun oidb_feature_enabled(): bool
 
@@ -1969,8 +1969,8 @@ Lifetime: transient Implementation -
public fun zkid_feature_enabled(): bool acquires Features {
-    is_enabled(ZK_ID_SIGNATURES)
+
public fun oidb_feature_enabled(): bool acquires Features {
+    is_enabled(OIDB_SIGNATURE)
 }
 
@@ -1978,13 +1978,13 @@ Lifetime: transient - + -## Function `get_zkid_zkless_feature` +## Function `get_oidb_zkless_feature` -
public fun get_zkid_zkless_feature(): u64
+
public fun get_oidb_zkless_feature(): u64
 
@@ -1993,20 +1993,20 @@ Lifetime: transient Implementation -
public fun get_zkid_zkless_feature(): u64 { ZK_ID_ZKLESS_SIGNATURE }
+
public fun get_oidb_zkless_feature(): u64 { OIDB_ZKLESS_SIGNATURE }
 
- + -## Function `zkid_zkless_feature_enabled` +## Function `oidb_zkless_feature_enabled` -
public fun zkid_zkless_feature_enabled(): bool
+
public fun oidb_zkless_feature_enabled(): bool
 
@@ -2015,8 +2015,8 @@ Lifetime: transient Implementation -
public fun zkid_zkless_feature_enabled(): bool acquires Features {
-    is_enabled(ZK_ID_ZKLESS_SIGNATURE)
+
public fun oidb_zkless_feature_enabled(): bool acquires Features {
+    is_enabled(OIDB_ZKLESS_SIGNATURE)
 }
 
diff --git a/aptos-move/framework/move-stdlib/sources/configs/features.move b/aptos-move/framework/move-stdlib/sources/configs/features.move index 5b40a9f811916..f7860686ce6b9 100644 --- a/aptos-move/framework/move-stdlib/sources/configs/features.move +++ b/aptos-move/framework/move-stdlib/sources/configs/features.move @@ -347,26 +347,26 @@ module std::features { is_enabled(BN254_STRUCTURES) } - /// Whether the zkID feature is enabled, possibly with the ZK-less verification mode. + /// Whether the OIDB feature is enabled, possibly with the ZK-less verification mode. /// /// Lifetime: transient - const ZK_ID_SIGNATURES: u64 = 46; + const OIDB_SIGNATURE: u64 = 46; - public fun get_zkid_feature(): u64 { ZK_ID_SIGNATURES } + public fun get_oidb_feature(): u64 { OIDB_SIGNATURE } - public fun zkid_feature_enabled(): bool acquires Features { - is_enabled(ZK_ID_SIGNATURES) + public fun oidb_feature_enabled(): bool acquires Features { + is_enabled(OIDB_SIGNATURE) } - /// Whether the ZK-less mode of the zkID feature is enabled. + /// Whether the ZK-less mode of the OIDB feature is enabled. /// /// Lifetime: transient - const ZK_ID_ZKLESS_SIGNATURE: u64 = 47; + const OIDB_ZKLESS_SIGNATURE: u64 = 47; - public fun get_zkid_zkless_feature(): u64 { ZK_ID_ZKLESS_SIGNATURE } + public fun get_oidb_zkless_feature(): u64 { OIDB_ZKLESS_SIGNATURE } - public fun zkid_zkless_feature_enabled(): bool acquires Features { - is_enabled(ZK_ID_ZKLESS_SIGNATURE) + public fun oidb_zkless_feature_enabled(): bool acquires Features { + is_enabled(OIDB_ZKLESS_SIGNATURE) } /// The JWK consensus feature. diff --git a/aptos-move/vm-genesis/src/lib.rs b/aptos-move/vm-genesis/src/lib.rs index 8d738e20f007d..341e62778b893 100644 --- a/aptos-move/vm-genesis/src/lib.rs +++ b/aptos-move/vm-genesis/src/lib.rs @@ -54,7 +54,7 @@ const GENESIS_MODULE_NAME: &str = "genesis"; const GOVERNANCE_MODULE_NAME: &str = "aptos_governance"; const CODE_MODULE_NAME: &str = "code"; const VERSION_MODULE_NAME: &str = "version"; -const ZKID_MODULE_NAME: &str = "zkid"; +const OIDB_MODULE_NAME: &str = "openid_account"; const JWKS_MODULE_NAME: &str = "jwks"; const NUM_SECONDS_PER_YEAR: u64 = 365 * 24 * 60 * 60; @@ -256,7 +256,7 @@ pub fn encode_genesis_change_set( if genesis_config.is_test { allow_core_resources_to_set_version(&mut session); } - initialize_zkid(&mut session, chain_id); + initialize_oidb(&mut session, chain_id); set_genesis_end(&mut session); // Reconfiguration should happen after all on-chain invocations. @@ -455,8 +455,8 @@ pub fn default_features() -> Vec { FeatureFlag::COMMISSION_CHANGE_DELEGATION_POOL, FeatureFlag::WEBAUTHN_SIGNATURE, // FeatureFlag::RECONFIGURE_WITH_DKG, //TODO: re-enable once randomness is ready. - FeatureFlag::ZK_ID_SIGNATURES, - FeatureFlag::ZK_ID_ZKLESS_SIGNATURE, + FeatureFlag::OIDB_SIGNATURE, + FeatureFlag::OIDB_ZKLESS_SIGNATURE, FeatureFlag::JWK_CONSENSUS, FeatureFlag::REFUNDABLE_BYTES, FeatureFlag::OBJECT_CODE_DEPLOYMENT, @@ -535,11 +535,11 @@ fn initialize_on_chain_governance(session: &mut SessionExt, genesis_config: &Gen ); } -fn initialize_zkid(session: &mut SessionExt, chain_id: ChainId) { +fn initialize_oidb(session: &mut SessionExt, chain_id: ChainId) { let config = zkid::Configuration::new_for_devnet(); exec_function( session, - ZKID_MODULE_NAME, + OIDB_MODULE_NAME, "update_configuration", vec![], serialize_values(&vec![ @@ -551,7 +551,7 @@ fn initialize_zkid(session: &mut SessionExt, chain_id: ChainId) { let vk = Groth16VerificationKey::from(DEVNET_VERIFICATION_KEY.clone()); exec_function( session, - ZKID_MODULE_NAME, + OIDB_MODULE_NAME, "update_groth16_verification_key", vec![], serialize_values(&vec![ diff --git a/crates/aptos-crypto/src/poseidon_bn254.rs b/crates/aptos-crypto/src/poseidon_bn254.rs index 33d0a2fb585ec..88a5936a664a3 100644 --- a/crates/aptos-crypto/src/poseidon_bn254.rs +++ b/crates/aptos-crypto/src/poseidon_bn254.rs @@ -5,7 +5,7 @@ use anyhow::bail; use ark_ff::PrimeField; use once_cell::sync::Lazy; -// TODO(zkid): Figure out the right library for Poseidon. +// TODO(oidb): Figure out the right library for Poseidon. use poseidon_ark::Poseidon; /// The maximum number of input scalars that can be hashed using the Poseidon-BN254 hash function diff --git a/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs b/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs index 2405a2b62d79f..cdd1ef49bec70 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs @@ -602,8 +602,8 @@ fn convert_signature(signature: &Signature) -> transaction::AnySignature { signature: s.0.clone(), })), }, - Signature::ZkId(s) => transaction::AnySignature { - r#type: transaction::any_signature::Type::Zkid as i32, + Signature::Oidb(s) => transaction::AnySignature { + r#type: transaction::any_signature::Type::OIDB as i32, signature: s.0.clone(), signature_variant: Some(any_signature::SignatureVariant::Zkid(ZkId { signature: s.0.clone(), @@ -626,7 +626,7 @@ fn convert_public_key(public_key: &PublicKey) -> transaction::AnyPublicKey { r#type: transaction::any_public_key::Type::Secp256r1Ecdsa as i32, public_key: p.0.clone(), }, - PublicKey::ZkId(p) => transaction::AnyPublicKey { + PublicKey::Oidb(p) => transaction::AnyPublicKey { r#type: transaction::any_public_key::Type::Zkid as i32, public_key: p.0.clone(), }, diff --git a/testsuite/generate-format/tests/staged/api.yaml b/testsuite/generate-format/tests/staged/api.yaml index 3313a11a4ac25..c1c6094be6c25 100644 --- a/testsuite/generate-format/tests/staged/api.yaml +++ b/testsuite/generate-format/tests/staged/api.yaml @@ -76,10 +76,10 @@ AnyPublicKey: - public_key: TYPENAME: Secp256r1EcdsaPublicKey 3: - ZkId: + OIDB: STRUCT: - public_key: - TYPENAME: ZkIdPublicKey + TYPENAME: OidbPublicKey AnySignature: ENUM: 0: @@ -98,10 +98,10 @@ AnySignature: - signature: TYPENAME: PartialAuthenticatorAssertionResponse 3: - ZkId: + OIDB: STRUCT: - signature: - TYPENAME: ZkIdSignature + TYPENAME: OidbSignature AssertionSignature: ENUM: 0: @@ -340,6 +340,21 @@ MultisigTransactionPayload: EntryFunction: NEWTYPE: TYPENAME: EntryFunction +OidbPublicKey: + STRUCT: + - iss_val: STR + - idc: + TYPENAME: IdCommitment +OidbSignature: + STRUCT: + - sig: + TYPENAME: ZkpOrOpenIdSig + - jwt_header_b64: STR + - exp_timestamp_secs: U64 + - ephemeral_pubkey: + TYPENAME: EphemeralPublicKey + - ephemeral_signature: + TYPENAME: EphemeralSignature OpenIdSig: STRUCT: - jwt_sig_b64: STR @@ -780,21 +795,6 @@ WriteSetPayload: WriteSetV0: NEWTYPESTRUCT: TYPENAME: WriteSetMut -ZkIdPublicKey: - STRUCT: - - iss_val: STR - - idc: - TYPENAME: IdCommitment -ZkIdSignature: - STRUCT: - - sig: - TYPENAME: ZkpOrOpenIdSig - - jwt_header_b64: STR - - exp_timestamp_secs: U64 - - ephemeral_pubkey: - TYPENAME: EphemeralPublicKey - - ephemeral_signature: - TYPENAME: EphemeralSignature ZkpOrOpenIdSig: ENUM: 0: diff --git a/testsuite/generate-format/tests/staged/aptos.yaml b/testsuite/generate-format/tests/staged/aptos.yaml index 18771655135e2..38ad2e662914e 100644 --- a/testsuite/generate-format/tests/staged/aptos.yaml +++ b/testsuite/generate-format/tests/staged/aptos.yaml @@ -64,10 +64,10 @@ AnyPublicKey: - public_key: TYPENAME: Secp256r1EcdsaPublicKey 3: - ZkId: + OIDB: STRUCT: - public_key: - TYPENAME: ZkIdPublicKey + TYPENAME: OidbPublicKey AnySignature: ENUM: 0: @@ -86,10 +86,10 @@ AnySignature: - signature: TYPENAME: PartialAuthenticatorAssertionResponse 3: - ZkId: + OIDB: STRUCT: - signature: - TYPENAME: ZkIdSignature + TYPENAME: OidbSignature AssertionSignature: ENUM: 0: @@ -286,6 +286,21 @@ MultisigTransactionPayload: EntryFunction: NEWTYPE: TYPENAME: EntryFunction +OidbPublicKey: + STRUCT: + - iss_val: STR + - idc: + TYPENAME: IdCommitment +OidbSignature: + STRUCT: + - sig: + TYPENAME: ZkpOrOpenIdSig + - jwt_header_b64: STR + - exp_timestamp_secs: U64 + - ephemeral_pubkey: + TYPENAME: EphemeralPublicKey + - ephemeral_signature: + TYPENAME: EphemeralSignature OpenIdSig: STRUCT: - jwt_sig_b64: STR @@ -662,21 +677,6 @@ WriteSetPayload: WriteSetV0: NEWTYPESTRUCT: TYPENAME: WriteSetMut -ZkIdPublicKey: - STRUCT: - - iss_val: STR - - idc: - TYPENAME: IdCommitment -ZkIdSignature: - STRUCT: - - sig: - TYPENAME: ZkpOrOpenIdSig - - jwt_header_b64: STR - - exp_timestamp_secs: U64 - - ephemeral_pubkey: - TYPENAME: EphemeralPublicKey - - ephemeral_signature: - TYPENAME: EphemeralSignature ZkpOrOpenIdSig: ENUM: 0: diff --git a/testsuite/generate-format/tests/staged/consensus.yaml b/testsuite/generate-format/tests/staged/consensus.yaml index 57a155d591d4f..7c6d02cdfc2cd 100644 --- a/testsuite/generate-format/tests/staged/consensus.yaml +++ b/testsuite/generate-format/tests/staged/consensus.yaml @@ -70,10 +70,10 @@ AnyPublicKey: - public_key: TYPENAME: Secp256r1EcdsaPublicKey 3: - ZkId: + OIDB: STRUCT: - public_key: - TYPENAME: ZkIdPublicKey + TYPENAME: OidbPublicKey AnySignature: ENUM: 0: @@ -92,10 +92,10 @@ AnySignature: - signature: TYPENAME: PartialAuthenticatorAssertionResponse 3: - ZkId: + OIDB: STRUCT: - signature: - TYPENAME: ZkIdSignature + TYPENAME: OidbSignature AssertionSignature: ENUM: 0: @@ -564,6 +564,21 @@ MultisigTransactionPayload: EntryFunction: NEWTYPE: TYPENAME: EntryFunction +OidbPublicKey: + STRUCT: + - iss_val: STR + - idc: + TYPENAME: IdCommitment +OidbSignature: + STRUCT: + - sig: + TYPENAME: ZkpOrOpenIdSig + - jwt_header_b64: STR + - exp_timestamp_secs: U64 + - ephemeral_pubkey: + TYPENAME: EphemeralPublicKey + - ephemeral_signature: + TYPENAME: EphemeralSignature OpenIdSig: STRUCT: - jwt_sig_b64: STR @@ -1084,21 +1099,6 @@ WriteSetPayload: WriteSetV0: NEWTYPESTRUCT: TYPENAME: WriteSetMut -ZkIdPublicKey: - STRUCT: - - iss_val: STR - - idc: - TYPENAME: IdCommitment -ZkIdSignature: - STRUCT: - - sig: - TYPENAME: ZkpOrOpenIdSig - - jwt_header_b64: STR - - exp_timestamp_secs: U64 - - ephemeral_pubkey: - TYPENAME: EphemeralPublicKey - - ephemeral_signature: - TYPENAME: EphemeralSignature ZkpOrOpenIdSig: ENUM: 0: diff --git a/testsuite/smoke-test/src/zkid.rs b/testsuite/smoke-test/src/zkid.rs index 23a0784dd9522..d6178ef775aa9 100644 --- a/testsuite/smoke-test/src/zkid.rs +++ b/testsuite/smoke-test/src/zkid.rs @@ -21,22 +21,22 @@ use aptos_types::{ }, zkid::{ test_utils::{ - get_sample_esk, get_sample_iss, get_sample_jwk, get_sample_zkid_groth16_sig_and_pk, - get_sample_zkid_openid_sig_and_pk, + get_sample_esk, get_sample_iss, get_sample_jwk, get_sample_oidb_groth16_sig_and_pk, + get_sample_oidb_openid_sig_and_pk, }, - Configuration, Groth16VerificationKey, ZkIdPublicKey, ZkIdSignature, ZkpOrOpenIdSig, + Configuration, Groth16VerificationKey, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig, }, }; use move_core_types::account_address::AccountAddress; use rand::thread_rng; use std::time::Duration; -// TODO(zkid): Test the override aud_val path +// TODO(oidb): Test the override aud_val path #[tokio::test] -async fn test_zkid_oidc_txn_verifies() { +async fn test_oidb_oidc_txn_verifies() { let (_, _, mut swarm, signed_txn) = - get_zkid_transaction(get_sample_zkid_openid_sig_and_pk).await; + get_oidb_transaction(get_sample_oidb_openid_sig_and_pk).await; info!("Submit OpenID transaction"); let result = swarm @@ -51,11 +51,11 @@ async fn test_zkid_oidc_txn_verifies() { } #[tokio::test] -async fn test_zkid_oidc_txn_with_bad_jwt_sig() { +async fn test_oidb_oidc_txn_with_bad_jwt_sig() { let (tw_sk, mut swarm) = setup_local_net().await; - let (mut zkid_sig, zkid_pk) = get_sample_zkid_openid_sig_and_pk(); + let (mut oidb_sig, oidb_pk) = get_sample_oidb_openid_sig_and_pk(); - match &mut zkid_sig.sig { + match &mut oidb_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(_) => panic!("Internal inconsistency"), ZkpOrOpenIdSig::OpenIdSig(openid_sig) => { openid_sig.jwt_sig_b64 = "bad signature".to_string() // Mauling the signature @@ -63,7 +63,7 @@ async fn test_zkid_oidc_txn_with_bad_jwt_sig() { } let mut info = swarm.aptos_public_info(); - let signed_txn = sign_zkid_transaction(&mut info, zkid_sig, zkid_pk, &tw_sk).await; + let signed_txn = sign_oidb_transaction(&mut info, oidb_sig, oidb_pk, &tw_sk).await; info!("Submit OpenID transaction with bad JWT signature"); let result = info @@ -77,14 +77,14 @@ async fn test_zkid_oidc_txn_with_bad_jwt_sig() { } #[tokio::test] -async fn test_zkid_oidc_txn_with_expired_epk() { +async fn test_oidb_oidc_txn_with_expired_epk() { let (tw_sk, mut swarm) = setup_local_net().await; - let (mut zkid_sig, zkid_pk) = get_sample_zkid_openid_sig_and_pk(); + let (mut oidb_sig, oidb_pk) = get_sample_oidb_openid_sig_and_pk(); - zkid_sig.exp_timestamp_secs = 1; // This should fail the verification since the expiration date is way in the past + oidb_sig.exp_timestamp_secs = 1; // This should fail the verification since the expiration date is way in the past let mut info = swarm.aptos_public_info(); - let signed_txn = sign_zkid_transaction(&mut info, zkid_sig, zkid_pk, &tw_sk).await; + let signed_txn = sign_oidb_transaction(&mut info, oidb_sig, oidb_pk, &tw_sk).await; info!("Submit OpenID transaction with expired EPK"); let result = info @@ -98,11 +98,11 @@ async fn test_zkid_oidc_txn_with_expired_epk() { } #[tokio::test] -async fn test_zkid_groth16_verifies() { +async fn test_oidb_groth16_verifies() { let (_, _, mut swarm, signed_txn) = - get_zkid_transaction(get_sample_zkid_groth16_sig_and_pk).await; + get_oidb_transaction(get_sample_oidb_groth16_sig_and_pk).await; - info!("Submit zkID Groth16 transaction"); + info!("Submit OIDB Groth16 transaction"); let result = swarm .aptos_public_info() .client() @@ -110,16 +110,16 @@ async fn test_zkid_groth16_verifies() { .await; if let Err(e) = result { - panic!("Error with zkID Groth16 TXN verification: {:?}", e) + panic!("Error with OIDB Groth16 TXN verification: {:?}", e) } } #[tokio::test] -async fn test_zkid_groth16_with_mauled_proof() { +async fn test_oidb_groth16_with_mauled_proof() { let (tw_sk, mut swarm) = setup_local_net().await; - let (mut zkid_sig, zkid_pk) = get_sample_zkid_groth16_sig_and_pk(); + let (mut oidb_sig, oidb_pk) = get_sample_oidb_groth16_sig_and_pk(); - match &mut zkid_sig.sig { + match &mut oidb_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(proof) => { proof.non_malleability_signature = EphemeralSignature::ed25519(tw_sk.sign(&proof.proof).unwrap()); // bad signature using the TW SK rather than the ESK @@ -128,30 +128,30 @@ async fn test_zkid_groth16_with_mauled_proof() { } let mut info = swarm.aptos_public_info(); - let signed_txn = sign_zkid_transaction(&mut info, zkid_sig, zkid_pk, &tw_sk).await; + let signed_txn = sign_oidb_transaction(&mut info, oidb_sig, oidb_pk, &tw_sk).await; - info!("Submit zkID Groth16 transaction"); + info!("Submit OIDB Groth16 transaction"); let result = info .client() .submit_without_serializing_response(&signed_txn) .await; if result.is_ok() { - panic!("zkID Groth16 TXN with mauled proof should have failed verification") + panic!("OIDB Groth16 TXN with mauled proof should have failed verification") } } #[tokio::test] -async fn test_zkid_groth16_with_bad_tw_signature() { +async fn test_oidb_groth16_with_bad_tw_signature() { let (_tw_sk, mut swarm) = setup_local_net().await; - let (zkid_sig, zkid_pk) = get_sample_zkid_groth16_sig_and_pk(); + let (oidb_sig, oidb_pk) = get_sample_oidb_groth16_sig_and_pk(); let mut info = swarm.aptos_public_info(); // using the sample ESK rather than the TW SK to get a bad training wheels signature - let signed_txn = sign_zkid_transaction(&mut info, zkid_sig, zkid_pk, &get_sample_esk()).await; + let signed_txn = sign_oidb_transaction(&mut info, oidb_sig, oidb_pk, &get_sample_esk()).await; - info!("Submit zkID Groth16 transaction"); + info!("Submit OIDB Groth16 transaction"); let result = info .client() .submit_without_serializing_response(&signed_txn) @@ -159,22 +159,22 @@ async fn test_zkid_groth16_with_bad_tw_signature() { if result.is_ok() { panic!( - "zkID Groth16 TXN with bad training wheels signature should have failed verification" + "OIDB Groth16 TXN with bad training wheels signature should have failed verification" ) } } -async fn sign_zkid_transaction<'a>( +async fn sign_oidb_transaction<'a>( info: &mut AptosPublicInfo<'a>, - mut zkid_sig: ZkIdSignature, - zkid_pk: ZkIdPublicKey, + mut oidb_sig: OidbSignature, + oidb_pk: OidbPublicKey, tw_sk: &Ed25519PrivateKey, ) -> SignedTransaction { - let zkid_addr = info - .create_user_account_with_any_key(&AnyPublicKey::zkid(zkid_pk.clone())) + let oidb_addr = info + .create_user_account_with_any_key(&AnyPublicKey::oidb(oidb_pk.clone())) .await .unwrap(); - info.mint(zkid_addr, 10_000_000_000).await.unwrap(); + info.mint(oidb_addr, 10_000_000_000).await.unwrap(); let recipient = info .create_and_fund_user_account(20_000_000_000) @@ -184,15 +184,15 @@ async fn sign_zkid_transaction<'a>( let raw_txn = info .transaction_factory() .payload(aptos_stdlib::aptos_coin_transfer(recipient.address(), 100)) - .sender(zkid_addr) + .sender(oidb_addr) .sequence_number(1) .build(); let esk = get_sample_esk(); - zkid_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); + oidb_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); // Compute the training wheels signature if not present - match &mut zkid_sig.sig { + match &mut oidb_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(proof) => { proof.training_wheels_signature = Some(EphemeralSignature::ed25519( tw_sk.sign(&proof.proof).unwrap(), @@ -201,21 +201,21 @@ async fn sign_zkid_transaction<'a>( ZkpOrOpenIdSig::OpenIdSig(_) => {}, } - SignedTransaction::new_zkid(raw_txn, zkid_pk, zkid_sig) + SignedTransaction::new_oidb(raw_txn, oidb_pk, oidb_sig) } -async fn get_zkid_transaction( - get_pk_and_sig_func: fn() -> (ZkIdSignature, ZkIdPublicKey), -) -> (ZkIdSignature, ZkIdPublicKey, LocalSwarm, SignedTransaction) { +async fn get_oidb_transaction( + get_pk_and_sig_func: fn() -> (OidbSignature, OidbPublicKey), +) -> (OidbSignature, OidbPublicKey, LocalSwarm, SignedTransaction) { let (tw_sk, mut swarm) = setup_local_net().await; - let (zkid_sig, zkid_pk) = get_pk_and_sig_func(); + let (oidb_sig, oidb_pk) = get_pk_and_sig_func(); let mut info = swarm.aptos_public_info(); let signed_txn = - sign_zkid_transaction(&mut info, zkid_sig.clone(), zkid_pk.clone(), &tw_sk).await; + sign_oidb_transaction(&mut info, oidb_sig.clone(), oidb_pk.clone(), &tw_sk).await; - (zkid_sig, zkid_pk, swarm, signed_txn) + (oidb_sig, oidb_pk, swarm, signed_txn) } async fn setup_local_net() -> (Ed25519PrivateKey, LocalSwarm) { @@ -245,17 +245,17 @@ async fn spawn_network_and_execute_gov_proposals( let maybe_response = client .get_account_resource_bcs::( AccountAddress::ONE, - "0x1::zkid::Groth16VerificationKey", + "0x1::openid_account::Groth16VerificationKey", ) .await; let vk = maybe_response.unwrap().into_inner(); println!("Groth16 VK: {:?}", vk); let maybe_response = client - .get_account_resource_bcs::(AccountAddress::ONE, "0x1::zkid::Configuration") + .get_account_resource_bcs::(AccountAddress::ONE, "0x1::openid_account::Configuration") .await; let config = maybe_response.unwrap().into_inner(); - println!("zkID configuration before: {:?}", config); + println!("OIDB configuration before: {:?}", config); let iss = get_sample_iss(); let jwk = get_sample_jwk(); @@ -268,7 +268,7 @@ async fn spawn_network_and_execute_gov_proposals( r#" script {{ use aptos_framework::jwks; -use aptos_framework::zkid; +use aptos_framework::openid_account; use aptos_framework::aptos_governance; use std::string::utf8; use std::option; @@ -286,8 +286,8 @@ fun main(core_resources: &signer) {{ ]; jwks::set_patches(&framework_signer, patches); - zkid::update_max_exp_horizon(&framework_signer, {}); - zkid::update_training_wheels(&framework_signer, option::some(x"{}")); + openid_account::update_max_exp_horizon(&framework_signer, {}); + openid_account::update_training_wheels(&framework_signer, option::some(x"{}")); }} }} "#, @@ -317,10 +317,10 @@ fun main(core_resources: &signer) {{ assert_eq!(expected_providers_jwks, patched_jwks.jwks); let maybe_response = client - .get_account_resource_bcs::(AccountAddress::ONE, "0x1::zkid::Configuration") + .get_account_resource_bcs::(AccountAddress::ONE, "0x1::openid_account::Configuration") .await; let config = maybe_response.unwrap().into_inner(); - println!("zkID configuration after: {:?}", config); + println!("OIDB configuration after: {:?}", config); let mut info = swarm.aptos_public_info(); diff --git a/types/src/jwks/rsa/mod.rs b/types/src/jwks/rsa/mod.rs index 40d15f68b641c..301252ead7cad 100644 --- a/types/src/jwks/rsa/mod.rs +++ b/types/src/jwks/rsa/mod.rs @@ -58,7 +58,7 @@ impl RSA_JWK { self.kid.as_bytes().to_vec() } - // TODO(zkid): Move this to aptos-crypto so other services can use this + // TODO(oidb): Move this to aptos-crypto so other services can use this pub fn to_poseidon_scalar(&self) -> Result { let mut modulus = base64::decode_config(&self.n, URL_SAFE_NO_PAD)?; // The circuit only supports RSA256 diff --git a/types/src/on_chain_config/aptos_features.rs b/types/src/on_chain_config/aptos_features.rs index a97fefbabf3a0..b50382743c964 100644 --- a/types/src/on_chain_config/aptos_features.rs +++ b/types/src/on_chain_config/aptos_features.rs @@ -53,8 +53,8 @@ pub enum FeatureFlag { BN254_STRUCTURES = 43, WEBAUTHN_SIGNATURE = 44, RECONFIGURE_WITH_DKG = 45, - ZK_ID_SIGNATURES = 46, - ZK_ID_ZKLESS_SIGNATURE = 47, + OIDB_SIGNATURE = 46, + OIDB_ZKLESS_SIGNATURE = 47, REMOVE_DETAILED_ERROR_FROM_HASH = 48, JWK_CONSENSUS = 49, CONCURRENT_FUNGIBLE_ASSETS = 50, @@ -165,20 +165,20 @@ impl Features { self.is_enabled(FeatureFlag::RESOURCE_GROUPS_SPLIT_IN_VM_CHANGE_SET) } - /// Whether the zkID feature is enabled, specifically the ZK path with ZKP-based signatures. - /// The ZK-less path is controlled via a different `FeatureFlag::ZK_ID_ZKLESS_SIGNATURE` flag. - pub fn is_zkid_enabled(&self) -> bool { - self.is_enabled(FeatureFlag::ZK_ID_SIGNATURES) + /// Whether the OIDB feature is enabled, specifically the ZK path with ZKP-based signatures. + /// The ZK-less path is controlled via a different `FeatureFlag::OIDB_ZKLESS_SIGNATURE` flag. + pub fn is_oidb_enabled(&self) -> bool { + self.is_enabled(FeatureFlag::OIDB_SIGNATURE) } - /// If `FeatureFlag::ZK_ID_SIGNATURES` is enabled, this feature additionally allows for a "ZK-less + /// If `FeatureFlag::OIDB_SIGNATURE` is enabled, this feature additionally allows for a "ZK-less /// path" where the blockchain can verify OpenID signatures directly. This ZK-less mode exists /// for two reasons. First, it gives as a simpler way to test the feature. Second, it acts as a /// safety precaution in case of emergency (e.g., if the ZK-based signatures must be temporarily /// turned off due to a zeroday exploit, the ZK-less path will still allow users to transact, /// but without privacy). - pub fn is_zkid_zkless_enabled(&self) -> bool { - self.is_enabled(FeatureFlag::ZK_ID_ZKLESS_SIGNATURE) + pub fn is_oidb_zkless_enabled(&self) -> bool { + self.is_enabled(FeatureFlag::OIDB_ZKLESS_SIGNATURE) } pub fn is_remove_detailed_error_from_hash_enabled(&self) -> bool { diff --git a/types/src/transaction/authenticator.rs b/types/src/transaction/authenticator.rs index abdf423193c33..79692b4ae2738 100644 --- a/types/src/transaction/authenticator.rs +++ b/types/src/transaction/authenticator.rs @@ -7,7 +7,7 @@ use crate::{ transaction::{ webauthn::PartialAuthenticatorAssertionResponse, RawTransaction, RawTransactionWithData, }, - zkid::{ZkIdPublicKey, ZkIdSignature, ZkpOrOpenIdSig}, + zkid::{OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, }; use anyhow::{bail, ensure, Error, Result}; use aptos_crypto::{ @@ -969,8 +969,8 @@ pub enum AnySignature { WebAuthn { signature: PartialAuthenticatorAssertionResponse, }, - ZkId { - signature: ZkIdSignature, + OIDB { + signature: OidbSignature, }, } @@ -987,8 +987,8 @@ impl AnySignature { Self::WebAuthn { signature } } - pub fn zkid(signature: ZkIdSignature) -> Self { - Self::ZkId { signature } + pub fn oidb(signature: OidbSignature) -> Self { + Self::OIDB { signature } } pub fn verify( @@ -1004,8 +1004,8 @@ impl AnySignature { signature.verify(message, public_key) }, (Self::WebAuthn { signature }, _) => signature.verify(message, public_key), - (Self::ZkId { signature }, AnyPublicKey::ZkId { public_key: _ }) => { - // TODO(zkid): Batch-verify these two signatures + (Self::OIDB { signature }, AnyPublicKey::OIDB { public_key: _ }) => { + // TODO(oidb): Batch-verify these two signatures match &signature.sig { ZkpOrOpenIdSig::Groth16Zkp(proof) => { proof.verify_non_malleability_sig(&signature.ephemeral_pubkey)?; @@ -1039,8 +1039,8 @@ pub enum AnyPublicKey { Secp256r1Ecdsa { public_key: secp256r1_ecdsa::PublicKey, }, - ZkId { - public_key: ZkIdPublicKey, + OIDB { + public_key: OidbPublicKey, }, } @@ -1057,8 +1057,8 @@ impl AnyPublicKey { Self::Secp256r1Ecdsa { public_key } } - pub fn zkid(public_key: ZkIdPublicKey) -> Self { - Self::ZkId { public_key } + pub fn oidb(public_key: OidbPublicKey) -> Self { + Self::OIDB { public_key } } pub fn to_bytes(&self) -> Vec { @@ -1127,7 +1127,7 @@ mod tests { use crate::{ transaction::{webauthn::AssertionSignature, SignedTransaction}, zkid::test_utils::{ - get_sample_esk, get_sample_zkid_groth16_sig_and_pk, get_sample_zkid_openid_sig_and_pk, + get_sample_esk, get_sample_oidb_groth16_sig_and_pk, get_sample_oidb_openid_sig_and_pk, }, }; use aptos_crypto::{ @@ -1666,11 +1666,11 @@ mod tests { } #[test] - fn test_zkid_openid_txn() { + fn test_oidb_openid_txn() { let esk = get_sample_esk(); - let (mut zkid_sig, zkid_pk) = get_sample_zkid_openid_sig_and_pk(); + let (mut oidb_sig, oidb_pk) = get_sample_oidb_openid_sig_and_pk(); let sender_addr = - AuthenticationKey::any_key(AnyPublicKey::zkid(zkid_pk.clone())).account_address(); + AuthenticationKey::any_key(AnyPublicKey::oidb(oidb_pk.clone())).account_address(); let mut raw_txn = crate::test_helpers::transaction_test_helpers::get_test_raw_transaction( sender_addr, 0, @@ -1679,10 +1679,10 @@ mod tests { None, None, ); - zkid_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); + oidb_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); let single_key_auth = - SingleKeyAuthenticator::new(AnyPublicKey::zkid(zkid_pk), AnySignature::zkid(zkid_sig)); + SingleKeyAuthenticator::new(AnyPublicKey::oidb(oidb_pk), AnySignature::oidb(oidb_sig)); let account_auth = AccountAuthenticator::single_key(single_key_auth); let signed_txn = SignedTransaction::new_single_sender(raw_txn.clone(), account_auth.clone()); @@ -1694,13 +1694,13 @@ mod tests { assert!(signed_txn.verify_signature().is_err()); } - /// TODO(zkid): Redundancy; a similar test case is in types/src/zkid.rs + /// TODO(oidb): Redundancy; a similar test case is in types/src/oidb/ #[test] - fn test_zkid_groth16_txn() { + fn test_oidb_groth16_txn() { let esk = get_sample_esk(); - let (mut zkid_sig, zkid_pk) = get_sample_zkid_groth16_sig_and_pk(); + let (mut oidb_sig, oidb_pk) = get_sample_oidb_groth16_sig_and_pk(); let sender_addr = - AuthenticationKey::any_key(AnyPublicKey::zkid(zkid_pk.clone())).account_address(); + AuthenticationKey::any_key(AnyPublicKey::oidb(oidb_pk.clone())).account_address(); let mut raw_txn = crate::test_helpers::transaction_test_helpers::get_test_raw_transaction( sender_addr, 0, @@ -1709,10 +1709,10 @@ mod tests { None, None, ); - zkid_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); + oidb_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); let single_key_auth = - SingleKeyAuthenticator::new(AnyPublicKey::zkid(zkid_pk), AnySignature::zkid(zkid_sig)); + SingleKeyAuthenticator::new(AnyPublicKey::oidb(oidb_pk), AnySignature::oidb(oidb_sig)); let account_auth = AccountAuthenticator::single_key(single_key_auth); let signed_txn = SignedTransaction::new_single_sender(raw_txn.clone(), account_auth.clone()); @@ -1726,11 +1726,11 @@ mod tests { } #[test] - fn test_zkid_groth16_txn_fails_non_malleability_check() { + fn test_oidb_groth16_txn_fails_non_malleability_check() { let esk = get_sample_esk(); - let (mut zkid_sig, zkid_pk) = get_sample_zkid_groth16_sig_and_pk(); + let (mut oidb_sig, oidb_pk) = get_sample_oidb_groth16_sig_and_pk(); let sender_addr = - AuthenticationKey::any_key(AnyPublicKey::zkid(zkid_pk.clone())).account_address(); + AuthenticationKey::any_key(AnyPublicKey::oidb(oidb_pk.clone())).account_address(); let raw_txn = crate::test_helpers::transaction_test_helpers::get_test_raw_transaction( sender_addr, 0, @@ -1739,11 +1739,11 @@ mod tests { None, None, ); - zkid_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); + oidb_sig.ephemeral_signature = EphemeralSignature::ed25519(esk.sign(&raw_txn).unwrap()); let tw_sk = Ed25519PrivateKey::generate(&mut thread_rng()); // Bad non-malleability signature - match &mut zkid_sig.sig { + match &mut oidb_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(proof) => { // bad signature using the TW SK rather than the ESK proof.non_malleability_signature = @@ -1753,7 +1753,7 @@ mod tests { } let single_key_auth = - SingleKeyAuthenticator::new(AnyPublicKey::zkid(zkid_pk), AnySignature::zkid(zkid_sig)); + SingleKeyAuthenticator::new(AnyPublicKey::oidb(oidb_pk), AnySignature::oidb(oidb_sig)); let account_auth = AccountAuthenticator::single_key(single_key_auth); let signed_txn = SignedTransaction::new_single_sender(raw_txn, account_auth); diff --git a/types/src/transaction/mod.rs b/types/src/transaction/mod.rs index c7e77c67e3f6c..56fe0b9e0ceb6 100644 --- a/types/src/transaction/mod.rs +++ b/types/src/transaction/mod.rs @@ -18,7 +18,7 @@ use crate::{ }, vm_status::{DiscardedVMStatus, KeptVMStatus, StatusCode, StatusType, VMStatus}, write_set::WriteSet, - zkid::{ZkIdPublicKey, ZkIdSignature}, + zkid::{OidbPublicKey, OidbSignature}, }; use anyhow::{ensure, format_err, Context, Error, Result}; use aptos_crypto::{ @@ -624,15 +624,15 @@ impl SignedTransaction { } } - pub fn new_zkid( + pub fn new_oidb( raw_txn: RawTransaction, - public_key: ZkIdPublicKey, - signature: ZkIdSignature, + public_key: OidbPublicKey, + signature: OidbSignature, ) -> SignedTransaction { let authenticator = TransactionAuthenticator::single_sender( AccountAuthenticator::single_key(SingleKeyAuthenticator::new( - AnyPublicKey::zkid(public_key), - AnySignature::zkid(signature), + AnyPublicKey::oidb(public_key), + AnySignature::oidb(signature), )), ); SignedTransaction { diff --git a/types/src/zkid/bn254_circom.rs b/types/src/zkid/bn254_circom.rs index a0806cb0eca42..d4010562666be 100644 --- a/types/src/zkid/bn254_circom.rs +++ b/types/src/zkid/bn254_circom.rs @@ -3,7 +3,7 @@ use crate::{ jwks::rsa::RSA_JWK, serialize, - zkid::{Configuration, IdCommitment, ZkIdPublicKey, ZkIdSignature, ZkpOrOpenIdSig}, + zkid::{Configuration, IdCommitment, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, }; use anyhow::bail; use aptos_crypto::{poseidon_bn254, CryptoMaterialError}; @@ -14,7 +14,7 @@ use num_traits::{One, Zero}; use serde::{Deserialize, Serialize}; use serde_big_array::BigArray; -// TODO(zkid): Some of this stuff, if not all, belongs to the aptos-crypto crate +// TODO(oidb): Some of this stuff, if not all, belongs to the aptos-crypto crate pub const G1_PROJECTIVE_COMPRESSED_NUM_BYTES: usize = 32; pub const G2_PROJECTIVE_COMPRESSED_NUM_BYTES: usize = 64; @@ -148,8 +148,8 @@ impl TryInto for &G2Bytes { } pub fn get_public_inputs_hash( - sig: &ZkIdSignature, - pk: &ZkIdPublicKey, + sig: &OidbSignature, + pk: &OidbPublicKey, jwk: &RSA_JWK, config: &Configuration, ) -> anyhow::Result { @@ -240,7 +240,7 @@ pub fn get_public_inputs_hash( frs.push(use_override_aud); poseidon_bn254::hash_scalars(frs) } else { - bail!("Cannot get_public_inputs_hash for ZkIdSignature") + bail!("Cannot get_public_inputs_hash for OidbSignature") } } diff --git a/types/src/zkid/circuit_constants.rs b/types/src/zkid/circuit_constants.rs index 4fd18fde5f735..798fe943175de 100644 --- a/types/src/zkid/circuit_constants.rs +++ b/types/src/zkid/circuit_constants.rs @@ -1,6 +1,6 @@ // Copyright © Aptos Foundation -//! These constants are from commit 125522b4b226f8ece3e3162cecfefe915d13bc30 of zkid-circuit. +//! These constants are from commit 125522b4b226f8ece3e3162cecfefe915d13bc30 of oidb-circuit. use crate::zkid::bn254_circom::{g1_projective_str_to_affine, g2_projective_str_to_affine}; use aptos_crypto::poseidon_bn254; diff --git a/types/src/zkid/circuit_testcases.rs b/types/src/zkid/circuit_testcases.rs index 00ffde64fcaa6..167c0437b7887 100644 --- a/types/src/zkid/circuit_testcases.rs +++ b/types/src/zkid/circuit_testcases.rs @@ -1,7 +1,7 @@ // Copyright © Aptos Foundation -//^ This file stores the details associated with a sample zkID proof. The constants are outputted by -//^ `input_gen.py` in the `zkid-circuit` repo (or can be derived implicitly from that code). +//^ This file stores the details associated with a sample OIDB ZK proof. The constants are outputted by +//^ `input_gen.py` in the `oidb-circuit` repo (or can be derived implicitly from that code). use crate::{ jwks::rsa::RSA_JWK, @@ -9,7 +9,7 @@ use crate::{ zkid::{ base64url_encode_str, bn254_circom::{G1Bytes, G2Bytes}, - Claims, Configuration, Groth16Zkp, IdCommitment, OpenIdSig, Pepper, ZkIdPublicKey, + Claims, Configuration, Groth16Zkp, IdCommitment, OpenIdSig, Pepper, OidbPublicKey, }, }; use aptos_crypto::{ed25519::Ed25519PrivateKey, PrivateKey, Uniform}; @@ -43,7 +43,7 @@ static SAMPLE_NONCE: Lazy = Lazy::new(|| { .unwrap() }); -/// TODO(zkid): Use a multiline format here, for diff-friendliness +/// TODO(oidb): Use a multiline format here, for diff-friendliness pub(crate) static SAMPLE_JWT_PAYLOAD_DECODED: Lazy = Lazy::new(|| { format!( r#"{{"iss":"https://accounts.google.com","azp":"407408718192.apps.googleusercontent.com","aud":"407408718192.apps.googleusercontent.com","sub":"113990307082899718775","hd":"aptoslabs.com","email":"michael@aptoslabs.com","email_verified":true,"at_hash":"bxIESuI59IoZb5alCASqBg","name":"Michael Straka","picture":"https://lh3.googleusercontent.com/a/ACg8ocJvY4kVUBRtLxe1IqKWL5i7tBDJzFp9YuWVXMzwPpbs=s96-c","given_name":"Michael","family_name":"Straka","locale":"en","iat":1700255944,"exp":2700259544,"nonce":"{}"}}"#, @@ -101,7 +101,7 @@ MHEVe8PBGOZYLcAdq4YiOIBgddoYyRsq5bzHtTQFgYQVK99Cnxo+PQAvzGb+dpjN acgc4kgDThAjD7VlXad9UHpNMO8= -----END PRIVATE KEY-----"#; - // TODO(zkid): Hacking around the difficulty of parsing PKCS#8-encoded PEM files with the `pem` crate + // TODO(oidb): Hacking around the difficulty of parsing PKCS#8-encoded PEM files with the `pem` crate let der = rsa::RsaPrivateKey::from_pkcs8_pem(sk) .unwrap() .to_pkcs1_der() @@ -127,10 +127,10 @@ pub(crate) static SAMPLE_EPK: Lazy = pub(crate) static SAMPLE_EPK_BLINDER: Lazy> = Lazy::new(|| vec![42u8]); -pub(crate) static SAMPLE_ZKID_PK: Lazy = Lazy::new(|| { +pub(crate) static SAMPLE_OIDB_PK: Lazy = Lazy::new(|| { assert_eq!(SAMPLE_UID_KEY, "sub"); - ZkIdPublicKey { + OidbPublicKey { iss_val: SAMPLE_JWT_PARSED.oidc_claims.iss.to_owned(), idc: IdCommitment::new_from_preimage( &SAMPLE_PEPPER, diff --git a/types/src/zkid/configuration.rs b/types/src/zkid/configuration.rs index af5651ad659c9..efb35bcd04ed4 100644 --- a/types/src/zkid/configuration.rs +++ b/types/src/zkid/configuration.rs @@ -14,11 +14,11 @@ use move_core_types::{ }; use serde::{Deserialize, Serialize}; -/// Reflection of aptos_framework::zkid::Configs +/// Reflection of aptos_framework::openid_account::Configs #[derive(Serialize, Deserialize, Debug)] pub struct Configuration { pub override_aud_vals: Vec, - pub max_zkid_signatures_per_txn: u16, + pub max_oidb_signatures_per_txn: u16, pub max_exp_horizon_secs: u64, pub training_wheels_pubkey: Option>, pub max_commited_epk_bytes: u16, @@ -31,7 +31,7 @@ impl AsMoveValue for Configuration { fn as_move_value(&self) -> MoveValue { MoveValue::Struct(MoveStruct::Runtime(vec![ self.override_aud_vals.as_move_value(), - self.max_zkid_signatures_per_txn.as_move_value(), + self.max_oidb_signatures_per_txn.as_move_value(), self.max_exp_horizon_secs.as_move_value(), self.training_wheels_pubkey.as_move_value(), self.max_commited_epk_bytes.as_move_value(), @@ -45,7 +45,7 @@ impl AsMoveValue for Configuration { /// WARNING: This struct uses resource groups on the Move side. Do NOT implement OnChainConfig /// for it, since `OnChainConfig::fetch_config` does not work with resource groups (yet). impl MoveStructType for Configuration { - const MODULE_NAME: &'static IdentStr = ident_str!("zkid"); + const MODULE_NAME: &'static IdentStr = ident_str!("openid_account"); const STRUCT_NAME: &'static IdentStr = ident_str!("Configuration"); } @@ -56,7 +56,7 @@ impl Configuration { pub fn new_for_devnet() -> Configuration { Configuration { override_aud_vals: vec![Self::OVERRIDE_AUD_FOR_TESTING.to_owned()], - max_zkid_signatures_per_txn: 3, + max_oidb_signatures_per_txn: 3, max_exp_horizon_secs: 10_000_000, // ~115.74 days training_wheels_pubkey: None, max_commited_epk_bytes: circuit_constants::MAX_COMMITED_EPK_BYTES, @@ -81,7 +81,7 @@ impl Configuration { if matches == 0 { Err(invalid_signature!( - "override aud is not allow-listed in 0x1::zkid" + "override aud is not allow-listed in 0x1::openid_account" )) } else { Ok(()) diff --git a/types/src/zkid/groth16_sig.rs b/types/src/zkid/groth16_sig.rs index 9b018e2f7068c..fb74d13241cae 100644 --- a/types/src/zkid/groth16_sig.rs +++ b/types/src/zkid/groth16_sig.rs @@ -35,7 +35,7 @@ pub struct SignedGroth16Zkp { /// An optional extra field (e.g., `"":"") that will be matched publicly in the JWT pub extra_field: Option, /// Will be set to the override `aud` value that the circuit should match, instead of the `aud` in the IDC. - /// This will allow users to recover their zkID accounts derived by an application that is no longer online. + /// This will allow users to recover their OIDB accounts derived by an application that is no longer online. pub override_aud_val: Option, /// A signature on the proof (via the training wheels SK) to mitigate against flaws in our circuit pub training_wheels_signature: Option, diff --git a/types/src/zkid/groth16_vk.rs b/types/src/zkid/groth16_vk.rs index 6d1e485f5477a..32b08ac400bfe 100644 --- a/types/src/zkid/groth16_vk.rs +++ b/types/src/zkid/groth16_vk.rs @@ -14,7 +14,7 @@ use move_core_types::{ use serde::{Deserialize, Serialize}; use std::fmt::{Display, Formatter}; -/// Reflection of aptos_framework::zkid::Groth16PreparedVerificationKey +/// Reflection of aptos_framework::openid_account::Groth16PreparedVerificationKey #[derive(Serialize, Deserialize, Debug)] pub struct Groth16VerificationKey { pub alpha_g1: Vec, @@ -39,7 +39,7 @@ impl AsMoveValue for Groth16VerificationKey { /// WARNING: This struct uses resource groups on the Move side. Do NOT implement OnChainConfig /// for it, since `OnChainConfig::fetch_config` does not work with resource groups (yet). impl MoveStructType for Groth16VerificationKey { - const MODULE_NAME: &'static IdentStr = ident_str!("zkid"); + const MODULE_NAME: &'static IdentStr = ident_str!("openid_account"); const STRUCT_NAME: &'static IdentStr = ident_str!("Groth16VerificationKey"); } diff --git a/types/src/zkid/mod.rs b/types/src/zkid/mod.rs index d0e5cd54fcf65..191742c10c655 100644 --- a/types/src/zkid/mod.rs +++ b/types/src/zkid/mod.rs @@ -68,7 +68,7 @@ pub enum ZkpOrOpenIdSig { } #[derive(Clone, Debug, Deserialize, PartialEq, Eq, Hash, Serialize)] -pub struct ZkIdSignature { +pub struct OidbSignature { /// A \[ZKPoK of an\] OpenID signature over several relevant fields (e.g., `aud`, `sub`, `iss`, /// `nonce`) where `nonce` contains a commitment to `ephemeral_pubkey` and an expiration time /// `exp_timestamp_secs`. @@ -89,16 +89,16 @@ pub struct ZkIdSignature { pub ephemeral_signature: EphemeralSignature, } -impl TryFrom<&[u8]> for ZkIdSignature { +impl TryFrom<&[u8]> for OidbSignature { type Error = CryptoMaterialError; fn try_from(bytes: &[u8]) -> Result { - bcs::from_bytes::(bytes) + bcs::from_bytes::(bytes) .map_err(|_e| CryptoMaterialError::DeserializationError) } } -impl ValidCryptoMaterial for ZkIdSignature { +impl ValidCryptoMaterial for OidbSignature { fn to_bytes(&self) -> Vec { bcs::to_bytes(&self).expect("Only unhandleable errors happen here.") } @@ -110,9 +110,9 @@ pub struct JWTHeader { pub alg: String, } -impl ZkIdSignature { - /// A reasonable upper bound for the number of bytes we expect in a zkID public key. This is - /// enforced by our full nodes when they receive zkID TXNs. +impl OidbSignature { + /// A reasonable upper bound for the number of bytes we expect in an OIDB public key. This is + /// enforced by our full nodes when they receive OIDB TXNs. pub const MAX_LEN: usize = 4000; pub fn parse_jwt_header(&self) -> anyhow::Result { @@ -126,14 +126,14 @@ impl ZkIdSignature { let expiry_time = seconds_from_epoch(self.exp_timestamp_secs); if block_time > expiry_time { - bail!("zkID Signature is expired"); + bail!("OIDB signature is expired"); } else { Ok(()) } } } -/// The pepper is used to create a _hiding_ identity commitment (IDC) when deriving a zkID address. +/// The pepper is used to create a _hiding_ identity commitment (IDC) when deriving an OIDB address. /// We fix its size at `poseidon_bn254::BYTES_PACKED_PER_SCALAR` to avoid extra hashing work when /// computing the public inputs hash. /// @@ -174,17 +174,17 @@ impl Pepper { pub struct IdCommitment(#[serde(with = "serde_bytes")] pub(crate) Vec); impl IdCommitment { - /// The max length of the value of the JWT's `aud` field supported in our circuit. zkID address + /// The max length of the value of the JWT's `aud` field supported in our circuit. OIDB address /// derivation depends on this, so it should not be changed. pub const MAX_AUD_VAL_BYTES: usize = circuit_constants::MAX_AUD_VAL_BYTES; /// The max length of the JWT field name that stores the user's ID (e.g., `sub`, `email`) which is - /// supported in our circuit. zkID address derivation depends on this, so it should not be changed. + /// supported in our circuit. OIDB address derivation depends on this, so it should not be changed. pub const MAX_UID_KEY_BYTES: usize = circuit_constants::MAX_UID_KEY_BYTES; /// The max length of the value of the JWT's UID field (`sub`, `email`) that stores the user's ID - /// which is supported in our circuit. zkID address derivation depends on this, so it should not + /// which is supported in our circuit. OIDB address derivation depends on this, so it should not /// be changed. pub const MAX_UID_VAL_BYTES: usize = circuit_constants::MAX_UID_VAL_BYTES; - /// The size of the identity commitment (IDC) used to derive a zkID address. This value should **NOT* + /// The size of the identity commitment (IDC) used to derive an OIDB address. This value should **NOT* /// be changed since on-chain addresses are based on it (e.g., hashing a larger-sized IDC would lead /// to a different address). pub const NUM_BYTES: usize = 32; @@ -231,7 +231,7 @@ impl TryFrom<&[u8]> for IdCommitment { } #[derive(Clone, Debug, Eq, PartialEq, Hash, Serialize, Deserialize)] -pub struct ZkIdPublicKey { +pub struct OidbPublicKey { /// The value of the `iss` field from the JWT, indicating the OIDC provider. /// e.g., https://accounts.google.com pub iss_val: String, @@ -246,9 +246,9 @@ pub struct ZkIdPublicKey { pub idc: IdCommitment, } -impl ZkIdPublicKey { - /// A reasonable upper bound for the number of bytes we expect in a zkID public key. This is - /// enforced by our full nodes when they receive zkID TXNs. +impl OidbPublicKey { + /// A reasonable upper bound for the number of bytes we expect in an OIDB public key. This is + /// enforced by our full nodes when they receive OIDB TXNs. pub const MAX_LEN: usize = 200 + IdCommitment::NUM_BYTES; pub fn to_bytes(&self) -> Vec { @@ -256,25 +256,25 @@ impl ZkIdPublicKey { } } -impl TryFrom<&[u8]> for ZkIdPublicKey { +impl TryFrom<&[u8]> for OidbPublicKey { type Error = CryptoMaterialError; fn try_from(_value: &[u8]) -> Result { - bcs::from_bytes::(_value) + bcs::from_bytes::(_value) .map_err(|_e| CryptoMaterialError::DeserializationError) } } -pub fn get_zkid_authenticators( +pub fn get_oidb_authenticators( transaction: &SignedTransaction, -) -> anyhow::Result> { +) -> anyhow::Result> { // Check all the signers in the TXN let single_key_authenticators = transaction .authenticator_ref() .to_single_key_authenticators()?; let mut authenticators = Vec::with_capacity(MAX_NUM_OF_SIGS); for authenticator in single_key_authenticators { - if let (AnyPublicKey::ZkId { public_key }, AnySignature::ZkId { signature }) = + if let (AnyPublicKey::OIDB { public_key }, AnySignature::OIDB { signature }) = (authenticator.public_key(), authenticator.signature()) { authenticators.push((public_key.clone(), signature.clone())) diff --git a/types/src/zkid/openid_sig.rs b/types/src/zkid/openid_sig.rs index 60f2ab1c3d2cc..2acc6ffa2ddc5 100644 --- a/types/src/zkid/openid_sig.rs +++ b/types/src/zkid/openid_sig.rs @@ -5,7 +5,7 @@ use crate::{ transaction::authenticator::EphemeralPublicKey, zkid::{ base64url_decode_as_str, seconds_from_epoch, Configuration, IdCommitment, Pepper, - ZkIdPublicKey, + OidbPublicKey, }, }; use anyhow::{ensure, Context}; @@ -41,16 +41,16 @@ impl OpenIdSig { /// Verifies an `OpenIdSig` by doing the following checks: /// 1. Check that the ephemeral public key lifespan is under MAX_EXPIRY_HORIZON_SECS - /// 2. Check that the iss claim in the ZkIdPublicKey matches the one in the jwt_payload - /// 3. Check that the identity commitment in the ZkIdPublicKey matches the one constructed from the jwt_payload + /// 2. Check that the iss claim in the OidbPublicKey matches the one in the jwt_payload + /// 3. Check that the identity commitment in the OidbPublicKey matches the one constructed from the jwt_payload /// 4. Check that the nonce constructed from the ephemeral public key, blinder, and exp_timestamp_secs matches the one in the jwt_payload - // TODO(zkid): Refactor to return a `Result<(), VMStatus>` because (1) this is now called in the + // TODO(oidb): Refactor to return a `Result<(), VMStatus>` because (1) this is now called in the // VM and (2) is_override_aud_allowed does. pub fn verify_jwt_claims( &self, exp_timestamp_secs: u64, epk: &EphemeralPublicKey, - pk: &ZkIdPublicKey, + pk: &OidbPublicKey, config: &Configuration, ) -> anyhow::Result<()> { let jwt_payload_json = base64url_decode_as_str(&self.jwt_payload_b64)?; diff --git a/types/src/zkid/test_utils.rs b/types/src/zkid/test_utils.rs index 7201dd12d6e51..228201073c78b 100644 --- a/types/src/zkid/test_utils.rs +++ b/types/src/zkid/test_utils.rs @@ -8,9 +8,9 @@ use crate::{ circuit_testcases::{ SAMPLE_EPK, SAMPLE_EPK_BLINDER, SAMPLE_ESK, SAMPLE_EXP_DATE, SAMPLE_EXP_HORIZON_SECS, SAMPLE_JWK, SAMPLE_JWK_SK, SAMPLE_JWT_EXTRA_FIELD, SAMPLE_JWT_HEADER_B64, - SAMPLE_JWT_PARSED, SAMPLE_PEPPER, SAMPLE_PROOF, SAMPLE_UID_KEY, SAMPLE_ZKID_PK, + SAMPLE_JWT_PARSED, SAMPLE_PEPPER, SAMPLE_PROOF, SAMPLE_UID_KEY, SAMPLE_OIDB_PK, }, - Groth16Zkp, OpenIdSig, SignedGroth16Zkp, ZkIdPublicKey, ZkIdSignature, ZkpOrOpenIdSig, + Groth16Zkp, OpenIdSig, SignedGroth16Zkp, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig, }, }; use aptos_crypto::{ed25519::Ed25519PrivateKey, SigningKey, Uniform}; @@ -39,7 +39,7 @@ pub fn get_sample_jwk() -> RSA_JWK { /// Note: Does not have a valid ephemeral signature. Use the SAMPLE_ESK to compute one over the /// desired TXN. -pub fn get_sample_zkid_groth16_sig_and_pk() -> (ZkIdSignature, ZkIdPublicKey) { +pub fn get_sample_oidb_groth16_sig_and_pk() -> (OidbSignature, OidbPublicKey) { let proof = *SAMPLE_PROOF; let groth16zkp = SignedGroth16Zkp { @@ -51,7 +51,7 @@ pub fn get_sample_zkid_groth16_sig_and_pk() -> (ZkIdSignature, ZkIdPublicKey) { training_wheels_signature: None, }; - let zk_sig = ZkIdSignature { + let zk_sig = OidbSignature { sig: ZkpOrOpenIdSig::Groth16Zkp(groth16zkp.clone()), jwt_header_b64: SAMPLE_JWT_HEADER_B64.to_string(), exp_timestamp_secs: SAMPLE_EXP_DATE, @@ -59,12 +59,12 @@ pub fn get_sample_zkid_groth16_sig_and_pk() -> (ZkIdSignature, ZkIdPublicKey) { ephemeral_signature: DUMMY_EPHEMERAL_SIGNATURE.clone(), }; - (zk_sig, SAMPLE_ZKID_PK.clone()) + (zk_sig, SAMPLE_OIDB_PK.clone()) } /// Note: Does not have a valid ephemeral signature. Use the SAMPLE_ESK to compute one over the /// desired TXN. -pub fn get_sample_zkid_openid_sig_and_pk() -> (ZkIdSignature, ZkIdPublicKey) { +pub fn get_sample_oidb_openid_sig_and_pk() -> (OidbSignature, OidbPublicKey) { let jwt_payload_b64 = base64url_encode_str(serde_json::to_string(&*SAMPLE_JWT_PARSED).unwrap().as_str()); @@ -91,7 +91,7 @@ pub fn get_sample_zkid_openid_sig_and_pk() -> (ZkIdSignature, ZkIdPublicKey) { idc_aud_val: None, }; - let zk_sig = ZkIdSignature { + let zk_sig = OidbSignature { sig: ZkpOrOpenIdSig::OpenIdSig(openid_sig.clone()), jwt_header_b64, exp_timestamp_secs: SAMPLE_EXP_DATE, @@ -99,7 +99,7 @@ pub fn get_sample_zkid_openid_sig_and_pk() -> (ZkIdSignature, ZkIdPublicKey) { ephemeral_signature: DUMMY_EPHEMERAL_SIGNATURE.clone(), }; - (zk_sig, SAMPLE_ZKID_PK.clone()) + (zk_sig, SAMPLE_OIDB_PK.clone()) } #[cfg(test)] @@ -107,13 +107,13 @@ mod test { use crate::zkid::{ circuit_testcases::{SAMPLE_EPK, SAMPLE_EPK_BLINDER, SAMPLE_EXP_DATE, SAMPLE_JWK}, get_public_inputs_hash, - test_utils::get_sample_zkid_groth16_sig_and_pk, + test_utils::get_sample_oidb_groth16_sig_and_pk, Configuration, OpenIdSig, }; /// Since our proof generation toolkit is incomplete; currently doing it here. #[test] - fn zkid_print_nonce_commitment_and_public_inputs_hash() { + fn oidb_print_nonce_commitment_and_public_inputs_hash() { let config = Configuration::new_for_testing(); let nonce = OpenIdSig::reconstruct_oauth_nonce( SAMPLE_EPK_BLINDER.as_slice(), @@ -129,9 +129,9 @@ mod test { nonce ); - let (zkid_sig, zkid_pk) = get_sample_zkid_groth16_sig_and_pk(); + let (oidb_sig, oidb_pk) = get_sample_oidb_groth16_sig_and_pk(); let public_inputs_hash = - get_public_inputs_hash(&zkid_sig, &zkid_pk, &SAMPLE_JWK, &config).unwrap(); + get_public_inputs_hash(&oidb_sig, &oidb_pk, &SAMPLE_JWK, &config).unwrap(); println!("Public inputs hash: {}", public_inputs_hash); } diff --git a/types/src/zkid/tests.rs b/types/src/zkid/tests.rs index 6392d7141f569..4d89b1feccbe7 100644 --- a/types/src/zkid/tests.rs +++ b/types/src/zkid/tests.rs @@ -4,17 +4,17 @@ use crate::zkid::{ base64url_encode_str, bn254_circom::get_public_inputs_hash, circuit_testcases::*, - test_utils::{get_sample_zkid_groth16_sig_and_pk, get_sample_zkid_openid_sig_and_pk}, + test_utils::{get_sample_oidb_groth16_sig_and_pk, get_sample_oidb_openid_sig_and_pk}, Configuration, ZkpOrOpenIdSig, DEVNET_VERIFICATION_KEY, }; use std::ops::{AddAssign, Deref}; -// TODO(zkid): Add instructions on how to produce this test case. +// TODO(oidb): Add instructions on how to produce this test case. #[test] -fn test_zkid_groth16_proof_verification() { +fn test_oidb_groth16_proof_verification() { let config = Configuration::new_for_devnet(); - let (zk_sig, zk_pk) = get_sample_zkid_groth16_sig_and_pk(); + let (zk_sig, zk_pk) = get_sample_oidb_groth16_sig_and_pk(); let proof = match &zk_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(proof) => proof.clone(), ZkpOrOpenIdSig::OpenIdSig(_) => panic!("Internal inconsistency"), @@ -33,27 +33,27 @@ fn test_zkid_groth16_proof_verification() { } #[test] -fn test_zkid_oidc_sig_verifies() { +fn test_oidb_oidc_sig_verifies() { // Verification should succeed let config = Configuration::new_for_testing(); - let (zkid_sig, zkid_pk) = get_sample_zkid_openid_sig_and_pk(); + let (oidb_sig, oidb_pk) = get_sample_oidb_openid_sig_and_pk(); - let oidc_sig = match &zkid_sig.sig { + let oidc_sig = match &oidb_sig.sig { ZkpOrOpenIdSig::Groth16Zkp(_) => panic!("Internal inconsistency"), ZkpOrOpenIdSig::OpenIdSig(oidc_sig) => oidc_sig.clone(), }; oidc_sig .verify_jwt_claims( - zkid_sig.exp_timestamp_secs, - &zkid_sig.ephemeral_pubkey, - &zkid_pk, + oidb_sig.exp_timestamp_secs, + &oidb_sig.ephemeral_pubkey, + &oidb_pk, &config, ) .unwrap(); oidc_sig - .verify_jwt_signature(&SAMPLE_JWK, &zkid_sig.jwt_header_b64) + .verify_jwt_signature(&SAMPLE_JWK, &oidb_sig.jwt_header_b64) .unwrap(); // Maul the pepper; verification should fail @@ -63,9 +63,9 @@ fn test_zkid_oidc_sig_verifies() { let e = bad_oidc_sig .verify_jwt_claims( - zkid_sig.exp_timestamp_secs, - &zkid_sig.ephemeral_pubkey, - &zkid_pk, + oidb_sig.exp_timestamp_secs, + &oidb_sig.ephemeral_pubkey, + &oidb_pk, &config, ) .unwrap_err(); @@ -76,8 +76,8 @@ fn test_zkid_oidc_sig_verifies() { let e = bad_oidc_sig .verify_jwt_claims( SAMPLE_JWT_PARSED.oidc_claims.iat + config.max_exp_horizon_secs, - &zkid_sig.ephemeral_pubkey, - &zkid_pk, + &oidb_sig.ephemeral_pubkey, + &oidb_pk, &config, ) .unwrap_err(); @@ -92,9 +92,9 @@ fn test_zkid_oidc_sig_verifies() { let e = bad_oidc_sig .verify_jwt_claims( - zkid_sig.exp_timestamp_secs, - &zkid_sig.ephemeral_pubkey, - &zkid_pk, + oidb_sig.exp_timestamp_secs, + &oidb_sig.ephemeral_pubkey, + &oidb_pk, &config, ) .unwrap_err(); @@ -109,9 +109,9 @@ fn test_zkid_oidc_sig_verifies() { let e = bad_oidc_sig .verify_jwt_claims( - zkid_sig.exp_timestamp_secs, - &zkid_sig.ephemeral_pubkey, - &zkid_pk, + oidb_sig.exp_timestamp_secs, + &oidb_sig.ephemeral_pubkey, + &oidb_pk, &config, ) .unwrap_err(); @@ -126,9 +126,9 @@ fn test_zkid_oidc_sig_verifies() { let e = bad_oidc_sig .verify_jwt_claims( - zkid_sig.exp_timestamp_secs, - &zkid_sig.ephemeral_pubkey, - &zkid_pk, + oidb_sig.exp_timestamp_secs, + &oidb_sig.ephemeral_pubkey, + &oidb_pk, &config, ) .unwrap_err(); From 4a3d718611aa4be2abf53fe99b4623f76d8de546 Mon Sep 17 00:00:00 2001 From: Alin Tomescu Date: Tue, 20 Feb 2024 17:01:03 -0800 Subject: [PATCH 2/5] rename files --- api/types/src/transaction.rs | 10 +- aptos-move/aptos-vm/src/aptos_vm.rs | 6 +- aptos-move/aptos-vm/src/lib.rs | 2 +- ...{zkid_validation.rs => oidb_validation.rs} | 2 +- aptos-move/vm-genesis/src/lib.rs | 6 +- .../indexer-grpc-fullnode/src/convert.rs | 8 +- .../aptos/transaction/v1/transaction.proto | 8 +- .../aptos/transaction/v1/transaction_pb2.py | 6 +- .../aptos/transaction/v1/transaction_pb2.pyi | 18 +- protos/rust/src/pb/aptos.transaction.v1.rs | 28 +-- .../rust/src/pb/aptos.transaction.v1.serde.rs | 214 +++++++++--------- .../src/aptos/transaction/v1/transaction.ts | 78 +++---- testsuite/generate-format/src/api.rs | 2 +- testsuite/generate-format/src/aptos.rs | 2 +- testsuite/generate-format/src/consensus.rs | 2 +- testsuite/smoke-test/src/lib.rs | 2 +- testsuite/smoke-test/src/{zkid.rs => oidb.rs} | 2 +- types/src/jwks/rsa/mod.rs | 2 +- types/src/lib.rs | 2 +- types/src/{zkid => oidb}/bn254_circom.rs | 4 +- types/src/{zkid => oidb}/circuit_constants.rs | 2 +- types/src/{zkid => oidb}/circuit_testcases.rs | 2 +- types/src/{zkid => oidb}/configuration.rs | 2 +- types/src/{zkid => oidb}/groth16_sig.rs | 4 +- types/src/{zkid => oidb}/groth16_vk.rs | 0 types/src/{zkid => oidb}/mod.rs | 2 +- types/src/{zkid => oidb}/openid_sig.rs | 2 +- types/src/{zkid => oidb}/test_utils.rs | 4 +- types/src/{zkid => oidb}/tests.rs | 4 +- types/src/transaction/authenticator.rs | 4 +- types/src/transaction/mod.rs | 2 +- 31 files changed, 216 insertions(+), 216 deletions(-) rename aptos-move/aptos-vm/src/{zkid_validation.rs => oidb_validation.rs} (99%) rename testsuite/smoke-test/src/{zkid.rs => oidb.rs} (99%) rename types/src/{zkid => oidb}/bn254_circom.rs (99%) rename types/src/{zkid => oidb}/circuit_constants.rs (98%) rename types/src/{zkid => oidb}/circuit_testcases.rs (99%) rename types/src/{zkid => oidb}/configuration.rs (98%) rename types/src/{zkid => oidb}/groth16_sig.rs (97%) rename types/src/{zkid => oidb}/groth16_vk.rs (100%) rename types/src/{zkid => oidb}/mod.rs (99%) rename types/src/{zkid => oidb}/openid_sig.rs (99%) rename types/src/{zkid => oidb}/test_utils.rs (99%) rename types/src/{zkid => oidb}/tests.rs (98%) diff --git a/api/types/src/transaction.rs b/api/types/src/transaction.rs index dc8e93ff411c4..efd59ded03f79 100755 --- a/api/types/src/transaction.rs +++ b/api/types/src/transaction.rs @@ -28,7 +28,7 @@ use aptos_types::{ webauthn::{PartialAuthenticatorAssertionResponse, MAX_WEBAUTHN_SIGNATURE_BYTES}, Script, SignedTransaction, TransactionOutput, TransactionWithProof, }, - zkid, + oidb, }; use once_cell::sync::Lazy; use poem_openapi::{Object, Union}; @@ -1207,15 +1207,15 @@ impl VerifyInput for OidbSignature { fn verify(&self) -> anyhow::Result<()> { let public_key_len = self.public_key.inner().len(); let signature_len = self.signature.inner().len(); - if public_key_len > zkid::OidbPublicKey::MAX_LEN { + if public_key_len > oidb::OidbPublicKey::MAX_LEN { bail!( "OIDB public key length is greater than the maximum number of {} bytes: found {} bytes", - zkid::OidbPublicKey::MAX_LEN, public_key_len + oidb::OidbPublicKey::MAX_LEN, public_key_len ) - } else if signature_len > zkid::OidbSignature::MAX_LEN { + } else if signature_len > oidb::OidbSignature::MAX_LEN { bail!( "OIDB signature length is greater than the maximum number of {} bytes: found {} bytes", - zkid::OidbSignature::MAX_LEN, signature_len + oidb::OidbSignature::MAX_LEN, signature_len ) } else { Ok(()) diff --git a/aptos-move/aptos-vm/src/aptos_vm.rs b/aptos-move/aptos-vm/src/aptos_vm.rs index d5089fa20b721..0a519d2730b24 100644 --- a/aptos-move/aptos-vm/src/aptos_vm.rs +++ b/aptos-move/aptos-vm/src/aptos_vm.rs @@ -15,7 +15,7 @@ use crate::{ sharded_block_executor::{executor_client::ExecutorClient, ShardedBlockExecutor}, system_module_names::*, transaction_metadata::TransactionMetadata, - transaction_validation, verifier, zkid_validation, VMExecutor, VMValidator, + transaction_validation, verifier, oidb_validation, VMExecutor, VMValidator, }; use anyhow::anyhow; use aptos_block_executor::txn_commit_hook::NoOpTransactionCommitHook; @@ -1293,9 +1293,9 @@ impl AptosVM { )); } - let authenticators = aptos_types::zkid::get_oidb_authenticators(transaction) + let authenticators = aptos_types::oidb::get_oidb_authenticators(transaction) .map_err(|_| VMStatus::error(StatusCode::INVALID_SIGNATURE, None))?; - zkid_validation::validate_oidb_authenticators(&authenticators, self.features(), resolver)?; + oidb_validation::validate_oidb_authenticators(&authenticators, self.features(), resolver)?; // The prologue MUST be run AFTER any validation. Otherwise you may run prologue and hit // SEQUENCE_NUMBER_TOO_NEW if there is more than one transaction from the same sender and diff --git a/aptos-move/aptos-vm/src/lib.rs b/aptos-move/aptos-vm/src/lib.rs index 34b11d889c2b5..dde018659918b 100644 --- a/aptos-move/aptos-vm/src/lib.rs +++ b/aptos-move/aptos-vm/src/lib.rs @@ -118,7 +118,7 @@ pub mod transaction_metadata; mod transaction_validation; pub mod validator_txns; pub mod verifier; -mod zkid_validation; +mod oidb_validation; pub use crate::aptos_vm::{AptosSimulationVM, AptosVM}; use crate::sharded_block_executor::{executor_client::ExecutorClient, ShardedBlockExecutor}; diff --git a/aptos-move/aptos-vm/src/zkid_validation.rs b/aptos-move/aptos-vm/src/oidb_validation.rs similarity index 99% rename from aptos-move/aptos-vm/src/zkid_validation.rs rename to aptos-move/aptos-vm/src/oidb_validation.rs index 636844d0d87e5..5a2347d77aaf8 100644 --- a/aptos-move/aptos-vm/src/zkid_validation.rs +++ b/aptos-move/aptos-vm/src/oidb_validation.rs @@ -10,7 +10,7 @@ use aptos_types::{ on_chain_config::{CurrentTimeMicroseconds, Features, OnChainConfig}, transaction::authenticator::EphemeralPublicKey, vm_status::{StatusCode, VMStatus}, - zkid::{ + oidb::{ get_public_inputs_hash, Configuration, Groth16VerificationKey, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig, }, diff --git a/aptos-move/vm-genesis/src/lib.rs b/aptos-move/vm-genesis/src/lib.rs index 341e62778b893..cee3ff846a5c1 100644 --- a/aptos-move/vm-genesis/src/lib.rs +++ b/aptos-move/vm-genesis/src/lib.rs @@ -28,8 +28,8 @@ use aptos_types::{ }, transaction::{authenticator::AuthenticationKey, ChangeSet, Transaction, WriteSetPayload}, write_set::TransactionWrite, - zkid, - zkid::{Groth16VerificationKey, DEVNET_VERIFICATION_KEY}, + oidb, + oidb::{Groth16VerificationKey, DEVNET_VERIFICATION_KEY}, }; use aptos_vm::{ data_cache::AsMoveResolver, @@ -536,7 +536,7 @@ fn initialize_on_chain_governance(session: &mut SessionExt, genesis_config: &Gen } fn initialize_oidb(session: &mut SessionExt, chain_id: ChainId) { - let config = zkid::Configuration::new_for_devnet(); + let config = oidb::Configuration::new_for_devnet(); exec_function( session, OIDB_MODULE_NAME, diff --git a/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs b/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs index cdd1ef49bec70..8f1b11de89ee9 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs @@ -15,7 +15,7 @@ use aptos_logger::warn; use aptos_protos::{ transaction::{ v1 as transaction, - v1::{any_signature, Ed25519, Secp256k1Ecdsa, WebAuthn, ZkId}, + v1::{any_signature, Ed25519, Secp256k1Ecdsa, WebAuthn, Oidb}, }, util::timestamp, }; @@ -603,9 +603,9 @@ fn convert_signature(signature: &Signature) -> transaction::AnySignature { })), }, Signature::Oidb(s) => transaction::AnySignature { - r#type: transaction::any_signature::Type::OIDB as i32, + r#type: transaction::any_signature::Type::Oidb as i32, signature: s.0.clone(), - signature_variant: Some(any_signature::SignatureVariant::Zkid(ZkId { + signature_variant: Some(any_signature::SignatureVariant::Oidb(Oidb { signature: s.0.clone(), })), }, @@ -627,7 +627,7 @@ fn convert_public_key(public_key: &PublicKey) -> transaction::AnyPublicKey { public_key: p.0.clone(), }, PublicKey::Oidb(p) => transaction::AnyPublicKey { - r#type: transaction::any_public_key::Type::Zkid as i32, + r#type: transaction::any_public_key::Type::Oidb as i32, public_key: p.0.clone(), }, } diff --git a/protos/proto/aptos/transaction/v1/transaction.proto b/protos/proto/aptos/transaction/v1/transaction.proto index 9b0cc3d046326..a6fac3e2e3492 100644 --- a/protos/proto/aptos/transaction/v1/transaction.proto +++ b/protos/proto/aptos/transaction/v1/transaction.proto @@ -451,7 +451,7 @@ message AnyPublicKey { TYPE_ED25519 = 1; TYPE_SECP256K1_ECDSA = 2; TYPE_SECP256R1_ECDSA = 3; - TYPE_ZKID = 4; + TYPE_OIDB = 4; } Type type = 1; @@ -464,7 +464,7 @@ message AnySignature { TYPE_ED25519 = 1; TYPE_SECP256K1_ECDSA = 2; TYPE_WEBAUTHN = 3; - TYPE_ZKID = 4; + TYPE_OIDB = 4; } Type type = 1; @@ -478,7 +478,7 @@ message AnySignature { Ed25519 ed25519 = 3; Secp256k1Ecdsa secp256k1_ecdsa = 4; WebAuthn webauthn = 5; - ZkId zkid = 6; + Oidb oidb = 6; } } @@ -494,7 +494,7 @@ message WebAuthn { bytes signature = 1; } -message ZkId { +message Oidb { bytes signature = 1; } diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py index 374bea5fbedfd..aad99102d24ff 100644 --- a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py @@ -17,7 +17,7 @@ ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n&aptos/transaction/v1/transaction.proto\x12\x14\x61ptos.transaction.v1\x1a$aptos/util/timestamp/timestamp.proto"\x9a\x01\n\x05\x42lock\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x12\n\x06height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x10\n\x08\x63hain_id\x18\x04 \x01(\r"\xad\x06\n\x0bTransaction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x13\n\x07version\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x33\n\x04info\x18\x03 \x01(\x0b\x32%.aptos.transaction.v1.TransactionInfo\x12\x11\n\x05\x65poch\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x0c\x62lock_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12?\n\x04type\x18\x06 \x01(\x0e\x32\x31.aptos.transaction.v1.Transaction.TransactionType\x12H\n\x0e\x62lock_metadata\x18\x07 \x01(\x0b\x32..aptos.transaction.v1.BlockMetadataTransactionH\x00\x12;\n\x07genesis\x18\x08 \x01(\x0b\x32(.aptos.transaction.v1.GenesisTransactionH\x00\x12L\n\x10state_checkpoint\x18\t \x01(\x0b\x32\x30.aptos.transaction.v1.StateCheckpointTransactionH\x00\x12\x35\n\x04user\x18\n \x01(\x0b\x32%.aptos.transaction.v1.UserTransactionH\x00\x12?\n\tvalidator\x18\x15 \x01(\x0b\x32*.aptos.transaction.v1.ValidatorTransactionH\x00"\xd8\x01\n\x0fTransactionType\x12 \n\x1cTRANSACTION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSACTION_TYPE_GENESIS\x10\x01\x12#\n\x1fTRANSACTION_TYPE_BLOCK_METADATA\x10\x02\x12%\n!TRANSACTION_TYPE_STATE_CHECKPOINT\x10\x03\x12\x19\n\x15TRANSACTION_TYPE_USER\x10\x04\x12\x1e\n\x1aTRANSACTION_TYPE_VALIDATOR\x10\x14\x42\n\n\x08txn_data"\xbe\x01\n\x18\x42lockMetadataTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x05round\x18\x02 \x01(\x04\x42\x02\x30\x01\x12+\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event\x12#\n\x1bprevious_block_votes_bitvec\x18\x04 \x01(\x0c\x12\x10\n\x08proposer\x18\x05 \x01(\t\x12\x1f\n\x17\x66\x61iled_proposer_indices\x18\x06 \x03(\r"r\n\x12GenesisTransaction\x12/\n\x07payload\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x1c\n\x1aStateCheckpointTransaction"\x16\n\x14ValidatorTransaction"}\n\x0fUserTransaction\x12=\n\x07request\x18\x01 \x01(\x0b\x32,.aptos.transaction.v1.UserTransactionRequest\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x9f\x01\n\x05\x45vent\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.EventKey\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12,\n\x04type\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x10\n\x08type_str\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t"\xa1\x02\n\x0fTransactionInfo\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x19\n\x11state_change_hash\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65vent_root_hash\x18\x03 \x01(\x0c\x12"\n\x15state_checkpoint_hash\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x08gas_used\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x0f\n\x07success\x18\x06 \x01(\x08\x12\x11\n\tvm_status\x18\x07 \x01(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x08 \x01(\x0c\x12\x35\n\x07\x63hanges\x18\t \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChangeB\x18\n\x16_state_checkpoint_hash"@\n\x08\x45ventKey\x12\x1b\n\x0f\x63reation_number\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\t"\xb0\x02\n\x16UserTransactionRequest\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0emax_gas_amount\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0egas_unit_price\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x42\n\x19\x65xpiration_timestamp_secs\x18\x05 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x39\n\x07payload\x18\x06 \x01(\x0b\x32(.aptos.transaction.v1.TransactionPayload\x12\x32\n\tsignature\x18\x07 \x01(\x0b\x32\x1f.aptos.transaction.v1.Signature"\xda\x02\n\x08WriteSet\x12\x43\n\x0ewrite_set_type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.WriteSet.WriteSetType\x12@\n\x10script_write_set\x18\x02 \x01(\x0b\x32$.aptos.transaction.v1.ScriptWriteSetH\x00\x12@\n\x10\x64irect_write_set\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DirectWriteSetH\x00"x\n\x0cWriteSetType\x12\x1e\n\x1aWRITE_SET_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWRITE_SET_TYPE_SCRIPT_WRITE_SET\x10\x01\x12#\n\x1fWRITE_SET_TYPE_DIRECT_WRITE_SET\x10\x02\x42\x0b\n\twrite_set"Y\n\x0eScriptWriteSet\x12\x12\n\nexecute_as\x18\x01 \x01(\t\x12\x33\n\x06script\x18\x02 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayload"}\n\x0e\x44irectWriteSet\x12>\n\x10write_set_change\x18\x01 \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChange\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x89\x05\n\x0eWriteSetChange\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).aptos.transaction.v1.WriteSetChange.Type\x12;\n\rdelete_module\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.DeleteModuleH\x00\x12?\n\x0f\x64\x65lete_resource\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DeleteResourceH\x00\x12\x42\n\x11\x64\x65lete_table_item\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableItemH\x00\x12\x39\n\x0cwrite_module\x18\x05 \x01(\x0b\x32!.aptos.transaction.v1.WriteModuleH\x00\x12=\n\x0ewrite_resource\x18\x06 \x01(\x0b\x32#.aptos.transaction.v1.WriteResourceH\x00\x12@\n\x10write_table_item\x18\x07 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableItemH\x00"\xb5\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_DELETE_MODULE\x10\x01\x12\x18\n\x14TYPE_DELETE_RESOURCE\x10\x02\x12\x1a\n\x16TYPE_DELETE_TABLE_ITEM\x10\x03\x12\x15\n\x11TYPE_WRITE_MODULE\x10\x04\x12\x17\n\x13TYPE_WRITE_RESOURCE\x10\x05\x12\x19\n\x15TYPE_WRITE_TABLE_ITEM\x10\x06\x42\x08\n\x06\x63hange"k\n\x0c\x44\x65leteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x32\n\x06module\x18\x03 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId"~\n\x0e\x44\x65leteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t"{\n\x0f\x44\x65leteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x33\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableData"0\n\x0f\x44\x65leteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t"n\n\x0bWriteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x36\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"\x8b\x01\n\rWriteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\t"R\n\x0eWriteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x12\n\nvalue_type\x18\x04 \x01(\t"y\n\x0eWriteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x32\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableData"\x8c\x04\n\x12TransactionPayload\x12;\n\x04type\x18\x01 \x01(\x0e\x32-.aptos.transaction.v1.TransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00\x12=\n\x0escript_payload\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayloadH\x00\x12\x42\n\x11write_set_payload\x18\x05 \x01(\x0b\x32%.aptos.transaction.v1.WriteSetPayloadH\x00\x12\x41\n\x10multisig_payload\x18\x06 \x01(\x0b\x32%.aptos.transaction.v1.MultisigPayloadH\x00"\x93\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x12\x17\n\x13TYPE_SCRIPT_PAYLOAD\x10\x02\x12\x1a\n\x16TYPE_WRITE_SET_PAYLOAD\x10\x04\x12\x19\n\x15TYPE_MULTISIG_PAYLOAD\x10\x05"\x04\x08\x03\x10\x03\x42\t\n\x07payloadJ\x04\x08\x04\x10\x05"\xb9\x01\n\x14\x45ntryFunctionPayload\x12\x37\n\x08\x66unction\x18\x01 \x01(\x0b\x32%.aptos.transaction.v1.EntryFunctionId\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x1d\n\x15\x65ntry_function_id_str\x18\x04 \x01(\t"W\n\x12MoveScriptBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12/\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.MoveFunction"\x92\x01\n\rScriptPayload\x12\x36\n\x04\x63ode\x18\x01 \x01(\x0b\x32(.aptos.transaction.v1.MoveScriptBytecode\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t"\x97\x01\n\x0fMultisigPayload\x12\x18\n\x10multisig_address\x18\x01 \x01(\t\x12R\n\x13transaction_payload\x18\x02 \x01(\x0b\x32\x30.aptos.transaction.v1.MultisigTransactionPayloadH\x00\x88\x01\x01\x42\x16\n\x14_transaction_payload"\xf9\x01\n\x1aMultisigTransactionPayload\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.aptos.transaction.v1.MultisigTransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00"=\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x42\t\n\x07payload"U\n\x12MoveModuleBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12-\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32 .aptos.transaction.v1.MoveModule"\xd2\x01\n\nMoveModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x07\x66riends\x18\x03 \x03(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12=\n\x11\x65xposed_functions\x18\x04 \x03(\x0b\x32".aptos.transaction.v1.MoveFunction\x12\x31\n\x07structs\x18\x05 \x03(\x0b\x32 .aptos.transaction.v1.MoveStruct"\x92\x03\n\x0cMoveFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x41\n\nvisibility\x18\x02 \x01(\x0e\x32-.aptos.transaction.v1.MoveFunction.Visibility\x12\x10\n\x08is_entry\x18\x03 \x01(\x08\x12O\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x32.aptos.transaction.v1.MoveFunctionGenericTypeParam\x12.\n\x06params\x18\x05 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12.\n\x06return\x18\x06 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"n\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x02\x12\x15\n\x11VISIBILITY_FRIEND\x10\x03"\xe9\x01\n\nMoveStruct\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tis_native\x18\x02 \x01(\x08\x12\x34\n\tabilities\x18\x03 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12M\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x30.aptos.transaction.v1.MoveStructGenericTypeParam\x12\x35\n\x06\x66ields\x18\x05 \x03(\x0b\x32%.aptos.transaction.v1.MoveStructField"h\n\x1aMoveStructGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12\x12\n\nis_phantom\x18\x02 \x01(\x08"M\n\x0fMoveStructField\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x04type\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType"V\n\x1cMoveFunctionGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility"\xf8\x02\n\x08MoveType\x12-\n\x04type\x18\x01 \x01(\x0e\x32\x1f.aptos.transaction.v1.MoveTypes\x12\x30\n\x06vector\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeH\x00\x12\x35\n\x06struct\x18\x04 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTagH\x00\x12"\n\x18generic_type_param_index\x18\x05 \x01(\rH\x00\x12\x41\n\treference\x18\x06 \x01(\x0b\x32,.aptos.transaction.v1.MoveType.ReferenceTypeH\x00\x12\x14\n\nunparsable\x18\x07 \x01(\tH\x00\x1aL\n\rReferenceType\x12\x0f\n\x07mutable\x18\x01 \x01(\x08\x12*\n\x02to\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeB\t\n\x07\x63ontent"D\n\x0fWriteSetPayload\x12\x31\n\twrite_set\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet"S\n\x0f\x45ntryFunctionId\x12\x32\n\x06module\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12\x0c\n\x04name\x18\x02 \x01(\t"-\n\x0cMoveModuleId\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t"{\n\rMoveStructTag\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0e\n\x06module\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12;\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"\x9b\x04\n\tSignature\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.aptos.transaction.v1.Signature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12@\n\x0bmulti_agent\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.MultiAgentSignatureH\x00\x12<\n\tfee_payer\x18\x05 \x01(\x0b\x32\'.aptos.transaction.v1.FeePayerSignatureH\x00\x12;\n\rsingle_sender\x18\x07 \x01(\x0b\x32".aptos.transaction.v1.SingleSenderH\x00"\x8e\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x14\n\x10TYPE_MULTI_AGENT\x10\x03\x12\x12\n\x0eTYPE_FEE_PAYER\x10\x04\x12\x16\n\x12TYPE_SINGLE_SENDER\x10\x06"\x04\x08\x05\x10\x05\x42\x0b\n\tsignature"9\n\x10\x45\x64\x32\x35\x35\x31\x39Signature\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c"o\n\x15MultiEd25519Signature\x12\x13\n\x0bpublic_keys\x18\x01 \x03(\x0c\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\x11\n\tthreshold\x18\x03 \x01(\r\x12\x1a\n\x12public_key_indices\x18\x04 \x03(\r"\xb4\x01\n\x13MultiAgentSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature"\x8f\x02\n\x11\x46\x65\x65PayerSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12\x19\n\x11\x66\x65\x65_payer_address\x18\x04 \x01(\t\x12@\n\x10\x66\x65\x65_payer_signer\x18\x05 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xcc\x01\n\x0c\x41nyPublicKey\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnyPublicKey.Type\x12\x12\n\npublic_key\x18\x02 \x01(\x0c"q\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02\x12\x18\n\x14TYPE_SECP256R1_ECDSA\x10\x03\x12\r\n\tTYPE_ZKID\x10\x04"\xb0\x03\n\x0c\x41nySignature\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnySignature.Type\x12\x15\n\tsignature\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12\x30\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x03 \x01(\x0b\x32\x1d.aptos.transaction.v1.Ed25519H\x00\x12?\n\x0fsecp256k1_ecdsa\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.Secp256k1EcdsaH\x00\x12\x32\n\x08webauthn\x18\x05 \x01(\x0b\x32\x1e.aptos.transaction.v1.WebAuthnH\x00\x12*\n\x04zkid\x18\x06 \x01(\x0b\x32\x1a.aptos.transaction.v1.ZkIdH\x00"j\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02\x12\x11\n\rTYPE_WEBAUTHN\x10\x03\x12\r\n\tTYPE_ZKID\x10\x04\x42\x13\n\x11signature_variant"\x1c\n\x07\x45\x64\x32\x35\x35\x31\x39\x12\x11\n\tsignature\x18\x01 \x01(\x0c"#\n\x0eSecp256k1Ecdsa\x12\x11\n\tsignature\x18\x01 \x01(\x0c"\x1d\n\x08WebAuthn\x12\x11\n\tsignature\x18\x01 \x01(\x0c"\x19\n\x04ZkId\x12\x11\n\tsignature\x18\x01 \x01(\x0c"\x83\x01\n\x12SingleKeySignature\x12\x36\n\npublic_key\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"X\n\x10IndexedSignature\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"\xa5\x01\n\x11MultiKeySignature\x12\x37\n\x0bpublic_keys\x18\x01 \x03(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12:\n\nsignatures\x18\x02 \x03(\x0b\x32&.aptos.transaction.v1.IndexedSignature\x12\x1b\n\x13signatures_required\x18\x03 \x01(\r"F\n\x0cSingleSender\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xe4\x03\n\x10\x41\x63\x63ountSignature\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.AccountSignature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12H\n\x14single_key_signature\x18\x05 \x01(\x0b\x32(.aptos.transaction.v1.SingleKeySignatureH\x00\x12\x46\n\x13multi_key_signature\x18\x06 \x01(\x0b\x32\'.aptos.transaction.v1.MultiKeySignatureH\x00"u\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x13\n\x0fTYPE_SINGLE_KEY\x10\x04\x12\x12\n\x0eTYPE_MULTI_KEY\x10\x05"\x04\x08\x03\x10\x03\x42\x0b\n\tsignature*\xea\x02\n\tMoveTypes\x12\x1a\n\x16MOVE_TYPES_UNSPECIFIED\x10\x00\x12\x13\n\x0fMOVE_TYPES_BOOL\x10\x01\x12\x11\n\rMOVE_TYPES_U8\x10\x02\x12\x12\n\x0eMOVE_TYPES_U16\x10\x0c\x12\x12\n\x0eMOVE_TYPES_U32\x10\r\x12\x12\n\x0eMOVE_TYPES_U64\x10\x03\x12\x13\n\x0fMOVE_TYPES_U128\x10\x04\x12\x13\n\x0fMOVE_TYPES_U256\x10\x0e\x12\x16\n\x12MOVE_TYPES_ADDRESS\x10\x05\x12\x15\n\x11MOVE_TYPES_SIGNER\x10\x06\x12\x15\n\x11MOVE_TYPES_VECTOR\x10\x07\x12\x15\n\x11MOVE_TYPES_STRUCT\x10\x08\x12!\n\x1dMOVE_TYPES_GENERIC_TYPE_PARAM\x10\t\x12\x18\n\x14MOVE_TYPES_REFERENCE\x10\n\x12\x19\n\x15MOVE_TYPES_UNPARSABLE\x10\x0b*\x87\x01\n\x0bMoveAbility\x12\x1c\n\x18MOVE_ABILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11MOVE_ABILITY_COPY\x10\x01\x12\x15\n\x11MOVE_ABILITY_DROP\x10\x02\x12\x16\n\x12MOVE_ABILITY_STORE\x10\x03\x12\x14\n\x10MOVE_ABILITY_KEY\x10\x04\x62\x06proto3' + b'\n&aptos/transaction/v1/transaction.proto\x12\x14\x61ptos.transaction.v1\x1a$aptos/util/timestamp/timestamp.proto"\x9a\x01\n\x05\x42lock\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x12\n\x06height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x10\n\x08\x63hain_id\x18\x04 \x01(\r"\xad\x06\n\x0bTransaction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x13\n\x07version\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x33\n\x04info\x18\x03 \x01(\x0b\x32%.aptos.transaction.v1.TransactionInfo\x12\x11\n\x05\x65poch\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x0c\x62lock_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12?\n\x04type\x18\x06 \x01(\x0e\x32\x31.aptos.transaction.v1.Transaction.TransactionType\x12H\n\x0e\x62lock_metadata\x18\x07 \x01(\x0b\x32..aptos.transaction.v1.BlockMetadataTransactionH\x00\x12;\n\x07genesis\x18\x08 \x01(\x0b\x32(.aptos.transaction.v1.GenesisTransactionH\x00\x12L\n\x10state_checkpoint\x18\t \x01(\x0b\x32\x30.aptos.transaction.v1.StateCheckpointTransactionH\x00\x12\x35\n\x04user\x18\n \x01(\x0b\x32%.aptos.transaction.v1.UserTransactionH\x00\x12?\n\tvalidator\x18\x15 \x01(\x0b\x32*.aptos.transaction.v1.ValidatorTransactionH\x00"\xd8\x01\n\x0fTransactionType\x12 \n\x1cTRANSACTION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSACTION_TYPE_GENESIS\x10\x01\x12#\n\x1fTRANSACTION_TYPE_BLOCK_METADATA\x10\x02\x12%\n!TRANSACTION_TYPE_STATE_CHECKPOINT\x10\x03\x12\x19\n\x15TRANSACTION_TYPE_USER\x10\x04\x12\x1e\n\x1aTRANSACTION_TYPE_VALIDATOR\x10\x14\x42\n\n\x08txn_data"\xbe\x01\n\x18\x42lockMetadataTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x05round\x18\x02 \x01(\x04\x42\x02\x30\x01\x12+\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event\x12#\n\x1bprevious_block_votes_bitvec\x18\x04 \x01(\x0c\x12\x10\n\x08proposer\x18\x05 \x01(\t\x12\x1f\n\x17\x66\x61iled_proposer_indices\x18\x06 \x03(\r"r\n\x12GenesisTransaction\x12/\n\x07payload\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x1c\n\x1aStateCheckpointTransaction"\x16\n\x14ValidatorTransaction"}\n\x0fUserTransaction\x12=\n\x07request\x18\x01 \x01(\x0b\x32,.aptos.transaction.v1.UserTransactionRequest\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x9f\x01\n\x05\x45vent\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.EventKey\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12,\n\x04type\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x10\n\x08type_str\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t"\xa1\x02\n\x0fTransactionInfo\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x19\n\x11state_change_hash\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65vent_root_hash\x18\x03 \x01(\x0c\x12"\n\x15state_checkpoint_hash\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x08gas_used\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x0f\n\x07success\x18\x06 \x01(\x08\x12\x11\n\tvm_status\x18\x07 \x01(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x08 \x01(\x0c\x12\x35\n\x07\x63hanges\x18\t \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChangeB\x18\n\x16_state_checkpoint_hash"@\n\x08\x45ventKey\x12\x1b\n\x0f\x63reation_number\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\t"\xb0\x02\n\x16UserTransactionRequest\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0emax_gas_amount\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0egas_unit_price\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x42\n\x19\x65xpiration_timestamp_secs\x18\x05 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x39\n\x07payload\x18\x06 \x01(\x0b\x32(.aptos.transaction.v1.TransactionPayload\x12\x32\n\tsignature\x18\x07 \x01(\x0b\x32\x1f.aptos.transaction.v1.Signature"\xda\x02\n\x08WriteSet\x12\x43\n\x0ewrite_set_type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.WriteSet.WriteSetType\x12@\n\x10script_write_set\x18\x02 \x01(\x0b\x32$.aptos.transaction.v1.ScriptWriteSetH\x00\x12@\n\x10\x64irect_write_set\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DirectWriteSetH\x00"x\n\x0cWriteSetType\x12\x1e\n\x1aWRITE_SET_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWRITE_SET_TYPE_SCRIPT_WRITE_SET\x10\x01\x12#\n\x1fWRITE_SET_TYPE_DIRECT_WRITE_SET\x10\x02\x42\x0b\n\twrite_set"Y\n\x0eScriptWriteSet\x12\x12\n\nexecute_as\x18\x01 \x01(\t\x12\x33\n\x06script\x18\x02 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayload"}\n\x0e\x44irectWriteSet\x12>\n\x10write_set_change\x18\x01 \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChange\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x89\x05\n\x0eWriteSetChange\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).aptos.transaction.v1.WriteSetChange.Type\x12;\n\rdelete_module\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.DeleteModuleH\x00\x12?\n\x0f\x64\x65lete_resource\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DeleteResourceH\x00\x12\x42\n\x11\x64\x65lete_table_item\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableItemH\x00\x12\x39\n\x0cwrite_module\x18\x05 \x01(\x0b\x32!.aptos.transaction.v1.WriteModuleH\x00\x12=\n\x0ewrite_resource\x18\x06 \x01(\x0b\x32#.aptos.transaction.v1.WriteResourceH\x00\x12@\n\x10write_table_item\x18\x07 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableItemH\x00"\xb5\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_DELETE_MODULE\x10\x01\x12\x18\n\x14TYPE_DELETE_RESOURCE\x10\x02\x12\x1a\n\x16TYPE_DELETE_TABLE_ITEM\x10\x03\x12\x15\n\x11TYPE_WRITE_MODULE\x10\x04\x12\x17\n\x13TYPE_WRITE_RESOURCE\x10\x05\x12\x19\n\x15TYPE_WRITE_TABLE_ITEM\x10\x06\x42\x08\n\x06\x63hange"k\n\x0c\x44\x65leteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x32\n\x06module\x18\x03 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId"~\n\x0e\x44\x65leteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t"{\n\x0f\x44\x65leteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x33\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableData"0\n\x0f\x44\x65leteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t"n\n\x0bWriteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x36\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"\x8b\x01\n\rWriteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\t"R\n\x0eWriteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x12\n\nvalue_type\x18\x04 \x01(\t"y\n\x0eWriteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x32\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableData"\x8c\x04\n\x12TransactionPayload\x12;\n\x04type\x18\x01 \x01(\x0e\x32-.aptos.transaction.v1.TransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00\x12=\n\x0escript_payload\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayloadH\x00\x12\x42\n\x11write_set_payload\x18\x05 \x01(\x0b\x32%.aptos.transaction.v1.WriteSetPayloadH\x00\x12\x41\n\x10multisig_payload\x18\x06 \x01(\x0b\x32%.aptos.transaction.v1.MultisigPayloadH\x00"\x93\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x12\x17\n\x13TYPE_SCRIPT_PAYLOAD\x10\x02\x12\x1a\n\x16TYPE_WRITE_SET_PAYLOAD\x10\x04\x12\x19\n\x15TYPE_MULTISIG_PAYLOAD\x10\x05"\x04\x08\x03\x10\x03\x42\t\n\x07payloadJ\x04\x08\x04\x10\x05"\xb9\x01\n\x14\x45ntryFunctionPayload\x12\x37\n\x08\x66unction\x18\x01 \x01(\x0b\x32%.aptos.transaction.v1.EntryFunctionId\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x1d\n\x15\x65ntry_function_id_str\x18\x04 \x01(\t"W\n\x12MoveScriptBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12/\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.MoveFunction"\x92\x01\n\rScriptPayload\x12\x36\n\x04\x63ode\x18\x01 \x01(\x0b\x32(.aptos.transaction.v1.MoveScriptBytecode\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t"\x97\x01\n\x0fMultisigPayload\x12\x18\n\x10multisig_address\x18\x01 \x01(\t\x12R\n\x13transaction_payload\x18\x02 \x01(\x0b\x32\x30.aptos.transaction.v1.MultisigTransactionPayloadH\x00\x88\x01\x01\x42\x16\n\x14_transaction_payload"\xf9\x01\n\x1aMultisigTransactionPayload\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.aptos.transaction.v1.MultisigTransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00"=\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x42\t\n\x07payload"U\n\x12MoveModuleBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12-\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32 .aptos.transaction.v1.MoveModule"\xd2\x01\n\nMoveModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x07\x66riends\x18\x03 \x03(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12=\n\x11\x65xposed_functions\x18\x04 \x03(\x0b\x32".aptos.transaction.v1.MoveFunction\x12\x31\n\x07structs\x18\x05 \x03(\x0b\x32 .aptos.transaction.v1.MoveStruct"\x92\x03\n\x0cMoveFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x41\n\nvisibility\x18\x02 \x01(\x0e\x32-.aptos.transaction.v1.MoveFunction.Visibility\x12\x10\n\x08is_entry\x18\x03 \x01(\x08\x12O\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x32.aptos.transaction.v1.MoveFunctionGenericTypeParam\x12.\n\x06params\x18\x05 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12.\n\x06return\x18\x06 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"n\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x02\x12\x15\n\x11VISIBILITY_FRIEND\x10\x03"\xe9\x01\n\nMoveStruct\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tis_native\x18\x02 \x01(\x08\x12\x34\n\tabilities\x18\x03 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12M\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x30.aptos.transaction.v1.MoveStructGenericTypeParam\x12\x35\n\x06\x66ields\x18\x05 \x03(\x0b\x32%.aptos.transaction.v1.MoveStructField"h\n\x1aMoveStructGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12\x12\n\nis_phantom\x18\x02 \x01(\x08"M\n\x0fMoveStructField\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x04type\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType"V\n\x1cMoveFunctionGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility"\xf8\x02\n\x08MoveType\x12-\n\x04type\x18\x01 \x01(\x0e\x32\x1f.aptos.transaction.v1.MoveTypes\x12\x30\n\x06vector\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeH\x00\x12\x35\n\x06struct\x18\x04 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTagH\x00\x12"\n\x18generic_type_param_index\x18\x05 \x01(\rH\x00\x12\x41\n\treference\x18\x06 \x01(\x0b\x32,.aptos.transaction.v1.MoveType.ReferenceTypeH\x00\x12\x14\n\nunparsable\x18\x07 \x01(\tH\x00\x1aL\n\rReferenceType\x12\x0f\n\x07mutable\x18\x01 \x01(\x08\x12*\n\x02to\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeB\t\n\x07\x63ontent"D\n\x0fWriteSetPayload\x12\x31\n\twrite_set\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet"S\n\x0f\x45ntryFunctionId\x12\x32\n\x06module\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12\x0c\n\x04name\x18\x02 \x01(\t"-\n\x0cMoveModuleId\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t"{\n\rMoveStructTag\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0e\n\x06module\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12;\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"\x9b\x04\n\tSignature\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.aptos.transaction.v1.Signature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12@\n\x0bmulti_agent\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.MultiAgentSignatureH\x00\x12<\n\tfee_payer\x18\x05 \x01(\x0b\x32\'.aptos.transaction.v1.FeePayerSignatureH\x00\x12;\n\rsingle_sender\x18\x07 \x01(\x0b\x32".aptos.transaction.v1.SingleSenderH\x00"\x8e\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x14\n\x10TYPE_MULTI_AGENT\x10\x03\x12\x12\n\x0eTYPE_FEE_PAYER\x10\x04\x12\x16\n\x12TYPE_SINGLE_SENDER\x10\x06"\x04\x08\x05\x10\x05\x42\x0b\n\tsignature"9\n\x10\x45\x64\x32\x35\x35\x31\x39Signature\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c"o\n\x15MultiEd25519Signature\x12\x13\n\x0bpublic_keys\x18\x01 \x03(\x0c\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\x11\n\tthreshold\x18\x03 \x01(\r\x12\x1a\n\x12public_key_indices\x18\x04 \x03(\r"\xb4\x01\n\x13MultiAgentSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature"\x8f\x02\n\x11\x46\x65\x65PayerSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12\x19\n\x11\x66\x65\x65_payer_address\x18\x04 \x01(\t\x12@\n\x10\x66\x65\x65_payer_signer\x18\x05 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xcc\x01\n\x0c\x41nyPublicKey\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnyPublicKey.Type\x12\x12\n\npublic_key\x18\x02 \x01(\x0c"q\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02\x12\x18\n\x14TYPE_SECP256R1_ECDSA\x10\x03\x12\r\n\tTYPE_OIDB\x10\x04"\xb0\x03\n\x0c\x41nySignature\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnySignature.Type\x12\x15\n\tsignature\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12\x30\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x03 \x01(\x0b\x32\x1d.aptos.transaction.v1.Ed25519H\x00\x12?\n\x0fsecp256k1_ecdsa\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.Secp256k1EcdsaH\x00\x12\x32\n\x08webauthn\x18\x05 \x01(\x0b\x32\x1e.aptos.transaction.v1.WebAuthnH\x00\x12*\n\x04oidb\x18\x06 \x01(\x0b\x32\x1a.aptos.transaction.v1.OidbH\x00"j\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02\x12\x11\n\rTYPE_WEBAUTHN\x10\x03\x12\r\n\tTYPE_OIDB\x10\x04\x42\x13\n\x11signature_variant"\x1c\n\x07\x45\x64\x32\x35\x35\x31\x39\x12\x11\n\tsignature\x18\x01 \x01(\x0c"#\n\x0eSecp256k1Ecdsa\x12\x11\n\tsignature\x18\x01 \x01(\x0c"\x1d\n\x08WebAuthn\x12\x11\n\tsignature\x18\x01 \x01(\x0c"\x19\n\x04Oidb\x12\x11\n\tsignature\x18\x01 \x01(\x0c"\x83\x01\n\x12SingleKeySignature\x12\x36\n\npublic_key\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"X\n\x10IndexedSignature\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"\xa5\x01\n\x11MultiKeySignature\x12\x37\n\x0bpublic_keys\x18\x01 \x03(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12:\n\nsignatures\x18\x02 \x03(\x0b\x32&.aptos.transaction.v1.IndexedSignature\x12\x1b\n\x13signatures_required\x18\x03 \x01(\r"F\n\x0cSingleSender\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xe4\x03\n\x10\x41\x63\x63ountSignature\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.AccountSignature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12H\n\x14single_key_signature\x18\x05 \x01(\x0b\x32(.aptos.transaction.v1.SingleKeySignatureH\x00\x12\x46\n\x13multi_key_signature\x18\x06 \x01(\x0b\x32\'.aptos.transaction.v1.MultiKeySignatureH\x00"u\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x13\n\x0fTYPE_SINGLE_KEY\x10\x04\x12\x12\n\x0eTYPE_MULTI_KEY\x10\x05"\x04\x08\x03\x10\x03\x42\x0b\n\tsignature*\xea\x02\n\tMoveTypes\x12\x1a\n\x16MOVE_TYPES_UNSPECIFIED\x10\x00\x12\x13\n\x0fMOVE_TYPES_BOOL\x10\x01\x12\x11\n\rMOVE_TYPES_U8\x10\x02\x12\x12\n\x0eMOVE_TYPES_U16\x10\x0c\x12\x12\n\x0eMOVE_TYPES_U32\x10\r\x12\x12\n\x0eMOVE_TYPES_U64\x10\x03\x12\x13\n\x0fMOVE_TYPES_U128\x10\x04\x12\x13\n\x0fMOVE_TYPES_U256\x10\x0e\x12\x16\n\x12MOVE_TYPES_ADDRESS\x10\x05\x12\x15\n\x11MOVE_TYPES_SIGNER\x10\x06\x12\x15\n\x11MOVE_TYPES_VECTOR\x10\x07\x12\x15\n\x11MOVE_TYPES_STRUCT\x10\x08\x12!\n\x1dMOVE_TYPES_GENERIC_TYPE_PARAM\x10\t\x12\x18\n\x14MOVE_TYPES_REFERENCE\x10\n\x12\x19\n\x15MOVE_TYPES_UNPARSABLE\x10\x0b*\x87\x01\n\x0bMoveAbility\x12\x1c\n\x18MOVE_ABILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11MOVE_ABILITY_COPY\x10\x01\x12\x15\n\x11MOVE_ABILITY_DROP\x10\x02\x12\x16\n\x12MOVE_ABILITY_STORE\x10\x03\x12\x14\n\x10MOVE_ABILITY_KEY\x10\x04\x62\x06proto3' ) _globals = globals() @@ -183,8 +183,8 @@ _globals["_SECP256K1ECDSA"]._serialized_end = 9641 _globals["_WEBAUTHN"]._serialized_start = 9643 _globals["_WEBAUTHN"]._serialized_end = 9672 - _globals["_ZKID"]._serialized_start = 9674 - _globals["_ZKID"]._serialized_end = 9699 + _globals["_OIDB"]._serialized_start = 9674 + _globals["_OIDB"]._serialized_end = 9699 _globals["_SINGLEKEYSIGNATURE"]._serialized_start = 9702 _globals["_SINGLEKEYSIGNATURE"]._serialized_end = 9833 _globals["_INDEXEDSIGNATURE"]._serialized_start = 9835 diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi index 2537b9b4006fa..befe7f92b5ead 100644 --- a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi @@ -1016,12 +1016,12 @@ class AnyPublicKey(_message.Message): TYPE_ED25519: _ClassVar[AnyPublicKey.Type] TYPE_SECP256K1_ECDSA: _ClassVar[AnyPublicKey.Type] TYPE_SECP256R1_ECDSA: _ClassVar[AnyPublicKey.Type] - TYPE_ZKID: _ClassVar[AnyPublicKey.Type] + TYPE_OIDB: _ClassVar[AnyPublicKey.Type] TYPE_UNSPECIFIED: AnyPublicKey.Type TYPE_ED25519: AnyPublicKey.Type TYPE_SECP256K1_ECDSA: AnyPublicKey.Type TYPE_SECP256R1_ECDSA: AnyPublicKey.Type - TYPE_ZKID: AnyPublicKey.Type + TYPE_OIDB: AnyPublicKey.Type TYPE_FIELD_NUMBER: _ClassVar[int] PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] type: AnyPublicKey.Type @@ -1033,7 +1033,7 @@ class AnyPublicKey(_message.Message): ) -> None: ... class AnySignature(_message.Message): - __slots__ = ["type", "signature", "ed25519", "secp256k1_ecdsa", "webauthn", "zkid"] + __slots__ = ["type", "signature", "ed25519", "secp256k1_ecdsa", "webauthn", "oidb"] class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = [] @@ -1041,24 +1041,24 @@ class AnySignature(_message.Message): TYPE_ED25519: _ClassVar[AnySignature.Type] TYPE_SECP256K1_ECDSA: _ClassVar[AnySignature.Type] TYPE_WEBAUTHN: _ClassVar[AnySignature.Type] - TYPE_ZKID: _ClassVar[AnySignature.Type] + TYPE_OIDB: _ClassVar[AnySignature.Type] TYPE_UNSPECIFIED: AnySignature.Type TYPE_ED25519: AnySignature.Type TYPE_SECP256K1_ECDSA: AnySignature.Type TYPE_WEBAUTHN: AnySignature.Type - TYPE_ZKID: AnySignature.Type + TYPE_OIDB: AnySignature.Type TYPE_FIELD_NUMBER: _ClassVar[int] SIGNATURE_FIELD_NUMBER: _ClassVar[int] ED25519_FIELD_NUMBER: _ClassVar[int] SECP256K1_ECDSA_FIELD_NUMBER: _ClassVar[int] WEBAUTHN_FIELD_NUMBER: _ClassVar[int] - ZKID_FIELD_NUMBER: _ClassVar[int] + OIDB_FIELD_NUMBER: _ClassVar[int] type: AnySignature.Type signature: bytes ed25519: Ed25519 secp256k1_ecdsa: Secp256k1Ecdsa webauthn: WebAuthn - zkid: ZkId + oidb: Oidb def __init__( self, type: _Optional[_Union[AnySignature.Type, str]] = ..., @@ -1066,7 +1066,7 @@ class AnySignature(_message.Message): ed25519: _Optional[_Union[Ed25519, _Mapping]] = ..., secp256k1_ecdsa: _Optional[_Union[Secp256k1Ecdsa, _Mapping]] = ..., webauthn: _Optional[_Union[WebAuthn, _Mapping]] = ..., - zkid: _Optional[_Union[ZkId, _Mapping]] = ..., + oidb: _Optional[_Union[Oidb, _Mapping]] = ..., ) -> None: ... class Ed25519(_message.Message): @@ -1087,7 +1087,7 @@ class WebAuthn(_message.Message): signature: bytes def __init__(self, signature: _Optional[bytes] = ...) -> None: ... -class ZkId(_message.Message): +class Oidb(_message.Message): __slots__ = ["signature"] SIGNATURE_FIELD_NUMBER: _ClassVar[int] signature: bytes diff --git a/protos/rust/src/pb/aptos.transaction.v1.rs b/protos/rust/src/pb/aptos.transaction.v1.rs index 48147cffcfe5a..2807c72f1762c 100644 --- a/protos/rust/src/pb/aptos.transaction.v1.rs +++ b/protos/rust/src/pb/aptos.transaction.v1.rs @@ -870,7 +870,7 @@ pub mod any_public_key { Ed25519 = 1, Secp256k1Ecdsa = 2, Secp256r1Ecdsa = 3, - Zkid = 4, + Oidb = 4, } impl Type { /// String value of the enum field names used in the ProtoBuf definition. @@ -883,7 +883,7 @@ pub mod any_public_key { Type::Ed25519 => "TYPE_ED25519", Type::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", Type::Secp256r1Ecdsa => "TYPE_SECP256R1_ECDSA", - Type::Zkid => "TYPE_ZKID", + Type::Oidb => "TYPE_OIDB", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -893,7 +893,7 @@ pub mod any_public_key { "TYPE_ED25519" => Some(Self::Ed25519), "TYPE_SECP256K1_ECDSA" => Some(Self::Secp256k1Ecdsa), "TYPE_SECP256R1_ECDSA" => Some(Self::Secp256r1Ecdsa), - "TYPE_ZKID" => Some(Self::Zkid), + "TYPE_OIDB" => Some(Self::Oidb), _ => None, } } @@ -922,7 +922,7 @@ pub mod any_signature { Ed25519 = 1, Secp256k1Ecdsa = 2, Webauthn = 3, - Zkid = 4, + Oidb = 4, } impl Type { /// String value of the enum field names used in the ProtoBuf definition. @@ -935,7 +935,7 @@ pub mod any_signature { Type::Ed25519 => "TYPE_ED25519", Type::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", Type::Webauthn => "TYPE_WEBAUTHN", - Type::Zkid => "TYPE_ZKID", + Type::Oidb => "TYPE_OIDB", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -945,7 +945,7 @@ pub mod any_signature { "TYPE_ED25519" => Some(Self::Ed25519), "TYPE_SECP256K1_ECDSA" => Some(Self::Secp256k1Ecdsa), "TYPE_WEBAUTHN" => Some(Self::Webauthn), - "TYPE_ZKID" => Some(Self::Zkid), + "TYPE_OIDB" => Some(Self::Oidb), _ => None, } } @@ -961,7 +961,7 @@ pub mod any_signature { #[prost(message, tag="5")] Webauthn(super::WebAuthn), #[prost(message, tag="6")] - Zkid(super::ZkId), + Oidb(super::Oidb), } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -984,7 +984,7 @@ pub struct WebAuthn { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkId { +pub struct Oidb { #[prost(bytes="vec", tag="1")] pub signature: ::prost::alloc::vec::Vec, } @@ -1878,7 +1878,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x32, 0x35, 0x36, 0x4b, 0x31, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x52, 0x31, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x5a, 0x4b, 0x49, 0x44, 0x10, 0x04, 0x22, 0xea, 0x03, 0x0a, 0x0c, 0x41, 0x6e, 0x79, 0x53, 0x69, + 0x4f, 0x49, 0x44, 0x42, 0x10, 0x04, 0x22, 0xea, 0x03, 0x0a, 0x0c, 0x41, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, @@ -1898,16 +1898,16 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, - 0x12, 0x30, 0x0a, 0x04, 0x7a, 0x6b, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x12, 0x30, 0x0a, 0x04, 0x6f, 0x69, 0x64, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x6b, 0x49, 0x64, 0x48, 0x00, 0x52, 0x04, 0x7a, 0x6b, - 0x69, 0x64, 0x22, 0x6a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6f, 0x69, + 0x64, 0x62, 0x22, 0x6a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x55, 0x54, 0x48, 0x4e, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x5a, 0x4b, 0x49, 0x44, 0x10, 0x04, 0x42, 0x13, + 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x49, 0x44, 0x42, 0x10, 0x04, 0x42, 0x13, 0x0a, 0x11, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x27, 0x0a, 0x07, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -1917,7 +1917,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x28, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x24, 0x0a, 0x04, 0x5a, 0x6b, 0x49, 0x64, 0x12, 0x1c, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x24, 0x0a, 0x04, 0x4f, 0x69, 0x64, 0x62, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, diff --git a/protos/rust/src/pb/aptos.transaction.v1.serde.rs b/protos/rust/src/pb/aptos.transaction.v1.serde.rs index 3676f0c8d0443..9cbe38b65b792 100644 --- a/protos/rust/src/pb/aptos.transaction.v1.serde.rs +++ b/protos/rust/src/pb/aptos.transaction.v1.serde.rs @@ -364,7 +364,7 @@ impl serde::Serialize for any_public_key::Type { Self::Ed25519 => "TYPE_ED25519", Self::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", Self::Secp256r1Ecdsa => "TYPE_SECP256R1_ECDSA", - Self::Zkid => "TYPE_ZKID", + Self::Oidb => "TYPE_OIDB", }; serializer.serialize_str(variant) } @@ -380,7 +380,7 @@ impl<'de> serde::Deserialize<'de> for any_public_key::Type { "TYPE_ED25519", "TYPE_SECP256K1_ECDSA", "TYPE_SECP256R1_ECDSA", - "TYPE_ZKID", + "TYPE_OIDB", ]; struct GeneratedVisitor; @@ -427,7 +427,7 @@ impl<'de> serde::Deserialize<'de> for any_public_key::Type { "TYPE_ED25519" => Ok(any_public_key::Type::Ed25519), "TYPE_SECP256K1_ECDSA" => Ok(any_public_key::Type::Secp256k1Ecdsa), "TYPE_SECP256R1_ECDSA" => Ok(any_public_key::Type::Secp256r1Ecdsa), - "TYPE_ZKID" => Ok(any_public_key::Type::Zkid), + "TYPE_OIDB" => Ok(any_public_key::Type::Oidb), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -472,8 +472,8 @@ impl serde::Serialize for AnySignature { any_signature::SignatureVariant::Webauthn(v) => { struct_ser.serialize_field("webauthn", v)?; } - any_signature::SignatureVariant::Zkid(v) => { - struct_ser.serialize_field("zkid", v)?; + any_signature::SignatureVariant::Oidb(v) => { + struct_ser.serialize_field("oidb", v)?; } } } @@ -493,7 +493,7 @@ impl<'de> serde::Deserialize<'de> for AnySignature { "secp256k1_ecdsa", "secp256k1Ecdsa", "webauthn", - "zkid", + "oidb", ]; #[allow(clippy::enum_variant_names)] @@ -503,7 +503,7 @@ impl<'de> serde::Deserialize<'de> for AnySignature { Ed25519, Secp256k1Ecdsa, Webauthn, - Zkid, + Oidb, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -530,7 +530,7 @@ impl<'de> serde::Deserialize<'de> for AnySignature { "ed25519" => Ok(GeneratedField::Ed25519), "secp256k1Ecdsa" | "secp256k1_ecdsa" => Ok(GeneratedField::Secp256k1Ecdsa), "webauthn" => Ok(GeneratedField::Webauthn), - "zkid" => Ok(GeneratedField::Zkid), + "oidb" => Ok(GeneratedField::Oidb), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -590,11 +590,11 @@ impl<'de> serde::Deserialize<'de> for AnySignature { signature_variant__ = map.next_value::<::std::option::Option<_>>()?.map(any_signature::SignatureVariant::Webauthn) ; } - GeneratedField::Zkid => { + GeneratedField::Oidb => { if signature_variant__.is_some() { - return Err(serde::de::Error::duplicate_field("zkid")); + return Err(serde::de::Error::duplicate_field("oidb")); } - signature_variant__ = map.next_value::<::std::option::Option<_>>()?.map(any_signature::SignatureVariant::Zkid) + signature_variant__ = map.next_value::<::std::option::Option<_>>()?.map(any_signature::SignatureVariant::Oidb) ; } } @@ -620,7 +620,7 @@ impl serde::Serialize for any_signature::Type { Self::Ed25519 => "TYPE_ED25519", Self::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", Self::Webauthn => "TYPE_WEBAUTHN", - Self::Zkid => "TYPE_ZKID", + Self::Oidb => "TYPE_OIDB", }; serializer.serialize_str(variant) } @@ -636,7 +636,7 @@ impl<'de> serde::Deserialize<'de> for any_signature::Type { "TYPE_ED25519", "TYPE_SECP256K1_ECDSA", "TYPE_WEBAUTHN", - "TYPE_ZKID", + "TYPE_OIDB", ]; struct GeneratedVisitor; @@ -683,7 +683,7 @@ impl<'de> serde::Deserialize<'de> for any_signature::Type { "TYPE_ED25519" => Ok(any_signature::Type::Ed25519), "TYPE_SECP256K1_ECDSA" => Ok(any_signature::Type::Secp256k1Ecdsa), "TYPE_WEBAUTHN" => Ok(any_signature::Type::Webauthn), - "TYPE_ZKID" => Ok(any_signature::Type::Zkid), + "TYPE_OIDB" => Ok(any_signature::Type::Oidb), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -5323,6 +5323,99 @@ impl<'de> serde::Deserialize<'de> for multisig_transaction_payload::Type { deserializer.deserialize_any(GeneratedVisitor) } } +impl serde::Serialize for Oidb { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.signature.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.Oidb", len)?; + if !self.signature.is_empty() { + struct_ser.serialize_field("signature", pbjson::private::base64::encode(&self.signature).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Oidb { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "signature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Signature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "signature" => Ok(GeneratedField::Signature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Oidb; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.Oidb") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Signature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("signature")); + } + signature__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(Oidb { + signature: signature__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.Oidb", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for ScriptPayload { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -8637,96 +8730,3 @@ impl<'de> serde::Deserialize<'de> for WriteTableItem { deserializer.deserialize_struct("aptos.transaction.v1.WriteTableItem", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for ZkId { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.signature.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.ZkId", len)?; - if !self.signature.is_empty() { - struct_ser.serialize_field("signature", pbjson::private::base64::encode(&self.signature).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkId { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "signature", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Signature, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "signature" => Ok(GeneratedField::Signature), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkId; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct aptos.transaction.v1.ZkId") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut signature__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Signature => { - if signature__.is_some() { - return Err(serde::de::Error::duplicate_field("signature")); - } - signature__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkId { - signature: signature__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("aptos.transaction.v1.ZkId", FIELDS, GeneratedVisitor) - } -} diff --git a/protos/typescript/src/aptos/transaction/v1/transaction.ts b/protos/typescript/src/aptos/transaction/v1/transaction.ts index e3828d8e7152c..13a27b1d4afc3 100644 --- a/protos/typescript/src/aptos/transaction/v1/transaction.ts +++ b/protos/typescript/src/aptos/transaction/v1/transaction.ts @@ -872,7 +872,7 @@ export enum AnyPublicKey_Type { TYPE_ED25519 = 1, TYPE_SECP256K1_ECDSA = 2, TYPE_SECP256R1_ECDSA = 3, - TYPE_ZKID = 4, + TYPE_OIDB = 4, UNRECOGNIZED = -1, } @@ -891,8 +891,8 @@ export function anyPublicKey_TypeFromJSON(object: any): AnyPublicKey_Type { case "TYPE_SECP256R1_ECDSA": return AnyPublicKey_Type.TYPE_SECP256R1_ECDSA; case 4: - case "TYPE_ZKID": - return AnyPublicKey_Type.TYPE_ZKID; + case "TYPE_OIDB": + return AnyPublicKey_Type.TYPE_OIDB; case -1: case "UNRECOGNIZED": default: @@ -910,8 +910,8 @@ export function anyPublicKey_TypeToJSON(object: AnyPublicKey_Type): string { return "TYPE_SECP256K1_ECDSA"; case AnyPublicKey_Type.TYPE_SECP256R1_ECDSA: return "TYPE_SECP256R1_ECDSA"; - case AnyPublicKey_Type.TYPE_ZKID: - return "TYPE_ZKID"; + case AnyPublicKey_Type.TYPE_OIDB: + return "TYPE_OIDB"; case AnyPublicKey_Type.UNRECOGNIZED: default: return "UNRECOGNIZED"; @@ -932,7 +932,7 @@ export interface AnySignature { ed25519?: Ed25519 | undefined; secp256k1Ecdsa?: Secp256k1Ecdsa | undefined; webauthn?: WebAuthn | undefined; - zkid?: ZkId | undefined; + oidb?: Oidb | undefined; } export enum AnySignature_Type { @@ -940,7 +940,7 @@ export enum AnySignature_Type { TYPE_ED25519 = 1, TYPE_SECP256K1_ECDSA = 2, TYPE_WEBAUTHN = 3, - TYPE_ZKID = 4, + TYPE_OIDB = 4, UNRECOGNIZED = -1, } @@ -959,8 +959,8 @@ export function anySignature_TypeFromJSON(object: any): AnySignature_Type { case "TYPE_WEBAUTHN": return AnySignature_Type.TYPE_WEBAUTHN; case 4: - case "TYPE_ZKID": - return AnySignature_Type.TYPE_ZKID; + case "TYPE_OIDB": + return AnySignature_Type.TYPE_OIDB; case -1: case "UNRECOGNIZED": default: @@ -978,8 +978,8 @@ export function anySignature_TypeToJSON(object: AnySignature_Type): string { return "TYPE_SECP256K1_ECDSA"; case AnySignature_Type.TYPE_WEBAUTHN: return "TYPE_WEBAUTHN"; - case AnySignature_Type.TYPE_ZKID: - return "TYPE_ZKID"; + case AnySignature_Type.TYPE_OIDB: + return "TYPE_OIDB"; case AnySignature_Type.UNRECOGNIZED: default: return "UNRECOGNIZED"; @@ -998,7 +998,7 @@ export interface WebAuthn { signature?: Uint8Array | undefined; } -export interface ZkId { +export interface Oidb { signature?: Uint8Array | undefined; } @@ -7719,7 +7719,7 @@ function createBaseAnySignature(): AnySignature { ed25519: undefined, secp256k1Ecdsa: undefined, webauthn: undefined, - zkid: undefined, + oidb: undefined, }; } @@ -7740,8 +7740,8 @@ export const AnySignature = { if (message.webauthn !== undefined) { WebAuthn.encode(message.webauthn, writer.uint32(42).fork()).ldelim(); } - if (message.zkid !== undefined) { - ZkId.encode(message.zkid, writer.uint32(50).fork()).ldelim(); + if (message.oidb !== undefined) { + Oidb.encode(message.oidb, writer.uint32(50).fork()).ldelim(); } return writer; }, @@ -7793,7 +7793,7 @@ export const AnySignature = { break; } - message.zkid = ZkId.decode(reader, reader.uint32()); + message.oidb = Oidb.decode(reader, reader.uint32()); continue; } if ((tag & 7) === 4 || tag === 0) { @@ -7843,7 +7843,7 @@ export const AnySignature = { ed25519: isSet(object.ed25519) ? Ed25519.fromJSON(object.ed25519) : undefined, secp256k1Ecdsa: isSet(object.secp256k1Ecdsa) ? Secp256k1Ecdsa.fromJSON(object.secp256k1Ecdsa) : undefined, webauthn: isSet(object.webauthn) ? WebAuthn.fromJSON(object.webauthn) : undefined, - zkid: isSet(object.zkid) ? ZkId.fromJSON(object.zkid) : undefined, + oidb: isSet(object.oidb) ? Oidb.fromJSON(object.oidb) : undefined, }; }, @@ -7864,8 +7864,8 @@ export const AnySignature = { if (message.webauthn !== undefined) { obj.webauthn = WebAuthn.toJSON(message.webauthn); } - if (message.zkid !== undefined) { - obj.zkid = ZkId.toJSON(message.zkid); + if (message.oidb !== undefined) { + obj.oidb = Oidb.toJSON(message.oidb); } return obj; }, @@ -7886,7 +7886,7 @@ export const AnySignature = { message.webauthn = (object.webauthn !== undefined && object.webauthn !== null) ? WebAuthn.fromPartial(object.webauthn) : undefined; - message.zkid = (object.zkid !== undefined && object.zkid !== null) ? ZkId.fromPartial(object.zkid) : undefined; + message.oidb = (object.oidb !== undefined && object.oidb !== null) ? Oidb.fromPartial(object.oidb) : undefined; return message; }, }; @@ -8158,22 +8158,22 @@ export const WebAuthn = { }, }; -function createBaseZkId(): ZkId { +function createBaseOidb(): Oidb { return { signature: new Uint8Array(0) }; } -export const ZkId = { - encode(message: ZkId, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Oidb = { + encode(message: Oidb, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.signature !== undefined && message.signature.length !== 0) { writer.uint32(10).bytes(message.signature); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ZkId { + decode(input: _m0.Reader | Uint8Array, length?: number): Oidb { const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseZkId(); + const message = createBaseOidb(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -8194,40 +8194,40 @@ export const ZkId = { }, // encodeTransform encodes a source of message objects. - // Transform - async *encodeTransform(source: AsyncIterable | Iterable): AsyncIterable { + // Transform + async *encodeTransform(source: AsyncIterable | Iterable): AsyncIterable { for await (const pkt of source) { if (globalThis.Array.isArray(pkt)) { for (const p of (pkt as any)) { - yield* [ZkId.encode(p).finish()]; + yield* [Oidb.encode(p).finish()]; } } else { - yield* [ZkId.encode(pkt as any).finish()]; + yield* [Oidb.encode(pkt as any).finish()]; } } }, // decodeTransform decodes a source of encoded messages. - // Transform + // Transform async *decodeTransform( source: AsyncIterable | Iterable, - ): AsyncIterable { + ): AsyncIterable { for await (const pkt of source) { if (globalThis.Array.isArray(pkt)) { for (const p of (pkt as any)) { - yield* [ZkId.decode(p)]; + yield* [Oidb.decode(p)]; } } else { - yield* [ZkId.decode(pkt as any)]; + yield* [Oidb.decode(pkt as any)]; } } }, - fromJSON(object: any): ZkId { + fromJSON(object: any): Oidb { return { signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0) }; }, - toJSON(message: ZkId): unknown { + toJSON(message: Oidb): unknown { const obj: any = {}; if (message.signature !== undefined && message.signature.length !== 0) { obj.signature = base64FromBytes(message.signature); @@ -8235,11 +8235,11 @@ export const ZkId = { return obj; }, - create(base?: DeepPartial): ZkId { - return ZkId.fromPartial(base ?? {}); + create(base?: DeepPartial): Oidb { + return Oidb.fromPartial(base ?? {}); }, - fromPartial(object: DeepPartial): ZkId { - const message = createBaseZkId(); + fromPartial(object: DeepPartial): Oidb { + const message = createBaseOidb(); message.signature = object.signature ?? new Uint8Array(0); return message; }, diff --git a/testsuite/generate-format/src/api.rs b/testsuite/generate-format/src/api.rs index 4561abc668071..b86e2174a2148 100644 --- a/testsuite/generate-format/src/api.rs +++ b/testsuite/generate-format/src/api.rs @@ -114,7 +114,7 @@ pub fn get_registry() -> Result { tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; - tracer.trace_type::(&samples)?; + tracer.trace_type::(&samples)?; // events tracer.trace_type::(&samples)?; diff --git a/testsuite/generate-format/src/aptos.rs b/testsuite/generate-format/src/aptos.rs index 09cbea25c66c7..77746a32aa8ca 100644 --- a/testsuite/generate-format/src/aptos.rs +++ b/testsuite/generate-format/src/aptos.rs @@ -108,7 +108,7 @@ pub fn get_registry() -> Result { tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; - tracer.trace_type::(&samples)?; + tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; // aliases within StructTag diff --git a/testsuite/generate-format/src/consensus.rs b/testsuite/generate-format/src/consensus.rs index c3a025a103418..e3eb234d62c03 100644 --- a/testsuite/generate-format/src/consensus.rs +++ b/testsuite/generate-format/src/consensus.rs @@ -104,7 +104,7 @@ pub fn get_registry() -> Result { tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; - tracer.trace_type::(&samples)?; + tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; diff --git a/testsuite/smoke-test/src/lib.rs b/testsuite/smoke-test/src/lib.rs index ec044f5396227..d87b41f5933bb 100644 --- a/testsuite/smoke-test/src/lib.rs +++ b/testsuite/smoke-test/src/lib.rs @@ -47,7 +47,7 @@ mod txn_emitter; #[cfg(test)] mod upgrade; #[cfg(test)] -mod zkid; +mod oidb; #[cfg(test)] mod smoke_test_environment; diff --git a/testsuite/smoke-test/src/zkid.rs b/testsuite/smoke-test/src/oidb.rs similarity index 99% rename from testsuite/smoke-test/src/zkid.rs rename to testsuite/smoke-test/src/oidb.rs index d6178ef775aa9..63999155f3b94 100644 --- a/testsuite/smoke-test/src/zkid.rs +++ b/testsuite/smoke-test/src/oidb.rs @@ -19,7 +19,7 @@ use aptos_types::{ authenticator::{AnyPublicKey, EphemeralSignature}, SignedTransaction, }, - zkid::{ + oidb::{ test_utils::{ get_sample_esk, get_sample_iss, get_sample_jwk, get_sample_oidb_groth16_sig_and_pk, get_sample_oidb_openid_sig_and_pk, diff --git a/types/src/jwks/rsa/mod.rs b/types/src/jwks/rsa/mod.rs index 301252ead7cad..32a0cbfe8f55f 100644 --- a/types/src/jwks/rsa/mod.rs +++ b/types/src/jwks/rsa/mod.rs @@ -1,6 +1,6 @@ // Copyright © Aptos Foundation -use crate::{move_any::AsMoveAny, move_utils::as_move_value::AsMoveValue, zkid::Claims}; +use crate::{move_any::AsMoveAny, move_utils::as_move_value::AsMoveValue, oidb::Claims}; use anyhow::{anyhow, bail, ensure, Result}; use aptos_crypto::poseidon_bn254; use base64::URL_SAFE_NO_PAD; diff --git a/types/src/lib.rs b/types/src/lib.rs index 4b8212a730a89..50cbaf8a9f42d 100644 --- a/types/src/lib.rs +++ b/types/src/lib.rs @@ -66,4 +66,4 @@ pub mod delayed_fields; pub mod state_store; #[cfg(test)] mod unit_tests; -pub mod zkid; +pub mod oidb; diff --git a/types/src/zkid/bn254_circom.rs b/types/src/oidb/bn254_circom.rs similarity index 99% rename from types/src/zkid/bn254_circom.rs rename to types/src/oidb/bn254_circom.rs index d4010562666be..07ae1280d8ead 100644 --- a/types/src/zkid/bn254_circom.rs +++ b/types/src/oidb/bn254_circom.rs @@ -3,7 +3,7 @@ use crate::{ jwks::rsa::RSA_JWK, serialize, - zkid::{Configuration, IdCommitment, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, + oidb::{Configuration, IdCommitment, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, }; use anyhow::bail; use aptos_crypto::{poseidon_bn254, CryptoMaterialError}; @@ -246,7 +246,7 @@ pub fn get_public_inputs_hash( #[cfg(test)] mod test { - use crate::zkid::{ + use crate::oidb::{ bn254_circom::{ G1Bytes, G2Bytes, G1_PROJECTIVE_COMPRESSED_NUM_BYTES, G2_PROJECTIVE_COMPRESSED_NUM_BYTES, diff --git a/types/src/zkid/circuit_constants.rs b/types/src/oidb/circuit_constants.rs similarity index 98% rename from types/src/zkid/circuit_constants.rs rename to types/src/oidb/circuit_constants.rs index 798fe943175de..3604e4a00c586 100644 --- a/types/src/zkid/circuit_constants.rs +++ b/types/src/oidb/circuit_constants.rs @@ -2,7 +2,7 @@ //! These constants are from commit 125522b4b226f8ece3e3162cecfefe915d13bc30 of oidb-circuit. -use crate::zkid::bn254_circom::{g1_projective_str_to_affine, g2_projective_str_to_affine}; +use crate::oidb::bn254_circom::{g1_projective_str_to_affine, g2_projective_str_to_affine}; use aptos_crypto::poseidon_bn254; use ark_bn254::Bn254; use ark_groth16::{PreparedVerifyingKey, VerifyingKey}; diff --git a/types/src/zkid/circuit_testcases.rs b/types/src/oidb/circuit_testcases.rs similarity index 99% rename from types/src/zkid/circuit_testcases.rs rename to types/src/oidb/circuit_testcases.rs index 167c0437b7887..7764525a23a77 100644 --- a/types/src/zkid/circuit_testcases.rs +++ b/types/src/oidb/circuit_testcases.rs @@ -6,7 +6,7 @@ use crate::{ jwks::rsa::RSA_JWK, transaction::authenticator::EphemeralPublicKey, - zkid::{ + oidb::{ base64url_encode_str, bn254_circom::{G1Bytes, G2Bytes}, Claims, Configuration, Groth16Zkp, IdCommitment, OpenIdSig, Pepper, OidbPublicKey, diff --git a/types/src/zkid/configuration.rs b/types/src/oidb/configuration.rs similarity index 98% rename from types/src/zkid/configuration.rs rename to types/src/oidb/configuration.rs index efb35bcd04ed4..3f4a37ed2d39d 100644 --- a/types/src/zkid/configuration.rs +++ b/types/src/oidb/configuration.rs @@ -3,7 +3,7 @@ use crate::{ invalid_signature, move_utils::as_move_value::AsMoveValue, - zkid::{circuit_constants, circuit_testcases::SAMPLE_EXP_HORIZON_SECS}, + oidb::{circuit_constants, circuit_testcases::SAMPLE_EXP_HORIZON_SECS}, }; use move_core_types::{ ident_str, diff --git a/types/src/zkid/groth16_sig.rs b/types/src/oidb/groth16_sig.rs similarity index 97% rename from types/src/zkid/groth16_sig.rs rename to types/src/oidb/groth16_sig.rs index fb74d13241cae..c4ff8a3888dc6 100644 --- a/types/src/zkid/groth16_sig.rs +++ b/types/src/oidb/groth16_sig.rs @@ -1,12 +1,12 @@ // Copyright © Aptos Foundation #[cfg(test)] -use crate::zkid::bn254_circom::{ +use crate::oidb::bn254_circom::{ G1_PROJECTIVE_COMPRESSED_NUM_BYTES, G2_PROJECTIVE_COMPRESSED_NUM_BYTES, }; use crate::{ transaction::authenticator::{EphemeralPublicKey, EphemeralSignature}, - zkid::bn254_circom::{G1Bytes, G2Bytes}, + oidb::bn254_circom::{G1Bytes, G2Bytes}, }; use anyhow::bail; use aptos_crypto::CryptoMaterialError; diff --git a/types/src/zkid/groth16_vk.rs b/types/src/oidb/groth16_vk.rs similarity index 100% rename from types/src/zkid/groth16_vk.rs rename to types/src/oidb/groth16_vk.rs diff --git a/types/src/zkid/mod.rs b/types/src/oidb/mod.rs similarity index 99% rename from types/src/zkid/mod.rs rename to types/src/oidb/mod.rs index 191742c10c655..61a81baad5fb3 100644 --- a/types/src/zkid/mod.rs +++ b/types/src/oidb/mod.rs @@ -31,7 +31,7 @@ mod groth16_vk; mod openid_sig; pub mod test_utils; -use crate::zkid::circuit_constants::devnet_prepared_vk; +use crate::oidb::circuit_constants::devnet_prepared_vk; pub use bn254_circom::get_public_inputs_hash; pub use configuration::Configuration; pub use groth16_sig::{Groth16Zkp, SignedGroth16Zkp}; diff --git a/types/src/zkid/openid_sig.rs b/types/src/oidb/openid_sig.rs similarity index 99% rename from types/src/zkid/openid_sig.rs rename to types/src/oidb/openid_sig.rs index 2acc6ffa2ddc5..86fac729cf46c 100644 --- a/types/src/zkid/openid_sig.rs +++ b/types/src/oidb/openid_sig.rs @@ -3,7 +3,7 @@ use crate::{ jwks::rsa::RSA_JWK, transaction::authenticator::EphemeralPublicKey, - zkid::{ + oidb::{ base64url_decode_as_str, seconds_from_epoch, Configuration, IdCommitment, Pepper, OidbPublicKey, }, diff --git a/types/src/zkid/test_utils.rs b/types/src/oidb/test_utils.rs similarity index 99% rename from types/src/zkid/test_utils.rs rename to types/src/oidb/test_utils.rs index 228201073c78b..4d7a60a92e6ae 100644 --- a/types/src/zkid/test_utils.rs +++ b/types/src/oidb/test_utils.rs @@ -3,7 +3,7 @@ use crate::{ jwks::rsa::RSA_JWK, transaction::authenticator::EphemeralSignature, - zkid::{ + oidb::{ base64url_encode_bytes, base64url_encode_str, circuit_testcases::{ SAMPLE_EPK, SAMPLE_EPK_BLINDER, SAMPLE_ESK, SAMPLE_EXP_DATE, SAMPLE_EXP_HORIZON_SECS, @@ -104,7 +104,7 @@ pub fn get_sample_oidb_openid_sig_and_pk() -> (OidbSignature, OidbPublicKey) { #[cfg(test)] mod test { - use crate::zkid::{ + use crate::oidb::{ circuit_testcases::{SAMPLE_EPK, SAMPLE_EPK_BLINDER, SAMPLE_EXP_DATE, SAMPLE_JWK}, get_public_inputs_hash, test_utils::get_sample_oidb_groth16_sig_and_pk, diff --git a/types/src/zkid/tests.rs b/types/src/oidb/tests.rs similarity index 98% rename from types/src/zkid/tests.rs rename to types/src/oidb/tests.rs index 4d89b1feccbe7..8ec252635a518 100644 --- a/types/src/zkid/tests.rs +++ b/types/src/oidb/tests.rs @@ -1,6 +1,6 @@ // Copyright © Aptos Foundation -use crate::zkid::{ +use crate::oidb::{ base64url_encode_str, bn254_circom::get_public_inputs_hash, circuit_testcases::*, @@ -23,7 +23,7 @@ fn test_oidb_groth16_proof_verification() { let public_inputs_hash = get_public_inputs_hash(&zk_sig, &zk_pk, &SAMPLE_JWK, &config).unwrap(); println!( - "zkID Groth16 test public inputs hash: {}", + "OIDB Groth16 test public inputs hash: {}", public_inputs_hash ); diff --git a/types/src/transaction/authenticator.rs b/types/src/transaction/authenticator.rs index 79692b4ae2738..88f3c950da57c 100644 --- a/types/src/transaction/authenticator.rs +++ b/types/src/transaction/authenticator.rs @@ -7,7 +7,7 @@ use crate::{ transaction::{ webauthn::PartialAuthenticatorAssertionResponse, RawTransaction, RawTransactionWithData, }, - zkid::{OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, + oidb::{OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, }; use anyhow::{bail, ensure, Error, Result}; use aptos_crypto::{ @@ -1126,7 +1126,7 @@ mod tests { use super::*; use crate::{ transaction::{webauthn::AssertionSignature, SignedTransaction}, - zkid::test_utils::{ + oidb::test_utils::{ get_sample_esk, get_sample_oidb_groth16_sig_and_pk, get_sample_oidb_openid_sig_and_pk, }, }; diff --git a/types/src/transaction/mod.rs b/types/src/transaction/mod.rs index 56fe0b9e0ceb6..ffb60c51510c3 100644 --- a/types/src/transaction/mod.rs +++ b/types/src/transaction/mod.rs @@ -18,7 +18,7 @@ use crate::{ }, vm_status::{DiscardedVMStatus, KeptVMStatus, StatusCode, StatusType, VMStatus}, write_set::WriteSet, - zkid::{OidbPublicKey, OidbSignature}, + oidb::{OidbPublicKey, OidbSignature}, }; use anyhow::{ensure, format_err, Context, Error, Result}; use aptos_crypto::{ From 59c4c07bbf32bd9882666775cf38cf63bc659e6e Mon Sep 17 00:00:00 2001 From: Alin Tomescu Date: Wed, 21 Feb 2024 09:24:14 -0800 Subject: [PATCH 3/5] lint --- api/types/src/transaction.rs | 2 +- aptos-move/aptos-vm/src/aptos_vm.rs | 3 ++- aptos-move/aptos-vm/src/lib.rs | 2 +- aptos-move/aptos-vm/src/oidb_validation.rs | 6 +++--- aptos-move/vm-genesis/src/lib.rs | 4 ++-- .../indexer-grpc-fullnode/src/convert.rs | 2 +- testsuite/smoke-test/src/lib.rs | 4 ++-- testsuite/smoke-test/src/oidb.rs | 18 ++++++++++++------ types/src/lib.rs | 2 +- types/src/oidb/bn254_circom.rs | 2 +- types/src/oidb/circuit_testcases.rs | 4 ++-- types/src/oidb/groth16_sig.rs | 2 +- types/src/oidb/openid_sig.rs | 6 +++--- types/src/oidb/test_utils.rs | 6 +++--- types/src/transaction/authenticator.rs | 4 ++-- types/src/transaction/mod.rs | 2 +- 16 files changed, 38 insertions(+), 31 deletions(-) diff --git a/api/types/src/transaction.rs b/api/types/src/transaction.rs index efd59ded03f79..5a548669f1692 100755 --- a/api/types/src/transaction.rs +++ b/api/types/src/transaction.rs @@ -20,6 +20,7 @@ use aptos_types::{ block_metadata::BlockMetadata, block_metadata_ext::BlockMetadataExt, contract_event::{ContractEvent, EventWithVersion}, + oidb, transaction::{ authenticator::{ AccountAuthenticator, AnyPublicKey, AnySignature, MultiKey, MultiKeyAuthenticator, @@ -28,7 +29,6 @@ use aptos_types::{ webauthn::{PartialAuthenticatorAssertionResponse, MAX_WEBAUTHN_SIGNATURE_BYTES}, Script, SignedTransaction, TransactionOutput, TransactionWithProof, }, - oidb, }; use once_cell::sync::Lazy; use poem_openapi::{Object, Union}; diff --git a/aptos-move/aptos-vm/src/aptos_vm.rs b/aptos-move/aptos-vm/src/aptos_vm.rs index 0a519d2730b24..c0b97f0c130a8 100644 --- a/aptos-move/aptos-vm/src/aptos_vm.rs +++ b/aptos-move/aptos-vm/src/aptos_vm.rs @@ -12,10 +12,11 @@ use crate::{ get_max_binary_format_version, get_max_identifier_size, AptosMoveResolver, MoveVmExt, RespawnedSession, SessionExt, SessionId, }, + oidb_validation, sharded_block_executor::{executor_client::ExecutorClient, ShardedBlockExecutor}, system_module_names::*, transaction_metadata::TransactionMetadata, - transaction_validation, verifier, oidb_validation, VMExecutor, VMValidator, + transaction_validation, verifier, VMExecutor, VMValidator, }; use anyhow::anyhow; use aptos_block_executor::txn_commit_hook::NoOpTransactionCommitHook; diff --git a/aptos-move/aptos-vm/src/lib.rs b/aptos-move/aptos-vm/src/lib.rs index dde018659918b..12bef53e2bcd8 100644 --- a/aptos-move/aptos-vm/src/lib.rs +++ b/aptos-move/aptos-vm/src/lib.rs @@ -111,6 +111,7 @@ mod errors; mod gas; pub mod move_vm_ext; pub mod natives; +mod oidb_validation; pub mod sharded_block_executor; pub mod system_module_names; pub mod testing; @@ -118,7 +119,6 @@ pub mod transaction_metadata; mod transaction_validation; pub mod validator_txns; pub mod verifier; -mod oidb_validation; pub use crate::aptos_vm::{AptosSimulationVM, AptosVM}; use crate::sharded_block_executor::{executor_client::ExecutorClient, ShardedBlockExecutor}; diff --git a/aptos-move/aptos-vm/src/oidb_validation.rs b/aptos-move/aptos-vm/src/oidb_validation.rs index 5a2347d77aaf8..655e697c3f124 100644 --- a/aptos-move/aptos-vm/src/oidb_validation.rs +++ b/aptos-move/aptos-vm/src/oidb_validation.rs @@ -7,13 +7,13 @@ use aptos_crypto::ed25519::Ed25519PublicKey; use aptos_types::{ invalid_signature, jwks::{jwk::JWK, PatchedJWKs}, - on_chain_config::{CurrentTimeMicroseconds, Features, OnChainConfig}, - transaction::authenticator::EphemeralPublicKey, - vm_status::{StatusCode, VMStatus}, oidb::{ get_public_inputs_hash, Configuration, Groth16VerificationKey, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig, }, + on_chain_config::{CurrentTimeMicroseconds, Features, OnChainConfig}, + transaction::authenticator::EphemeralPublicKey, + vm_status::{StatusCode, VMStatus}, }; use move_binary_format::errors::Location; use move_core_types::{language_storage::CORE_CODE_ADDRESS, move_resource::MoveStructType}; diff --git a/aptos-move/vm-genesis/src/lib.rs b/aptos-move/vm-genesis/src/lib.rs index cee3ff846a5c1..f93b908092986 100644 --- a/aptos-move/vm-genesis/src/lib.rs +++ b/aptos-move/vm-genesis/src/lib.rs @@ -22,14 +22,14 @@ use aptos_types::{ chain_id::ChainId, contract_event::{ContractEvent, ContractEventV1}, move_utils::as_move_value::AsMoveValue, + oidb, + oidb::{Groth16VerificationKey, DEVNET_VERIFICATION_KEY}, on_chain_config::{ FeatureFlag, Features, GasScheduleV2, OnChainConsensusConfig, OnChainExecutionConfig, TimedFeaturesBuilder, APTOS_MAX_KNOWN_VERSION, }, transaction::{authenticator::AuthenticationKey, ChangeSet, Transaction, WriteSetPayload}, write_set::TransactionWrite, - oidb, - oidb::{Groth16VerificationKey, DEVNET_VERIFICATION_KEY}, }; use aptos_vm::{ data_cache::AsMoveResolver, diff --git a/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs b/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs index 8f1b11de89ee9..6559708f61e43 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs @@ -15,7 +15,7 @@ use aptos_logger::warn; use aptos_protos::{ transaction::{ v1 as transaction, - v1::{any_signature, Ed25519, Secp256k1Ecdsa, WebAuthn, Oidb}, + v1::{any_signature, Ed25519, Oidb, Secp256k1Ecdsa, WebAuthn}, }, util::timestamp, }; diff --git a/testsuite/smoke-test/src/lib.rs b/testsuite/smoke-test/src/lib.rs index d87b41f5933bb..b72bdf5134026 100644 --- a/testsuite/smoke-test/src/lib.rs +++ b/testsuite/smoke-test/src/lib.rs @@ -29,6 +29,8 @@ mod jwks; #[cfg(test)] mod network; #[cfg(test)] +mod oidb; +#[cfg(test)] mod rest_api; #[cfg(test)] mod rosetta; @@ -46,8 +48,6 @@ mod txn_broadcast; mod txn_emitter; #[cfg(test)] mod upgrade; -#[cfg(test)] -mod oidb; #[cfg(test)] mod smoke_test_environment; diff --git a/testsuite/smoke-test/src/oidb.rs b/testsuite/smoke-test/src/oidb.rs index 63999155f3b94..3763d13a631e8 100644 --- a/testsuite/smoke-test/src/oidb.rs +++ b/testsuite/smoke-test/src/oidb.rs @@ -15,10 +15,6 @@ use aptos_types::{ jwk::{JWKMoveStruct, JWK}, AllProvidersJWKs, PatchedJWKs, ProviderJWKs, }, - transaction::{ - authenticator::{AnyPublicKey, EphemeralSignature}, - SignedTransaction, - }, oidb::{ test_utils::{ get_sample_esk, get_sample_iss, get_sample_jwk, get_sample_oidb_groth16_sig_and_pk, @@ -26,6 +22,10 @@ use aptos_types::{ }, Configuration, Groth16VerificationKey, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig, }, + transaction::{ + authenticator::{AnyPublicKey, EphemeralSignature}, + SignedTransaction, + }, }; use move_core_types::account_address::AccountAddress; use rand::thread_rng; @@ -252,7 +252,10 @@ async fn spawn_network_and_execute_gov_proposals( println!("Groth16 VK: {:?}", vk); let maybe_response = client - .get_account_resource_bcs::(AccountAddress::ONE, "0x1::openid_account::Configuration") + .get_account_resource_bcs::( + AccountAddress::ONE, + "0x1::openid_account::Configuration", + ) .await; let config = maybe_response.unwrap().into_inner(); println!("OIDB configuration before: {:?}", config); @@ -317,7 +320,10 @@ fun main(core_resources: &signer) {{ assert_eq!(expected_providers_jwks, patched_jwks.jwks); let maybe_response = client - .get_account_resource_bcs::(AccountAddress::ONE, "0x1::openid_account::Configuration") + .get_account_resource_bcs::( + AccountAddress::ONE, + "0x1::openid_account::Configuration", + ) .await; let config = maybe_response.unwrap().into_inner(); println!("OIDB configuration after: {:?}", config); diff --git a/types/src/lib.rs b/types/src/lib.rs index 50cbaf8a9f42d..49bb77194ee56 100644 --- a/types/src/lib.rs +++ b/types/src/lib.rs @@ -63,7 +63,7 @@ pub mod aggregate_signature; pub mod block_executor; pub mod bytes; pub mod delayed_fields; +pub mod oidb; pub mod state_store; #[cfg(test)] mod unit_tests; -pub mod oidb; diff --git a/types/src/oidb/bn254_circom.rs b/types/src/oidb/bn254_circom.rs index 07ae1280d8ead..adca3c6e8a98a 100644 --- a/types/src/oidb/bn254_circom.rs +++ b/types/src/oidb/bn254_circom.rs @@ -2,8 +2,8 @@ use crate::{ jwks::rsa::RSA_JWK, - serialize, oidb::{Configuration, IdCommitment, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, + serialize, }; use anyhow::bail; use aptos_crypto::{poseidon_bn254, CryptoMaterialError}; diff --git a/types/src/oidb/circuit_testcases.rs b/types/src/oidb/circuit_testcases.rs index 7764525a23a77..27e84f0fd08ef 100644 --- a/types/src/oidb/circuit_testcases.rs +++ b/types/src/oidb/circuit_testcases.rs @@ -5,12 +5,12 @@ use crate::{ jwks::rsa::RSA_JWK, - transaction::authenticator::EphemeralPublicKey, oidb::{ base64url_encode_str, bn254_circom::{G1Bytes, G2Bytes}, - Claims, Configuration, Groth16Zkp, IdCommitment, OpenIdSig, Pepper, OidbPublicKey, + Claims, Configuration, Groth16Zkp, IdCommitment, OidbPublicKey, OpenIdSig, Pepper, }, + transaction::authenticator::EphemeralPublicKey, }; use aptos_crypto::{ed25519::Ed25519PrivateKey, PrivateKey, Uniform}; use once_cell::sync::Lazy; diff --git a/types/src/oidb/groth16_sig.rs b/types/src/oidb/groth16_sig.rs index c4ff8a3888dc6..ffc849092af46 100644 --- a/types/src/oidb/groth16_sig.rs +++ b/types/src/oidb/groth16_sig.rs @@ -5,8 +5,8 @@ use crate::oidb::bn254_circom::{ G1_PROJECTIVE_COMPRESSED_NUM_BYTES, G2_PROJECTIVE_COMPRESSED_NUM_BYTES, }; use crate::{ - transaction::authenticator::{EphemeralPublicKey, EphemeralSignature}, oidb::bn254_circom::{G1Bytes, G2Bytes}, + transaction::authenticator::{EphemeralPublicKey, EphemeralSignature}, }; use anyhow::bail; use aptos_crypto::CryptoMaterialError; diff --git a/types/src/oidb/openid_sig.rs b/types/src/oidb/openid_sig.rs index 86fac729cf46c..d306a09f45bdf 100644 --- a/types/src/oidb/openid_sig.rs +++ b/types/src/oidb/openid_sig.rs @@ -2,11 +2,11 @@ use crate::{ jwks::rsa::RSA_JWK, - transaction::authenticator::EphemeralPublicKey, oidb::{ - base64url_decode_as_str, seconds_from_epoch, Configuration, IdCommitment, Pepper, - OidbPublicKey, + base64url_decode_as_str, seconds_from_epoch, Configuration, IdCommitment, OidbPublicKey, + Pepper, }, + transaction::authenticator::EphemeralPublicKey, }; use anyhow::{ensure, Context}; use aptos_crypto::{poseidon_bn254, CryptoMaterialError}; diff --git a/types/src/oidb/test_utils.rs b/types/src/oidb/test_utils.rs index 4d7a60a92e6ae..0ea13ac29ec9d 100644 --- a/types/src/oidb/test_utils.rs +++ b/types/src/oidb/test_utils.rs @@ -2,16 +2,16 @@ use crate::{ jwks::rsa::RSA_JWK, - transaction::authenticator::EphemeralSignature, oidb::{ base64url_encode_bytes, base64url_encode_str, circuit_testcases::{ SAMPLE_EPK, SAMPLE_EPK_BLINDER, SAMPLE_ESK, SAMPLE_EXP_DATE, SAMPLE_EXP_HORIZON_SECS, SAMPLE_JWK, SAMPLE_JWK_SK, SAMPLE_JWT_EXTRA_FIELD, SAMPLE_JWT_HEADER_B64, - SAMPLE_JWT_PARSED, SAMPLE_PEPPER, SAMPLE_PROOF, SAMPLE_UID_KEY, SAMPLE_OIDB_PK, + SAMPLE_JWT_PARSED, SAMPLE_OIDB_PK, SAMPLE_PEPPER, SAMPLE_PROOF, SAMPLE_UID_KEY, }, - Groth16Zkp, OpenIdSig, SignedGroth16Zkp, OidbPublicKey, OidbSignature, ZkpOrOpenIdSig, + Groth16Zkp, OidbPublicKey, OidbSignature, OpenIdSig, SignedGroth16Zkp, ZkpOrOpenIdSig, }, + transaction::authenticator::EphemeralSignature, }; use aptos_crypto::{ed25519::Ed25519PrivateKey, SigningKey, Uniform}; use once_cell::sync::Lazy; diff --git a/types/src/transaction/authenticator.rs b/types/src/transaction/authenticator.rs index 88f3c950da57c..bdfd93bc224e9 100644 --- a/types/src/transaction/authenticator.rs +++ b/types/src/transaction/authenticator.rs @@ -4,10 +4,10 @@ use crate::{ account_address::AccountAddress, + oidb::{OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, transaction::{ webauthn::PartialAuthenticatorAssertionResponse, RawTransaction, RawTransactionWithData, }, - oidb::{OidbPublicKey, OidbSignature, ZkpOrOpenIdSig}, }; use anyhow::{bail, ensure, Error, Result}; use aptos_crypto::{ @@ -1125,10 +1125,10 @@ impl TryFrom<&[u8]> for EphemeralPublicKey { mod tests { use super::*; use crate::{ - transaction::{webauthn::AssertionSignature, SignedTransaction}, oidb::test_utils::{ get_sample_esk, get_sample_oidb_groth16_sig_and_pk, get_sample_oidb_openid_sig_and_pk, }, + transaction::{webauthn::AssertionSignature, SignedTransaction}, }; use aptos_crypto::{ ed25519::Ed25519PrivateKey, diff --git a/types/src/transaction/mod.rs b/types/src/transaction/mod.rs index ffb60c51510c3..06a35732032e9 100644 --- a/types/src/transaction/mod.rs +++ b/types/src/transaction/mod.rs @@ -10,6 +10,7 @@ use crate::{ chain_id::ChainId, contract_event::{ContractEvent, FEE_STATEMENT_EVENT_TYPE}, ledger_info::LedgerInfo, + oidb::{OidbPublicKey, OidbSignature}, proof::{TransactionInfoListWithProof, TransactionInfoWithProof}, state_store::ShardedStateUpdates, transaction::authenticator::{ @@ -18,7 +19,6 @@ use crate::{ }, vm_status::{DiscardedVMStatus, KeptVMStatus, StatusCode, StatusType, VMStatus}, write_set::WriteSet, - oidb::{OidbPublicKey, OidbSignature}, }; use anyhow::{ensure, format_err, Context, Error, Result}; use aptos_crypto::{ From 15ec524aadcf7e22fdeef070ea095006d678b9af Mon Sep 17 00:00:00 2001 From: Alin Tomescu Date: Wed, 21 Feb 2024 10:42:44 -0800 Subject: [PATCH 4/5] patch API pagination bug again --- api/src/tests/accounts_test.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/src/tests/accounts_test.rs b/api/src/tests/accounts_test.rs index ceb6ee8def93f..da00aeff218e7 100644 --- a/api/src/tests/accounts_test.rs +++ b/api/src/tests/accounts_test.rs @@ -237,8 +237,8 @@ async fn test_get_account_resources_with_pagination() { { println!("0x1::{}::{}", r.module, r.name); } - assert_eq!(resources.len(), 5); - assert_eq!(resources, all_resources[0..5].to_vec()); + assert_eq!(resources.len(), 4); + assert_eq!(resources, all_resources[0..4].to_vec()); // Make a request using the cursor. Assert the 5 results we get back are the next 5. let req = warp::test::request().method("GET").path(&format!( @@ -255,7 +255,7 @@ async fn test_get_account_resources_with_pagination() { let cursor_header = StateKeyWrapper::from_str(cursor_header.to_str().unwrap()).unwrap(); let resources: Vec = serde_json::from_slice(resp.body()).unwrap(); assert_eq!(resources.len(), 5); - assert_eq!(resources, all_resources[5..10].to_vec()); + assert_eq!(resources, all_resources[4..9].to_vec()); // Get the rest of the resources, assert there is no cursor now. let req = warp::test::request().method("GET").path(&format!( @@ -267,8 +267,8 @@ async fn test_get_account_resources_with_pagination() { assert_eq!(resp.status(), 200); assert!(!resp.headers().contains_key("X-Aptos-Cursor")); let resources: Vec = serde_json::from_slice(resp.body()).unwrap(); - assert_eq!(resources.len(), all_resources.len() - 10); - assert_eq!(resources, all_resources[10..].to_vec()); + assert_eq!(resources.len(), all_resources.len() - 9); + assert_eq!(resources, all_resources[9..].to_vec()); } // Same as the above test but for modules. From eaf0cbfab21e21f1bcc0227b6895d74f53b73013 Mon Sep 17 00:00:00 2001 From: Alin Tomescu Date: Wed, 21 Feb 2024 11:16:57 -0800 Subject: [PATCH 5/5] update VK and proof test cases --- types/src/oidb/circuit_constants.rs | 28 ++++++++++++++-------------- types/src/oidb/circuit_testcases.rs | 16 ++++++++-------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/types/src/oidb/circuit_constants.rs b/types/src/oidb/circuit_constants.rs index 3604e4a00c586..8c4f7aa63c655 100644 --- a/types/src/oidb/circuit_constants.rs +++ b/types/src/oidb/circuit_constants.rs @@ -23,19 +23,19 @@ pub(crate) const MAX_COMMITED_EPK_BYTES: u16 = 3 * poseidon_bn254::BYTES_PACKED_ pub fn devnet_prepared_vk() -> PreparedVerifyingKey { // Convert the projective points to affine. let alpha_g1 = g1_projective_str_to_affine( - "16672231080302629756836614130913173861541009360974119524782950408048375831661", - "1076145001163048025135533382088266750240489485046298539187659509488738517245", + "20491192805390485299153009773594534940189261866228447918068658471970481763042", + "9383485363053290200918347156157836566562967994039712273449902621266178545958", ) .unwrap(); let beta_g2 = g2_projective_str_to_affine( [ - "1125365732643211423779651913319958385653115422366520671538751860820509133538", - "10055196097002324305342942912758079446356594743098794928675544207400347950287", + "6375614351688725206403948262868962793625744043794305715222011528459656738731", + "4252822878758300859123897981450591353533073413197771768651442665752259397132", ], [ - "10879716754714953827605171295191459580695363989155343984818520267224463075503", - "440220374146936557739765173414663598678359360031905981547938788314460390904", + "10505242626370262277552901082094356697409835680220590971873171140371331206856", + "21847035105528745403288232691147584728191162732299865338377159692350059136679", ], ) .unwrap(); @@ -54,12 +54,12 @@ pub fn devnet_prepared_vk() -> PreparedVerifyingKey { let delta_g2 = g2_projective_str_to_affine( [ - "10857046999023057135944570762232829481370756359578518086990519993285655852781", - "11559732032986387107991004021392285783925812861821192530917403151452391805634", + "4554876388761449971150762643527200218721274582609012924804001026508011579882", + "9906124002012538607706838605380337418208917959286750650097945326735558982299", ], [ - "8495653923123431417604973247489272438418190587263600148770280649306958101930", - "4082367875863433681332203403145435568316851327593401208105741076214120093531", + "5854023862046905849776403994145962544983234635302179642001962573086489816607", + "1115646383956031634980010937823293614666074390302688571989763044019135241889", ], ) .unwrap(); @@ -67,13 +67,13 @@ pub fn devnet_prepared_vk() -> PreparedVerifyingKey { let mut gamma_abc_g1 = Vec::new(); for points in [ g1_projective_str_to_affine( - "333957087685714773491410343905674131693317845924221586503521553512853800005", - "16794842110397433586916934076838854067112427849394773076676106408631114267154", + "19969429920450141902172268650961329312290082884093184976727612790263548895589", + "5146534318147005445214564431741941940406412758913409113743201385319569618289", ) .unwrap(), g1_projective_str_to_affine( - "14679941092573826838949544937315479399329040741655244517938404383938168565228", - "19977040285201397592140173066949293223501504328707794673737757867503037033174", + "15192959234143920396735876774520785358155749431089461580802816710466908168006", + "18346895842267323773878010013182465710347574804392898846929667361700890467565", ) .unwrap(), ] { diff --git a/types/src/oidb/circuit_testcases.rs b/types/src/oidb/circuit_testcases.rs index 27e84f0fd08ef..d93d57631e88e 100644 --- a/types/src/oidb/circuit_testcases.rs +++ b/types/src/oidb/circuit_testcases.rs @@ -150,24 +150,24 @@ pub(crate) static SAMPLE_OIDB_PK: Lazy = Lazy::new(|| { pub(crate) static SAMPLE_PROOF: Lazy = Lazy::new(|| { Groth16Zkp::new( G1Bytes::new_unchecked( - "12231709561876342858591497461541533679382707548832581865026884128195038623819", - "19550065013334671766459652895464943208897555190003385241537366958524038549651", + "4470668953498815291118813694625852066171551105654596174374858885226578750734", + "14788589714058859505243017007182544407755183524390103786436121684254044340756", ) .unwrap(), G2Bytes::new_unchecked( [ - "17760114700472440073566664035341233176332867365948052821768844085204638465257", - "2074118366711830630562352153651013053077229376039883853182809642185973784582", + "19964271555454493822493487427388576160988441374693973346071644217966495467723", + "13323381916967628034087987623567037272731886344747801700777864344050235336348", ], [ - "21474168538255367719812229486236305962320711305273777702403534410487962424082", - "17404352079167923594003522667505828016450036154572779269542685309363067054790", + "3774003850436718557803458636202686199624507874355327512447206480984626693729", + "1716739756344109596192893154802286969758937949519569315162844587816368174496", ], ) .unwrap(), G1Bytes::new_unchecked( - "9194799847136645728085689496796085217935413772780751043375835048405276952071", - "17704024912475005725846633700069393676807658122056968962396516331631047675983", + "20907992905438744331671589598826747010257757425816109725506966167718927036107", + "21699679298680052085273235372827765370228252154570456225953796655272884519170", ) .unwrap(), )