From 563b4b0b5c38abd598ff81c53f3d67b26379bbe6 Mon Sep 17 00:00:00 2001 From: shantichanal <158101918+shantichanal@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:10:32 +0200 Subject: [PATCH] era-download logic fix Downloading from a range was failing because it would return and error early with an error misinterpreting "start-end". --- cmd/geth/chaincmd.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index e0606f0d0b..355fee23ac 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -765,15 +765,8 @@ func downloadEra(ctx *cli.Context) error { } func parseRange(s string) (start uint64, end uint64, ok bool) { - if m, _ := regexp.MatchString("[0-9]+", s); m { - start, err := strconv.ParseUint(s, 10, 64) - if err != nil { - return 0, 0, false - } - end = start - return start, end, true - } - if m, _ := regexp.MatchString("[0-9]+-[0-9]+", s); m { + log.Info("Parsing block range", "input", s) + if m, _ := regexp.MatchString("^[0-9]+-[0-9]+$", s); m { s1, s2, _ := strings.Cut(s, "-") start, err := strconv.ParseUint(s1, 10, 64) if err != nil { @@ -783,7 +776,18 @@ func parseRange(s string) (start uint64, end uint64, ok bool) { if err != nil { return 0, 0, false } + log.Info("Parsing block range", "start", start, "end", end) return start, end, true } + if m, _ := regexp.MatchString("^[0-9]+$", s); m { + start, err := strconv.ParseUint(s, 10, 64) + if err != nil { + return 0, 0, false + } + end = start + log.Info("Parsing single block range", "block", start) + return start, end, true + } + return 0, 0, false }