diff --git a/agenda.go b/agenda.go index b1136c6..737373c 100644 --- a/agenda.go +++ b/agenda.go @@ -213,9 +213,9 @@ func agendasFromJSON(getVoteInfo types.GetVoteInfoResult) []Agenda { return parsedAgendas } -func agendasForVersions(ctx context.Context, dcrdClient *rpcclient.Client, maxVoteVersion uint32, currentHeight int64, svis StakeVersionIntervals) ([]Agenda, error) { +func agendasForVersions(ctx context.Context, dcrdClient *rpcclient.Client, currentHeight int64, svis StakeVersionIntervals) ([]Agenda, error) { var allAgendas []Agenda - for version := uint32(0); version <= maxVoteVersion; version++ { + for version := svis.MinVoteVersion; version <= svis.MaxVoteVersion; version++ { // Retrieve Agendas for this voting period getVoteInfo, err := dcrdClient.GetVoteInfo(ctx, version) if err != nil { diff --git a/main.go b/main.go index 9feb14a..aee7f37 100644 --- a/main.go +++ b/main.go @@ -276,7 +276,7 @@ func updatetemplateInformation(ctx context.Context, dcrdClient *rpcclient.Client templateInformation.IsUpgrading = true } - templateInformation.Agendas, err = agendasForVersions(ctx, dcrdClient, svis.MaxVoteVersion, height, svis) + templateInformation.Agendas, err = agendasForVersions(ctx, dcrdClient, height, svis) if err != nil { log.Printf("Error getting agendas: %v", err) return diff --git a/stake_version_intervals.go b/stake_version_intervals.go index 98c3af4..8aa067e 100644 --- a/stake_version_intervals.go +++ b/stake_version_intervals.go @@ -16,6 +16,7 @@ import ( // StakeVersionIntervals wraps a set of types.VersionIntervals type StakeVersionIntervals struct { Intervals []types.VersionInterval + MinVoteVersion uint32 MaxVoteVersion uint32 } @@ -82,7 +83,8 @@ func AllStakeVersionIntervals(ctx context.Context, dcrdClient *rpcclient.Client, } svis := StakeVersionIntervals{ - Intervals: stakeVersionInfoResult.Intervals} + Intervals: stakeVersionInfoResult.Intervals, + } // Reverse the slice of SVIs // This makes traversing the set easier later on, @@ -100,6 +102,11 @@ func AllStakeVersionIntervals(ctx context.Context, dcrdClient *rpcclient.Client, } } + min := activeNetParams.GenesisBlock.Header.StakeVersion + if min < 4 { + min = 4 + } + svis.MinVoteVersion = min svis.MaxVoteVersion = max return svis, nil