Skip to content

Commit cea26ad

Browse files
committed
fix(x/market): initialize reverse indicies during genesis import
Signed-off-by: Artur Troian <[email protected]>
1 parent 7f1de41 commit cea26ad

File tree

2 files changed

+52
-3
lines changed

2 files changed

+52
-3
lines changed

app/sim_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ import (
77
"os"
88
"testing"
99

10+
atypes "github.com/akash-network/akash-api/go/node/audit/v1beta3"
11+
ctypes "github.com/akash-network/akash-api/go/node/cert/v1beta3"
12+
dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3"
13+
mtypes "github.com/akash-network/akash-api/go/node/market/v1beta4"
14+
ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3"
15+
taketypes "github.com/akash-network/akash-api/go/node/take/v1beta3"
1016
"github.com/cosmos/cosmos-sdk/x/authz"
1117
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
1218
"github.com/stretchr/testify/require"
@@ -181,6 +187,36 @@ func TestAppImportExport(t *testing.T) {
181187
{app.skeys[authz.ModuleName], newApp.skeys[authz.ModuleName], [][]byte{
182188
authzkeeper.GranteeKey,
183189
}},
190+
{
191+
app.GetKey(atypes.StoreKey),
192+
newApp.GetKey(atypes.StoreKey),
193+
[][]byte{},
194+
},
195+
{
196+
app.GetKey(ctypes.StoreKey),
197+
newApp.GetKey(ctypes.StoreKey),
198+
[][]byte{},
199+
},
200+
{
201+
app.GetKey(dtypes.StoreKey),
202+
newApp.GetKey(dtypes.StoreKey),
203+
[][]byte{},
204+
},
205+
{
206+
app.GetKey(mtypes.StoreKey),
207+
newApp.GetKey(mtypes.StoreKey),
208+
[][]byte{},
209+
},
210+
{
211+
app.GetKey(ptypes.StoreKey),
212+
newApp.GetKey(ptypes.StoreKey),
213+
[][]byte{},
214+
},
215+
{
216+
app.GetKey(taketypes.StoreKey),
217+
newApp.GetKey(taketypes.StoreKey),
218+
[][]byte{},
219+
},
184220
}
185221

186222
for _, skp := range storeKeysPrefixes {

x/market/genesis.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,35 @@ func InitGenesis(ctx sdk.Context, kpr keeper.IKeeper, data *types.GenesisState)
4848

4949
for _, record := range data.Bids {
5050
key := keys.MustBidKey(keys.BidStateToPrefix(record.State), record.ID())
51+
revKey := keys.MustBidReverseKey(keys.BidStateToPrefix(record.State), record.ID())
5152

5253
if store.Has(key) {
5354
panic(fmt.Errorf("market genesis bids init. bid id %s: %w", record.ID(), types.ErrBidExists))
5455
}
56+
if store.Has(revKey) {
57+
panic(fmt.Errorf("market genesis bids init. reverse key for bid id %s: %w", record.ID(), types.ErrBidExists))
58+
}
5559

56-
store.Set(key, cdc.MustMarshal(&record))
60+
data := cdc.MustMarshal(&record)
61+
store.Set(key, data)
62+
store.Set(revKey, data)
5763
}
5864

5965
for _, record := range data.Leases {
6066
key := keys.MustLeaseKey(keys.LeaseStateToPrefix(record.State), record.ID())
67+
revKey := keys.MustLeaseReverseKey(keys.LeaseStateToPrefix(record.State), record.ID())
6168

6269
if store.Has(key) {
63-
panic(fmt.Errorf("market genesis leases init. order id %s: lease exists", record.ID()))
70+
panic(fmt.Errorf("market genesis leases init. lease id %s: lease exists", record.ID()))
6471
}
6572

66-
store.Set(key, cdc.MustMarshal(&record))
73+
if store.Has(revKey) {
74+
panic(fmt.Errorf("market genesis leases init. reverse key for lease id %s: lease exists", record.ID()))
75+
}
76+
77+
data := cdc.MustMarshal(&record)
78+
store.Set(key, data)
79+
store.Set(revKey, data)
6780
}
6881

6982
kpr.SetParams(ctx, data.Params)

0 commit comments

Comments
 (0)