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:
parent
5bfe93e74c
commit
a877f347f4
|
@ -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 {
|
||||||
|
|
|
@ -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(),
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue