Skip to content

Commit

Permalink
fix wiring in app init
Browse files Browse the repository at this point in the history
Signed-off-by: Shrenuj Bansal <[email protected]>
  • Loading branch information
shrenujb committed Jun 24, 2024
1 parent 783f791 commit 8e150bf
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 18 deletions.
28 changes: 17 additions & 11 deletions protocol/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -890,11 +890,26 @@ func New(
}()
}

app.RevShareKeeper = *revsharemodulekeeper.NewKeeper(
appCodec,
keys[revsharemoduletypes.StoreKey],
[]string{
lib.GovModuleAddress.String(),
},
)
revShareModule := revsharemodule.NewAppModule(appCodec, app.RevShareKeeper)

app.PricesKeeper = *pricesmodulekeeper.NewKeeper(
appCodec, keys[pricesmoduletypes.StoreKey], indexPriceCache, timeProvider, app.IndexerEventManager, []string{
appCodec,
keys[pricesmoduletypes.StoreKey],
indexPriceCache,
timeProvider,
app.IndexerEventManager,
[]string{
lib.GovModuleAddress.String(),
delaymsgmoduletypes.ModuleAddress.String(),
}, nil,
},
app.RevShareKeeper,
)
pricesModule := pricesmodule.NewAppModule(
appCodec,
Expand Down Expand Up @@ -1120,15 +1135,6 @@ func New(
)
listingModule := listingmodule.NewAppModule(appCodec, app.ListingKeeper)

app.RevShareKeeper = *revsharemodulekeeper.NewKeeper(
appCodec,
keys[revsharemoduletypes.StoreKey],
[]string{
lib.GovModuleAddress.String(),
},
)
revShareModule := revsharemodule.NewAppModule(appCodec, app.RevShareKeeper)

/**** Module Options ****/

// NOTE: we may consider parsing `appOpts` inside module constructors. For the moment
Expand Down
3 changes: 3 additions & 0 deletions protocol/app/simulation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"testing"
"time"

revsharetypes "github.com/dydxprotocol/v4-chain/protocol/x/revshare/types"

"cosmossdk.io/log"
"cosmossdk.io/math"
"cosmossdk.io/store"
Expand Down Expand Up @@ -133,6 +135,7 @@ var genesisModuleOrder = []string{
rewardsmodule.ModuleName,
epochstypes.ModuleName,
blocktimetypes.ModuleName,
revsharetypes.ModuleName,
}

var skippedGenesisModules = map[string]interface{}{
Expand Down
7 changes: 6 additions & 1 deletion protocol/testutil/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import (
"testing"
"time"

revsharetypes "github.com/dydxprotocol/v4-chain/protocol/x/revshare/types"

"cosmossdk.io/log"
"cosmossdk.io/store/rootmulti"
storetypes "cosmossdk.io/store/types"
Expand Down Expand Up @@ -202,7 +204,8 @@ type GenesisStates interface {
govtypesv1.GenesisState |
ratelimittypes.GenesisState |
govplus.GenesisState |
vaulttypes.GenesisState
vaulttypes.GenesisState |
revsharetypes.GenesisState
}

// UpdateGenesisDocWithAppStateForModule updates the supplied genesis doc using the provided function. The function
Expand Down Expand Up @@ -258,6 +261,8 @@ func UpdateGenesisDocWithAppStateForModule[T GenesisStates](genesisDoc *types.Ge
moduleName = govplus.ModuleName
case vaulttypes.GenesisState:
moduleName = vaulttypes.ModuleName
case revsharetypes.GenesisState:
moduleName = revsharetypes.ModuleName
default:
panic(fmt.Errorf("Unsupported type %T", t))
}
Expand Down
9 changes: 8 additions & 1 deletion protocol/testutil/keeper/assets.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,14 @@ func AssetsKeepers(
transientStoreKey storetypes.StoreKey,
) []GenesisInitializer {
// Define necessary keepers here for unit tests
pricesKeeper, _, _, mockTimeProvider = createPricesKeeper(stateStore, db, cdc, transientStoreKey, nil)
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc)
pricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
stateStore,
db,
cdc,
transientStoreKey,
revShareKeeper,
)
accountKeeper, _ = createAccountKeeper(stateStore, db, cdc, registry)
bankKeeper, _ = createBankKeeper(stateStore, db, cdc, accountKeeper)
keeper, storeKey = createAssetsKeeper(stateStore, db, cdc, pricesKeeper, transientStoreKey, msgSenderEnabled)
Expand Down
4 changes: 3 additions & 1 deletion protocol/testutil/keeper/clob.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,14 @@ func NewClobKeepersTestContextWithUninitializedMemStore(
indexerEventsTransientStoreKey storetypes.StoreKey,
) []GenesisInitializer {
// Define necessary keepers here for unit tests
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc)

ks.PricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
stateStore,
db,
cdc,
indexerEventsTransientStoreKey,
nil,
revShareKeeper,
)
// Mock time provider response for market creation.
mockTimeProvider.On("Now").Return(constants.TimeT)
Expand Down
3 changes: 2 additions & 1 deletion protocol/testutil/keeper/perpetuals.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,13 @@ func PerpetualsKeepersWithClobHelpers(
transientStoreKey storetypes.StoreKey,
) []GenesisInitializer {
// Define necessary keepers here for unit tests
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc)
pc.PricesKeeper, _, pc.IndexPriceCache, pc.MockTimeProvider = createPricesKeeper(
stateStore,
db,
cdc,
transientStoreKey,
nil,
revShareKeeper,
)
pc.EpochsKeeper, _ = createEpochsKeeper(stateStore, db, cdc)
pc.PerpetualsKeeper, pc.StoreKey = createPerpetualsKeeperWithClobHelpers(
Expand Down
63 changes: 63 additions & 0 deletions protocol/testutil/keeper/revshare.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package keeper

import (
"testing"

dbm "github.com/cosmos/cosmos-db"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
"github.com/dydxprotocol/v4-chain/protocol/lib"
"github.com/dydxprotocol/v4-chain/protocol/x/revshare/types"

storetypes "cosmossdk.io/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/dydxprotocol/v4-chain/protocol/mocks"
keeper "github.com/dydxprotocol/v4-chain/protocol/x/revshare/keeper"
)

func RevShareKeepers(t testing.TB) (
ctx sdk.Context,
keeper *keeper.Keeper,
storeKey storetypes.StoreKey,
mockTimeProvider *mocks.TimeProvider,
) {
ctx = initKeepers(
t, func(
db *dbm.MemDB,
registry codectypes.InterfaceRegistry,
cdc *codec.ProtoCodec,
stateStore storetypes.CommitMultiStore,
transientStoreKey storetypes.StoreKey,
) []GenesisInitializer {
// Define necessary keepers here for unit tests
keeper, storeKey, mockTimeProvider =
createRevShareKeeper(stateStore, db, cdc)

return []GenesisInitializer{keeper}
},
)

return ctx, keeper, storeKey, mockTimeProvider
}

func createRevShareKeeper(
stateStore storetypes.CommitMultiStore,
db *dbm.MemDB,
cdc *codec.ProtoCodec,
) (
*keeper.Keeper,
storetypes.StoreKey,
*mocks.TimeProvider,
) {
storeKey := storetypes.NewKVStoreKey(types.StoreKey)
stateStore.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db)
mockTimeProvider := &mocks.TimeProvider{}

k := keeper.NewKeeper(
cdc, storeKey, []string{
lib.GovModuleAddress.String(),
},
)

return k, storeKey, mockTimeProvider
}
3 changes: 2 additions & 1 deletion protocol/testutil/keeper/rewards.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ func RewardsKeepers(
transientStoreKey storetypes.StoreKey,
) []GenesisInitializer {
// Define necessary keepers here for unit tests
pricesKeeper, _, _, _ = createPricesKeeper(stateStore, db, cdc, transientStoreKey, nil)
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc)
pricesKeeper, _, _, _ = createPricesKeeper(stateStore, db, cdc, transientStoreKey, revShareKeeper)
// Mock time provider response for market creation.
epochsKeeper, _ := createEpochsKeeper(stateStore, db, cdc)
assetsKeeper, _ = createAssetsKeeper(
Expand Down
9 changes: 8 additions & 1 deletion protocol/testutil/keeper/sending.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,14 @@ func SendingKeepersWithSubaccountsKeeper(t testing.TB, saKeeper types.Subaccount
// Define necessary keepers here for unit tests
epochsKeeper, _ := createEpochsKeeper(stateStore, db, cdc)
blockTimeKeeper, _ := createBlockTimeKeeper(stateStore, db, cdc)
ks.PricesKeeper, _, _, mockTimeProvider = createPricesKeeper(stateStore, db, cdc, transientStoreKey, nil)
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc)
ks.PricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
stateStore,
db,
cdc,
transientStoreKey,
revShareKeeper,
)
ks.PerpetualsKeeper, _ = createPerpetualsKeeper(
stateStore,
db,
Expand Down
9 changes: 8 additions & 1 deletion protocol/testutil/keeper/subaccounts.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,14 @@ func SubaccountsKeepers(
transientStoreKey storetypes.StoreKey,
) []GenesisInitializer {
// Define necessary keepers here for unit tests
pricesKeeper, _, _, mockTimeProvider = createPricesKeeper(stateStore, db, cdc, transientStoreKey, nil)
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc)
pricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
stateStore,
db,
cdc,
transientStoreKey,
revShareKeeper,
)
epochsKeeper, _ := createEpochsKeeper(stateStore, db, cdc)
perpetualsKeeper, _ = createPerpetualsKeeper(stateStore, db, cdc, pricesKeeper, epochsKeeper, transientStoreKey)
assetsKeeper, _ = createAssetsKeeper(stateStore, db, cdc, pricesKeeper, transientStoreKey, msgSenderEnabled)
Expand Down

0 comments on commit 8e150bf

Please sign in to comment.