massa_models/
composite.rs1use crate::prehash::PreHashMap;
4use crate::{address::Address, block_id::BlockId, operation::SecureShareOperation};
5use massa_signature::{PublicKey, Signature};
6use serde::{Deserialize, Serialize};
7use std::fmt::Display;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11pub enum OperationSearchResultBlockStatus {
12 Incoming,
14 WaitingForSlot,
16 WaitingForDependencies,
18 Active,
20 Discarded,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26pub enum OperationSearchResultStatus {
27 Pending,
29 InBlock(OperationSearchResultBlockStatus),
31 Discarded,
33}
34
35#[derive(Clone, Debug, Serialize, Deserialize)]
37pub struct OperationSearchResult {
38 pub op: SecureShareOperation,
40 pub in_pool: bool,
42 pub in_blocks: PreHashMap<BlockId, (usize, bool)>,
44 pub status: OperationSearchResultStatus,
46}
47
48impl OperationSearchResult {
49 pub fn extend(&mut self, other: &OperationSearchResult) {
51 self.in_pool = self.in_pool || other.in_pool;
52 self.in_blocks.extend(other.in_blocks.iter());
53 }
54}
55
56#[derive(Clone, Debug, Serialize, Deserialize)]
58pub struct StakersCycleProductionStats {
59 pub cycle: u64,
61 pub is_final: bool,
63 pub ok_nok_counts: PreHashMap<Address, (u64, u64)>,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
71pub struct PubkeySig {
72 pub public_key: PublicKey,
74 pub signature: Signature,
76}
77
78impl Display for PubkeySig {
79 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
80 writeln!(f, "Public key: {}", self.public_key)?;
81 writeln!(f, "Signature: {}", self.signature)
82 }
83}