From 1a75ec877713fb50021410a5d0474563299b16a0 Mon Sep 17 00:00:00 2001 From: Wei-Ning Huang Date: Mon, 5 Nov 2018 13:49:08 +0800 Subject: core: validate roundHeight mapping in governance contract --- dex/governance.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'dex') diff --git a/dex/governance.go b/dex/governance.go index 766920a62..d9a1fa467 100644 --- a/dex/governance.go +++ b/dex/governance.go @@ -24,6 +24,8 @@ import ( "github.com/dexon-foundation/dexon/rpc" ) +const configActivationOffset = 2 + type DexconGovernance struct { b *DexAPIBackend chainConfig *params.ChainConfig @@ -66,6 +68,11 @@ func (d *DexconGovernance) getGovState() *vm.GovernanceStateHelper { } func (d *DexconGovernance) getGovStateAtRound(round uint64) *vm.GovernanceStateHelper { + if round < configActivationOffset { + round = 0 + } else { + round -= configActivationOffset + } ctx := context.Background() blockHeight, err := d.getRoundHeight(ctx, round) if err != nil { -- cgit