casper_storage/data_access_layer/
seigniorage_recipients.rs1use crate::tracking_copy::TrackingCopyError;
4use casper_types::{system::auction::SeigniorageRecipientsSnapshot, Digest};
5use std::fmt::{Display, Formatter};
6
7#[derive(Debug, Clone, PartialEq, Eq)]
9pub struct SeigniorageRecipientsRequest {
10 state_hash: Digest,
11}
12
13impl SeigniorageRecipientsRequest {
14 pub fn new(state_hash: Digest) -> Self {
16 SeigniorageRecipientsRequest { state_hash }
17 }
18
19 pub fn state_hash(&self) -> Digest {
21 self.state_hash
22 }
23}
24
25#[derive(Debug)]
27pub enum SeigniorageRecipientsResult {
28 AuctionNotFound,
30 RootNotFound,
32 ValueNotFound(String),
34 Failure(TrackingCopyError),
36 Success {
38 seigniorage_recipients: SeigniorageRecipientsSnapshot,
40 },
41}
42
43impl SeigniorageRecipientsResult {
44 pub fn is_success(&self) -> bool {
46 matches!(self, SeigniorageRecipientsResult::Success { .. })
47 }
48
49 pub fn into_option(self) -> Option<SeigniorageRecipientsSnapshot> {
51 match self {
52 SeigniorageRecipientsResult::AuctionNotFound
53 | SeigniorageRecipientsResult::RootNotFound
54 | SeigniorageRecipientsResult::ValueNotFound(_)
55 | SeigniorageRecipientsResult::Failure(_) => None,
56 SeigniorageRecipientsResult::Success {
57 seigniorage_recipients,
58 } => Some(seigniorage_recipients),
59 }
60 }
61}
62
63impl Display for SeigniorageRecipientsResult {
64 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
65 match self {
66 SeigniorageRecipientsResult::AuctionNotFound => write!(f, "system auction not found"),
67 SeigniorageRecipientsResult::RootNotFound => write!(f, "state root not found"),
68 SeigniorageRecipientsResult::ValueNotFound(msg) => {
69 write!(f, "value not found: {}", msg)
70 }
71 SeigniorageRecipientsResult::Failure(tce) => write!(f, "{}", tce),
72 SeigniorageRecipientsResult::Success { .. } => {
73 write!(f, "success")
74 }
75 }
76 }
77}