Skip to content

Commit 1551457

Browse files
Handle missing GetSupportedHeaderBytes RPC method gracefully for simple DA proxies
1 parent a37f34d commit 1551457

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

arbnode/node.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -676,10 +676,17 @@ func getDAS(
676676
if daClient != nil {
677677
promise := daClient.GetSupportedHeaderBytes()
678678
result, err := promise.Await(ctx)
679+
var headerBytes []byte
679680
if err != nil {
680-
return nil, nil, nil, nil, fmt.Errorf("failed to get supported header bytes from DA client: %w", err)
681+
// If getSupportedHeaderBytes is not supported (e.g., simple storage proxies),
682+
// assume DACertificate header byte (0x01) for ALT-DA/CustomDA compatibility.
683+
// This matches how EigenDA V1 and AnyTrust manually specify their header bytes.
684+
log.Warn("DA client does not support getSupportedHeaderBytes, defaulting to DACertificate (0x01)", "err", err)
685+
headerBytes = []byte{daprovider.DACertificateMessageHeaderFlag}
686+
} else {
687+
headerBytes = result.HeaderBytes
681688
}
682-
if err := dapReaders.RegisterAll(result.HeaderBytes, daClient); err != nil {
689+
if err := dapReaders.RegisterAll(headerBytes, daClient); err != nil {
683690
return nil, nil, nil, nil, fmt.Errorf("failed to register DA client: %w", err)
684691
}
685692
}

0 commit comments

Comments
 (0)