pub struct ProofContext {
pub external_nullifier: U256Wrapper,
pub credential_type: CredentialType,
pub signal_hash: U256Wrapper,
pub require_mined_proof: bool,
}Expand description
A ProofContext contains the basic information on the verifier and the specific action a user will be proving.
It is required to generate a Proof and will generally be initialized from an app_id and action.
Note on naming: ProofContext is used to make it clear in FFIs which may not respect the module structure.
Fields§
§external_nullifier: U256WrapperThe external_nullifier is the computed result of a specific context for which a World ID Proof is generated.
It is used in the Sempahore ZK circuit and in the computation of the nullifier_hash to guarantee uniqueness in a privacy-preserving way.
credential_type: CredentialTypeRepresents the specific credential to be used for a World ID Proof.
signal_hash: U256WrapperThe hashed signal which is included in the ZKP and committed to in the proof. When verifying the proof, the same signal must be provided.
require_mined_proof: boolWhether the request requires a mined on-chain proof.
Implementations§
Source§impl ProofContext
impl ProofContext
Sourcepub fn new(
app_id: &str,
action: Option<String>,
signal: Option<String>,
credential_type: CredentialType,
) -> Self
pub fn new( app_id: &str, action: Option<String>, signal: Option<String>, credential_type: CredentialType, ) -> Self
Initializes a ProofContext.
Will compute the relevant external nullifier from the provided app_id and action as defined by the
World ID Protocol. The external nullifier generation matches the logic in the
Developer Portal.
§Arguments
app_id- The ID of the application requesting proofs. This can be obtained from the Developer Portal.action- Optional. Custom incognito action being requested.signal- Optional. The signal is included in the ZKP and is committed to in the proof. When verifying the proof, the same signal must be provided to ensure the proof is valid. The signal can be used to prevent replay attacks, MITM or other cases. More details available in the docs.credential_type- The type of credential being requested.
Sourcepub fn new_from_bytes(
app_id: &str,
action: Option<Vec<u8>>,
signal: Option<Vec<u8>>,
credential_type: CredentialType,
) -> Self
pub fn new_from_bytes( app_id: &str, action: Option<Vec<u8>>, signal: Option<Vec<u8>>, credential_type: CredentialType, ) -> Self
Initializes a Proof::ProofContext where the action is provided as raw bytes. This is useful for advanced cases
where the action is an already ABI encoded value for on-chain usage.
See walletkit-core/tests/solidity.rs for an example.
Will compute the relevant external nullifier from the provided app_id and action.
§Arguments
See ProofContext::new for reference. The action and signal need to be provided as raw bytes.
Sourcepub fn new_from_signal_hash(
app_id: &str,
action: Option<Vec<u8>>,
credential_type: CredentialType,
signal_hash: &U256Wrapper,
) -> Result<Self, WalletKitError>
pub fn new_from_signal_hash( app_id: &str, action: Option<Vec<u8>>, credential_type: CredentialType, signal_hash: &U256Wrapper, ) -> Result<Self, WalletKitError>
Initializes a ProofContext from an already hashed signal.
Please note it is imperative to hash into the Semaphore field. Not all U256 are part of the field.
Use the hash_to_field function to hash into the field.
§Usage
- This may be used when the hash of the signal is computed externally.
- For example, this is used for support of legacy
MiniKitv1 commands in World App whereminikit-jshashed the signal.
§Arguments
app_id- The ID of the application requesting proofs. This can be obtained from the Developer Portal.action- Optional. Custom incognito action being requested as bytes.credential_type- The type of credential being requested.signal- The already hashed signal as a field element.
§Errors
- Returns an error if the signal is not a valid number in the field.
Sourcepub const fn get_external_nullifier(&self) -> U256Wrapper
pub const fn get_external_nullifier(&self) -> U256Wrapper
Get the raw external nullifier for this context.
Sourcepub const fn get_signal_hash(&self) -> U256Wrapper
pub const fn get_signal_hash(&self) -> U256Wrapper
Get the signal hash for this context.
Sourcepub const fn get_credential_type(&self) -> CredentialType
pub const fn get_credential_type(&self) -> CredentialType
Get the credential type for this context.
Trait Implementations§
Source§impl Clone for ProofContext
impl Clone for ProofContext
Source§fn clone(&self) -> ProofContext
fn clone(&self) -> ProofContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProofContext
impl Debug for ProofContext
Source§impl PartialEq for ProofContext
impl PartialEq for ProofContext
impl Eq for ProofContext
impl StructuralPartialEq for ProofContext
Auto Trait Implementations§
impl Freeze for ProofContext
impl RefUnwindSafe for ProofContext
impl Send for ProofContext
impl Sync for ProofContext
impl Unpin for ProofContext
impl UnwindSafe for ProofContext
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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<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