node/block_producer/
block_producer_config.rs1use 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}