feat: add err field to status results

This commit is contained in:
Justin Starry
2020-04-04 21:35:08 +08:00
committed by Michael Vines
parent 3120e681d6
commit b0316f82b5
9 changed files with 63 additions and 59 deletions

View File

@@ -39,7 +39,7 @@ export async function sendAndConfirmRawTransaction(
}
}
if (status && status.status && 'Ok' in status.status) {
if (status && !status.err) {
return signature;
}

View File

@@ -66,9 +66,16 @@ async function _sendAndConfirmTransaction(
await sleep((500 * DEFAULT_TICKS_PER_SLOT) / NUM_TICKS_PER_SECOND);
}
if (status && 'Ok' in status.status) {
break;
if (status) {
if (!status.err) {
break;
} else if (!('AccountInUse' in status.err)) {
throw new Error(
`Transaction ${signature} failed (${JSON.stringify(status)})`,
);
}
}
if (--sendRetries <= 0) {
const duration = (Date.now() - start) / 1000;
throw new Error(
@@ -78,12 +85,6 @@ async function _sendAndConfirmTransaction(
);
}
if (status && status.status.Err && !('AccountInUse' in status.status.Err)) {
throw new Error(
`Transaction ${signature} failed (${JSON.stringify(status)})`,
);
}
// Retry in 0..100ms to try to avoid another AccountInUse collision
await sleep(Math.random() * 100);
}