diff --git a/op-node/sources/l1_client.go b/op-node/sources/l1_client.go index fc344eb255..f2859a69e0 100644 --- a/op-node/sources/l1_client.go +++ b/op-node/sources/l1_client.go @@ -76,6 +76,10 @@ func NewL1Client(client client.RPC, log log.Logger, metrics caching.Metrics, con // Notice, we cannot cache a block reference by label because labels are not guaranteed to be unique. func (s *L1Client) L1BlockRefByLabel(ctx context.Context, label eth.BlockLabel) (eth.L1BlockRef, error) { info, err := s.BSCInfoByLabel(ctx, label) + if label == eth.Finalized && err != nil && strings.Contains(err.Error(), "eth_getFinalizedBlock does not exist") { + // op-e2e not support bsc as L1 currently, so fallback to not use bsc specific method eth_getFinalizedBlock + info, err = s.InfoByLabel(ctx, label) + } if err != nil { // Both geth and erigon like to serve non-standard errors for the safe and finalized heads, correct that. // This happens when the chain just started and nothing is marked as safe/finalized yet.