From 86e9a0b5307bdc952f5be0957581c263913e2868 Mon Sep 17 00:00:00 2001 From: Goran Vladika Date: Fri, 26 Jul 2024 16:37:26 +0200 Subject: [PATCH] Workaround for first 404 blocks of Nova --- packages/arbitrum-retryables/src/mapping.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/arbitrum-retryables/src/mapping.ts b/packages/arbitrum-retryables/src/mapping.ts index 993fbec..b265d72 100644 --- a/packages/arbitrum-retryables/src/mapping.ts +++ b/packages/arbitrum-retryables/src/mapping.ts @@ -81,7 +81,17 @@ export function handleRedeemScheduled(event: RedeemScheduled): void { const stats = getOrCreateTotalRetryableStats(); const prevStatus = entity.status; - const redeemSuccessful = isRedeemSuccessful(ArbRetryableTxContract.bind(event.address), ticketId); + + // querying the retryables precompile in nova, in first 403 blocks, doesn't revert in expected way + // thus we just assume that redeem was successful + let redeemSuccessful: boolean; + if (event.block.number.lt(BigInt.fromI32(404))) { + redeemSuccessful = true; + } else { + // check if redeem was successful by doing eth_call - if redeem was successful call will revert (ticket is missing) + redeemSuccessful = isRedeemSuccessful(ArbRetryableTxContract.bind(event.address), ticketId); + } + if (redeemSuccessful) { if (prevStatus == "Created") { entity.isAutoRedeemed = true;