Improve ledger-tool/accounts for easier debuging (#9370) (#9372)

automerge
This commit is contained in:
mergify[bot]
2020-04-08 11:43:00 -07:00
committed by GitHub
parent e1dbed25b6
commit ec8d1c5e2b

View File

@ -799,6 +799,12 @@ fn main() {
.arg(&account_paths_arg) .arg(&account_paths_arg)
.arg(&halt_at_slot_arg) .arg(&halt_at_slot_arg)
.arg(&hard_forks_arg) .arg(&hard_forks_arg)
.arg(
Arg::with_name("include_sysvars")
.long("include-sysvars")
.takes_value(false)
.help("Include sysvars too"),
)
).subcommand( ).subcommand(
SubCommand::with_name("prune") SubCommand::with_name("prune")
.about("Prune the ledger at the block height") .about("Prune the ledger at the block height")
@ -1081,6 +1087,7 @@ fn main() {
..ProcessOptions::default() ..ProcessOptions::default()
}; };
let genesis_config = open_genesis_config(&ledger_path); let genesis_config = open_genesis_config(&ledger_path);
let include_sysvars = arg_matches.is_present("include_sysvars");
match load_bank_forks(arg_matches, &ledger_path, &genesis_config, process_options) { match load_bank_forks(arg_matches, &ledger_path, &genesis_config, process_options) {
Ok((bank_forks, bank_forks_info, _leader_schedule_cache, _snapshot_hash)) => { Ok((bank_forks, bank_forks_info, _leader_schedule_cache, _snapshot_hash)) => {
let slot = dev_halt_at_slot.unwrap_or_else(|| { let slot = dev_halt_at_slot.unwrap_or_else(|| {
@ -1096,19 +1103,23 @@ fn main() {
exit(1); exit(1);
}); });
let accounts: Vec<_> = bank let accounts: BTreeMap<_, _> = bank
.get_program_accounts(None) .get_program_accounts(None)
.into_iter() .into_iter()
.filter(|(pubkey, _account)| !solana_sdk::sysvar::is_sysvar_id(pubkey)) .filter(|(pubkey, _account)| {
include_sysvars || !solana_sdk::sysvar::is_sysvar_id(pubkey)
})
.collect(); .collect();
println!("---"); println!("---");
for (pubkey, account) in accounts.into_iter() { for (pubkey, account) in accounts.into_iter() {
let data_len = account.data.len();
println!("{}:", pubkey); println!("{}:", pubkey);
println!(" - lamports: {}", account.lamports); println!(" - lamports: {}", account.lamports);
println!(" - owner: '{}'", account.owner); println!(" - owner: '{}'", account.owner);
println!(" - executable: {}", account.executable); println!(" - executable: {}", account.executable);
println!(" - data: '{}'", bs58::encode(account.data).into_string()); println!(" - data: '{}'", bs58::encode(account.data).into_string());
println!(" - data_len: {}", data_len);
} }
} }
Err(err) => { Err(err) => {