Skip to content

Commit 6221455

Browse files
committed
group UNHANDLED_ERRORs into a generic (2 deps saved)
1 parent a174d67 commit 6221455

17 files changed

+113
-151
lines changed

Cargo.lock

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

beacon_node/http_api/src/attestation_performance.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use state_processing::{
77
};
88
use std::sync::Arc;
99
use types::{BeaconState, BeaconStateError, EthSpec, Hash256};
10-
use warp_utils::reject::{beacon_chain_error, custom_bad_request, custom_server_error};
10+
use warp_utils::reject::{custom_bad_request, custom_server_error, unhandled_error};
1111

1212
const MAX_REQUEST_RANGE_EPOCHS: usize = 100;
1313
const BLOCK_ROOT_CHUNK_SIZE: usize = 100;
@@ -50,7 +50,7 @@ pub fn get_attestation_performance<T: BeaconChainTypes>(
5050
let end_slot = end_epoch.end_slot(T::EthSpec::slots_per_epoch());
5151

5252
// Ensure end_epoch is smaller than the current epoch - 1.
53-
let current_epoch = chain.epoch().map_err(beacon_chain_error)?;
53+
let current_epoch = chain.epoch().map_err(unhandled_error)?;
5454
if query.end_epoch >= current_epoch - 1 {
5555
return Err(custom_bad_request(format!(
5656
"end_epoch must be less than the current epoch - 1. current: {}, end: {}",
@@ -83,7 +83,7 @@ pub fn get_attestation_performance<T: BeaconChainTypes>(
8383
let index_range = if target.to_lowercase() == "global" {
8484
chain
8585
.with_head(|head| Ok((0..head.beacon_state.validators().len() as u64).collect()))
86-
.map_err(beacon_chain_error)?
86+
.map_err(unhandled_error::<BeaconChainError>)?
8787
} else {
8888
vec![target.parse::<u64>().map_err(|_| {
8989
custom_bad_request(format!(
@@ -96,10 +96,10 @@ pub fn get_attestation_performance<T: BeaconChainTypes>(
9696
// Load block roots.
9797
let mut block_roots: Vec<Hash256> = chain
9898
.forwards_iter_block_roots_until(start_slot, end_slot)
99-
.map_err(beacon_chain_error)?
99+
.map_err(unhandled_error)?
100100
.map(|res| res.map(|(root, _)| root))
101101
.collect::<Result<Vec<Hash256>, _>>()
102-
.map_err(beacon_chain_error)?;
102+
.map_err(unhandled_error)?;
103103
block_roots.dedup();
104104

105105
// Load first block so we can get its parent.
@@ -113,7 +113,7 @@ pub fn get_attestation_performance<T: BeaconChainTypes>(
113113
.and_then(|maybe_block| {
114114
maybe_block.ok_or(BeaconChainError::MissingBeaconBlock(*first_block_root))
115115
})
116-
.map_err(beacon_chain_error)?;
116+
.map_err(unhandled_error)?;
117117

118118
// Load the block of the prior slot which will be used to build the starting state.
119119
let prior_block = chain
@@ -122,14 +122,14 @@ pub fn get_attestation_performance<T: BeaconChainTypes>(
122122
maybe_block
123123
.ok_or_else(|| BeaconChainError::MissingBeaconBlock(first_block.parent_root()))
124124
})
125-
.map_err(beacon_chain_error)?;
125+
.map_err(unhandled_error)?;
126126

127127
// Load state for block replay.
128128
let state_root = prior_block.state_root();
129129
let state = chain
130130
.get_state(&state_root, Some(prior_slot))
131131
.and_then(|maybe_state| maybe_state.ok_or(BeaconChainError::MissingBeaconState(state_root)))
132-
.map_err(beacon_chain_error)?;
132+
.map_err(unhandled_error)?;
133133

134134
// Allocate an AttestationPerformance vector for each validator in the range.
135135
let mut perfs: Vec<AttestationPerformance> =
@@ -198,7 +198,7 @@ pub fn get_attestation_performance<T: BeaconChainTypes>(
198198
.and_then(|maybe_block| {
199199
maybe_block.ok_or(BeaconChainError::MissingBeaconBlock(*root))
200200
})
201-
.map_err(beacon_chain_error)
201+
.map_err(unhandled_error)
202202
})
203203
.collect::<Result<Vec<_>, _>>()?;
204204

beacon_node/http_api/src/attester_duties.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ pub fn attester_duties<T: BeaconChainTypes>(
1616
request_indices: &[u64],
1717
chain: &BeaconChain<T>,
1818
) -> Result<ApiDuties, warp::reject::Rejection> {
19-
let current_epoch = chain
20-
.epoch()
21-
.map_err(warp_utils::reject::beacon_chain_error)?;
19+
let current_epoch = chain.epoch().map_err(warp_utils::reject::unhandled_error)?;
2220

2321
// Determine what the current epoch would be if we fast-forward our system clock by
2422
// `MAXIMUM_GOSSIP_CLOCK_DISPARITY`.
@@ -57,7 +55,7 @@ fn cached_attestation_duties<T: BeaconChainTypes>(
5755

5856
let (duties, dependent_root, execution_status) = chain
5957
.validator_attestation_duties(request_indices, request_epoch, head_block_root)
60-
.map_err(warp_utils::reject::beacon_chain_error)?;
58+
.map_err(warp_utils::reject::unhandled_error)?;
6159

6260
convert_to_api_response(
6361
duties,
@@ -82,7 +80,7 @@ fn compute_historic_attester_duties<T: BeaconChainTypes>(
8280
let (cached_head, execution_status) = chain
8381
.canonical_head
8482
.head_and_execution_status()
85-
.map_err(warp_utils::reject::beacon_chain_error)?;
83+
.map_err(warp_utils::reject::unhandled_error)?;
8684
let head = &cached_head.snapshot;
8785

8886
if head.beacon_state.current_epoch() <= request_epoch {
@@ -131,13 +129,13 @@ fn compute_historic_attester_duties<T: BeaconChainTypes>(
131129
state
132130
.build_committee_cache(relative_epoch, &chain.spec)
133131
.map_err(BeaconChainError::from)
134-
.map_err(warp_utils::reject::beacon_chain_error)?;
132+
.map_err(warp_utils::reject::unhandled_error)?;
135133

136134
let dependent_root = state
137135
// The only block which decides its own shuffling is the genesis block.
138136
.attester_shuffling_decision_root(chain.genesis_block_root, relative_epoch)
139137
.map_err(BeaconChainError::from)
140-
.map_err(warp_utils::reject::beacon_chain_error)?;
138+
.map_err(warp_utils::reject::unhandled_error)?;
141139

142140
let duties = request_indices
143141
.iter()
@@ -147,7 +145,7 @@ fn compute_historic_attester_duties<T: BeaconChainTypes>(
147145
.map_err(BeaconChainError::from)
148146
})
149147
.collect::<Result<_, _>>()
150-
.map_err(warp_utils::reject::beacon_chain_error)?;
148+
.map_err(warp_utils::reject::unhandled_error)?;
151149

152150
convert_to_api_response(
153151
duties,
@@ -181,7 +179,7 @@ fn ensure_state_knows_attester_duties_for_epoch<E: EthSpec>(
181179
// A "partial" state advance is adequate since attester duties don't rely on state roots.
182180
partial_state_advance(state, Some(state_root), target_slot, spec)
183181
.map_err(BeaconChainError::from)
184-
.map_err(warp_utils::reject::beacon_chain_error)?;
182+
.map_err(warp_utils::reject::unhandled_error)?;
185183
}
186184

187185
Ok(())
@@ -208,7 +206,7 @@ fn convert_to_api_response<T: BeaconChainTypes>(
208206
let usize_indices = indices.iter().map(|i| *i as usize).collect::<Vec<_>>();
209207
let index_to_pubkey_map = chain
210208
.validator_pubkey_bytes_many(&usize_indices)
211-
.map_err(warp_utils::reject::beacon_chain_error)?;
209+
.map_err(warp_utils::reject::unhandled_error)?;
212210

213211
let data = duties
214212
.into_iter()

beacon_node/http_api/src/block_id.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl BlockId {
3838
let (cached_head, execution_status) = chain
3939
.canonical_head
4040
.head_and_execution_status()
41-
.map_err(warp_utils::reject::beacon_chain_error)?;
41+
.map_err(warp_utils::reject::unhandled_error)?;
4242
Ok((
4343
cached_head.head_block_root(),
4444
execution_status.is_optimistic_or_invalid(),
@@ -63,10 +63,10 @@ impl BlockId {
6363
CoreBlockId::Slot(slot) => {
6464
let execution_optimistic = chain
6565
.is_optimistic_or_invalid_head()
66-
.map_err(warp_utils::reject::beacon_chain_error)?;
66+
.map_err(warp_utils::reject::unhandled_error)?;
6767
let root = chain
6868
.block_root_at_slot(*slot, WhenSlotSkipped::None)
69-
.map_err(warp_utils::reject::beacon_chain_error)
69+
.map_err(warp_utils::reject::unhandled_error)
7070
.and_then(|root_opt| {
7171
root_opt.ok_or_else(|| {
7272
warp_utils::reject::custom_not_found(format!(
@@ -96,17 +96,17 @@ impl BlockId {
9696
.store
9797
.block_exists(root)
9898
.map_err(BeaconChainError::DBError)
99-
.map_err(warp_utils::reject::beacon_chain_error)?
99+
.map_err(warp_utils::reject::unhandled_error)?
100100
{
101101
let execution_optimistic = chain
102102
.canonical_head
103103
.fork_choice_read_lock()
104104
.is_optimistic_or_invalid_block(root)
105105
.map_err(BeaconChainError::ForkChoiceError)
106-
.map_err(warp_utils::reject::beacon_chain_error)?;
106+
.map_err(warp_utils::reject::unhandled_error)?;
107107
let blinded_block = chain
108108
.get_blinded_block(root)
109-
.map_err(warp_utils::reject::beacon_chain_error)?
109+
.map_err(warp_utils::reject::unhandled_error)?
110110
.ok_or_else(|| {
111111
warp_utils::reject::custom_not_found(format!(
112112
"beacon block with root {}",
@@ -116,7 +116,7 @@ impl BlockId {
116116
let block_slot = blinded_block.slot();
117117
let finalized = chain
118118
.is_finalized_block(root, block_slot)
119-
.map_err(warp_utils::reject::beacon_chain_error)?;
119+
.map_err(warp_utils::reject::unhandled_error)?;
120120
Ok((*root, execution_optimistic, finalized))
121121
} else {
122122
Err(warp_utils::reject::custom_not_found(format!(
@@ -134,7 +134,7 @@ impl BlockId {
134134
) -> Result<Option<SignedBlindedBeaconBlock<T::EthSpec>>, warp::Rejection> {
135135
chain
136136
.get_blinded_block(root)
137-
.map_err(warp_utils::reject::beacon_chain_error)
137+
.map_err(warp_utils::reject::unhandled_error)
138138
}
139139

140140
/// Return the `SignedBeaconBlock` identified by `self`.
@@ -154,7 +154,7 @@ impl BlockId {
154154
let (cached_head, execution_status) = chain
155155
.canonical_head
156156
.head_and_execution_status()
157-
.map_err(warp_utils::reject::beacon_chain_error)?;
157+
.map_err(warp_utils::reject::unhandled_error)?;
158158
Ok((
159159
cached_head.snapshot.beacon_block.clone_as_blinded(),
160160
execution_status.is_optimistic_or_invalid(),
@@ -211,7 +211,7 @@ impl BlockId {
211211
let (cached_head, execution_status) = chain
212212
.canonical_head
213213
.head_and_execution_status()
214-
.map_err(warp_utils::reject::beacon_chain_error)?;
214+
.map_err(warp_utils::reject::unhandled_error)?;
215215
Ok((
216216
cached_head.snapshot.beacon_block.clone(),
217217
execution_status.is_optimistic_or_invalid(),
@@ -223,7 +223,7 @@ impl BlockId {
223223
chain
224224
.get_block(&root)
225225
.await
226-
.map_err(warp_utils::reject::beacon_chain_error)
226+
.map_err(warp_utils::reject::unhandled_error)
227227
.and_then(|block_opt| match block_opt {
228228
Some(block) => {
229229
if block.slot() != *slot {
@@ -245,7 +245,7 @@ impl BlockId {
245245
chain
246246
.get_block(&root)
247247
.await
248-
.map_err(warp_utils::reject::beacon_chain_error)
248+
.map_err(warp_utils::reject::unhandled_error)
249249
.and_then(|block_opt| {
250250
block_opt
251251
.map(|block| (Arc::new(block), execution_optimistic, finalized))
@@ -311,7 +311,7 @@ impl BlockId {
311311
let blob_sidecar_list = chain
312312
.store
313313
.get_blobs(&root)
314-
.map_err(|e| warp_utils::reject::beacon_chain_error(e.into()))?
314+
.map_err(|e| warp_utils::reject::unhandled_error(BeaconChainError::from(e)))?
315315
.blobs()
316316
.ok_or_else(|| {
317317
warp_utils::reject::custom_not_found(format!("no blobs stored for block {root}"))
@@ -356,7 +356,7 @@ impl BlockId {
356356
|column_index| match chain.get_data_column(&root, &column_index) {
357357
Ok(Some(data_column)) => Some(Ok(data_column)),
358358
Ok(None) => None,
359-
Err(e) => Some(Err(warp_utils::reject::beacon_chain_error(e))),
359+
Err(e) => Some(Err(warp_utils::reject::unhandled_error(e))),
360360
},
361361
)
362362
.collect::<Result<Vec<_>, _>>()?;

beacon_node/http_api/src/block_packing_efficiency.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use types::{
1313
AttestationRef, BeaconCommittee, BeaconState, BeaconStateError, BlindedPayload, ChainSpec,
1414
Epoch, EthSpec, Hash256, OwnedBeaconCommittee, RelativeEpoch, SignedBeaconBlock, Slot,
1515
};
16-
use warp_utils::reject::{beacon_chain_error, custom_bad_request, custom_server_error};
16+
use warp_utils::reject::{custom_bad_request, custom_server_error, unhandled_error};
1717

1818
/// Load blocks from block roots in chunks to reduce load on memory.
1919
const BLOCK_ROOT_CHUNK_SIZE: usize = 100;
@@ -263,9 +263,9 @@ pub fn get_block_packing_efficiency<T: BeaconChainTypes>(
263263
// Load block roots.
264264
let mut block_roots: Vec<Hash256> = chain
265265
.forwards_iter_block_roots_until(start_slot_of_prior_epoch, end_slot)
266-
.map_err(beacon_chain_error)?
266+
.map_err(unhandled_error)?
267267
.collect::<Result<Vec<(Hash256, Slot)>, _>>()
268-
.map_err(beacon_chain_error)?
268+
.map_err(unhandled_error)?
269269
.iter()
270270
.map(|(root, _)| *root)
271271
.collect();
@@ -280,7 +280,7 @@ pub fn get_block_packing_efficiency<T: BeaconChainTypes>(
280280
.and_then(|maybe_block| {
281281
maybe_block.ok_or(BeaconChainError::MissingBeaconBlock(*first_block_root))
282282
})
283-
.map_err(beacon_chain_error)?;
283+
.map_err(unhandled_error)?;
284284

285285
// Load state for block replay.
286286
let starting_state_root = first_block.state_root();
@@ -290,7 +290,7 @@ pub fn get_block_packing_efficiency<T: BeaconChainTypes>(
290290
.and_then(|maybe_state| {
291291
maybe_state.ok_or(BeaconChainError::MissingBeaconState(starting_state_root))
292292
})
293-
.map_err(beacon_chain_error)?;
293+
.map_err(unhandled_error)?;
294294

295295
// Initialize response vector.
296296
let mut response = Vec::new();
@@ -392,7 +392,7 @@ pub fn get_block_packing_efficiency<T: BeaconChainTypes>(
392392
.and_then(|maybe_block| {
393393
maybe_block.ok_or(BeaconChainError::MissingBeaconBlock(*root))
394394
})
395-
.map_err(beacon_chain_error)
395+
.map_err(unhandled_error)
396396
})
397397
.collect::<Result<Vec<_>, _>>()?;
398398

0 commit comments

Comments
 (0)