@nori-zk/ethprocessor
Version:
zkApp for verifying SP1 Helios Nori proof and storing latest execution state root on Mina
33 lines • 1.28 kB
JavaScript
import { fetchTransactionStatus } from 'o1js';
export async function wait(txId, minaRPCNetworkUrl, maxAttempts = 50, intervalMs = 20000, maxUnknownCount = 5) {
let attempt = 0;
let unknownCount = 0;
return new Promise((resolve, reject) => {
(async () => {
attempt++;
do {
const status = await fetchTransactionStatus(txId, minaRPCNetworkUrl);
switch (status) {
case 'INCLUDED': {
resolve(true);
break;
}
case 'PENDING': {
break;
}
case 'UNKNOWN': {
if (unknownCount < maxUnknownCount) {
unknownCount++;
break;
}
reject(new Error(`Transaction UNKNOWN status.`));
break;
}
}
await new Promise((resolve) => setTimeout(resolve, intervalMs));
} while (attempt <= maxAttempts);
reject(new Error('Max attempts breached.'));
})().catch((error) => reject(error));
});
}
//# sourceMappingURL=txWait.js.map