Struct PublicKeys
pub struct PublicKeys {
pub npk_m_hash: Field,
pub ivpk_m: IvpkM,
pub ovpk_m_hash: Field,
pub tpk_m_hash: Field,
pub mspk_m_hash: Field,
pub fbpk_m_hash: Field,
}
Fields
npk_m_hash: Fieldivpk_m: IvpkMovpk_m_hash: Fieldtpk_m_hash: Fieldmspk_m_hash: Fieldfbpk_m_hash: FieldImplementations
impl PublicKeys
pub fn hash(self) -> PublicKeysHash
pub fn validate_on_curve(self)
Validates that the (only) point-form key, ivpk_m, lies on the Grumpkin curve.
The other five keys are exposed only as hashes and are unverifiable on-circuit; the PXE is responsible for ensuring they were derived from on-curve points before persistence.
pub fn validate_non_infinity(self)
Validates that ivpk_m is not the point at infinity.
As with Self::validate_on_curve, the other five keys are now exposed only as hashes
and this property must be enforced PXE-side.
Trait implementations
impl Default for PublicKeys
pub fn default() -> Self
impl Deserialize for PublicKeys
pub fn deserialize(fields: [Field; 7]) -> Self
pub fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self
impl Eq for PublicKeys
pub fn eq(_self: Self, _other: Self) -> bool
A non-owner's view of an account's master public keys.
npk_m_hash,ovpk_m_hash,tpk_m_hash,mspk_m_hash, andfbpk_m_hashare thehash_public_keydigests of the underlying points. The points themselves are not exposed here - they are only known to the owner.ivpk_mremains a point because address derivation (encrypt-to-address) requires the raw point in-circuit.