Return a better error when a program account isn't found (#4310)

This commit is contained in:
Greg Fitzgerald
2019-05-16 11:32:27 -06:00
committed by GitHub
parent 7d42ae30d9
commit fff1631a8b
2 changed files with 5 additions and 2 deletions

View File

@ -227,7 +227,7 @@ impl Accounts {
Some(program) => program,
None => {
error_counters.account_not_found += 1;
return Err(TransactionError::AccountNotFound);
return Err(TransactionError::ProgramAccountNotFound);
}
};
if !program.executable || program.owner == Pubkey::default() {
@ -1019,7 +1019,7 @@ mod tests {
&Pubkey::new_rand(),
&mut error_counters
),
Err(TransactionError::AccountNotFound)
Err(TransactionError::ProgramAccountNotFound)
);
assert_eq!(error_counters.account_not_found, 1);
}

View File

@ -22,6 +22,9 @@ pub enum TransactionError {
/// Attempt to debit from `Pubkey`, but no found no record of a prior credit.
AccountNotFound,
/// Attempt to load program from `Pubkey`, but it doesn't exist.
ProgramAccountNotFound,
/// The from `Pubkey` does not have sufficient balance to pay the fee to schedule the transaction
InsufficientFundsForFee,