From 668477872e5142d98a45b3a41d854e55ce799d06 Mon Sep 17 00:00:00 2001 From: Philipp K Date: Fri, 7 Jan 2022 01:21:42 +0000 Subject: [PATCH] Allow value for beacon_node fee-recipient argument (#2884) ## Issue Addressed The fee-recipient argument of the beacon node does not allow a value to be specified: > $ lighthouse beacon_node --merge --fee-recipient "0x332E43696A505EF45b9319973785F837ce5267b9" > error: Found argument '0x332E43696A505EF45b9319973785F837ce5267b9' which wasn't expected, or isn't valid in this context > > USAGE: > lighthouse beacon_node --fee-recipient --merge > > For more information try --help ## Proposed Changes Allow specifying a value for the fee-recipient argument in beacon_node/src/cli.rs ## Additional Info I've added .takes_value(true) and successfully proposed a block in the kintsugi testnet with my own fee-recipient address instead of the hardcoded default. I think that was just missed as the argument does not make sense without a value :) Co-authored-by: pk910 Co-authored-by: Michael Sproul Co-authored-by: Michael Sproul --- beacon_node/src/cli.rs | 2 ++ lighthouse/tests/beacon_node.rs | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/beacon_node/src/cli.rs b/beacon_node/src/cli.rs index 0b2cda91ef..57de6c1b91 100644 --- a/beacon_node/src/cli.rs +++ b/beacon_node/src/cli.rs @@ -402,11 +402,13 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> { .arg( Arg::with_name("fee-recipient") .long("fee-recipient") + .value_name("FEE-RECIPIENT") .help("Once the merge has happened, this address will receive transaction fees \ collected from any blocks produced by this node. Defaults to a junk \ address whilst the merge is in development stages. THE DEFAULT VALUE \ WILL BE REMOVED BEFORE THE MERGE ENTERS PRODUCTION") .requires("merge") + .takes_value(true) ) /* diff --git a/lighthouse/tests/beacon_node.rs b/lighthouse/tests/beacon_node.rs index 73d5a20657..6d03cafe10 100644 --- a/lighthouse/tests/beacon_node.rs +++ b/lighthouse/tests/beacon_node.rs @@ -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::{Address, Checkpoint, Epoch, Hash256}; const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/"; @@ -206,6 +206,24 @@ fn eth1_purge_cache_flag() { .with_config(|config| assert!(config.eth1.purge_cache)); } +// Tests for Merge flags. +#[test] +fn merge_fee_recipient_flag() { + CommandLineTest::new() + .flag("merge", None) + .flag( + "fee-recipient", + Some("0x00000000219ab540356cbb839cbe05303d7705fa"), + ) + .run_with_zero_port() + .with_config(|config| { + assert_eq!( + config.suggested_fee_recipient, + Some(Address::from_str("0x00000000219ab540356cbb839cbe05303d7705fa").unwrap()) + ) + }); +} + // Tests for Network flags. #[test] fn network_dir_flag() {