Cli: output stake account credits-observed for verbose/json (#13923)

* Add credits_observed to verbose and json CliStakeStake prints

* Review comments
This commit is contained in:
Tyera Eulberg 2020-12-02 15:02:52 -07:00 committed by GitHub
parent 5bfe93e74c
commit a877f347f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 5 deletions

View File

@ -541,7 +541,15 @@ impl CliStakeVec {
} }
impl QuietDisplay for CliStakeVec {} impl QuietDisplay for CliStakeVec {}
impl VerboseDisplay for CliStakeVec {} impl VerboseDisplay for CliStakeVec {
fn write_str(&self, w: &mut dyn std::fmt::Write) -> std::fmt::Result {
for state in &self.0 {
writeln!(w)?;
VerboseDisplay::write_str(state, w)?;
}
Ok(())
}
}
impl fmt::Display for CliStakeVec { impl fmt::Display for CliStakeVec {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
@ -562,7 +570,12 @@ pub struct CliKeyedStakeState {
} }
impl QuietDisplay for CliKeyedStakeState {} impl QuietDisplay for CliKeyedStakeState {}
impl VerboseDisplay for CliKeyedStakeState {} impl VerboseDisplay for CliKeyedStakeState {
fn write_str(&self, w: &mut dyn std::fmt::Write) -> std::fmt::Result {
writeln!(w, "Stake Pubkey: {}", self.stake_pubkey)?;
VerboseDisplay::write_str(&self.stake_state, w)
}
}
impl fmt::Display for CliKeyedStakeState { impl fmt::Display for CliKeyedStakeState {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
@ -658,6 +671,8 @@ pub struct CliStakeState {
pub stake_type: CliStakeType, pub stake_type: CliStakeType,
pub account_balance: u64, pub account_balance: u64,
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
pub credits_observed: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub delegated_stake: Option<u64>, pub delegated_stake: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
pub delegated_vote_account_address: Option<String>, pub delegated_vote_account_address: Option<String>,
@ -686,7 +701,15 @@ pub struct CliStakeState {
} }
impl QuietDisplay for CliStakeState {} impl QuietDisplay for CliStakeState {}
impl VerboseDisplay for CliStakeState {} impl VerboseDisplay for CliStakeState {
fn write_str(&self, w: &mut dyn std::fmt::Write) -> std::fmt::Result {
write!(w, "{}", self)?;
if let Some(credits) = self.credits_observed {
writeln!(w, "Credits Observed: {}", credits)?;
}
Ok(())
}
}
impl fmt::Display for CliStakeState { impl fmt::Display for CliStakeState {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {

View File

@ -168,6 +168,7 @@ pub fn parse_args<'a>(
let CliCommandInfo { command, signers } = let CliCommandInfo { command, signers } =
parse_command(&matches, &default_signer, &mut wallet_manager)?; parse_command(&matches, &default_signer, &mut wallet_manager)?;
let verbose = matches.is_present("verbose");
let output_format = matches let output_format = matches
.value_of("output_format") .value_of("output_format")
.map(|value| match value { .map(|value| match value {
@ -175,7 +176,11 @@ pub fn parse_args<'a>(
"json-compact" => OutputFormat::JsonCompact, "json-compact" => OutputFormat::JsonCompact,
_ => unreachable!(), _ => unreachable!(),
}) })
.unwrap_or(OutputFormat::Display); .unwrap_or(if verbose {
OutputFormat::DisplayVerbose
} else {
OutputFormat::Display
});
let commitment = matches let commitment = matches
.subcommand_name() .subcommand_name()
@ -198,7 +203,7 @@ pub fn parse_args<'a>(
keypair_path: default_signer_path, keypair_path: default_signer_path,
rpc_client: None, rpc_client: None,
rpc_timeout, rpc_timeout,
verbose: matches.is_present("verbose"), verbose,
output_format, output_format,
commitment, commitment,
send_transaction_config: RpcSendTransactionConfig::default(), send_transaction_config: RpcSendTransactionConfig::default(),

View File

@ -1528,6 +1528,7 @@ pub fn build_stake_state(
CliStakeState { CliStakeState {
stake_type: CliStakeType::Stake, stake_type: CliStakeType::Stake,
account_balance, account_balance,
credits_observed: Some(stake.credits_observed),
delegated_stake: Some(stake.delegation.stake), delegated_stake: Some(stake.delegation.stake),
delegated_vote_account_address: if stake.delegation.voter_pubkey delegated_vote_account_address: if stake.delegation.voter_pubkey
!= Pubkey::default() != Pubkey::default()
@ -1579,6 +1580,7 @@ pub fn build_stake_state(
CliStakeState { CliStakeState {
stake_type: CliStakeType::Initialized, stake_type: CliStakeType::Initialized,
account_balance, account_balance,
credits_observed: Some(0),
authorized: Some(authorized.into()), authorized: Some(authorized.into()),
lockup, lockup,
use_lamports_unit, use_lamports_unit,