Unverified Commit a90b0b0e authored by Philip Wang's avatar Philip Wang Committed by GitHub
Browse files

Consolidate code between InitGenesis and CreateGauge (#766)


* Consolidate codepaths between InitGenesis and CreateGauge

* Update CHANGELOG.md

* Fix lint errors

* Update function name

* Update x/incentives/keeper/gauge.go comments

Co-authored-by: default avatarMatt, Park <45252226+mattverse@users.noreply.github.com>

* Fix capitalization of variable names

Co-authored-by: default avatarMatt, Park <45252226+mattverse@users.noreply.github.com>
parent 154d0af7
Showing with 32 additions and 19 deletions
+32 -19
......@@ -66,6 +66,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [97ac2a8](https://github.com/osmosis-labs/osmosis/commit/97ac2a86303fc8966a4c169107e0945775107e67) Fix InitGenesis bug for gauges
- [#686](https://github.com/osmosis-labs/osmosis/pull/686) Add silence usage to cli to surpress unnecessary help logs
- [#731](https://github.com/osmosis-labs/osmosis/pull/731) Add UpdateFeeToken proposal handler to app.go
- [#644](https://github.com/osmosis-labs/osmosis/pull/766) Consolidate code between InitGenesis and CreateGauge
### SDK fork updates
......
......@@ -58,6 +58,19 @@ func (k Keeper) setGauge(ctx sdk.Context, gauge *types.Gauge) error {
return nil
}
// CreateGaugeRefKeys adds gauge references as needed. Used to consolidate codepaths for InitGenesis and CreateGauge
func (k Keeper) CreateGaugeRefKeys(ctx sdk.Context, gauge *types.Gauge, combinedKeys []byte, activeOrUpcomingGauge bool) error {
if err := k.addGaugeRefByKey(ctx, combinedKeys, gauge.Id); err != nil {
return err
}
if activeOrUpcomingGauge {
if err := k.addGaugeIDForDenom(ctx, gauge.Id, gauge.DistributeTo.Denom); err != nil {
return err
}
}
return nil
}
func (k Keeper) SetGaugeWithRefKey(ctx sdk.Context, gauge *types.Gauge) error {
err := k.setGauge(ctx, gauge)
if err != nil {
......@@ -66,25 +79,23 @@ func (k Keeper) SetGaugeWithRefKey(ctx sdk.Context, gauge *types.Gauge) error {
curTime := ctx.BlockTime()
timeKey := getTimeKey(gauge.StartTime)
activeOrUpcomingGauge := gauge.IsActiveGauge(curTime) || gauge.IsUpcomingGauge(curTime)
if gauge.IsUpcomingGauge(curTime) {
if err := k.addGaugeRefByKey(ctx, combineKeys(types.KeyPrefixUpcomingGauges, timeKey), gauge.Id); err != nil {
return err
}
if err := k.addGaugeIDForDenom(ctx, gauge.Id, gauge.DistributeTo.Denom); err != nil {
return err
}
combinedKeys := combineKeys(types.KeyPrefixUpcomingGauges, timeKey)
err = k.CreateGaugeRefKeys(ctx, gauge, combinedKeys, activeOrUpcomingGauge)
} else if gauge.IsActiveGauge(curTime) {
if err := k.addGaugeRefByKey(ctx, combineKeys(types.KeyPrefixActiveGauges, timeKey), gauge.Id); err != nil {
return err
}
if err := k.addGaugeIDForDenom(ctx, gauge.Id, gauge.DistributeTo.Denom); err != nil {
return err
}
combinedKeys := combineKeys(types.KeyPrefixActiveGauges, timeKey)
err = k.CreateGaugeRefKeys(ctx, gauge, combinedKeys, activeOrUpcomingGauge)
} else {
if err := k.addGaugeRefByKey(ctx, combineKeys(types.KeyPrefixFinishedGauges, timeKey), gauge.Id); err != nil {
return err
}
combinedKeys := combineKeys(types.KeyPrefixFinishedGauges, timeKey)
err = k.CreateGaugeRefKeys(ctx, gauge, combinedKeys, activeOrUpcomingGauge)
}
if err != nil {
return err
}
store := ctx.KVStore(k.storeKey)
bz, err := proto.Marshal(gauge)
if err != nil {
......@@ -130,10 +141,11 @@ func (k Keeper) CreateGauge(ctx sdk.Context, isPerpetual bool, owner sdk.AccAddr
k.setLastGaugeID(ctx, gauge.Id)
// TODO: Do we need to be concerned with case where this should be ActiveGauges?
if err := k.addGaugeRefByKey(ctx, combineKeys(types.KeyPrefixUpcomingGauges, getTimeKey(gauge.StartTime)), gauge.Id); err != nil {
return 0, err
}
if err := k.addGaugeIDForDenom(ctx, gauge.Id, gauge.DistributeTo.Denom); err != nil {
combinedKeys := combineKeys(types.KeyPrefixUpcomingGauges, getTimeKey(gauge.StartTime))
activeOrUpcomingGauge := true
err = k.CreateGaugeRefKeys(ctx, &gauge, combinedKeys, activeOrUpcomingGauge)
if err != nil {
return 0, err
}
k.hooks.AfterCreateGauge(ctx, gauge.Id)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment