This package contains helpers for identifying custom program errors. It can be used standalone, but it is also exported as part of the Solana JavaScript SDK @solana/web3.js@next.
isProgramError()This function takes any error — typically caused by a transaction failure — and identifies whether it is a custom program error from the provided program address. It takes the following parameters:
error to identify.transactionMessage object that failed to execute. Since the RPC response only provide the index of the failed instruction, we need the transaction message to access its program address.programAddress of the program from which the error is expected.code of the custom program error. When provided, the function will also check that the custom program error code matches the given value.try {
// Send and confirm your transaction.
} catch (error) {
if (isProgramError(error, transactionMessage, myProgramAddress, 42)) {
// Handle custom program error 42 from this program.
} else if (isProgramError(error, transactionMessage, myProgramAddress)) {
// Handle all other custom program errors from this program.
} else {
throw error;
}
}