Accept TTD override as decimal (#2676)
This commit is contained in:
parent
d8eec16c5e
commit
6b4cc63b57
@ -402,7 +402,7 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
||||
.arg(
|
||||
Arg::with_name("terminal-total-difficulty-override")
|
||||
.long("terminal-total-difficulty-override")
|
||||
.value_name("TERMINAL_TOTAL_DIFFICULTY")
|
||||
.value_name("INTEGER")
|
||||
.help("Used to coordinate manual overrides to the TERMINAL_TOTAL_DIFFICULTY parameter. \
|
||||
This flag should only be used if the user has a clear understanding that \
|
||||
the broad Ethereum community has elected to override the terminal difficulty. \
|
||||
@ -415,6 +415,7 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
||||
.long("terminal-block-hash-override")
|
||||
.value_name("TERMINAL_BLOCK_HASH")
|
||||
.help("Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH parameter. \
|
||||
Accepts a 256-bit decimal integer (not a hex value). \
|
||||
This flag should only be used if the user has a clear understanding that \
|
||||
the broad Ethereum community has elected to override the terminal PoW block. \
|
||||
Incorrect use of this flag will cause your node to experience a consensus
|
||||
|
@ -14,7 +14,9 @@ use std::net::{IpAddr, Ipv4Addr, ToSocketAddrs};
|
||||
use std::net::{TcpListener, UdpSocket};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::str::FromStr;
|
||||
use types::{ChainSpec, Checkpoint, Epoch, EthSpec, Hash256, PublicKeyBytes, GRAFFITI_BYTES_LEN};
|
||||
use types::{
|
||||
ChainSpec, Checkpoint, Epoch, EthSpec, Hash256, PublicKeyBytes, Uint256, GRAFFITI_BYTES_LEN,
|
||||
};
|
||||
|
||||
/// Gets the fully-initialized global client.
|
||||
///
|
||||
@ -240,9 +242,17 @@ pub fn get_config<E: EthSpec>(
|
||||
client_config.execution_endpoints = Some(client_config.eth1.endpoints.clone());
|
||||
}
|
||||
|
||||
if let Some(terminal_total_difficulty) =
|
||||
clap_utils::parse_optional(cli_args, "terminal-total-difficulty-override")?
|
||||
if let Some(string) =
|
||||
clap_utils::parse_optional::<String>(cli_args, "terminal-total-difficulty-override")?
|
||||
{
|
||||
let stripped = string.replace(",", "");
|
||||
let terminal_total_difficulty = Uint256::from_dec_str(&stripped).map_err(|e| {
|
||||
format!(
|
||||
"Could not parse --terminal-total-difficulty-override as decimal value: {:?}",
|
||||
e
|
||||
)
|
||||
})?;
|
||||
|
||||
if client_config.execution_endpoints.is_none() {
|
||||
return Err(
|
||||
"The --merge flag must be provided when using --terminal-total-difficulty-override"
|
||||
|
@ -11,7 +11,7 @@ use std::process::Command;
|
||||
use std::str::FromStr;
|
||||
use std::string::ToString;
|
||||
use tempfile::TempDir;
|
||||
use types::{Checkpoint, Epoch, Hash256};
|
||||
use types::{Checkpoint, Epoch, Hash256, Uint256};
|
||||
|
||||
const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/";
|
||||
|
||||
@ -817,6 +817,83 @@ pub fn malloc_tuning_flag() {
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
pub fn ttd_override_decimal() {
|
||||
CommandLineTest::new().run().with_config(|config| {
|
||||
assert!(config.terminal_total_difficulty_override.is_none());
|
||||
});
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("merge", None)
|
||||
.flag(
|
||||
"terminal-total-difficulty-override",
|
||||
Some("31,841,035,257,753,085,493,511"),
|
||||
)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
config.terminal_total_difficulty_override.unwrap(),
|
||||
Uint256::from_dec_str(&"31841035257753085493511").unwrap()
|
||||
);
|
||||
});
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("merge", None)
|
||||
.flag(
|
||||
"terminal-total-difficulty-override",
|
||||
Some("31841035257753085493511"),
|
||||
)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
config.terminal_total_difficulty_override.unwrap(),
|
||||
Uint256::from_dec_str(&"31841035257753085493511").unwrap()
|
||||
);
|
||||
});
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("merge", None)
|
||||
.flag("terminal-total-difficulty-override", Some("1234"))
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
config.terminal_total_difficulty_override.unwrap(),
|
||||
Uint256::from(1234)
|
||||
);
|
||||
});
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("merge", None)
|
||||
.flag("terminal-total-difficulty-override", Some("1,234"))
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
config.terminal_total_difficulty_override.unwrap(),
|
||||
Uint256::from(1234)
|
||||
);
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
#[should_panic]
|
||||
pub fn ttd_override_without_merge() {
|
||||
CommandLineTest::new()
|
||||
.flag("terminal-total-difficulty-override", Some("1234"))
|
||||
.run();
|
||||
}
|
||||
#[test]
|
||||
#[should_panic]
|
||||
pub fn ttd_override_hex() {
|
||||
CommandLineTest::new()
|
||||
.flag("terminal-total-difficulty-override", Some("0xabcd"))
|
||||
.run();
|
||||
}
|
||||
#[test]
|
||||
#[should_panic]
|
||||
pub fn ttd_override_none() {
|
||||
CommandLineTest::new()
|
||||
.flag("terminal-total-difficulty-override", None)
|
||||
.run();
|
||||
}
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn ensure_panic_on_failed_launch() {
|
||||
CommandLineTest::new()
|
||||
|
Loading…
Reference in New Issue
Block a user