Module sui::authenticator_state
use std::ascii;
use std::bcs;
use std::option;
use std::string;
use std::u64;
use std::vector;
use sui::address;
use sui::dynamic_field;
use sui::hex;
use sui::object;
use sui::party;
use sui::transfer;
use sui::tx_context;
use sui::vec_map;
Struct AuthenticatorState​
Singleton shared object which stores the global authenticator state.
The actual state is stored in a dynamic field of type AuthenticatorStateInner to support
future versions of the authenticator state.
public struct AuthenticatorState has key
Fields
- id: sui::object::UID
- version: u64
Struct AuthenticatorStateInner​
public struct AuthenticatorStateInner has store
Fields
- version: u64
- active_jwks: vector<sui::authenticator_state::ActiveJwk>
- List of currently active JWKs.
Struct JWK​
Must match the JWK struct in fastcrypto-zkp
public struct JWK has copy, drop, store
Fields
- kty: std::string::String
- e: std::string::String
- n: std::string::String
- alg: std::string::String
Struct JwkId​
Must match the JwkId struct in fastcrypto-zkp
public struct JwkId has copy, drop, store
Fields
- iss: std::string::String
- kid: std::string::String
Struct ActiveJwk​
public struct ActiveJwk has copy, drop, store
Fields
- jwk_id: sui::authenticator_state::JwkId
- jwk: sui::authenticator_state::JWK
- epoch: u64
Constants​
Sender is not @0x0 the system address.
const ENotSystemAddress: u64 = 0;
const EWrongInnerVersion: u64 = 1;
const EJwksNotSorted: u64 = 2;
const CurrentVersion: u64 = 1;
Function active_jwk_equal​
fun active_jwk_equal(a: &sui::authenticator_state::ActiveJwk, b: &sui::authenticator_state::ActiveJwk): bool
Function jwk_equal​
fun jwk_equal(a: &sui::authenticator_state::JWK, b: &sui::authenticator_state::JWK): bool
Function jwk_id_equal​
fun jwk_id_equal(a: &sui::authenticator_state::JwkId, b: &sui::authenticator_state::JwkId): bool
Function string_bytes_lt​
fun string_bytes_lt(a: &std::string::String, b: &std::string::String): bool
Function jwk_lt​
fun jwk_lt(a: &sui::authenticator_state::ActiveJwk, b: &sui::authenticator_state::ActiveJwk): bool
Function create​
Create and share the AuthenticatorState object. This function is call exactly once, when
the authenticator state object is first created.
Can only be called by genesis or change_epoch transactions.
fun create(ctx: &sui::tx_context::TxContext)
Function load_inner_mut​
fun load_inner_mut(self: &mut sui::authenticator_state::AuthenticatorState): &mut sui::authenticator_state::AuthenticatorStateInner
Function load_inner​
fun load_inner(self: &sui::authenticator_state::AuthenticatorState): &sui::authenticator_state::AuthenticatorStateInner
Function check_sorted​
fun check_sorted(new_active_jwks: &vector<sui::authenticator_state::ActiveJwk>)
Function update_authenticator_state​
Record a new set of active_jwks. Called when executing the AuthenticatorStateUpdate system
transaction. The new input vector must be sorted and must not contain duplicates.
If a new JWK is already present, but with a previous epoch, then the epoch is updated to
indicate that the JWK has been validated in the current epoch and should not be expired.
fun update_authenticator_state(self: &mut sui::authenticator_state::AuthenticatorState, new_active_jwks: vector<sui::authenticator_state::ActiveJwk>, ctx: &sui::tx_context::TxContext)
Function deduplicate​
fun deduplicate(jwks: vector<sui::authenticator_state::ActiveJwk>): vector<sui::authenticator_state::ActiveJwk>
Function expire_jwks​
fun expire_jwks(self: &mut sui::authenticator_state::AuthenticatorState, min_epoch: u64, ctx: &sui::tx_context::TxContext)
Function get_active_jwks​
Get the current active_jwks. Called when the node starts up in order to load the current.
JWK state from the chain.
fun get_active_jwks(self: &sui::authenticator_state::AuthenticatorState, ctx: &sui::tx_context::TxContext): vector<sui::authenticator_state::ActiveJwk>