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 #[error("Unsafe block signer update error: {0}")]
30 UnsafeBlockSigner(UnsafeBlockSignerUpdateError),
31}
32
33#[derive(Debug, From, thiserror::Error, Clone, Copy, PartialEq, Eq)]
35#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
36pub enum LogProcessingError {
37 #[error("Invalid config update log: invalid topic length: {0}")]
39 InvalidTopicLen(usize),
40 #[error("Invalid config update log: invalid topic")]
42 InvalidTopic,
43 #[error("Invalid config update log: unsupported version: {0}")]
45 UnsupportedVersion(B256),
46 #[error("Failed to decode config update log: update type")]
48 UpdateTypeDecodingError,
49 #[error("Invalid system config update type: {0}")]
51 InvalidSystemConfigUpdateType(u64),
52}
53
54#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
56#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
57pub enum BatcherUpdateError {
58 #[error("Invalid config update log: invalid data length: {0}")]
60 InvalidDataLen(usize),
61 #[error("Failed to decode batcher update log: data pointer")]
63 PointerDecodingError,
64 #[error("Invalid config update log: invalid data pointer: {0}")]
66 InvalidDataPointer(u64),
67 #[error("Failed to decode batcher update log: data length")]
69 LengthDecodingError,
70 #[error("Invalid config update log: invalid data length: {0}")]
72 InvalidDataLength(u64),
73 #[error("Failed to decode batcher update log: batcher address")]
75 BatcherAddressDecodingError,
76}
77
78#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
80#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
81pub enum UnsafeBlockSignerUpdateError {
82 #[error("Invalid config update log: invalid data length: {0}")]
84 InvalidDataLen(usize),
85 #[error("Failed to decode unsafe block signer update log: data pointer")]
87 PointerDecodingError,
88 #[error("Invalid config update log: invalid data pointer: {0}")]
90 InvalidDataPointer(u64),
91 #[error("Failed to decode unsafe block signer update log: data length")]
93 LengthDecodingError,
94 #[error("Invalid config update log: invalid data length: {0}")]
96 InvalidDataLength(u64),
97 #[error("Failed to decode unsafe block signer update log: unsafe block signer address")]
99 UnsafeBlockSignerAddressDecodingError,
100}
101
102#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
104#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
105pub enum GasConfigUpdateError {
106 #[error("Invalid config update log: invalid data length: {0}")]
108 InvalidDataLen(usize),
109 #[error("Failed to decode gas config 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 config 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 config update log: overhead")]
123 OverheadDecodingError,
124 #[error("Failed to decode gas config update log: scalar")]
126 ScalarDecodingError,
127}
128
129#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
131#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
132pub enum GasLimitUpdateError {
133 #[error("Invalid config update log: invalid data length: {0}")]
135 InvalidDataLen(usize),
136 #[error("Failed to decode gas limit update log: data pointer")]
138 PointerDecodingError,
139 #[error("Invalid config update log: invalid data pointer: {0}")]
141 InvalidDataPointer(u64),
142 #[error("Failed to decode gas limit update log: data length")]
144 LengthDecodingError,
145 #[error("Invalid config update log: invalid data length: {0}")]
147 InvalidDataLength(u64),
148 #[error("Failed to decode gas limit update log: gas limit")]
150 GasLimitDecodingError,
151}
152
153#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
155#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
156pub enum EIP1559UpdateError {
157 #[error("Invalid config update log: invalid data length: {0}")]
159 InvalidDataLen(usize),
160 #[error("Failed to decode eip1559 parameter update log: data pointer")]
162 PointerDecodingError,
163 #[error("Invalid config update log: invalid data pointer: {0}")]
165 InvalidDataPointer(u64),
166 #[error("Failed to decode eip1559 parameter update log: data length")]
168 LengthDecodingError,
169 #[error("Invalid config update log: invalid data length: {0}")]
171 InvalidDataLength(u64),
172 #[error("Failed to decode eip1559 parameter update log: eip1559 parameters")]
174 EIP1559DecodingError,
175}
176
177#[derive(Debug, thiserror::Error, Clone, Copy, PartialEq, Eq)]
179#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
180pub enum OperatorFeeUpdateError {
181 #[error("Invalid config update log: invalid data length: {0}")]
183 InvalidDataLen(usize),
184 #[error("Failed to decode operator fee parameter update log: data pointer")]
186 PointerDecodingError,
187 #[error("Invalid config update log: invalid data pointer: {0}")]
189 InvalidDataPointer(u64),
190 #[error("Failed to decode operator fee parameter update log: data length")]
192 LengthDecodingError,
193 #[error("Invalid config update log: invalid data length: {0}")]
195 InvalidDataLength(u64),
196 #[error("Failed to decode operator fee parameter update log: scalar")]
198 ScalarDecodingError,
199 #[error("Failed to decode operator fee parameter update log: constant")]
201 ConstantDecodingError,
202}