Skip to content
Open
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
1815cc7
Pass the new limit to the batch poster and use it in the batchSegment…
pmikolajczyk41 Nov 3, 2025
a4fc03f
Set the field for tests
pmikolajczyk41 Nov 3, 2025
6d128d9
Get rid of unnecessary usage of the limit
pmikolajczyk41 Nov 3, 2025
82172d7
Cover inbox usages and tests
pmikolajczyk41 Nov 3, 2025
b7aa16a
Cover MEL
pmikolajczyk41 Nov 3, 2025
94f18b1
Add accessor for the limit in the config
pmikolajczyk41 Nov 10, 2025
4730759
Pass chain config instead of arbitrum
pmikolajczyk41 Nov 10, 2025
75d679f
Avoid nil pointer dereference
pmikolajczyk41 Nov 10, 2025
5238ed6
Add rationale for nil
pmikolajczyk41 Nov 10, 2025
ab40ca2
update pin
pmikolajczyk41 Nov 10, 2025
75057a7
Merge remote-tracking branch 'origin/master' into pmikolajczyk/nit-31…
pmikolajczyk41 Nov 10, 2025
69cab03
fix forkid
pmikolajczyk41 Nov 10, 2025
9a11649
Merge remote-tracking branch 'origin/master' into pmikolajczyk/nit-31…
pmikolajczyk41 Nov 10, 2025
0a0d6af
Merge remote-tracking branch 'refs/remotes/origin/master' into pmikol…
pmikolajczyk41 Dec 5, 2025
776f1b5
Update fork id in test
pmikolajczyk41 Dec 5, 2025
82e8518
Leaving chain info JSON as before (consistent with on-chain info)
pmikolajczyk41 Dec 5, 2025
6ecd436
Add a test for configurable limit in batch poster
pmikolajczyk41 Dec 5, 2025
b078ad4
Add two tests for parsing
pmikolajczyk41 Dec 8, 2025
2e898fd
Lint
pmikolajczyk41 Dec 8, 2025
86125b0
ForkID
pmikolajczyk41 Dec 8, 2025
cdc8678
Merge branch 'master' into pmikolajczyk/nit-3121-uncompressed-batch-s…
pmikolajczyk41 Dec 8, 2025
1c4e943
Remove batch poster system test
pmikolajczyk41 Dec 9, 2025
dec7e98
Rename setup function
pmikolajczyk41 Dec 9, 2025
24a2d00
Make batch size limit arbos-version dependent
pmikolajczyk41 Dec 9, 2025
d8a5394
Use arbos version in batch poster
pmikolajczyk41 Dec 9, 2025
b4d5cce
Use arbos version in inbox and MEL
pmikolajczyk41 Dec 9, 2025
3da6e6f
Checkpoint
pmikolajczyk41 Dec 9, 2025
e4ed04f
checkpoint
pmikolajczyk41 Dec 9, 2025
03233dd
fix tests
pmikolajczyk41 Dec 9, 2025
fd6384f
nil protection
pmikolajczyk41 Dec 9, 2025
c3da851
update pin
pmikolajczyk41 Dec 9, 2025
c6856f1
Merge branch 'master' into pmikolajczyk/nit-3121-uncompressed-batch-s…
pmikolajczyk41 Dec 9, 2025
883a3e1
forbid changing the limit in the chain config
pmikolajczyk41 Dec 10, 2025
cc673af
Merge remote-tracking branch 'origin/master' into pmikolajczyk/nit-31…
pmikolajczyk41 Dec 10, 2025
93cff8b
tiny refactor in replay
pmikolajczyk41 Dec 10, 2025
f6dd87e
pass non-nil arbos version getter
pmikolajczyk41 Dec 10, 2025
449b987
Use the previous message index
pmikolajczyk41 Dec 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 17 additions & 12 deletions arbnode/batch_poster.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ type BatchPoster struct {
inbox *InboxTracker
streamer *TransactionStreamer
arbOSVersionGetter execution.ArbOSVersionGetter
chainConfig *params.ChainConfig
config BatchPosterConfigFetcher
seqInbox *bridgegen.SequencerInbox
syncMonitor *SyncMonitor
Expand Down Expand Up @@ -359,6 +360,7 @@ type BatchPosterOpts struct {
DAPWriters []daprovider.Writer
ParentChainID *big.Int
DAPReaders *daprovider.DAProviderRegistry
ChainConfig *params.ChainConfig
}

func NewBatchPoster(ctx context.Context, opts *BatchPosterOpts) (*BatchPoster, error) {
Expand Down Expand Up @@ -405,6 +407,7 @@ func NewBatchPoster(ctx context.Context, opts *BatchPosterOpts) (*BatchPoster, e
inbox: opts.Inbox,
streamer: opts.Streamer,
arbOSVersionGetter: opts.VersionGetter,
chainConfig: opts.ChainConfig,
syncMonitor: opts.SyncMonitor,
config: opts.Config,
seqInbox: seqInbox,
Expand Down Expand Up @@ -903,6 +906,7 @@ type batchSegments struct {
recompressionLevel int
newUncompressedSize int
totalUncompressedSize int
maxUncompressedSize int
lastCompressedSize int
trailingHeaders int // how many trailing segments are headers
isDone bool
Expand Down Expand Up @@ -983,12 +987,13 @@ func (b *BatchPoster) newBatchSegments(ctx context.Context, firstDelayed uint64,
recompressionLevel = compressionLevel
}
return &batchSegments{
compressedBuffer: compressedBuffer,
compressedWriter: brotli.NewWriterLevel(compressedBuffer, compressionLevel),
sizeLimit: maxSize,
recompressionLevel: recompressionLevel,
rawSegments: make([][]byte, 0, 128),
delayedMsg: firstDelayed,
compressedBuffer: compressedBuffer,
compressedWriter: brotli.NewWriterLevel(compressedBuffer, compressionLevel),
sizeLimit: maxSize,
recompressionLevel: recompressionLevel,
rawSegments: make([][]byte, 0, 128),
delayedMsg: firstDelayed,
maxUncompressedSize: int(b.chainConfig.MaxUncompressedBatchSize()), // #nosec G115
}, nil
}

Expand All @@ -1003,8 +1008,8 @@ func (s *batchSegments) recompressAll() error {
return err
}
}
if s.totalUncompressedSize > arbstate.MaxDecompressedLen {
return fmt.Errorf("batch size %v exceeds maximum decompressed length %v", s.totalUncompressedSize, arbstate.MaxDecompressedLen)
if s.totalUncompressedSize > s.maxUncompressedSize {
return fmt.Errorf("batch size %v exceeds maximum uncompressed length %v", s.totalUncompressedSize, s.maxUncompressedSize)
}
if len(s.rawSegments) >= arbstate.MaxSegmentsPerSequencerMessage {
return fmt.Errorf("number of raw segments %v excees maximum number %v", len(s.rawSegments), arbstate.MaxSegmentsPerSequencerMessage)
Expand All @@ -1014,10 +1019,10 @@ func (s *batchSegments) recompressAll() error {

func (s *batchSegments) testForOverflow(isHeader bool) (bool, error) {
// we've reached the max decompressed size
if s.totalUncompressedSize > arbstate.MaxDecompressedLen {
log.Info("Batch full: max decompressed length exceeded",
if s.totalUncompressedSize > s.maxUncompressedSize {
log.Info("Batch full: max uncompressed length exceeded",
"current", s.totalUncompressedSize,
"max", arbstate.MaxDecompressedLen,
"max", s.maxUncompressedSize,
"isHeader", isHeader)
return true, nil
}
Expand Down Expand Up @@ -1928,7 +1933,7 @@ func (b *BatchPoster) MaybePostSequencerBatch(ctx context.Context) (bool, error)
b.building.muxBackend.seqMsg = seqMsg
b.building.muxBackend.delayedInboxStart = batchPosition.DelayedMessageCount
b.building.muxBackend.SetPositionWithinMessage(0)
simMux := arbstate.NewInboxMultiplexer(b.building.muxBackend, batchPosition.DelayedMessageCount, dapReaders, daprovider.KeysetValidate)
simMux := arbstate.NewInboxMultiplexer(b.building.muxBackend, batchPosition.DelayedMessageCount, dapReaders, daprovider.KeysetValidate, b.chainConfig) // nolint:gosec
log.Debug("Begin checking the correctness of batch against inbox multiplexer", "startMsgSeqNum", batchPosition.MessageCount, "endMsgSeqNum", b.building.msgCount-1)
for i := batchPosition.MessageCount; i < b.building.msgCount; i++ {
msg, err := simMux.Pop(ctx)
Expand Down
8 changes: 7 additions & 1 deletion arbnode/inbox_tracker.go
Original file line number Diff line number Diff line change
Expand Up @@ -781,7 +781,13 @@ func (t *InboxTracker) AddSequencerBatches(ctx context.Context, client *ethclien
ctx: ctx,
client: client,
}
multiplexer := arbstate.NewInboxMultiplexer(backend, prevbatchmeta.DelayedMessageCount, t.dapReaders, daprovider.KeysetValidate)
multiplexer := arbstate.NewInboxMultiplexer(
backend,
prevbatchmeta.DelayedMessageCount,
t.dapReaders,
daprovider.KeysetValidate,
t.txStreamer.chainConfig,
)
batchMessageCounts := make(map[uint64]arbutil.MessageIndex)
currentPos := prevbatchmeta.MessageCount + 1
for {
Expand Down
5 changes: 5 additions & 0 deletions arbnode/mel/extraction/message_extraction_function.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/params"

"github.com/offchainlabs/nitro/arbnode/mel"
"github.com/offchainlabs/nitro/arbos/arbostypes"
Expand Down Expand Up @@ -55,11 +56,13 @@ func ExtractMessages(
delayedMsgDatabase DelayedMessageDatabase,
receiptFetcher ReceiptFetcher,
txsFetcher TransactionsFetcher,
chainConfig *params.ChainConfig,
) (*mel.State, []*arbostypes.MessageWithMetadata, []*mel.DelayedInboxMessage, error) {
return extractMessagesImpl(
ctx,
inputState,
parentChainHeader,
chainConfig,
dataProviders,
delayedMsgDatabase,
txsFetcher,
Expand All @@ -81,6 +84,7 @@ func extractMessagesImpl(
ctx context.Context,
inputState *mel.State,
parentChainHeader *types.Header,
chainConfig *params.ChainConfig,
dataProviders *daprovider.DAProviderRegistry,
delayedMsgDatabase DelayedMessageDatabase,
txsFetcher TransactionsFetcher,
Expand Down Expand Up @@ -200,6 +204,7 @@ func extractMessagesImpl(
serialized,
dataProviders,
daprovider.KeysetValidate,
chainConfig,
)
if err != nil {
return nil, nil, nil, err
Expand Down
8 changes: 7 additions & 1 deletion arbnode/mel/extraction/message_extraction_function_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/params"

"github.com/offchainlabs/nitro/arbnode/mel"
"github.com/offchainlabs/nitro/arbos/arbostypes"
"github.com/offchainlabs/nitro/arbstate"
"github.com/offchainlabs/nitro/cmd/chaininfo"
"github.com/offchainlabs/nitro/daprovider"
)

Expand All @@ -31,7 +33,7 @@ func TestExtractMessages(t *testing.T) {
lookupDelayedMsgs func(context.Context, *mel.State, *types.Header, ReceiptFetcher, TransactionsFetcher) ([]*mel.DelayedInboxMessage, error)
serializer func(context.Context, *mel.SequencerInboxBatch, *types.Transaction, uint, ReceiptFetcher) ([]byte, error)
parseReport func(io.Reader) (*big.Int, common.Address, common.Hash, uint64, *big.Int, uint64, error)
parseSequencerMsg func(context.Context, uint64, common.Hash, []byte, arbstate.DapReaderSource, daprovider.KeysetValidationMode) (*arbstate.SequencerMessage, error)
parseSequencerMsg func(context.Context, uint64, common.Hash, []byte, arbstate.DapReaderSource, daprovider.KeysetValidationMode, *params.ChainConfig) (*arbstate.SequencerMessage, error)
extractBatchMessages func(context.Context, *mel.State, *arbstate.SequencerMessage, DelayedMessageDatabase) ([]*arbostypes.MessageWithMetadata, error)
expectedError string
expectedMsgCount uint64
Expand Down Expand Up @@ -150,13 +152,15 @@ func TestExtractMessages(t *testing.T) {
nil,
nil,
txsFetcher,
chaininfo.ArbitrumDevTestChainConfig(),
)
} else {
// Test the internal extractMessagesImpl function
postState, messages, delayedMessages, err = extractMessagesImpl(
ctx,
melState,
header,
chaininfo.ArbitrumDevTestChainConfig(),
nil,
nil,
txsFetcher,
Expand Down Expand Up @@ -321,6 +325,7 @@ func successfulParseSequencerMsg(
data []byte,
dapReaders arbstate.DapReaderSource,
keysetValidationMode daprovider.KeysetValidationMode,
chainConfig *params.ChainConfig,
) (*arbstate.SequencerMessage, error) {
return nil, nil
}
Expand All @@ -332,6 +337,7 @@ func failingParseSequencerMsg(
data []byte,
dapReaders arbstate.DapReaderSource,
keysetValidationMode daprovider.KeysetValidationMode,
chainConfig *params.ChainConfig,
) (*arbstate.SequencerMessage, error) {
return nil, errors.New("failed to parse sequencer message")
}
Expand Down
2 changes: 2 additions & 0 deletions arbnode/mel/extraction/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/params"

"github.com/offchainlabs/nitro/arbnode/mel"
"github.com/offchainlabs/nitro/arbos/arbostypes"
Expand Down Expand Up @@ -64,6 +65,7 @@ type sequencerMessageParserFunc func(
data []byte,
dapReaders arbstate.DapReaderSource,
keysetValidationMode daprovider.KeysetValidationMode,
chainConfig *params.ChainConfig,
) (*arbstate.SequencerMessage, error)

// Defines a function that can extract messages from a batch.
Expand Down
5 changes: 5 additions & 0 deletions arbnode/mel/runner/mel.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/params"

"github.com/offchainlabs/nitro/arbnode/mel"
"github.com/offchainlabs/nitro/arbnode/mel/extraction"
Expand All @@ -37,6 +38,7 @@ type ParentChainReader interface {
type MessageExtractor struct {
stopwaiter.StopWaiter
parentChainReader ParentChainReader
chainConfig *params.ChainConfig
addrs *chaininfo.RollupAddresses
melDB *Database
msgConsumer mel.MessageConsumer
Expand All @@ -51,6 +53,7 @@ type MessageExtractor struct {
// to be used when extracting messages from the parent chain.
func NewMessageExtractor(
parentChainReader ParentChainReader,
chainConfig *params.ChainConfig,
rollupAddrs *chaininfo.RollupAddresses,
melDB *Database,
msgConsumer mel.MessageConsumer,
Expand All @@ -67,6 +70,7 @@ func NewMessageExtractor(
}
return &MessageExtractor{
parentChainReader: parentChainReader,
chainConfig: chainConfig,
addrs: rollupAddrs,
melDB: melDB,
msgConsumer: msgConsumer,
Expand Down Expand Up @@ -223,6 +227,7 @@ func (m *MessageExtractor) Act(ctx context.Context) (time.Duration, error) {
m.melDB,
receiptFetcher,
txsFetcher,
m.chainConfig,
)
if err != nil {
return m.retryInterval, err
Expand Down
1 change: 1 addition & 0 deletions arbnode/mel/runner/mel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func TestMessageExtractor(t *testing.T) {
messageConsumer := &mockMessageConsumer{}
extractor, err := NewMessageExtractor(
parentChainReader,
chaininfo.ArbitrumDevTestChainConfig(),
&chaininfo.RollupAddresses{},
melDb,
messageConsumer,
Expand Down
4 changes: 3 additions & 1 deletion arbnode/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -971,6 +971,7 @@ func getBatchPoster(
ctx context.Context,
config *Config,
configFetcher ConfigFetcher,
l2Config *params.ChainConfig,
txOptsBatchPoster *bind.TransactOpts,
dapWriters []daprovider.Writer,
l1Reader *headerreader.HeaderReader,
Expand Down Expand Up @@ -1010,6 +1011,7 @@ func getBatchPoster(
DAPWriters: dapWriters,
ParentChainID: parentChainID,
DAPReaders: dapReaders,
ChainConfig: l2Config,
})
if err != nil {
return nil, err
Expand Down Expand Up @@ -1206,7 +1208,7 @@ func createNodeImpl(
return nil, err
}

batchPoster, err := getBatchPoster(ctx, config, configFetcher, txOptsBatchPoster, dapWriters, l1Reader, inboxTracker, txStreamer, arbOSVersionGetter, arbDb, syncMonitor, deployInfo, parentChainID, dapRegistry, stakerAddr)
batchPoster, err := getBatchPoster(ctx, config, configFetcher, l2Config, txOptsBatchPoster, dapWriters, l1Reader, inboxTracker, txStreamer, arbOSVersionGetter, arbDb, syncMonitor, deployInfo, parentChainID, dapRegistry, stakerAddr)
if err != nil {
return nil, err
}
Expand Down
24 changes: 16 additions & 8 deletions arbstate/inbox.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/rlp"

"github.com/offchainlabs/nitro/arbcompress"
Expand Down Expand Up @@ -77,11 +78,9 @@ type SequencerMessage struct {
Segments [][]byte
}

const MaxDecompressedLen int = 1024 * 1024 * 16 // 16 MiB
const maxZeroheavyDecompressedLen = 101*MaxDecompressedLen/100 + 64
const MaxSegmentsPerSequencerMessage = 100 * 1024

func ParseSequencerMessage(ctx context.Context, batchNum uint64, batchBlockHash common.Hash, data []byte, dapReaders DapReaderSource, keysetValidationMode daprovider.KeysetValidationMode) (*SequencerMessage, error) {
func ParseSequencerMessage(ctx context.Context, batchNum uint64, batchBlockHash common.Hash, data []byte, dapReaders DapReaderSource, keysetValidationMode daprovider.KeysetValidationMode, chainConfig *params.ChainConfig) (*SequencerMessage, error) {
if len(data) < 40 {
return nil, errors.New("sequencer message missing L1 header")
}
Expand Down Expand Up @@ -147,10 +146,17 @@ func ParseSequencerMessage(ctx context.Context, batchNum uint64, batchBlockHash

// At this point, `payload` has not been validated by the sequencer inbox at all.
// It's not safe to trust any part of the payload from this point onwards.
var uncompressedBatchSizeLimit uint64
if chainConfig != nil {
uncompressedBatchSizeLimit = chainConfig.MaxUncompressedBatchSize()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went back-and-forth on it, but I think I landed on the side of:
We should make it arbos-version dependant, so:

  • MaxUncompressedBatchSize should accept arbosVersion as parameter
  • should only use non-default size if arbos-version is > (some new constant like arbosVersion_BatchSize that'll be initially set to 52)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I updated the geth PR
  • I adjusted the nitro code by passing ArbosVersionGetter between some components - unfortunately this was the most concise way I could come up with

} else { // In case chainConfig is nil, fall back to params default (e.g. in tests or for the genesis block)
uncompressedBatchSizeLimit = params.DefaultMaxUncompressedBatchSize
}

// Stage 2: If enabled, decode the zero heavy payload (saves gas based on calldata charging).
if len(payload) > 0 && daprovider.IsZeroheavyEncodedHeaderByte(payload[0]) {
pl, err := io.ReadAll(io.LimitReader(zeroheavy.NewZeroheavyDecoder(bytes.NewReader(payload[1:])), int64(maxZeroheavyDecompressedLen)))
maxZeroheavyDecompressedLen := 101*uncompressedBatchSizeLimit/100 + 64
pl, err := io.ReadAll(io.LimitReader(zeroheavy.NewZeroheavyDecoder(bytes.NewReader(payload[1:])), int64(maxZeroheavyDecompressedLen))) // #nosec G115
if err != nil {
log.Warn("error reading from zeroheavy decoder", err.Error())
return parsedMsg, nil
Expand All @@ -160,10 +166,10 @@ func ParseSequencerMessage(ctx context.Context, batchNum uint64, batchBlockHash

// Stage 3: Decompress the brotli payload and fill the parsedMsg.segments list.
if len(payload) > 0 && daprovider.IsBrotliMessageHeaderByte(payload[0]) {
decompressed, err := arbcompress.Decompress(payload[1:], MaxDecompressedLen)
decompressed, err := arbcompress.Decompress(payload[1:], int(uncompressedBatchSizeLimit)) // #nosec G115
if err == nil {
reader := bytes.NewReader(decompressed)
stream := rlp.NewStream(reader, uint64(MaxDecompressedLen))
stream := rlp.NewStream(reader, 0)
for {
var segment []byte
err := stream.Decode(&segment)
Expand Down Expand Up @@ -199,6 +205,7 @@ func ParseSequencerMessage(ctx context.Context, batchNum uint64, batchBlockHash
type inboxMultiplexer struct {
backend InboxBackend
delayedMessagesRead uint64
chainConfig *params.ChainConfig
dapReaders DapReaderSource
cachedSequencerMessage *SequencerMessage
cachedSequencerMessageNum uint64
Expand All @@ -213,10 +220,11 @@ type inboxMultiplexer struct {
keysetValidationMode daprovider.KeysetValidationMode
}

func NewInboxMultiplexer(backend InboxBackend, delayedMessagesRead uint64, dapReaders DapReaderSource, keysetValidationMode daprovider.KeysetValidationMode) arbostypes.InboxMultiplexer {
func NewInboxMultiplexer(backend InboxBackend, delayedMessagesRead uint64, dapReaders DapReaderSource, keysetValidationMode daprovider.KeysetValidationMode, chainConfig *params.ChainConfig) arbostypes.InboxMultiplexer {
return &inboxMultiplexer{
backend: backend,
delayedMessagesRead: delayedMessagesRead,
chainConfig: chainConfig,
dapReaders: dapReaders,
cachedSequencerMessage: nil,
cachedSequencerMessageNum: 0,
Expand Down Expand Up @@ -245,7 +253,7 @@ func (r *inboxMultiplexer) Pop(ctx context.Context) (*arbostypes.MessageWithMeta
}
r.cachedSequencerMessageNum = r.backend.GetSequencerInboxPosition()
var err error
r.cachedSequencerMessage, err = ParseSequencerMessage(ctx, r.cachedSequencerMessageNum, batchBlockHash, bytes, r.dapReaders, r.keysetValidationMode)
r.cachedSequencerMessage, err = ParseSequencerMessage(ctx, r.cachedSequencerMessageNum, batchBlockHash, bytes, r.dapReaders, r.keysetValidationMode, r.chainConfig)
if err != nil {
return nil, err
}
Expand Down
9 changes: 8 additions & 1 deletion arbstate/inbox_fuzz_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/ethereum/go-ethereum/common"

"github.com/offchainlabs/nitro/arbos/arbostypes"
"github.com/offchainlabs/nitro/cmd/chaininfo"
"github.com/offchainlabs/nitro/daprovider"
)

Expand Down Expand Up @@ -70,7 +71,13 @@ func FuzzInboxMultiplexer(f *testing.F) {
delayedMessage: delayedMsg,
positionWithinMessage: 0,
}
multiplexer := NewInboxMultiplexer(backend, 0, nil, daprovider.KeysetValidate)
multiplexer := NewInboxMultiplexer(
backend,
0,
nil,
daprovider.KeysetValidate,
chaininfo.ArbitrumDevTestChainConfig(),
)
_, err := multiplexer.Pop(context.TODO())
if err != nil {
panic(err)
Expand Down
1 change: 1 addition & 0 deletions cmd/chaininfo/chain_defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func CopyArbitrumChainParams(arbChainParams params.ArbitrumChainParams) params.A
GenesisBlockNum: arbChainParams.GenesisBlockNum,
MaxCodeSize: arbChainParams.MaxCodeSize,
MaxInitCodeSize: arbChainParams.MaxInitCodeSize,
MaxUncompressedBatchSize: arbChainParams.MaxUncompressedBatchSize,
}
}

Expand Down
Loading
Loading