aboutsummaryrefslogtreecommitdiffstats
path: root/consensus/dexcon/dexcon.go
diff options
context:
space:
mode:
Diffstat (limited to 'consensus/dexcon/dexcon.go')
-rw-r--r--consensus/dexcon/dexcon.go23
1 files changed, 7 insertions, 16 deletions
diff --git a/consensus/dexcon/dexcon.go b/consensus/dexcon/dexcon.go
index 2e406f0b0..aff5c9c45 100644
--- a/consensus/dexcon/dexcon.go
+++ b/consensus/dexcon/dexcon.go
@@ -111,26 +111,17 @@ func (d *Dexcon) calculateBlockReward(round int64, state *state.StateDB) *big.In
gs := d.govStateFetcer.GetGovStateHelperAtRound(uint64(round))
config := gs.Configuration()
- gsCurrent := vm.GovernanceStateHelper{state}
- configCurrent := gsCurrent.Configuration()
- heightCurrent := gsCurrent.RoundHeight(big.NewInt(round)).Uint64()
+ blocksPerRound := config.RoundLength
+ roundInterval := new(big.Float).Mul(
+ big.NewFloat(float64(blocksPerRound)),
+ big.NewFloat(float64(config.MinBlockInterval)))
- blocksPerRound := uint64(0)
-
- // The initial round, calculate an approximate number of round base on config.
- if round == 0 || heightCurrent == 0 {
- blocksPerRound = uint64(config.NumChains) * config.RoundInterval / config.MinBlockInterval
- } else {
- heightPrev := gsCurrent.RoundHeight(big.NewInt(round - 1)).Uint64()
- blocksPerRound = heightCurrent - heightPrev
- }
-
- // blockReard = miningVelocity * totalStaked * roundInterval / aYear / numBlocksInPrevRound
+ // blockReard = miningVelocity * totalStaked * roundInterval / aYear / numBlocksInCurRound
numerator, _ := new(big.Float).Mul(
new(big.Float).Mul(
- big.NewFloat(float64(configCurrent.MiningVelocity)),
+ big.NewFloat(float64(config.MiningVelocity)),
new(big.Float).SetInt(gs.TotalStaked())),
- new(big.Float).SetInt(gs.RoundInterval())).Int(nil)
+ roundInterval).Int(nil)
reward := new(big.Int).Div(numerator,
new(big.Int).Mul(