diff --git a/app/sim_test.go b/app/sim_test.go index 4141ef269e..34625f0f8e 100644 --- a/app/sim_test.go +++ b/app/sim_test.go @@ -7,6 +7,12 @@ import ( "os" "testing" + atypes "github.com/akash-network/akash-api/go/node/audit/v1beta3" + ctypes "github.com/akash-network/akash-api/go/node/cert/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta4" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" + taketypes "github.com/akash-network/akash-api/go/node/take/v1beta3" "github.com/cosmos/cosmos-sdk/x/authz" authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" "github.com/stretchr/testify/require" @@ -181,6 +187,36 @@ func TestAppImportExport(t *testing.T) { {app.skeys[authz.ModuleName], newApp.skeys[authz.ModuleName], [][]byte{ authzkeeper.GranteeKey, }}, + { + app.GetKey(atypes.StoreKey), + newApp.GetKey(atypes.StoreKey), + [][]byte{}, + }, + { + app.GetKey(ctypes.StoreKey), + newApp.GetKey(ctypes.StoreKey), + [][]byte{}, + }, + { + app.GetKey(dtypes.StoreKey), + newApp.GetKey(dtypes.StoreKey), + [][]byte{}, + }, + { + app.GetKey(mtypes.StoreKey), + newApp.GetKey(mtypes.StoreKey), + [][]byte{}, + }, + { + app.GetKey(ptypes.StoreKey), + newApp.GetKey(ptypes.StoreKey), + [][]byte{}, + }, + { + app.GetKey(taketypes.StoreKey), + newApp.GetKey(taketypes.StoreKey), + [][]byte{}, + }, } for _, skp := range storeKeysPrefixes { diff --git a/x/market/genesis.go b/x/market/genesis.go index efe4a2dc9c..7f3fb95f9f 100644 --- a/x/market/genesis.go +++ b/x/market/genesis.go @@ -48,22 +48,35 @@ func InitGenesis(ctx sdk.Context, kpr keeper.IKeeper, data *types.GenesisState) for _, record := range data.Bids { key := keys.MustBidKey(keys.BidStateToPrefix(record.State), record.ID()) + revKey := keys.MustBidReverseKey(keys.BidStateToPrefix(record.State), record.ID()) if store.Has(key) { panic(fmt.Errorf("market genesis bids init. bid id %s: %w", record.ID(), types.ErrBidExists)) } + if store.Has(revKey) { + panic(fmt.Errorf("market genesis bids init. reverse key for bid id %s: %w", record.ID(), types.ErrBidExists)) + } - store.Set(key, cdc.MustMarshal(&record)) + data := cdc.MustMarshal(&record) + store.Set(key, data) + store.Set(revKey, data) } for _, record := range data.Leases { key := keys.MustLeaseKey(keys.LeaseStateToPrefix(record.State), record.ID()) + revKey := keys.MustLeaseReverseKey(keys.LeaseStateToPrefix(record.State), record.ID()) if store.Has(key) { - panic(fmt.Errorf("market genesis leases init. order id %s: lease exists", record.ID())) + panic(fmt.Errorf("market genesis leases init. lease id %s: lease exists", record.ID())) } - store.Set(key, cdc.MustMarshal(&record)) + if store.Has(revKey) { + panic(fmt.Errorf("market genesis leases init. reverse key for lease id %s: lease exists", record.ID())) + } + + data := cdc.MustMarshal(&record) + store.Set(key, data) + store.Set(revKey, data) } kpr.SetParams(ctx, data.Params)