fix: fail faster on transaction errors
This commit is contained in:
@ -22,8 +22,19 @@ export async function sendAndConfirmTransaction(
|
|||||||
let i = 4;
|
let i = 4;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
const status = await connection.getSignatureStatus(signature);
|
const status = await connection.getSignatureStatus(signature);
|
||||||
if (status == 'Confirmed') return;
|
switch (status) {
|
||||||
if (runtimeErrorOk && status == 'ProgramRuntimeError') return;
|
case 'Confirmed':
|
||||||
|
return;
|
||||||
|
case 'ProgramRuntimeError':
|
||||||
|
if (runtimeErrorOk) return;
|
||||||
|
//fall through
|
||||||
|
case 'GenericError':
|
||||||
|
default:
|
||||||
|
throw new Error(`Transaction ${signature} failed (${status})`);
|
||||||
|
case 'SignatureNotFound':
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
await sleep(500);
|
await sleep(500);
|
||||||
if (--i < 0) {
|
if (--i < 0) {
|
||||||
const duration = (Date.now() - start) / 1000;
|
const duration = (Date.now() - start) / 1000;
|
||||||
|
Reference in New Issue
Block a user