pub struct AuthMultisigPsm { /* private fields */ }Expand description
An AccountComponent implementing a multisig authentication with a private state manager.
It enforces a threshold of approver signatures for every transaction, with optional per-procedure threshold overrides. With Private State Manager (PSM) is configured, multisig authorization is combined with PSM authorization, so operations require both multisig approval and a valid PSM signature. This substantially mitigates low-threshold state-withholding scenarios since the PSM is expected to forward state updates to other approvers.
This component supports all account types.
Implementations§
Source§impl AuthMultisigPsm
impl AuthMultisigPsm
Sourcepub const NAME: &'static str = "miden::standards::components::auth::multisig_psm"
pub const NAME: &'static str = "miden::standards::components::auth::multisig_psm"
The name of the component.
Sourcepub fn new(
config: AuthMultisigPsmConfig,
) -> Result<AuthMultisigPsm, AccountError>
pub fn new( config: AuthMultisigPsmConfig, ) -> Result<AuthMultisigPsm, AccountError>
Creates a new AuthMultisigPsm component from the provided configuration.
Sourcepub fn threshold_config_slot() -> &'static StorageSlotName
pub fn threshold_config_slot() -> &'static StorageSlotName
Returns the StorageSlotName where the threshold configuration is stored.
Sourcepub fn approver_public_keys_slot() -> &'static StorageSlotName
pub fn approver_public_keys_slot() -> &'static StorageSlotName
Returns the StorageSlotName where the approver public keys are stored.
pub fn approver_scheme_ids_slot() -> &'static StorageSlotName
Sourcepub fn executed_transactions_slot() -> &'static StorageSlotName
pub fn executed_transactions_slot() -> &'static StorageSlotName
Returns the StorageSlotName where the executed transactions are stored.
Sourcepub fn procedure_thresholds_slot() -> &'static StorageSlotName
pub fn procedure_thresholds_slot() -> &'static StorageSlotName
Returns the StorageSlotName where the procedure thresholds are stored.
Sourcepub fn psm_public_key_slot() -> &'static StorageSlotName
pub fn psm_public_key_slot() -> &'static StorageSlotName
Returns the StorageSlotName where the private state manager public key is stored.
Sourcepub fn psm_scheme_id_slot() -> &'static StorageSlotName
pub fn psm_scheme_id_slot() -> &'static StorageSlotName
Returns the StorageSlotName where the private state manager scheme IDs are stored.
Sourcepub fn threshold_config_slot_schema() -> (StorageSlotName, StorageSlotSchema)
pub fn threshold_config_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Returns the storage slot schema for the threshold configuration slot.
Sourcepub fn approver_public_keys_slot_schema() -> (StorageSlotName, StorageSlotSchema)
pub fn approver_public_keys_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Returns the storage slot schema for the approver public keys slot.
pub fn approver_auth_scheme_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Sourcepub fn executed_transactions_slot_schema() -> (StorageSlotName, StorageSlotSchema)
pub fn executed_transactions_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Returns the storage slot schema for the executed transactions slot.
Sourcepub fn procedure_thresholds_slot_schema() -> (StorageSlotName, StorageSlotSchema)
pub fn procedure_thresholds_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Returns the storage slot schema for the procedure thresholds slot.
Sourcepub fn psm_public_key_slot_schema() -> (StorageSlotName, StorageSlotSchema)
pub fn psm_public_key_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Returns the storage slot schema for the private state manager public key slot.
Sourcepub fn psm_auth_scheme_slot_schema() -> (StorageSlotName, StorageSlotSchema)
pub fn psm_auth_scheme_slot_schema() -> (StorageSlotName, StorageSlotSchema)
Returns the storage slot schema for the private state manager scheme IDs slot.
Sourcepub fn component_metadata() -> AccountComponentMetadata
pub fn component_metadata() -> AccountComponentMetadata
Returns the AccountComponentMetadata for this component.
Trait Implementations§
Source§impl Debug for AuthMultisigPsm
impl Debug for AuthMultisigPsm
Source§impl From<AuthMultisigPsm> for AccountComponent
impl From<AuthMultisigPsm> for AccountComponent
Source§fn from(multisig: AuthMultisigPsm) -> AccountComponent
fn from(multisig: AuthMultisigPsm) -> AccountComponent
Auto Trait Implementations§
impl Freeze for AuthMultisigPsm
impl RefUnwindSafe for AuthMultisigPsm
impl Send for AuthMultisigPsm
impl Sync for AuthMultisigPsm
impl Unpin for AuthMultisigPsm
impl UnsafeUnpin for AuthMultisigPsm
impl UnwindSafe for AuthMultisigPsm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more