Skip to content

Commit e4249ec

Browse files
authored
[OTE-788] Update revshare safety (#2284)
1 parent 1659f93 commit e4249ec

25 files changed

+285
-259
lines changed

protocol/app/app.go

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -949,26 +949,40 @@ func New(
949949
)
950950
affiliatesModule := affiliatesmodule.NewAppModule(appCodec, app.AffiliatesKeeper)
951951

952-
app.RevShareKeeper = *revsharemodulekeeper.NewKeeper(
952+
app.MarketMapKeeper = *marketmapmodulekeeper.NewKeeper(
953+
runtime.NewKVStoreService(keys[marketmapmoduletypes.StoreKey]),
953954
appCodec,
954-
keys[revsharemoduletypes.StoreKey],
955+
authtypes.NewModuleAddress(govtypes.ModuleName),
956+
)
957+
958+
marketmapModule := marketmapmodule.NewAppModule(appCodec, &app.MarketMapKeeper)
959+
960+
app.FeeTiersKeeper = feetiersmodulekeeper.NewKeeper(
961+
appCodec,
962+
app.StatsKeeper,
963+
app.AffiliatesKeeper,
964+
keys[feetiersmoduletypes.StoreKey],
965+
// set the governance and delaymsg module accounts as the authority for conducting upgrades
955966
[]string{
956967
lib.GovModuleAddress.String(),
968+
delaymsgmoduletypes.ModuleAddress.String(),
957969
},
958-
app.AffiliatesKeeper,
959970
)
960-
revShareModule := revsharemodule.NewAppModule(appCodec, app.RevShareKeeper)
971+
feeTiersModule := feetiersmodule.NewAppModule(appCodec, app.FeeTiersKeeper)
961972

962-
// Set the revshare keeper in the affiliates keeper.
963-
app.AffiliatesKeeper.SetRevShareKeeper(app.RevShareKeeper)
973+
app.AffiliatesKeeper.SetFeetiersKeeper(app.FeeTiersKeeper)
964974

965-
app.MarketMapKeeper = *marketmapmodulekeeper.NewKeeper(
966-
runtime.NewKVStoreService(keys[marketmapmoduletypes.StoreKey]),
975+
app.RevShareKeeper = *revsharemodulekeeper.NewKeeper(
967976
appCodec,
968-
authtypes.NewModuleAddress(govtypes.ModuleName),
977+
keys[revsharemoduletypes.StoreKey],
978+
[]string{
979+
lib.GovModuleAddress.String(),
980+
},
981+
app.AffiliatesKeeper,
982+
*app.FeeTiersKeeper,
969983
)
970-
971-
marketmapModule := marketmapmodule.NewAppModule(appCodec, &app.MarketMapKeeper)
984+
revShareModule := revsharemodule.NewAppModule(appCodec, app.RevShareKeeper)
985+
app.FeeTiersKeeper.SetRevShareKeeper(app.RevShareKeeper)
972986

973987
app.PricesKeeper = *pricesmodulekeeper.NewKeeper(
974988
appCodec,
@@ -1041,19 +1055,6 @@ func New(
10411055
)
10421056
perpetualsModule := perpetualsmodule.NewAppModule(appCodec, app.PerpetualsKeeper)
10431057

1044-
app.FeeTiersKeeper = feetiersmodulekeeper.NewKeeper(
1045-
appCodec,
1046-
app.StatsKeeper,
1047-
app.AffiliatesKeeper,
1048-
keys[feetiersmoduletypes.StoreKey],
1049-
// set the governance and delaymsg module accounts as the authority for conducting upgrades
1050-
[]string{
1051-
lib.GovModuleAddress.String(),
1052-
delaymsgmoduletypes.ModuleAddress.String(),
1053-
},
1054-
)
1055-
feeTiersModule := feetiersmodule.NewAppModule(appCodec, app.FeeTiersKeeper)
1056-
10571058
app.VestKeeper = *vestmodulekeeper.NewKeeper(
10581059
appCodec,
10591060
keys[vestmoduletypes.StoreKey],

protocol/testing/e2e/gov/feetiers_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ func TestUpdateFeeTiersModuleParams(t *testing.T) {
2020
Tiers: []*feetierstypes.PerpetualFeeTier{
2121
{
2222
Name: "test_tier_0",
23-
MakerFeePpm: 1_000,
24-
TakerFeePpm: 2_000,
23+
MakerFeePpm: 11_000,
24+
TakerFeePpm: 22_000,
2525
},
2626
{
2727
Name: "test_tier_1",
2828
AbsoluteVolumeRequirement: 200_000,
2929
TotalVolumeShareRequirementPpm: 100_000,
3030
MakerVolumeShareRequirementPpm: 50_000,
31-
MakerFeePpm: 11_000,
32-
TakerFeePpm: 22_000,
31+
MakerFeePpm: 1_000,
32+
TakerFeePpm: 2_000,
3333
},
3434
},
3535
}

protocol/testutil/keeper/assets.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ func AssetsKeepers(
8080
stakingKeeper,
8181
)
8282
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, msgSenderEnabled)
83-
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
83+
vaultKeeper, _ := createVaultKeeper(stateStore, db, cdc, transientStoreKey)
84+
feetiersKeeper, _ := createFeeTiersKeeper(stateStore, statsKeeper, vaultKeeper, affiliatesKeeper, db, cdc)
85+
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feetiersKeeper)
8486
marketMapKeeper, _ := createMarketMapKeeper(stateStore, db, cdc)
8587
pricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
8688
stateStore,

protocol/testutil/keeper/clob.go

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,23 @@ func NewClobKeepersTestContextWithUninitializedMemStore(
109109
)
110110
ks.AffiliatesKeeper, _ = createAffiliatesKeeper(stateStore, db, cdc, ks.StatsKeeper,
111111
indexerEventsTransientStoreKey, true)
112-
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, ks.AffiliatesKeeper)
112+
ks.VaultKeeper, _ = createVaultKeeper(
113+
stateStore,
114+
db,
115+
cdc,
116+
indexerEventsTransientStoreKey,
117+
)
118+
ks.FeeTiersKeeper, _ = createFeeTiersKeeper(
119+
stateStore,
120+
ks.StatsKeeper,
121+
ks.VaultKeeper,
122+
ks.AffiliatesKeeper,
123+
db,
124+
cdc,
125+
)
126+
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, ks.AffiliatesKeeper, ks.FeeTiersKeeper)
127+
ks.FeeTiersKeeper.SetRevShareKeeper(revShareKeeper)
128+
ks.AffiliatesKeeper.SetFeetiersKeeper(ks.FeeTiersKeeper)
113129
ks.MarketMapKeeper, _ = createMarketMapKeeper(stateStore, db, cdc)
114130
ks.PricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
115131
stateStore,
@@ -138,20 +154,6 @@ func NewClobKeepersTestContextWithUninitializedMemStore(
138154
true,
139155
)
140156
ks.BlockTimeKeeper, _ = createBlockTimeKeeper(stateStore, db, cdc)
141-
ks.VaultKeeper, _ = createVaultKeeper(
142-
stateStore,
143-
db,
144-
cdc,
145-
indexerEventsTransientStoreKey,
146-
)
147-
ks.FeeTiersKeeper, _ = createFeeTiersKeeper(
148-
stateStore,
149-
ks.StatsKeeper,
150-
ks.VaultKeeper,
151-
ks.AffiliatesKeeper,
152-
db,
153-
cdc,
154-
)
155157
ks.RewardsKeeper, _ = createRewardsKeeper(
156158
stateStore,
157159
ks.AssetsKeeper,

protocol/testutil/keeper/listing.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,21 @@ func ListingKeepers(
7272
stakingKeeper,
7373
)
7474
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, true)
75-
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
75+
vaultKeeper, _ := createVaultKeeper(
76+
stateStore,
77+
db,
78+
cdc,
79+
transientStoreKey,
80+
)
81+
feeTiersKeeper, _ := createFeeTiersKeeper(
82+
stateStore,
83+
statsKeeper,
84+
vaultKeeper,
85+
affiliatesKeeper,
86+
db,
87+
cdc,
88+
)
89+
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feeTiersKeeper)
7690
marketMapKeeper, _ = createMarketMapKeeper(stateStore, db, cdc)
7791
pricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
7892
stateStore,
@@ -102,20 +116,6 @@ func ListingKeepers(
102116
)
103117

