diff --git a/crates/optimism/tests/proofs/reorg/reorg_test.go b/crates/optimism/tests/proofs/reorg/reorg_test.go index 9aee9a8f095..fd8cd3174a8 100644 --- a/crates/optimism/tests/proofs/reorg/reorg_test.go +++ b/crates/optimism/tests/proofs/reorg/reorg_test.go @@ -6,6 +6,7 @@ import ( "time" "github.com/ethereum-optimism/optimism/op-devstack/devtest" + "github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait" "github.com/ethereum-optimism/optimism/op-service/eth" "github.com/ethereum-optimism/optimism/op-service/txplan" "github.com/ethereum-optimism/optimism/op-test-sequencer/sequencer/seqtypes" @@ -167,6 +168,18 @@ func TestReorgUsingAccountProof(gt *testing.T) { latestBlock := sys.L2Chain.WaitForBlock() sys.L2ELValidatorNode().WaitForBlockNumber(latestBlock.Number) + // verify that the L2A validator has reorged and reached the latest block + err := wait.For(t.Ctx(), 2*time.Second, func() (bool, error) { + blockRef, err := sys.L2ELValidatorNode().Escape().EthClient().BlockRefByNumber(ctx, latestBlock.Number) + if err != nil { + // this could happen if the validator is still syncing after reorg + l.Warn("Error fetching block reference from validator", "error", err) + return false, nil + } + return blockRef.Hash == latestBlock.Hash, nil + }) + require.NoError(t, err, "Expected block hash to match latest block hash on validator") + reorgedRef_A, err := sys.L2ELSequencerNode().Escape().EthClient().BlockRefByNumber(ctx, divergenceBlockNumber) require.NoError(t, err, "Expected to be able to call BlockRefByNumber API, but got error")