diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 40a6c53eb2..8964c37980 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -1655,7 +1655,7 @@ pub fn process_command(config: &CliConfig) -> ProcessResult { seed, program_id, } => process_create_address_with_seed(config, from_pubkey.as_ref(), &seed, &program_id), - CliCommand::Fees => process_fees(&rpc_client), + CliCommand::Fees => process_fees(&rpc_client, config), CliCommand::GetBlockTime { slot } => process_get_block_time(&rpc_client, config, *slot), CliCommand::GetGenesisHash => process_get_genesis_hash(&rpc_client), CliCommand::GetEpochInfo { commitment_config } => { diff --git a/cli/src/cli_output.rs b/cli/src/cli_output.rs index 10653372b5..72e23b8af3 100644 --- a/cli/src/cli_output.rs +++ b/cli/src/cli_output.rs @@ -900,6 +900,7 @@ impl fmt::Display for CliSignOnlyData { } #[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct CliSignature { pub signature: String, } @@ -913,6 +914,7 @@ impl fmt::Display for CliSignature { } #[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct CliAccountBalances { pub accounts: Vec, } @@ -937,6 +939,7 @@ impl fmt::Display for CliAccountBalances { } #[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct CliSupply { pub total: u64, pub circulating: u64, @@ -981,3 +984,25 @@ impl fmt::Display for CliSupply { Ok(()) } } + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CliFees { + pub slot: Slot, + pub blockhash: String, + pub lamports_per_signature: u64, + pub last_valid_slot: Slot, +} + +impl fmt::Display for CliFees { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + writeln_name_value(f, "Blockhash:", &self.blockhash)?; + writeln_name_value( + f, + "Lamports per signature:", + &self.lamports_per_signature.to_string(), + )?; + writeln_name_value(f, "Last valid slot:", &self.last_valid_slot.to_string())?; + Ok(()) + } +} diff --git a/cli/src/cluster_query.rs b/cli/src/cluster_query.rs index f8ddeb19db..aa7d8d6e58 100644 --- a/cli/src/cluster_query.rs +++ b/cli/src/cluster_query.rs @@ -597,13 +597,16 @@ pub fn process_cluster_version(rpc_client: &RpcClient) -> ProcessResult { Ok(remote_version.solana_core) } -pub fn process_fees(rpc_client: &RpcClient) -> ProcessResult { - let (recent_blockhash, fee_calculator) = rpc_client.get_recent_blockhash()?; - - Ok(format!( - "blockhash: {}\nlamports per signature: {}", - recent_blockhash, fee_calculator.lamports_per_signature - )) +pub fn process_fees(rpc_client: &RpcClient, config: &CliConfig) -> ProcessResult { + let result = rpc_client.get_recent_blockhash_with_commitment(CommitmentConfig::default())?; + let (recent_blockhash, fee_calculator, last_valid_slot) = result.value; + let fees = CliFees { + slot: result.context.slot, + blockhash: recent_blockhash.to_string(), + lamports_per_signature: fee_calculator.lamports_per_signature, + last_valid_slot, + }; + Ok(config.output_format.formatted_string(&fees)) } pub fn process_leader_schedule(rpc_client: &RpcClient) -> ProcessResult {