cli-ouput: add ctor for `CliAccount`
This commit is contained in:
parent
cb7fe87abb
commit
a2857cd1e4
|
@ -15,13 +15,14 @@ use {
|
||||||
inflector::cases::titlecase::to_title_case,
|
inflector::cases::titlecase::to_title_case,
|
||||||
serde::{Deserialize, Serialize},
|
serde::{Deserialize, Serialize},
|
||||||
serde_json::{Map, Value},
|
serde_json::{Map, Value},
|
||||||
solana_account_decoder::parse_token::UiTokenAccount,
|
solana_account_decoder::{parse_token::UiTokenAccount, UiAccount, UiAccountEncoding},
|
||||||
solana_clap_utils::keypair::SignOnly,
|
solana_clap_utils::keypair::SignOnly,
|
||||||
solana_rpc_client_api::response::{
|
solana_rpc_client_api::response::{
|
||||||
RpcAccountBalance, RpcContactInfo, RpcInflationGovernor, RpcInflationRate, RpcKeyedAccount,
|
RpcAccountBalance, RpcContactInfo, RpcInflationGovernor, RpcInflationRate, RpcKeyedAccount,
|
||||||
RpcSupply, RpcVoteAccountInfo,
|
RpcSupply, RpcVoteAccountInfo,
|
||||||
},
|
},
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
|
account::ReadableAccount,
|
||||||
clock::{Epoch, Slot, UnixTimestamp},
|
clock::{Epoch, Slot, UnixTimestamp},
|
||||||
epoch_info::EpochInfo,
|
epoch_info::EpochInfo,
|
||||||
hash::Hash,
|
hash::Hash,
|
||||||
|
@ -107,6 +108,18 @@ pub struct CliAccount {
|
||||||
pub use_lamports_unit: bool,
|
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 QuietDisplay for CliAccount {}
|
||||||
impl VerboseDisplay for CliAccount {}
|
impl VerboseDisplay for CliAccount {}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ use {
|
||||||
spend_utils::{resolve_spend_tx_and_check_account_balances, SpendAmount},
|
spend_utils::{resolve_spend_tx_and_check_account_balances, SpendAmount},
|
||||||
},
|
},
|
||||||
clap::{value_t_or_exit, App, Arg, ArgMatches, SubCommand},
|
clap::{value_t_or_exit, App, Arg, ArgMatches, SubCommand},
|
||||||
solana_account_decoder::{UiAccount, UiAccountEncoding},
|
|
||||||
solana_clap_utils::{
|
solana_clap_utils::{
|
||||||
compute_unit_price::{compute_unit_price_arg, COMPUTE_UNIT_PRICE_ARG},
|
compute_unit_price::{compute_unit_price_arg, COMPUTE_UNIT_PRICE_ARG},
|
||||||
fee_payer::*,
|
fee_payer::*,
|
||||||
|
@ -28,7 +27,7 @@ use {
|
||||||
},
|
},
|
||||||
solana_remote_wallet::remote_wallet::RemoteWalletManager,
|
solana_remote_wallet::remote_wallet::RemoteWalletManager,
|
||||||
solana_rpc_client::rpc_client::RpcClient,
|
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_rpc_client_nonce_utils::blockhash_query::BlockhashQuery,
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
commitment_config::CommitmentConfig,
|
commitment_config::CommitmentConfig,
|
||||||
|
@ -570,19 +569,7 @@ pub fn process_show_account(
|
||||||
) -> ProcessResult {
|
) -> ProcessResult {
|
||||||
let account = rpc_client.get_account(account_pubkey)?;
|
let account = rpc_client.get_account(account_pubkey)?;
|
||||||
let data = account.data.clone();
|
let data = account.data.clone();
|
||||||
let cli_account = CliAccount {
|
let cli_account = CliAccount::new(account_pubkey, &account, use_lamports_unit);
|
||||||
keyed_account: RpcKeyedAccount {
|
|
||||||
pubkey: account_pubkey.to_string(),
|
|
||||||
account: UiAccount::encode(
|
|
||||||
account_pubkey,
|
|
||||||
&account,
|
|
||||||
UiAccountEncoding::Base64,
|
|
||||||
None,
|
|
||||||
None,
|
|
||||||
),
|
|
||||||
},
|
|
||||||
use_lamports_unit,
|
|
||||||
};
|
|
||||||
|
|
||||||
let mut account_string = config.output_format.formatted_string(&cli_account);
|
let mut account_string = config.output_format.formatted_string(&cli_account);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue