Skip to content

Commit

Permalink
reset open swaps to expired (#864)
Browse files Browse the repository at this point in the history
  • Loading branch information
rhuairahrighairidh committed Mar 4, 2021
1 parent 0e79168 commit 0de3621
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions migrate/v0_12/migrate.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ package v0_12
import (
"time"

"github.com/cosmos/cosmos-sdk/x/genutil"
tmtypes "github.com/tendermint/tendermint/types"

"github.com/kava-labs/kava/app"
"github.com/kava-labs/kava/x/bep3"
)

var (
Expand All @@ -12,7 +16,50 @@ var (
)

func Migrate(genDoc tmtypes.GenesisDoc) tmtypes.GenesisDoc {
cdc := app.MakeCodec()
var appStateMap genutil.AppMap
if err := cdc.UnmarshalJSON(genDoc.AppState, &appStateMap); err != nil {
panic(err)
}
newAppState := MigrateAppState(appStateMap)
marshaledNewAppState, err := cdc.MarshalJSON(newAppState)
if err != nil {
panic(err)
}
genDoc.AppState = marshaledNewAppState

genDoc.GenesisTime = GenesisTime
genDoc.ChainID = ChainID

return genDoc
}

func MigrateAppState(v0_12AppState genutil.AppMap) genutil.AppMap {
cdc := app.MakeCodec()

if v0_12AppState[bep3.ModuleName] != nil {
var bep3GS bep3.GenesisState
cdc.MustUnmarshalJSON(v0_12AppState[bep3.ModuleName], &bep3GS)
delete(v0_12AppState, bep3.ModuleName)
v0_12AppState[bep3.ModuleName] = cdc.MustMarshalJSON(Bep3(bep3GS))
}
return v0_12AppState

}

func Bep3(genesisState bep3.GenesisState) bep3.GenesisState {

var newSwaps bep3.AtomicSwaps
for _, swap := range genesisState.AtomicSwaps {
if swap.Status == bep3.Completed {
swap.ClosedBlock = 1 // reset closed block to one so completed swaps are removed from long term storage properly
}
if swap.Status == bep3.Open || swap.Status == bep3.Expired {
swap.Status = bep3.Expired // set open swaps to expired so they can be refunded after chain start
swap.ExpireHeight = 1 // set expire on first block as well to be safe
}
newSwaps = append(newSwaps, swap)
}

return bep3.NewGenesisState(genesisState.Params, newSwaps, genesisState.Supplies, genesisState.PreviousBlockTime)
}

0 comments on commit 0de3621

Please sign in to comment.