confirm --verbose now displays failed transactions

This commit is contained in:
Michael Vines
2020-04-16 20:02:02 -07:00
parent 55ed52a71d
commit 7207a91aa5

View File

@ -1176,38 +1176,37 @@ fn process_confirm(
true, true,
) { ) {
Ok(status) => { Ok(status) => {
if let Some(result) = status { if let Some(transaction_status) = status {
match result { if config.verbose {
Ok(_) => { match rpc_client.get_confirmed_transaction(
if config.verbose { signature,
match rpc_client.get_confirmed_transaction( solana_transaction_status::TransactionEncoding::Binary,
signature, ) {
solana_transaction_status::TransactionEncoding::Binary, Ok(confirmed_transaction) => {
) { println!(
Ok(confirmed_transaction) => { "\nTransaction executed in slot {}:",
println!("\nTransaction:"); confirmed_transaction.slot
crate::display::println_transaction( );
&confirmed_transaction crate::display::println_transaction(
.transaction &confirmed_transaction
.transaction .transaction
.decode() .transaction
.expect("Successful decode"), .decode()
&confirmed_transaction.transaction.meta, .expect("Successful decode"),
" ", &confirmed_transaction.transaction.meta,
); " ",
println!(); );
Ok(format!("Confirmed in slot {}", confirmed_transaction.slot)) }
} Err(err) => {
Err(err) => Ok(format!( println!("Unable to get confirmed transaction details: {}", err)
"Confirmed. Unable to get confirmed transaction details: {}",
err
)),
}
} else {
Ok("Confirmed".to_string())
} }
} }
Err(err) => Ok(format!("Transaction failed with error: {}", err)), println!();
}
match transaction_status {
Ok(_) => Ok("Confirmed".to_string()),
Err(err) => Ok(format!("Transaction failed: {}", err)),
} }
} else { } else {
Ok("Not found".to_string()) Ok("Not found".to_string())
@ -3456,10 +3455,7 @@ mod tests {
config.command = CliCommand::Confirm(any_signature); config.command = CliCommand::Confirm(any_signature);
assert_eq!( assert_eq!(
process_command(&config).unwrap(), process_command(&config).unwrap(),
format!( format!("Transaction failed: {}", TransactionError::AccountInUse)
"Transaction failed with error: {}",
TransactionError::AccountInUse
)
); );
// Failure cases // Failure cases