Skip to content

Commit ce11225

Browse files
authored
Return normal error instead of panic on unknown consensus version (#29286)
Fixes #29261 The error showed up when trying to use consensus version 14 with old leo versions that don't support it.
1 parent aae6ecb commit ce11225

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

crates/leo/src/cli/commands/common/options.rs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -302,27 +302,30 @@ pub fn get_consensus_version_from_height(seek_height: u32, heights: &[u32]) -> R
302302
}
303303
};
304304
// Convert the index to a consensus version.
305-
Ok(number_to_consensus_version(index + 1))
305+
number_to_consensus_version(index + 1)
306306
}
307307

308308
// A helper to convert an index to a consensus version.
309-
pub fn number_to_consensus_version(index: usize) -> ConsensusVersion {
309+
pub fn number_to_consensus_version(index: usize) -> Result<ConsensusVersion> {
310310
match index {
311-
1 => ConsensusVersion::V1,
312-
2 => ConsensusVersion::V2,
313-
3 => ConsensusVersion::V3,
314-
4 => ConsensusVersion::V4,
315-
5 => ConsensusVersion::V5,
316-
6 => ConsensusVersion::V6,
317-
7 => ConsensusVersion::V7,
318-
8 => ConsensusVersion::V8,
319-
9 => ConsensusVersion::V9,
320-
10 => ConsensusVersion::V10,
321-
11 => ConsensusVersion::V11,
322-
12 => ConsensusVersion::V12,
323-
13 => ConsensusVersion::V13,
324-
14 => ConsensusVersion::V14,
325-
_ => panic!("Invalid consensus version: {index}"),
311+
1 => Ok(ConsensusVersion::V1),
312+
2 => Ok(ConsensusVersion::V2),
313+
3 => Ok(ConsensusVersion::V3),
314+
4 => Ok(ConsensusVersion::V4),
315+
5 => Ok(ConsensusVersion::V5),
316+
6 => Ok(ConsensusVersion::V6),
317+
7 => Ok(ConsensusVersion::V7),
318+
8 => Ok(ConsensusVersion::V8),
319+
9 => Ok(ConsensusVersion::V9),
320+
10 => Ok(ConsensusVersion::V10),
321+
11 => Ok(ConsensusVersion::V11),
322+
12 => Ok(ConsensusVersion::V12),
323+
13 => Ok(ConsensusVersion::V13),
324+
14 => Ok(ConsensusVersion::V14),
325+
_ => Err(CliError::custom(format!(
326+
"Invalid consensus version: {index}. You may need to update Leo to support this version."
327+
))
328+
.into()),
326329
}
327330
}
328331

0 commit comments

Comments
 (0)