104118
blockTimeKeeper, _ := createBlockTimeKeeper(stateStore, db, cdc)
105-
vaultKeeper, _ := createVaultKeeper(
106-
stateStore,
107-
db,
108-
cdc,
109-
transientStoreKey,
110-
)
111-
feeTiersKeeper, _ := createFeeTiersKeeper(
112-
stateStore,
113-
statsKeeper,
114-
vaultKeeper,
115-
affiliatesKeeper,
116-
db,
117-
cdc,
118-
)
119119
rewardsKeeper, _ := createRewardsKeeper(
120120
stateStore,
121121
assetsKeeper,

protocol/testutil/keeper/perpetuals.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ func PerpetualsKeepersWithClobHelpers(
8989
stakingKeeper,
9090
)
9191
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, true)
92-
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
92+
vaultKeeper, _ := createVaultKeeper(stateStore, db, cdc, transientStoreKey)
93+
feetiersKeeper, _ := createFeeTiersKeeper(stateStore, statsKeeper, vaultKeeper, affiliatesKeeper, db, cdc)
94+
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feetiersKeeper)
9395
pc.MarketMapKeeper, _ = createMarketMapKeeper(stateStore, db, cdc)
9496
pc.PricesKeeper, _, pc.IndexPriceCache, pc.MockTimeProvider = createPricesKeeper(
9597
stateStore,

protocol/testutil/keeper/prices.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ func PricesKeepers(t testing.TB) (
7070
stakingKeeper,
7171
)
7272
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, true)
73-
revShareKeeper, _, _ = createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
73+
vaultKeeper, _ := createVaultKeeper(stateStore, db, cdc, transientStoreKey)
74+
feetiersKeeper, _ := createFeeTiersKeeper(stateStore, statsKeeper, vaultKeeper, affiliatesKeeper, db, cdc)
75+
revShareKeeper, _, _ = createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feetiersKeeper)
7476
marketMapKeeper, _ = createMarketMapKeeper(stateStore, db, cdc)
7577
// Define necessary keepers here for unit tests
7678
keeper, storeKey, indexPriceCache, mockTimeProvider =

