cuprate_types/json/
output.rs1#[cfg(feature = "serde")]
8use serde::{Deserialize, Serialize};
9
10use crate::hex::HexBytes;
11
12#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15pub struct Output {
16 pub amount: u64,
17 pub target: Target,
18}
19
20#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
22#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
23#[cfg_attr(feature = "serde", serde(untagged))]
24pub enum Target {
25 Key { key: HexBytes<32> },
26 TaggedKey { tagged_key: TaggedKey },
27}
28
29impl Default for Target {
30 fn default() -> Self {
31 Self::Key {
32 key: Default::default(),
33 }
34 }
35}
36
37#[derive(Clone, Default, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
39#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
40pub struct TaggedKey {
41 pub key: HexBytes<32>,
42 pub view_tag: HexBytes<1>,
43}