diff --git a/.changeset/kind-ravens-shake.md b/.changeset/kind-ravens-shake.md new file mode 100644 index 000000000000..705172ebd3e8 --- /dev/null +++ b/.changeset/kind-ravens-shake.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/l2geth': patch +--- + +Dedupe dumper addresses in memory diff --git a/l2geth/statedumper/dumper.go b/l2geth/statedumper/dumper.go index 0df9611897ee..bf3c1b567ad6 100644 --- a/l2geth/statedumper/dumper.go +++ b/l2geth/statedumper/dumper.go @@ -28,18 +28,25 @@ func NewStateDumper() StateDumper { } return &FileStateDumper{ - f: f, + f: f, + ethCache: make(map[common.Address]bool), } } type FileStateDumper struct { - f io.Writer - mtx sync.Mutex + f io.Writer + ethCache map[common.Address]bool + mtx sync.Mutex } func (s *FileStateDumper) WriteETH(address common.Address) { s.mtx.Lock() defer s.mtx.Unlock() + if s.ethCache[address] { + return + } + s.ethCache[address] = true + if _, err := s.f.Write([]byte(fmt.Sprintf("ETH|%s\n", address.Hex()))); err != nil { panic(err) }