Skip to content

Commit f95992a

Browse files
committed
fix reject
1 parent 958e31b commit f95992a

2 files changed

Lines changed: 26 additions & 4 deletions

File tree

src/app/page.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
import Link from "next/link";
44
import { useRouter } from "next/navigation";
55
import { useCallback, useEffect, useState } from "react";
6-
import type { MeterBundleResponse, RejectedTransaction } from "@/lib/s3";
6+
import {
7+
formatRejectionReason,
8+
type MeterBundleResponse,
9+
type RejectedTransaction,
10+
} from "@/lib/s3";
711
import type { BlockSummary, BlocksResponse } from "./api/blocks/route";
812
import type { RejectedTransactionsResponse } from "./api/rejected/route";
913

@@ -319,7 +323,8 @@ function RejectedTxRow({
319323
<span className="text-xs text-gray-400">{timeAgo}</span>
320324
</div>
321325
<div className="text-xs text-gray-500 mt-0.5 truncate">
322-
Block #{tx.blockNumber.toLocaleString()}{tx.reason}
326+
Block #{tx.blockNumber.toLocaleString()}{" "}
327+
{formatRejectionReason(tx.reason)}
323328
</div>
324329
</div>
325330
<svg
@@ -357,7 +362,9 @@ function RejectedTxRow({
357362
</tr>
358363
<tr className="border-b border-gray-200/60">
359364
<td className="text-gray-500 py-2">Reason</td>
360-
<td className="py-2 text-red-700 font-medium">{tx.reason}</td>
365+
<td className="py-2 text-red-700 font-medium">
366+
{formatRejectionReason(tx.reason)}
367+
</td>
361368
</tr>
362369
<tr>
363370
<td className="text-gray-500 py-2">Rejected At</td>

src/lib/s3.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,14 +247,29 @@ export async function getBlockFromCache(
247247
}
248248
}
249249

250+
export interface RejectionReason {
251+
executionTimeExceeded?: {
252+
txTimeUs: number;
253+
limitUs: number;
254+
};
255+
}
256+
250257
export interface RejectedTransaction {
251258
blockNumber: number;
252259
txHash: string;
253-
reason: string;
260+
reason: RejectionReason;
254261
timestamp: number;
255262
metering: MeterBundleResponse;
256263
}
257264

265+
export function formatRejectionReason(reason: RejectionReason): string {
266+
if (reason.executionTimeExceeded) {
267+
const { txTimeUs, limitUs } = reason.executionTimeExceeded;
268+
return `Execution time exceeded: ${txTimeUs.toLocaleString()}μs > ${limitUs.toLocaleString()}μs limit`;
269+
}
270+
return "Unknown reason";
271+
}
272+
258273
export interface RejectedTransactionSummary {
259274
blockNumber: number;
260275
txHash: string;

0 commit comments

Comments
 (0)