jwk_consensus_config - [devnet]
Esta página aún no está disponible en tu idioma.
Structs and functions related to JWK consensus configurations.
use 0x1::config_buffer;use 0x1::copyable_any;use 0x1::error;use 0x1::option;use 0x1::simple_map;use 0x1::string;use 0x1::system_addresses;Constants
ConfigV1 creation failed with duplicated providers given.
const EDUPLICATE_PROVIDERS: u64 = 1;Structs
ConfigOff
A JWK consensus config variant indicating JWK consensus should not run.
struct ConfigOff has copy, drop, storeFields
-
dummy_field: bool
OIDCProvider
struct OIDCProvider has copy, drop, storeFields
-
name: string::String -
config_url: string::String
ConfigV1
A JWK consensus config variant indicating JWK consensus should run to watch a given list of OIDC providers.
struct ConfigV1 has copy, drop, storeFields
-
oidc_providers: vector<jwk_consensus_config::OIDCProvider>
Resources
JWKConsensusConfig
The configuration of the JWK consensus feature.
struct JWKConsensusConfig has drop, store, keyFields
-
variant: copyable_any::Any -
A config variant packed as an
Any. Currently the variant type is one of the following. -ConfigOff-ConfigV1
Functions
initialize
Initialize the configuration. Used in genesis or governance.
public fun initialize(framework: &signer, config: jwk_consensus_config::JWKConsensusConfig)Implementation
public fun initialize(framework: &signer, config: JWKConsensusConfig) { system_addresses::assert_aptos_framework(framework); if (!exists<JWKConsensusConfig>(@aptos_framework)) { move_to(framework, config); }}set_for_next_epoch
This can be called by on-chain governance to update JWK consensus configs for the next epoch. Example usage:
use aptos_framework::jwk_consensus_config;use aptos_framework::aptos_governance;// ...let config = jwk_consensus_config::new_v1(vector[]);jwk_consensus_config::set_for_next_epoch(&framework_signer, config);aptos_governance::reconfigure(&framework_signer);public fun set_for_next_epoch(framework: &signer, config: jwk_consensus_config::JWKConsensusConfig)Implementation
public fun set_for_next_epoch(framework: &signer, config: JWKConsensusConfig) { system_addresses::assert_aptos_framework(framework); config_buffer::upsert(config);}on_new_epoch
Only used in reconfigurations to apply the pending JWKConsensusConfig, if there is any.
public(friend) fun on_new_epoch(framework: &signer)Implementation
public(friend) fun on_new_epoch(framework: &signer) acquires JWKConsensusConfig { system_addresses::assert_aptos_framework(framework); if (config_buffer::does_exist<JWKConsensusConfig>()) { let new_config = config_buffer::extract_v2<JWKConsensusConfig>(); if (exists<JWKConsensusConfig>(@aptos_framework)) { *borrow_global_mut<JWKConsensusConfig>(@aptos_framework) = new_config; } else { move_to(framework, new_config); }; }}new_off
Construct a JWKConsensusConfig of variant ConfigOff.
public fun new_off(): jwk_consensus_config::JWKConsensusConfigImplementation
public fun new_off(): JWKConsensusConfig { JWKConsensusConfig { variant: copyable_any::pack( ConfigOff {} ) }}new_v1
Construct a JWKConsensusConfig of variant ConfigV1.
Abort if the given provider list contains duplicated provider names.
public fun new_v1(oidc_providers: vector<jwk_consensus_config::OIDCProvider>): jwk_consensus_config::JWKConsensusConfigImplementation
public fun new_v1(oidc_providers: vector<OIDCProvider>): JWKConsensusConfig { let name_set = simple_map::new<String, u64>(); vector::for_each_ref(&oidc_providers, |provider| { let provider: &OIDCProvider = provider; let (_, old_value) = simple_map::upsert(&mut name_set, provider.name, 0); if (option::is_some(&old_value)) { abort(error::invalid_argument(EDUPLICATE_PROVIDERS)) } }); JWKConsensusConfig { variant: copyable_any::pack( ConfigV1 { oidc_providers } ) }}new_oidc_provider
Construct an OIDCProvider object.
public fun new_oidc_provider(name: string::String, config_url: string::String): jwk_consensus_config::OIDCProviderImplementation
public fun new_oidc_provider(name: String, config_url: String): OIDCProvider { OIDCProvider { name, config_url }}Specification
on_new_epoch
public(friend) fun on_new_epoch(framework: &signer)requires @aptos_framework == std::signer::address_of(framework);include config_buffer::OnNewEpochRequirement<JWKConsensusConfig>;aborts_if false;