From 4e65ceb9d0c3597ac6af47951b8d0fe8c37d0f28 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Wed, 2 Nov 2022 11:54:41 -0600 Subject: [PATCH] l2geth: Dedupe dumper addresses in memory (#3852) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .changeset/kind-ravens-shake.md | 5 +++++ l2geth/statedumper/dumper.go | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 .changeset/kind-ravens-shake.md 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) }