Skip to content

Commit

Permalink
Construct the queues from beams list
Browse files Browse the repository at this point in the history
  • Loading branch information
Segfaultd committed Apr 29, 2022
1 parent 9103ee4 commit 722dc24
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 238 deletions.
4 changes: 0 additions & 4 deletions proto/beam/genesis.proto
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,5 @@ message GenesisState {
];

repeated Beam beams = 2;

repeated Beam beam_open_old_queue = 3;
repeated Beam beam_closed_queue = 4;
repeated Beam beam_open_queue = 5;
}

2 changes: 1 addition & 1 deletion x/beam/abci.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ func EndBlocker(ctx sdk.Context, keeper keeper.Keeper) {
if err != nil {
panic(err)
}
keeper.Logger(ctx).Info(fmt.Sprintf("Canceling beam #%s due to crossed auto close thresold", value))
keeper.Logger(ctx).Info(fmt.Sprintf("Canceling beam #%s due to crossed auto close thresold", value), "height", ctx.BlockHeight())
}
}
38 changes: 17 additions & 21 deletions x/beam/genesis.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package beam

import (
"fmt"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/lum-network/chain/x/beam/keeper"
"github.com/lum-network/chain/x/beam/types"
Expand All @@ -14,21 +15,23 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState)
// Persist the beams to raw store
for _, beam := range genState.Beams {
k.SetBeam(ctx, beam.GetId(), beam)
}

// Persist the closed queue
for _, beam := range genState.BeamClosedQueue {
k.InsertClosedBeamQueue(ctx, beam.GetId())
}

// Persist the old open queue
for _, beam := range genState.BeamOpenOldQueue {
k.InsertOpenBeamQueue(ctx, beam.GetId())
}

// Persist the open beam by block queue
for _, beam := range genState.BeamOpenQueue {
k.InsertOpenBeamByBlockQueue(ctx, int(beam.GetClosesAtBlock()), beam.GetId())
// Append to the correct queue from the beam state
toQueue := false
if beam.GetStatus() == types.BeamState_StateClosed || beam.GetStatus() == types.BeamState_StateCanceled {
k.InsertClosedBeamQueue(ctx, beam.GetId())
toQueue = true
} else if beam.GetStatus() == types.BeamState_StateOpen {
// Make sure we don't add a beam that is intended to be already closed at the current height
if beam.GetClosesAtBlock() > 0 && int(beam.GetClosesAtBlock()) > int(ctx.BlockHeight()) {
k.InsertOpenBeamByBlockQueue(ctx, int(beam.GetClosesAtBlock()), beam.GetId())
toQueue = true
}
} else {
ctx.Logger().Info(fmt.Sprintf("Not appending beam %s to any queue due to unhandled status", beam.GetId()), "height", ctx.BlockHeight(), "state", beam.GetStatus())
}

ctx.Logger().Info(fmt.Sprintf("Persisted beam %s from genesis file", beam.GetId()), "height", ctx.BlockHeight(), "state", beam.GetStatus(), "added_in_queue", toQueue)
}

return nil
Expand All @@ -38,15 +41,8 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState)
func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState {
beams := k.ListBeams(ctx)

beamsFromOldOpenQueue := k.ListBeamsFromOldOpenQueue(ctx)
beamsFromClosedQueue := k.ListBeamsFromClosedQueue(ctx)
beamsFromOpenQueue := k.ListBeamsFromOpenQueue(ctx)

return &types.GenesisState{
Beams: beams,
BeamOpenOldQueue: beamsFromOldOpenQueue,
BeamClosedQueue: beamsFromClosedQueue,
BeamOpenQueue: beamsFromOpenQueue,
ModuleAccountBalance: k.GetBeamAccountBalance(ctx),
}
}
8 changes: 6 additions & 2 deletions x/beam/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,9 @@ func (k Keeper) UpdateBeamStatus(ctx sdk.Context, beamID string, newStatus types
}

// Update the queues
k.RemoveFromOpenBeamQueue(ctx, beam.GetId())
if beam.GetClosesAtBlock() > 0 {
k.RemoveFromOpenBeamByBlockQueue(ctx, int(beam.GetClosesAtBlock()), beam.GetId())
}
k.InsertClosedBeamQueue(ctx, beam.GetId())
break

Expand All @@ -372,7 +374,9 @@ func (k Keeper) UpdateBeamStatus(ctx sdk.Context, beamID string, newStatus types
}

// Update the queues
k.RemoveFromOpenBeamQueue(ctx, beam.GetId())
if beam.GetClosesAtBlock() > 0 {
k.RemoveFromOpenBeamByBlockQueue(ctx, int(beam.GetClosesAtBlock()), beam.GetId())
}
k.InsertClosedBeamQueue(ctx, beam.GetId())
break
}
Expand Down
230 changes: 20 additions & 210 deletions x/beam/types/genesis.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 722dc24

Please sign in to comment.