node/block_producer/
block_producer_config.rs

1use mina_p2p_messages::v2::{NonZeroCurvePoint, ProtocolVersionStableV2};
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug, Clone)]
5pub struct BlockProducerConfig {
6    pub pub_key: NonZeroCurvePoint,
7    pub custom_coinbase_receiver: Option<NonZeroCurvePoint>,
8    pub proposed_protocol_version: Option<ProtocolVersionStableV2>,
9}
10
11impl BlockProducerConfig {
12    pub fn new(pub_key: NonZeroCurvePoint) -> Self {
13        Self {
14            pub_key,
15            custom_coinbase_receiver: None,
16            proposed_protocol_version: None,
17        }
18    }
19
20    pub fn coinbase_receiver(&self) -> &NonZeroCurvePoint {
21        self.custom_coinbase_receiver
22            .as_ref()
23            .unwrap_or(&self.pub_key)
24    }
25}