zebra_chain/orchard/address.rs
1//! Orchard shielded payment addresses.
2
3use std::fmt;
4
5use super::keys;
6
7/// A raw **Orchard** _shielded payment address_.
8///
9/// Also known as a _diversified payment address_ for Orchard, as
10/// defined in [§5.6.4.1 of the Zcash Specification][orchardpaymentaddrencoding].
11///
12/// [orchardpaymentaddrencoding]: https://zips.z.cash/protocol/nu5.pdf#orchardpaymentaddrencoding
13#[derive(Clone, Copy, Eq, PartialEq)]
14pub struct Address {
15 pub(crate) diversifier: keys::Diversifier,
16 pub(crate) transmission_key: keys::TransmissionKey,
17}
18
19impl fmt::Debug for Address {
20 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
21 f.debug_struct("OrchardAddress")
22 .field("diversifier", &self.diversifier)
23 .field("transmission_key", &self.transmission_key)
24 .finish()
25 }
26}