cli: add query command to solana program (#15017)

This commit is contained in:
Jack May
2021-02-02 15:36:02 -08:00
committed by GitHub
parent 903a08c4b3
commit 6cf6ef3a32
2 changed files with 204 additions and 1 deletions

View File

@ -1528,6 +1528,100 @@ impl fmt::Display for CliProgramAuthority {
}
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CliUpgradeableProgram {
pub program_id: String,
pub program_executable: bool,
pub program_lamports: u64,
pub programdata_address: String,
pub programdata_lamports: u64,
pub programdata_authority: String,
pub programdata_slot: u64,
pub programdata_data_len: usize,
pub programdata_program_len: usize,
pub use_lamports_unit: bool,
}
impl QuietDisplay for CliUpgradeableProgram {}
impl VerboseDisplay for CliUpgradeableProgram {}
impl fmt::Display for CliUpgradeableProgram {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
writeln!(f)?;
writeln_name_value(f, "Program Address:", &self.program_id)?;
writeln_name_value(f, " Executable:", &self.program_executable.to_string())?;
writeln_name_value(
f,
" Balance:",
&build_balance_message(self.program_lamports, self.use_lamports_unit, true),
)?;
writeln_name_value(f, " ProgramData Address:", &self.programdata_address)?;
writeln_name_value(f, " Authority:", &self.programdata_authority)?;
writeln_name_value(
f,
" Balance:",
&build_balance_message(self.programdata_lamports, self.use_lamports_unit, true),
)?;
writeln_name_value(
f,
" Total Length:",
&format!(
"{:?} ({:#x?}) bytes",
self.programdata_data_len, self.programdata_data_len
),
)?;
writeln_name_value(
f,
" Program Length:",
&format!(
"{:?} ({:#x?}) bytes",
self.programdata_program_len, self.programdata_program_len
),
)?;
writeln_name_value(
f,
" Last Upgraded In Slot:",
&self.programdata_slot.to_string(),
)?;
Ok(())
}
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CliUpgradeableBuffer {
pub address: String,
pub lamports: u64,
pub authority: String,
pub data_len: usize,
pub program_len: usize,
pub use_lamports_unit: bool,
}
impl QuietDisplay for CliUpgradeableBuffer {}
impl VerboseDisplay for CliUpgradeableBuffer {}
impl fmt::Display for CliUpgradeableBuffer {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
writeln!(f)?;
writeln_name_value(f, "Buffer Address:", &self.address)?;
writeln_name_value(f, " Authority:", &self.authority)?;
writeln_name_value(
f,
" Balance:",
&build_balance_message(self.lamports, self.use_lamports_unit, true),
)?;
writeln_name_value(
f,
" Total Length:",
&format!("{:?} ({:#x?}) bytes", self.data_len, self.data_len),
)?;
writeln_name_value(
f,
" Program Length:",
&format!("{:?} ({:#x?}) bytes", self.program_len, self.program_len),
)?;
Ok(())
}
}
pub fn return_signers(
tx: &Transaction,
output_format: &OutputFormat,