Skip to content

Commit 1306a63

Browse files
authored
Merge pull request #104 from Layr-Labs/ethenotethan--chore-move-eigenda-message-byte-to-das-package
chore: Move EigenDA message logic to daprovider package
2 parents ee840c4 + b5eadf0 commit 1306a63

File tree

6 files changed

+41
-16
lines changed

6 files changed

+41
-16
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ COPY ./scripts/download-machine-eigenda.sh .
234234
RUN ./download-machine.sh consensus-v32 0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39
235235
RUN ./download-machine-eigenda.sh consensus-eigenda-v32 0x951009942c00b5bd0abec233174fe33fadf7cd5013d17b042f9b28b3b00b469c
236236
RUN ./download-machine-eigenda.sh consensus-eigenda-v32.1 0x04a297cdd13254c4c6c26388915d416286daf22f3a20e3ebee10400a3129dd17
237-
RUN ./download-machine-eigenda.sh consensus-eigenda-v32.2 0xd5c515b0f4a3450ffc8b4086c1de4c484c5efea878e5491e47bd20fb4649c52e
237+
RUN ./download-machine-eigenda.sh consensus-eigenda-v32.2 0x8da5648e4bcd42306affd60f5fe99c3837da38f11a849bc6bd40b7896974ed09
238238
FROM golang:1.23.1-bookworm AS node-builder
239239
WORKDIR /workspace
240240
ARG version=""

arbstate/daprovider/util.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ func hasBits(checking byte, bits byte) bool {
108108
return (checking & bits) == bits
109109
}
110110

111+
func IsEigenDAMessageHeaderByte(header byte) bool {
112+
return hasBits(header, EigenDAMessageHeaderFlag)
113+
}
114+
111115
func IsL1AuthenticatedMessageHeaderByte(header byte) bool {
112116
return hasBits(header, L1AuthenticatedMessageHeaderFlag)
113117
}

arbstate/daprovider/util_test.go

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package daprovider
22

3-
import "testing"
3+
import (
4+
"testing"
5+
)
46

57
func Test_EigenDAHeaderByte(t *testing.T) {
68
if IsL1AuthenticatedMessageHeaderByte(EigenDAMessageHeaderFlag) {
@@ -27,3 +29,33 @@ func Test_EigenDAHeaderByte(t *testing.T) {
2729
t.Error("Expected EigenDAMessageHeaderFlag to not be a valid Brotli message header byte")
2830
}
2931
}
32+
33+
func Test_HeaderByteCheck(t *testing.T) {
34+
if !IsL1AuthenticatedMessageHeaderByte(L1AuthenticatedMessageHeaderFlag) {
35+
t.Error("Expected L1AuthenticatedMessageHeaderFlag to be a valid L1 authenticated message header byte")
36+
}
37+
38+
if !IsDASMessageHeaderByte(DASMessageHeaderFlag) {
39+
t.Error("Expected DASMessageHeaderFlag to be a valid DAS message header byte")
40+
}
41+
42+
if !IsTreeDASMessageHeaderByte(TreeDASMessageHeaderFlag) {
43+
t.Error("Expected TreeDASMessageHeaderFlag to be a valid Tree DAS message header byte")
44+
}
45+
46+
if !IsZeroheavyEncodedHeaderByte(ZeroheavyMessageHeaderFlag) {
47+
t.Error("Expected ZeroheavyMessageHeaderFlag to be a valid Zeroheavy encoded header byte")
48+
}
49+
50+
if !IsBlobHashesHeaderByte(BlobHashesHeaderFlag) {
51+
t.Error("Expected BlobHashesHeaderFlag to be a valid Blob hashes header byte")
52+
}
53+
54+
if !IsBrotliMessageHeaderByte(BrotliMessageHeaderByte) {
55+
t.Error("Expected BrotliMessageHeaderByte to be a valid Brotli message header byte")
56+
}
57+
58+
if !IsEigenDAMessageHeaderByte(EigenDAMessageHeaderFlag) {
59+
t.Error("Expected EigenDAMessageHeaderFlag to be a valid EigenDA message header byte")
60+
}
61+
}

eigenda/eigenda.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,13 @@ import (
66

77
"github.com/ethereum/go-ethereum/log"
88
"github.com/ethereum/go-ethereum/rlp"
9-
"github.com/offchainlabs/nitro/arbstate/daprovider"
109
)
1110

1211
const (
1312
sequencerMsgOffset = 41
1413
MaxBatchSize = 16_252_897 // largest blob size allowed before payload -> blob padding to 16MiB
1514
)
1615

17-
func IsEigenDAMessageHeaderByte(header byte) bool {
18-
return hasBits(header, daprovider.EigenDAMessageHeaderFlag)
19-
}
20-
21-
// hasBits returns true if `checking` has all `bits`
22-
func hasBits(checking byte, bits byte) bool {
23-
return (checking & bits) == bits
24-
}
25-
2616
type EigenDAWriter interface {
2717
Store(context.Context, []byte) (*EigenDAV1Cert, error)
2818
Serialize(eigenDAV1Cert *EigenDAV1Cert) ([]byte, error)

eigenda/reader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type readerForEigenDA struct {
2020
}
2121

2222
func (d *readerForEigenDA) IsValidHeaderByte(headerByte byte) bool {
23-
return IsEigenDAMessageHeaderByte(headerByte)
23+
return daprovider.IsEigenDAMessageHeaderByte(headerByte)
2424
}
2525

2626
func (d *readerForEigenDA) RecoverPayloadFromBatch(

system_tests/eigenda_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"github.com/offchainlabs/nitro/cmd/chaininfo"
1919
"github.com/offchainlabs/nitro/cmd/genericconf"
2020
"github.com/offchainlabs/nitro/das"
21-
"github.com/offchainlabs/nitro/eigenda"
2221
"github.com/offchainlabs/nitro/solgen/go/precompilesgen"
2322
"github.com/offchainlabs/nitro/util/headerreader"
2423
)
@@ -159,7 +158,7 @@ func testFailOverFromEigenDAToCallData(t *testing.T) {
159158
continue
160159
}
161160

162-
if eigenda.IsEigenDAMessageHeaderByte(serializedBatch[40]) {
161+
if daprovider.IsEigenDAMessageHeaderByte(serializedBatch[40]) {
163162
eigenDASeen = true
164163
} else if daprovider.IsBrotliMessageHeaderByte(serializedBatch[40]) {
165164
callDataBatchSeen = true
@@ -336,7 +335,7 @@ func testFailOverFromEigenDAToAnyTrust(t *testing.T) {
336335
continue
337336
}
338337

339-
if eigenda.IsEigenDAMessageHeaderByte(serializedBatch[40]) {
338+
if daprovider.IsEigenDAMessageHeaderByte(serializedBatch[40]) {
340339
eigenDASeen = true
341340
} else if daprovider.IsDASMessageHeaderByte(serializedBatch[40]) {
342341
anyTrustSeen = true

0 commit comments

Comments
 (0)