protocol/testutil/keeper/revshare.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
99
"github.com/dydxprotocol/v4-chain/protocol/lib"
1010
affiliateskeeper "github.com/dydxprotocol/v4-chain/protocol/x/affiliates/keeper"
11+
feetierskeeper "github.com/dydxprotocol/v4-chain/protocol/x/feetiers/keeper"
1112
"github.com/dydxprotocol/v4-chain/protocol/x/revshare/types"
1213

1314
storetypes "cosmossdk.io/store/types"
@@ -54,8 +55,10 @@ func RevShareKeepers(t testing.TB) (
5455
stakingKeeper,
5556
)
5657
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, true)
58+
vaultKeeper, _ := createVaultKeeper(stateStore, db, cdc, transientStoreKey)
59+
feetiersKeeper, _ := createFeeTiersKeeper(stateStore, statsKeeper, vaultKeeper, affiliatesKeeper, db, cdc)
5760
keeper, storeKey, mockTimeProvider =
58-
createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
61+
createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feetiersKeeper)
5962

6063
return []GenesisInitializer{keeper}
6164
},
@@ -69,6 +72,7 @@ func createRevShareKeeper(
6972
db *dbm.MemDB,
7073
cdc *codec.ProtoCodec,
7174
affiliatesKeeper *affiliateskeeper.Keeper,
75+
feetiersKeeper *feetierskeeper.Keeper,
7276
) (
7377
*keeper.Keeper,
7478
storetypes.StoreKey,
@@ -83,6 +87,7 @@ func createRevShareKeeper(
8387
lib.GovModuleAddress.String(),
8488
},
8589
*affiliatesKeeper,
90+
*feetiersKeeper,
8691
)
8792

8893
return k, storeKey, mockTimeProvider

protocol/testutil/keeper/rewards.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,6 @@ func RewardsKeepers(
6666
stakingKeeper,
6767
)
6868
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, true)
69-
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
70-
marketMapKeeper, _ := createMarketMapKeeper(stateStore, db, cdc)
71-
pricesKeeper, _, _, _ = createPricesKeeper(stateStore, db, cdc, transientStoreKey, revShareKeeper, marketMapKeeper)
72-
// Mock time provider response for market creation.
73-
assetsKeeper, _ = createAssetsKeeper(
74-
stateStore,
75-
db,
76-
cdc,
77-
pricesKeeper,
78-
transientStoreKey,
79-
true,
80-
)
8169
vaultKeeper, _ := createVaultKeeper(
8270
stateStore,
8371
db,
@@ -92,6 +80,18 @@ func RewardsKeepers(
9280
db,
9381
cdc,
9482
)
83+
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feetiersKeeper)
84+
marketMapKeeper, _ := createMarketMapKeeper(stateStore, db, cdc)
85+
pricesKeeper, _, _, _ = createPricesKeeper(stateStore, db, cdc, transientStoreKey, revShareKeeper, marketMapKeeper)
86+
// Mock time provider response for market creation.
87+
assetsKeeper, _ = createAssetsKeeper(
88+
stateStore,
89+
db,
90+
cdc,
91+
pricesKeeper,
92+
transientStoreKey,
93+
true,
94+
)
9595
rewardsKeeper, storeKey = createRewardsKeeper(
9696
stateStore,
9797
assetsKeeper,

protocol/testutil/keeper/sending.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ func SendingKeepersWithSubaccountsKeeper(t testing.TB, saKeeper types.Subaccount
7878
stakingKeeper,
7979
)
8080
affiliatesKeeper, _ := createAffiliatesKeeper(stateStore, db, cdc, statsKeeper, transientStoreKey, true)
81-
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper)
81+
vaultKeeper, _ := createVaultKeeper(stateStore, db, cdc, transientStoreKey)
82+
feetiersKeeper, _ := createFeeTiersKeeper(stateStore, statsKeeper, vaultKeeper, affiliatesKeeper, db, cdc)
83+
revShareKeeper, _, _ := createRevShareKeeper(stateStore, db, cdc, affiliatesKeeper, feetiersKeeper)
8284
marketMapKeeper, _ := createMarketMapKeeper(stateStore, db, cdc)
8385
ks.PricesKeeper, _, _, mockTimeProvider = createPricesKeeper(
8486
stateStore,

0 commit comments

Comments
 (0)