kona_genesis/system/
update.rs1use crate::{
4 BatcherUpdate, Eip1559Update, GasConfigUpdate, GasLimitUpdate, OperatorFeeUpdate, SystemConfig,
5 SystemConfigUpdateKind,
6};
7
8#[derive(Debug, Clone, Hash, PartialEq, Eq)]
11#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12pub enum SystemConfigUpdate {
13 Batcher(BatcherUpdate),
15 GasConfig(GasConfigUpdate),
17 GasLimit(GasLimitUpdate),
19 UnsafeBlockSigner,
21 Eip1559(Eip1559Update),
23 OperatorFee(OperatorFeeUpdate),
25}
26
27impl SystemConfigUpdate {
28 pub fn apply(&self, config: &mut SystemConfig) {
30 match self {
31 Self::Batcher(update) => update.apply(config),
32 Self::GasConfig(update) => update.apply(config),
33 Self::GasLimit(update) => update.apply(config),
34 Self::UnsafeBlockSigner => { }
35 Self::Eip1559(update) => update.apply(config),
36 Self::OperatorFee(update) => update.apply(config),
37 }
38 }
39
40 pub const fn kind(&self) -> SystemConfigUpdateKind {
42 match self {
43 Self::Batcher(_) => SystemConfigUpdateKind::Batcher,
44 Self::GasConfig(_) => SystemConfigUpdateKind::GasConfig,
45 Self::GasLimit(_) => SystemConfigUpdateKind::GasLimit,
46 Self::UnsafeBlockSigner => SystemConfigUpdateKind::UnsafeBlockSigner,
47 Self::Eip1559(_) => SystemConfigUpdateKind::Eip1559,
48 Self::OperatorFee(_) => SystemConfigUpdateKind::OperatorFee,
49 }
50 }
51}