1use alloy_primitives::B256;
4use derive_more::From;
5
6#[derive(Debug, From, thiserror::Error, Clone, Copy, PartialEq, Eq)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9pub enum SystemConfigUpdateError {
10 #[error("Log processing error: {0}")]
12 LogProcessing(LogProcessingError),
13 #[error("Batcher update error: {0}")]
15 Batcher(BatcherUpdateError),
16 #[error("Gas config update error: {0}")]
18 GasConfig(GasConfigUpdateError),
19 #[error("Gas limit update error: {0}")]
21 GasLimit(GasLimitUpdateError),
22 #[error("EIP-1559 parameter update error: {0}")]
24 Eip1559(EIP1559UpdateError),
25 #[error("Operator fee parameter update error: {0}")]
27 OperatorFee(OperatorFeeUpdateError),
28}
29
30#[derive(Debug, From, thiserror::Error, Clone, Copy, PartialEq, Eq)]
32#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
33pub enum LogProcessingError {
34 #[error("Invalid config update log: invalid topic length: {0}")]
36 InvalidTopicLen(usize),
37 #[error("Invalid config update log: invalid topic")]
39 InvalidTopic,
40 #[error("Invalid config update log: unsupported version: {0}")]
42 UnsupportedVersion(B256),
43 #[error("Failed to decode config update log: update type")]
45 UpdateTypeDecodingError,
46 #[error("Invalid system config update type: {0}")]
48 InvalidSystemConfigUpdateType(u64),
49}
50
51#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
53#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
54pub enum BatcherUpdateError {
55 #[error("Invalid config update log: invalid data length: {0}")]
57 InvalidDataLen(usize),
58 #[error("Failed to decode batcher update log: data pointer")]
60 PointerDecodingError,
61 #[error("Invalid config update log: invalid data pointer: {0}")]
63 InvalidDataPointer(u64),
64 #[error("Failed to decode batcher update log: data length")]
66 LengthDecodingError,
67 #[error("Invalid config update log: invalid data length: {0}")]
69 InvalidDataLength(u64),
70 #[error("Failed to decode batcher update log: batcher address")]
72 BatcherAddressDecodingError,
73}
74
75#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
77#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
78pub enum GasConfigUpdateError {
79 #[error("Invalid config update log: invalid data length: {0}")]
81 InvalidDataLen(usize),
82 #[error("Failed to decode gas config update log: data pointer")]
84 PointerDecodingError,
85 #[error("Invalid config update log: invalid data pointer: {0}")]
87 InvalidDataPointer(u64),
88 #[error("Failed to decode gas config update log: data length")]
90 LengthDecodingError,
91 #[error("Invalid config update log: invalid data length: {0}")]
93 InvalidDataLength(u64),
94 #[error("Failed to decode gas config update log: overhead")]
96 OverheadDecodingError,
97 #[error("Failed to decode gas config update log: scalar")]
99 ScalarDecodingError,
100}
101
102#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
104#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
105pub enum GasLimitUpdateError {
106 #[error("Invalid config update log: invalid data length: {0}")]
108 InvalidDataLen(usize),
109 #[error("Failed to decode gas limit update log: data pointer")]
111 PointerDecodingError,
112 #[error("Invalid config update log: invalid data pointer: {0}")]
114 InvalidDataPointer(u64),
115 #[error("Failed to decode gas limit update log: data length")]
117 LengthDecodingError,
118 #[error("Invalid config update log: invalid data length: {0}")]
120 InvalidDataLength(u64),
121 #[error("Failed to decode gas limit update log: gas limit")]
123 GasLimitDecodingError,
124}
125
126#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
128#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
129pub enum EIP1559UpdateError {
130 #[error("Invalid config update log: invalid data length: {0}")]
132 InvalidDataLen(usize),
133 #[error("Failed to decode eip1559 parameter update log: data pointer")]
135 PointerDecodingError,
136 #[error("Invalid config update log: invalid data pointer: {0}")]
138 InvalidDataPointer(u64),
139 #[error("Failed to decode eip1559 parameter update log: data length")]
141 LengthDecodingError,
142 #[error("Invalid config update log: invalid data length: {0}")]
144 InvalidDataLength(u64),
145 #[error("Failed to decode eip1559 parameter update log: eip1559 parameters")]
147 EIP1559DecodingError,
148}
149
150#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
152#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
153pub enum OperatorFeeUpdateError {
154 #[error("Invalid config update log: invalid data length: {0}")]
156 InvalidDataLen(usize),
157 #[error("Failed to decode eip1559 parameter update log: data pointer")]
159 PointerDecodingError,
160 #[error("Invalid config update log: invalid data pointer: {0}")]
162 InvalidDataPointer(u64),
163 #[error("Failed to decode eip1559 parameter update log: data length")]
165 LengthDecodingError,
166 #[error("Invalid config update log: invalid data length: {0}")]
168 InvalidDataLength(u64),
169 #[error("Failed to decode operator fee parameter update log: scalar")]
171 ScalarDecodingError,
172 #[error("Failed to decode operator fee parameter update log: constant")]
174 ConstantDecodingError,
175}