diff --git a/src/genesis.rs b/src/genesis.rs index 5fe29e0..b91624b 100644 --- a/src/genesis.rs +++ b/src/genesis.rs @@ -62,8 +62,8 @@ pub struct GenesisFlags { pub enable_warmup_epochs: bool, pub max_genesis_archive_unpacked_size: Option, pub cluster_type: String, - pub bootstrap_validator_sol: Option, - pub bootstrap_validator_stake_sol: Option, + pub bootstrap_validator_sol: f64, + pub bootstrap_validator_stake_sol: f64, pub commission: u8, pub internal_node_sol: f64, pub internal_node_stake_sol: f64, @@ -180,6 +180,7 @@ impl Genesis { for (i, keypair) in keypairs.iter().enumerate() { let account_index = i / account_types.len(); let account = &account_types[i % account_types.len()]; + info!("Account: {account}, node_type: {node_type}"); let filename = match node_type { NodeType::Bootstrap => { format!("{node_type}/{account}.json") @@ -290,19 +291,9 @@ impl Genesis { ) -> Result, Box> { let mut args = vec![ "--bootstrap-validator-lamports".to_string(), - sol_to_lamports( - self.flags - .bootstrap_validator_sol - .unwrap_or(DEFAULT_BOOTSTRAP_NODE_SOL), - ) - .to_string(), + sol_to_lamports(self.flags.bootstrap_validator_sol).to_string(), "--bootstrap-validator-stake-lamports".to_string(), - sol_to_lamports( - self.flags - .bootstrap_validator_stake_sol - .unwrap_or(DEFAULT_BOOTSTRAP_NODE_STAKE_SOL), - ) - .to_string(), + sol_to_lamports(self.flags.bootstrap_validator_stake_sol).to_string(), "--hashes-per-tick".to_string(), self.flags.hashes_per_tick.clone(), "--max-genesis-archive-unpacked-size".to_string(), @@ -360,7 +351,7 @@ impl Genesis { if !self.flags.skip_primordial_stakes { for i in 0..num_validators { - args.push("--bootstrap-validator".to_string()); + args.push("--internal-validator".to_string()); for account_type in ["identity", "vote-account", "stake-account"].iter() { let path = self .config_dir @@ -371,6 +362,15 @@ impl Genesis { args.push(path); } } + + // stake delegated from internal_node_sol + let internal_node_lamports = + self.flags.internal_node_sol - self.flags.internal_node_stake_sol; + args.push("--internal-validator-lamports".to_string()); + args.push(sol_to_lamports(internal_node_lamports).to_string()); + + args.push("--internal-validator-stake-lamports".to_string()); + args.push(sol_to_lamports(self.flags.internal_node_stake_sol).to_string()); } if let Some(slots_per_epoch) = self.flags.slots_per_epoch { diff --git a/src/main.rs b/src/main.rs index 1af858b..2bdcd49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -238,14 +238,14 @@ fn parse_matches() -> clap::ArgMatches { .long("internal-node-sol") .takes_value(true) .default_value(&DEFAULT_INTERNAL_NODE_SOL.to_string()) - .help("Amount to fund internal nodes in genesis config."), + .help("Amount to fund internal nodes in genesis"), ) .arg( Arg::with_name("internal_node_stake_sol") .long("internal-node-stake-sol") .takes_value(true) .default_value(&DEFAULT_INTERNAL_NODE_STAKE_SOL.to_string()) - .help("Amount to stake internal nodes (Sol)."), + .help("Amount to stake internal nodes (Sol) in genesis"), ) .arg( Arg::with_name("skip_primordial_stakes") @@ -594,19 +594,11 @@ async fn main() -> Result<(), Box> { .value_of("cluster_type") .unwrap_or_default() .to_string(), - bootstrap_validator_sol: matches - .value_of("bootstrap_validator_sol") - .map(|value_str| { - value_str - .parse() - .expect("Invalid value for bootstrap_validator_sol") - }), - bootstrap_validator_stake_sol: matches.value_of("bootstrap_validator_stake_sol").map( - |value_str| { - value_str - .parse() - .expect("Invalid value for bootstrap_validator_stake_sol") - }, + bootstrap_validator_sol: value_t_or_exit!(matches, "bootstrap_validator_sol", f64), + bootstrap_validator_stake_sol: value_t_or_exit!( + matches, + "bootstrap_validator_stake_sol", + f64 ), commission, internal_node_sol, diff --git a/src/startup_scripts.rs b/src/startup_scripts.rs index 4e9f7ef..134dfb2 100644 --- a/src/startup_scripts.rs +++ b/src/startup_scripts.rs @@ -597,7 +597,7 @@ run_delegate_stake() { fi fi echo "created stake account" - + if [ "$stake_account_already_exists" != true ]; then echo "stake account does not exist. so lets deligate" if ! run_solana_command "solana delegate-stake validator-accounts/stake.json validator-accounts/vote.json --force -k $IDENTITY_FILE" "Delegate Stake"; then