pub struct AddressProof {Show 16 fields
pub proof_id: AddressProofId,
pub holder_address: Address,
pub subject_ref: SubjectRef,
pub address_commitment: [u8; 32],
pub jurisdiction_code: String,
pub postal_commitment: [u8; 32],
pub proof_type: AddressProofType,
pub document_date: Timestamp,
pub issuer_address: Address,
pub issuer_class: FinanceIssuerClass,
pub valid_from: Timestamp,
pub expiry: Timestamp,
pub policy_id: PolicyId,
pub revocation_ref: Option<[u8; 32]>,
pub created_at: Timestamp,
pub updated_at: Timestamp,
}Expand description
Proof-of-Address credential (SRC-892)
Fields§
§proof_id: AddressProofIdUnique address proof ID
holder_address: AddressHolder wallet address (for token ownership)
subject_ref: SubjectRefSubject reference (commitment to identity - NO PII)
address_commitment: [u8; 32]Address commitment (full address committed, not revealed) commitment = blake3(ADDRESS_DOMAIN || country || region || city || postal || street || salt)
jurisdiction_code: StringJurisdiction code (country + optional subdivision, revealed for compliance)
postal_commitment: [u8; 32]Postal code commitment (for regional matching) commitment = blake3(POSTAL_DOMAIN || postal_code || salt)
proof_type: AddressProofTypeProof type
document_date: TimestampDocument date (when the proof document was issued)
issuer_address: AddressIssuer address
issuer_class: FinanceIssuerClassIssuer class
valid_from: TimestampValid from timestamp
expiry: TimestampExpiry timestamp
policy_id: PolicyIdPolicy ID governing this credential
revocation_ref: Option<[u8; 32]>Revocation reference (for SRC-805 compatibility)
created_at: TimestampCreated at timestamp
updated_at: TimestampUpdated at timestamp
Implementations§
Source§impl AddressProof
impl AddressProof
Sourcepub fn generate_id(
subject_ref: &SubjectRef,
address_commitment: &[u8; 32],
proof_type: AddressProofType,
nonce: u64,
) -> AddressProofId
pub fn generate_id( subject_ref: &SubjectRef, address_commitment: &[u8; 32], proof_type: AddressProofType, nonce: u64, ) -> AddressProofId
Generate address proof ID
Sourcepub fn generate_address_commitment(
country: &str,
region: &str,
city: &str,
postal_code: &str,
street_address: &str,
salt: &[u8; 32],
) -> [u8; 32]
pub fn generate_address_commitment( country: &str, region: &str, city: &str, postal_code: &str, street_address: &str, salt: &[u8; 32], ) -> [u8; 32]
Generate address commitment
Trait Implementations§
Source§impl Clone for AddressProof
impl Clone for AddressProof
Source§fn clone(&self) -> AddressProof
fn clone(&self) -> AddressProof
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AddressProof
impl Debug for AddressProof
Source§impl<'de> Deserialize<'de> for AddressProof
impl<'de> Deserialize<'de> for AddressProof
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for AddressProof
impl PartialEq for AddressProof
Source§fn eq(&self, other: &AddressProof) -> bool
fn eq(&self, other: &AddressProof) -> bool
self and other values to be equal, and is used by ==.