diff --git a/cli-output/src/cli_output.rs b/cli-output/src/cli_output.rs index 17ea91deae..4f47cc5cfd 100644 --- a/cli-output/src/cli_output.rs +++ b/cli-output/src/cli_output.rs @@ -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(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 {} diff --git a/cli/src/wallet.rs b/cli/src/wallet.rs index 96a4fcf73b..2278c1bde0 100644 --- a/cli/src/wallet.rs +++ b/cli/src/wallet.rs @@ -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);