cli-ouput: add ctor for `CliAccount`

This commit is contained in:
Trent Nelson 2022-10-20 00:13:14 -06:00 committed by Trent Nelson
parent cb7fe87abb
commit a2857cd1e4
2 changed files with 16 additions and 16 deletions

View File

@ -15,13 +15,14 @@ use {
inflector::cases::titlecase::to_title_case,
serde::{Deserialize, Serialize},
serde_json::{Map, Value},
solana_account_decoder::parse_token::UiTokenAccount,
solana_account_decoder::{parse_token::UiTokenAccount, UiAccount, UiAccountEncoding},
solana_clap_utils::keypair::SignOnly,
solana_rpc_client_api::response::{
RpcAccountBalance, RpcContactInfo, RpcInflationGovernor, RpcInflationRate, RpcKeyedAccount,
RpcSupply, RpcVoteAccountInfo,
},
solana_sdk::{
account::ReadableAccount,
clock::{Epoch, Slot, UnixTimestamp},
epoch_info::EpochInfo,
hash::Hash,
@ -107,6 +108,18 @@ pub struct CliAccount {
pub use_lamports_unit: bool,
}
impl CliAccount {
pub fn new<T: ReadableAccount>(address: &Pubkey, account: &T, use_lamports_unit: bool) -> Self {
Self {
keyed_account: RpcKeyedAccount {
pubkey: address.to_string(),
account: UiAccount::encode(address, account, UiAccountEncoding::Base64, None, None),
},
use_lamports_unit,
}
}
}
impl QuietDisplay for CliAccount {}
impl VerboseDisplay for CliAccount {}

View File

@ -10,7 +10,6 @@ use {
spend_utils::{resolve_spend_tx_and_check_account_balances, SpendAmount},
},
clap::{value_t_or_exit, App, Arg, ArgMatches, SubCommand},
solana_account_decoder::{UiAccount, UiAccountEncoding},
solana_clap_utils::{
compute_unit_price::{compute_unit_price_arg, COMPUTE_UNIT_PRICE_ARG},
fee_payer::*,
@ -28,7 +27,7 @@ use {
},
solana_remote_wallet::remote_wallet::RemoteWalletManager,
solana_rpc_client::rpc_client::RpcClient,
solana_rpc_client_api::{config::RpcTransactionConfig, response::RpcKeyedAccount},
solana_rpc_client_api::config::RpcTransactionConfig,
solana_rpc_client_nonce_utils::blockhash_query::BlockhashQuery,
solana_sdk::{
commitment_config::CommitmentConfig,
@ -570,19 +569,7 @@ pub fn process_show_account(
) -> ProcessResult {
let account = rpc_client.get_account(account_pubkey)?;
let data = account.data.clone();
let cli_account = CliAccount {
keyed_account: RpcKeyedAccount {
pubkey: account_pubkey.to_string(),
account: UiAccount::encode(
account_pubkey,
&account,
UiAccountEncoding::Base64,
None,
None,
),
},
use_lamports_unit,
};
let cli_account = CliAccount::new(account_pubkey, &account, use_lamports_unit);
let mut account_string = config.output_format.formatted_string(&cli_account);