@@ -109,7 +109,7 @@ def test_sepolia_metric_epoch(self, slot: int):
109
109
def test_sepolia_validator_status (self , slot : int ):
110
110
"""Verifies the validator statuses are exposed by scopes.
111
111
"""
112
- if slot != 5493883 :
112
+ if slot != 7363592 :
113
113
return
114
114
115
115
def test_for_label (
@@ -136,8 +136,45 @@ def test_for_label(
136
136
self .assertEqual (self .metrics [f'eth_validator_status_count{{network="sepolia",scope="{ label } ",status="withdrawal_done"}}' ], float (withdrawal_done ))
137
137
138
138
test_for_label ("scope:watched" , active_ongoing = 100 )
139
- test_for_label ("scope:all-network" , active_ongoing = 1771 , withdrawal_possible = 200 , withdrawal_done = 2 )
140
- test_for_label ("scope:network" , active_ongoing = 1671 , withdrawal_possible = 200 , withdrawal_done = 2 )
139
+ test_for_label ("scope:all-network" , active_ongoing = 1781 , withdrawal_possible = 200 , withdrawal_done = 6 )
140
+ test_for_label ("scope:network" , active_ongoing = 1681 , withdrawal_possible = 200 , withdrawal_done = 6 )
141
+ test_for_label ("operator:kiln" , active_ongoing = 100 )
142
+ test_for_label ("vc:prysm-validator-1" , active_ongoing = 50 )
143
+ test_for_label ("vc:teku-validator-1" , active_ongoing = 50 )
144
+
145
+ @sepolia_test ("config.sepolia_replay_2_slots.yaml" )
146
+ def test_sepolia_validator_scaled_status (self , slot : int ):
147
+ """Verifies the validator statuses are exposed by scopes.
148
+ """
149
+ if slot != 7363592 :
150
+ return
151
+
152
+ def test_for_label (
153
+ label : str ,
154
+ pending_initialized : int = 0 ,
155
+ pending_queued : int = 0 ,
156
+ active_ongoing : int = 0 ,
157
+ active_exiting : int = 0 ,
158
+ active_slashed : int = 0 ,
159
+ exited_unslashed : int = 0 ,
160
+ exited_slashed : int = 0 ,
161
+ withdrawal_possible : int = 0 ,
162
+ withdrawal_done : int = 0 ,
163
+ ) -> None :
164
+
165
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="pending_initialized"}}' ], float (pending_initialized ))
166
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="pending_queued"}}' ], float (pending_queued ))
167
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="active_ongoing"}}' ], float (active_ongoing ))
168
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="active_exiting"}}' ], float (active_exiting ))
169
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="active_slashed"}}' ], float (active_slashed ))
170
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="exited_unslashed"}}' ], float (exited_unslashed ))
171
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="exited_slashed"}}' ], float (exited_slashed ))
172
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="withdrawal_possible"}}' ], float (withdrawal_possible ))
173
+ self .assertEqual (self .metrics [f'eth_validator_status_scaled_count{{network="sepolia",scope="{ label } ",status="withdrawal_done"}}' ], float (withdrawal_done ))
174
+
175
+ test_for_label ("scope:watched" , active_ongoing = 100 )
176
+ test_for_label ("scope:all-network" , active_ongoing = 1785.09375 , withdrawal_possible = 150 , withdrawal_done = 0 )
177
+ test_for_label ("scope:network" , active_ongoing = 1685.09375 , withdrawal_possible = 150 , withdrawal_done = 0 )
141
178
test_for_label ("operator:kiln" , active_ongoing = 100 )
142
179
test_for_label ("vc:prysm-validator-1" , active_ongoing = 50 )
143
180
test_for_label ("vc:teku-validator-1" , active_ongoing = 50 )
@@ -146,28 +183,54 @@ def test_for_label(
146
183
def test_sepolia_missed_attestation (self , slot : int ):
147
184
"""Verifies attestation misses
148
185
"""
149
- if slot != 5493883 :
186
+ if slot != 7363592 :
150
187
return
151
188
152
189
self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="operator:kiln"}' ], 0.0 )
153
190
self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="vc:prysm-validator-1"}' ], 0.0 )
154
191
self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="vc:teku-validator-1"}' ], 0.0 )
155
192
self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="scope:watched"}' ], 0.0 )
156
- self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="scope:all-network"}' ], 350.0 )
157
- self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="scope:network"}' ], 350.0 )
193
+ self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="scope:all-network"}' ], 101.0 )
194
+ self .assertEqual (self .metrics ['eth_missed_attestations{network="sepolia",scope="scope:network"}' ], 101.0 )
195
+
196
+ self .assertEqual (self .metrics ['eth_missed_attestations_scaled{network="sepolia",scope="operator:kiln"}' ], 0.0 )
197
+ self .assertEqual (self .metrics ['eth_missed_attestations_scaled{network="sepolia",scope="vc:prysm-validator-1"}' ], 0.0 )
198
+ self .assertEqual (self .metrics ['eth_missed_attestations_scaled{network="sepolia",scope="vc:teku-validator-1"}' ], 0.0 )
199
+ self .assertEqual (self .metrics ['eth_missed_attestations_scaled{network="sepolia",scope="scope:watched"}' ], 0.0 )
200
+ self .assertEqual (self .metrics ['eth_missed_attestations_scaled{network="sepolia",scope="scope:all-network"}' ], 100.9375 )
201
+ self .assertEqual (self .metrics ['eth_missed_attestations_scaled{network="sepolia",scope="scope:network"}' ], 100.9375 )
202
+
203
+ @sepolia_test ("config.sepolia.yaml" )
204
+ def test_sepolia_missed_consecutive_attestation (self , slot : int ):
205
+ """Verifies consecutive attestation misses
206
+ """
207
+ if slot != 7363686 :
208
+ return
209
+
210
+ self .assertEqual (self .metrics ['eth_missed_consecutive_attestations{network="sepolia",scope="operator:kiln"}' ], 0.0 )
211
+ self .assertEqual (self .metrics ['eth_missed_consecutive_attestations{network="sepolia",scope="vc:prysm-validator-1"}' ], 0.0 )
212
+ self .assertEqual (self .metrics ['eth_missed_consecutive_attestations{network="sepolia",scope="vc:teku-validator-1"}' ], 0.0 )
213
+ self .assertEqual (self .metrics ['eth_missed_consecutive_attestations{network="sepolia",scope="scope:watched"}' ], 0.0 )
214
+ self .assertEqual (self .metrics ['eth_missed_consecutive_attestations{network="sepolia",scope="scope:all-network"}' ], 101.0 )
215
+ self .assertEqual (self .metrics ['eth_missed_consecutive_attestations{network="sepolia",scope="scope:network"}' ], 101.0 )
158
216
159
217
@sepolia_test ("config.sepolia.yaml" )
160
218
def test_sepolia_blocks (self , slot : int ):
161
219
"""Verifies block proposals and misses.
162
220
"""
163
- if slot != 5493975 :
221
+ if slot != 7363612 :
164
222
return
165
223
166
- self .assertEqual (self .metrics ['eth_block_proposals_head_total{network="sepolia",scope="operator:kiln"}' ], 6 .0 )
224
+ self .assertEqual (self .metrics ['eth_block_proposals_head_total{network="sepolia",scope="operator:kiln"}' ], 2 .0 )
167
225
self .assertEqual (self .metrics ['eth_missed_block_proposals_head_total{network="sepolia",scope="operator:kiln"}' ], 0.0 )
168
- self .assertEqual (self .metrics ['eth_block_proposals_finalized_total{network="sepolia",scope="operator:kiln"}' ], 2 .0 )
226
+ self .assertEqual (self .metrics ['eth_block_proposals_finalized_total{network="sepolia",scope="operator:kiln"}' ], 0 .0 )
169
227
self .assertEqual (self .metrics ['eth_missed_block_proposals_finalized_total{network="sepolia",scope="operator:kiln"}' ], 0.0 )
170
228
229
+ self .assertEqual (self .metrics ['eth_block_proposals_head_total{network="sepolia",scope="scope:all-network"}' ], 20.0 )
230
+ self .assertEqual (self .metrics ['eth_missed_block_proposals_head_total{network="sepolia",scope="scope:all-network"}' ], 1.0 )
231
+ self .assertEqual (self .metrics ['eth_block_proposals_finalized_total{network="sepolia",scope="scope:all-network"}' ], 0.0 )
232
+ self .assertEqual (self .metrics ['eth_missed_block_proposals_finalized_total{network="sepolia",scope="scope:all-network"}' ], 0.0 )
233
+
171
234
@sepolia_test ("config.sepolia.yaml" )
172
235
def test_sepolia_full (self , slot : int ):
173
236
"""Runs a complete iteration of the watcher over two epochs.
0 commit comments