diff --git a/.changeset/warm-news-punch.md b/.changeset/warm-news-punch.md new file mode 100644 index 0000000000000..67a1dfcd1f136 --- /dev/null +++ b/.changeset/warm-news-punch.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/data-transport-layer': patch +--- + +Handle case where the remote block isn't found for `GET /eth/context/latest` and `GET /eth/context/blocknumber/:number` diff --git a/packages/data-transport-layer/src/services/server/service.ts b/packages/data-transport-layer/src/services/server/service.ts index c5647cdc8cfd6..19b05cfbf9c93 100644 --- a/packages/data-transport-layer/src/services/server/service.ts +++ b/packages/data-transport-layer/src/services/server/service.ts @@ -340,6 +340,9 @@ export class L1TransportServer extends BaseService { const blockNumber = Math.max(0, tip - this.options.confirmations) const block = await this.state.l1RpcProvider.getBlock(blockNumber) + if (block === null) { + throw new Error(`Cannot GET /eth/context/latest at ${blockNumber}`) + } return { blockNumber: block.number, @@ -366,6 +369,10 @@ export class L1TransportServer extends BaseService { } const block = await this.state.l1RpcProvider.getBlock(number) + if (block === null) { + throw new Error(`Cannot GET /eth/context/blocknumber/${number}`) + } + return { blockNumber: block.number, timestamp: block.timestamp,