From 22988ac97b6463643cfcf827b5ab49b707d5ad49 Mon Sep 17 00:00:00 2001 From: Arpit Temani Date: Tue, 15 Nov 2022 22:13:57 +0530 Subject: [PATCH] bugfix --- params/config.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/params/config.go b/params/config.go index 6fac0e5a07..05e8187b41 100644 --- a/params/config.go +++ b/params/config.go @@ -592,11 +592,11 @@ func (b *BorConfig) String() string { } func (c *BorConfig) CalculateProducerDelay(number uint64) uint64 { - return c.calculateBorConfigHelper(c.ProducerDelay, number) + return c.calculateSprintSizeHelper(c.ProducerDelay, number) } func (c *BorConfig) CalculateSprint(number uint64) uint64 { - return c.calculateBorConfigHelper(c.Sprint, number) + return c.calculateSprintSizeHelper(c.Sprint, number) } func (c *BorConfig) CalculateBackupMultiplier(number uint64) uint64 { @@ -623,6 +623,26 @@ func (c *BorConfig) calculateBorConfigHelper(field map[string]uint64, number uin sort.Strings(keys) + for i := 0; i < len(keys)-1; i++ { + valUint, _ := strconv.ParseUint(keys[i], 10, 64) + valUintNext, _ := strconv.ParseUint(keys[i+1], 10, 64) + + if number > valUint && number < valUintNext { + return field[keys[i]] + } + } + + return field[keys[len(keys)-1]] +} + +func (c *BorConfig) calculateSprintSizeHelper(field map[string]uint64, number uint64) uint64 { + keys := make([]string, 0, len(field)) + for k := range field { + keys = append(keys, k) + } + + sort.Strings(keys) + for i := 0; i < len(keys)-1; i++ { valUint, _ := strconv.ParseUint(keys[i], 10, 64) valUintNext, _ := strconv.ParseUint(keys[i+1], 10, 64)