From f37c283ce87f6b083eee0a57a82379eca1e9998f Mon Sep 17 00:00:00 2001 From: kf Date: Tue, 15 Feb 2022 06:50:16 +0000 Subject: [PATCH] fix(sdk): correctly handle no batch case Fixes the SDK so that it correctly handles the case where no batches have been submitted to the StateCommitmentChain yet. Only happens in development or immediately after a new chain is started. --- .changeset/grumpy-ads-smile.md | 5 +++++ packages/sdk/src/cross-chain-messenger.ts | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/grumpy-ads-smile.md diff --git a/.changeset/grumpy-ads-smile.md b/.changeset/grumpy-ads-smile.md new file mode 100644 index 0000000000000..22763555148de --- /dev/null +++ b/.changeset/grumpy-ads-smile.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/sdk': patch +--- + +Have SDK properly handle case when no batches are submitted yet diff --git a/packages/sdk/src/cross-chain-messenger.ts b/packages/sdk/src/cross-chain-messenger.ts index 40212bd14d23f..1047fe5526c6d 100644 --- a/packages/sdk/src/cross-chain-messenger.ts +++ b/packages/sdk/src/cross-chain-messenger.ts @@ -654,6 +654,11 @@ export class CrossChainMessenger implements ICrossChainMessenger { let batchEvent: ethers.Event | null = await this.getStateBatchAppendedEventByBatchIndex(upperBound) + // Only happens when no batches have been submitted yet. + if (batchEvent === null) { + return null + } + if (isEventLo(batchEvent, transactionIndex)) { // Upper bound is too low, means this transaction doesn't have a corresponding state batch yet. return null