Cli: expose last-valid-slot in solana fees (#10254)

automerge
This commit is contained in:
Tyera Eulberg 2020-05-26 15:08:07 -06:00 committed by GitHub
parent 1cd1988207
commit b6083ca107
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 8 deletions

View File

@ -1655,7 +1655,7 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
seed, seed,
program_id, program_id,
} => process_create_address_with_seed(config, from_pubkey.as_ref(), &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::GetBlockTime { slot } => process_get_block_time(&rpc_client, config, *slot),
CliCommand::GetGenesisHash => process_get_genesis_hash(&rpc_client), CliCommand::GetGenesisHash => process_get_genesis_hash(&rpc_client),
CliCommand::GetEpochInfo { commitment_config } => { CliCommand::GetEpochInfo { commitment_config } => {

View File

@ -900,6 +900,7 @@ impl fmt::Display for CliSignOnlyData {
} }
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CliSignature { pub struct CliSignature {
pub signature: String, pub signature: String,
} }
@ -913,6 +914,7 @@ impl fmt::Display for CliSignature {
} }
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CliAccountBalances { pub struct CliAccountBalances {
pub accounts: Vec<RpcAccountBalance>, pub accounts: Vec<RpcAccountBalance>,
} }
@ -937,6 +939,7 @@ impl fmt::Display for CliAccountBalances {
} }
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CliSupply { pub struct CliSupply {
pub total: u64, pub total: u64,
pub circulating: u64, pub circulating: u64,
@ -981,3 +984,25 @@ impl fmt::Display for CliSupply {
Ok(()) 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(())
}
}

View File

@ -597,13 +597,16 @@ pub fn process_cluster_version(rpc_client: &RpcClient) -> ProcessResult {
Ok(remote_version.solana_core) Ok(remote_version.solana_core)
} }
pub fn process_fees(rpc_client: &RpcClient) -> ProcessResult { pub fn process_fees(rpc_client: &RpcClient, config: &CliConfig) -> ProcessResult {
let (recent_blockhash, fee_calculator) = rpc_client.get_recent_blockhash()?; let result = rpc_client.get_recent_blockhash_with_commitment(CommitmentConfig::default())?;
let (recent_blockhash, fee_calculator, last_valid_slot) = result.value;
Ok(format!( let fees = CliFees {
"blockhash: {}\nlamports per signature: {}", slot: result.context.slot,
recent_blockhash, fee_calculator.lamports_per_signature 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 { pub fn process_leader_schedule(rpc_client: &RpcClient) -> ProcessResult {