Skip to content

Commit e6686e6

Browse files
[OTE-877] deprecate OI indexer update event (backport #2499) (#2508)
Co-authored-by: Mohammed Affan <affan@dydx.exchange>
1 parent 74c110c commit e6686e6

File tree

10 files changed

+188
-360
lines changed

10 files changed

+188
-360
lines changed

indexer/packages/v4-protos/src/codegen/dydxprotocol/indexer/events/events.ts

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1372,31 +1372,47 @@ export interface AddressTradingRewardSDKType {
13721372

13731373
denom_amount: Uint8Array;
13741374
}
1375-
/** OpenInterestUpdateEventV1 is used for open interest update events */
1375+
/**
1376+
* OpenInterestUpdateEventV1 is used for open interest update events
1377+
* Deprecated.
1378+
*/
1379+
1380+
/** @deprecated */
13761381

13771382
export interface OpenInterestUpdateEventV1 {
1378-
/** The list of all open interest updates in the block. */
13791383
openInterestUpdates: OpenInterestUpdate[];
13801384
}
1381-
/** OpenInterestUpdateEventV1 is used for open interest update events */
1385+
/**
1386+
* OpenInterestUpdateEventV1 is used for open interest update events
1387+
* Deprecated.
1388+
*/
1389+
1390+
/** @deprecated */
13821391

13831392
export interface OpenInterestUpdateEventV1SDKType {
1384-
/** The list of all open interest updates in the block. */
13851393
open_interest_updates: OpenInterestUpdateSDKType[];
13861394
}
1387-
/** OpenInterestUpdate contains a single open interest update for a perpetual */
1395+
/**
1396+
* OpenInterestUpdate contains a single open interest update for a perpetual
1397+
* Deprecated.
1398+
*/
1399+
1400+
/** @deprecated */
13881401

13891402
export interface OpenInterestUpdate {
1390-
/** The ID of the perpetual market. */
13911403
perpetualId: number;
13921404
/** The new open interest value for the perpetual market. */
13931405

13941406
openInterest: Uint8Array;
13951407
}
1396-
/** OpenInterestUpdate contains a single open interest update for a perpetual */
1408+
/**
1409+
* OpenInterestUpdate contains a single open interest update for a perpetual
1410+
* Deprecated.
1411+
*/
1412+
1413+
/** @deprecated */
13971414

13981415
export interface OpenInterestUpdateSDKType {
1399-
/** The ID of the perpetual market. */
14001416
perpetual_id: number;
14011417
/** The new open interest value for the perpetual market. */
14021418

proto/dydxprotocol/indexer/events/events.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,14 +534,18 @@ message AddressTradingReward {
534534
}
535535

536536
// OpenInterestUpdateEventV1 is used for open interest update events
537+
// Deprecated.
537538
message OpenInterestUpdateEventV1 {
538539
// The list of all open interest updates in the block.
540+
option deprecated = true;
539541
repeated OpenInterestUpdate open_interest_updates = 1;
540542
}
541543

542544
// OpenInterestUpdate contains a single open interest update for a perpetual
545+
// Deprecated.
543546
message OpenInterestUpdate {
544547
// The ID of the perpetual market.
548+
option deprecated = true;
545549
uint32 perpetual_id = 1;
546550

547551
// The new open interest value for the perpetual market.

protocol/indexer/events/events.pb.go

Lines changed: 160 additions & 156 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

protocol/x/clob/e2e/long_term_orders_test.go

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -825,22 +825,6 @@ func TestPlaceLongTermOrder(t *testing.T) {
825825
EventIndex: 2,
826826
Version: indexerevents.OrderFillEventVersion,
827827
},
828-
{
829-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
830-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
831-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
832-
},
833-
Version: indexerevents.OpenInterestUpdateVersion,
834-
DataBytes: indexer_manager.GetBytes(
835-
&indexerevents.OpenInterestUpdateEventV1{
836-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
837-
{
838-
PerpetualId: Clob_0.MustGetPerpetualId(),
839-
OpenInterest: dtypes.NewInt(10_000_000_000),
840-
},
841-
},
842-
}),
843-
},
844828
},
845829
TxHashes: []string{
846830
string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{
@@ -1169,22 +1153,6 @@ func TestPlaceLongTermOrder(t *testing.T) {
11691153
EventIndex: 2,
11701154
Version: indexerevents.OrderFillEventVersion,
11711155
},
1172-
{
1173-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
1174-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
1175-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
1176-
},
1177-
Version: indexerevents.OpenInterestUpdateVersion,
1178-
DataBytes: indexer_manager.GetBytes(
1179-
&indexerevents.OpenInterestUpdateEventV1{
1180-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
1181-
{
1182-
PerpetualId: Clob_0.MustGetPerpetualId(),
1183-
OpenInterest: dtypes.NewInt(10_000_000_000),
1184-
},
1185-
},
1186-
}),
1187-
},
11881156
},
11891157
TxHashes: []string{
11901158
string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{
@@ -1340,22 +1308,6 @@ func TestPlaceLongTermOrder(t *testing.T) {
13401308
EventIndex: 2,
13411309
Version: indexerevents.OrderFillEventVersion,
13421310
},
1343-
{
1344-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
1345-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
1346-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
1347-
},
1348-
Version: indexerevents.OpenInterestUpdateVersion,
1349-
DataBytes: indexer_manager.GetBytes(
1350-
&indexerevents.OpenInterestUpdateEventV1{
1351-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
1352-
{
1353-
PerpetualId: Clob_0.MustGetPerpetualId(),
1354-
OpenInterest: dtypes.NewInt(20_000_000_000),
1355-
},
1356-
},
1357-
}),
1358-
},
13591311
},
13601312
TxHashes: []string{
13611313
string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{
@@ -1739,22 +1691,6 @@ func TestRegression_InvalidTimeInForce(t *testing.T) {
17391691
EventIndex: 2,
17401692
Version: indexerevents.OrderFillEventVersion,
17411693
},
1742-
{
1743-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
1744-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
1745-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
1746-
},
1747-
Version: indexerevents.OpenInterestUpdateVersion,
1748-
DataBytes: indexer_manager.GetBytes(
1749-
&indexerevents.OpenInterestUpdateEventV1{
1750-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
1751-
{
1752-
PerpetualId: Clob_0.MustGetPerpetualId(),
1753-
OpenInterest: dtypes.NewInt(10_000_000_000),
1754-
},
1755-
},
1756-
}),
1757-
},
17581694
},
17591695
TxHashes: []string{
17601696
string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{

protocol/x/clob/e2e/short_term_orders_test.go

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"github.com/stretchr/testify/require"
99
"golang.org/x/exp/slices"
1010

11-
"github.com/dydxprotocol/v4-chain/protocol/dtypes"
1211
"github.com/dydxprotocol/v4-chain/protocol/indexer"
1312
indexerevents "github.com/dydxprotocol/v4-chain/protocol/indexer/events"
1413
"github.com/dydxprotocol/v4-chain/protocol/indexer/indexer_manager"
@@ -219,24 +218,6 @@ func TestPlaceOrder(t *testing.T) {
219218
),
220219
),
221220
},
222-
{
223-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
224-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
225-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
226-
},
227-
Version: indexerevents.OpenInterestUpdateVersion,
228-
DataBytes: indexer_manager.GetBytes(
229-
&indexerevents.OpenInterestUpdateEventV1{
230-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
231-
{
232-
PerpetualId: Clob_0.MustGetPerpetualId(),
233-
OpenInterest: dtypes.NewIntFromUint64(
234-
PlaceOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTB20.Order.GetBigQuantums().Uint64(),
235-
),
236-
},
237-
},
238-
}),
239-
},
240221
},
241222
TxHashes: []string{string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{
242223
OperationsQueue: []clobtypes.OperationRaw{
@@ -399,24 +380,6 @@ func TestPlaceOrder(t *testing.T) {
399380
),
400381
),
401382
},
402-
{
403-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
404-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
405-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
406-
},
407-
Version: indexerevents.OpenInterestUpdateVersion,
408-
DataBytes: indexer_manager.GetBytes(
409-
&indexerevents.OpenInterestUpdateEventV1{
410-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
411-
{
412-
PerpetualId: Clob_0.MustGetPerpetualId(),
413-
OpenInterest: dtypes.NewIntFromUint64(
414-
PlaceOrder_Bob_Num0_Id0_Clob0_Sell5_Price10_GTB20.Order.GetBigQuantums().Uint64(),
415-
),
416-
},
417-
},
418-
}),
419-
},
420383
},
421384
TxHashes: []string{string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{
422385
OperationsQueue: []clobtypes.OperationRaw{
@@ -579,24 +542,6 @@ func TestPlaceOrder(t *testing.T) {
579542
),
580543
),
581544
},
582-
{
583-
Subtype: indexerevents.SubtypeOpenInterestUpdate,
584-
OrderingWithinBlock: &indexer_manager.IndexerTendermintEvent_BlockEvent_{
585-
BlockEvent: indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
586-
},
587-
Version: indexerevents.OpenInterestUpdateVersion,
588-
DataBytes: indexer_manager.GetBytes(
589-
&indexerevents.OpenInterestUpdateEventV1{
590-
OpenInterestUpdates: []*indexerevents.OpenInterestUpdate{
591-
{
592-
PerpetualId: Clob_0.MustGetPerpetualId(),
593-
OpenInterest: dtypes.NewIntFromUint64(
594-
PlaceOrder_Bob_Num0_Id0_Clob0_Sell5_Price10_GTB20.Order.GetBigQuantums().Uint64(),
595-
),
596-
},
597-
},
598-
}),
599-
},
600545
},
601546
TxHashes: []string{string(lib.GetTxHash(testtx.MustGetTxBytes(&clobtypes.MsgProposedOperations{
602547
OperationsQueue: []clobtypes.OperationRaw{

protocol/x/perpetuals/abci.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,4 @@ func EndBlocker(ctx sdk.Context, k types.PerpetualsKeeper) {
1515
// first so that new samples are processed in `MaybeProcessNewFundingTickEpoch`.
1616
k.MaybeProcessNewFundingSampleEpoch(ctx)
1717
k.MaybeProcessNewFundingTickEpoch(ctx)
18-
k.SendOIUpdatesToIndexer(ctx)
1918
}

protocol/x/perpetuals/abci_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ func TestEndBlocker(t *testing.T) {
2828
"MaybeProcessNewFundingSampleEpoch",
2929
ctx,
3030
).Return(nil)
31-
mck.On(
32-
"SendOIUpdatesToIndexer",
33-
ctx,
34-
)
3531
},
3632
expectedErr: nil,
3733
},

protocol/x/perpetuals/keeper/perpetual.go

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package keeper
22

33
import (
4-
"encoding/binary"
54
"fmt"
65
"math/big"
76
"math/rand"
@@ -1041,14 +1040,6 @@ func (k Keeper) ModifyOpenInterest(
10411040
perpetual.OpenInterest = dtypes.NewIntFromBigInt(bigOpenInterest)
10421041
k.setPerpetual(ctx, perpetual)
10431042

1044-
if ctx.ExecMode() == sdk.ExecModeFinalize {
1045-
updatedOIStore := prefix.NewStore(ctx.TransientStore(k.transientStoreKey), []byte(types.UpdatedOIKeyPrefix))
1046-
openInterestInBytes, err := perpetual.OpenInterest.Marshal()
1047-
if err != nil {
1048-
return err
1049-
}
1050-
updatedOIStore.Set(lib.Uint32ToKey(perpetualId), openInterestInBytes)
1051-
}
10521043
return nil
10531044
}
10541045

@@ -1481,42 +1472,6 @@ func (k Keeper) IsPositionUpdatable(
14811472
return true, nil
14821473
}
14831474

1484-
func (k Keeper) SendOIUpdatesToIndexer(ctx sdk.Context) {
1485-
updatedOIStore := prefix.NewStore(ctx.TransientStore(k.transientStoreKey), []byte(types.UpdatedOIKeyPrefix))
1486-
iterator := updatedOIStore.Iterator(nil, nil)
1487-
defer iterator.Close()
1488-
1489-
OIMessageArray := make([]*indexerevents.OpenInterestUpdate, 0)
1490-
1491-
for ; iterator.Valid(); iterator.Next() {
1492-
openInterestSerializableInt := dtypes.SerializableInt{}
1493-
if err := openInterestSerializableInt.Unmarshal(iterator.Value()); err != nil {
1494-
panic(errorsmod.Wrap(err, "failed to unmarshal open interest"))
1495-
}
1496-
OIMessage := indexerevents.OpenInterestUpdate{
1497-
PerpetualId: binary.BigEndian.Uint32(iterator.Key()),
1498-
OpenInterest: openInterestSerializableInt,
1499-
}
1500-
OIMessageArray = append(OIMessageArray, &OIMessage)
1501-
}
1502-
1503-
if len(OIMessageArray) == 0 {
1504-
return
1505-
}
1506-
1507-
k.GetIndexerEventManager().AddBlockEvent(
1508-
ctx,
1509-
indexerevents.SubtypeOpenInterestUpdate,
1510-
indexer_manager.IndexerTendermintEvent_BLOCK_EVENT_END_BLOCK,
1511-
indexerevents.OpenInterestUpdateVersion,
1512-
indexer_manager.GetBytes(
1513-
&indexerevents.OpenInterestUpdateEventV1{
1514-
OpenInterestUpdates: OIMessageArray,
1515-
},
1516-
),
1517-
)
1518-
}
1519-
15201475
// GetNextPerpetualID returns the next perpetual id to be used from the module store
15211476
func (k Keeper) GetNextPerpetualID(ctx sdk.Context) uint32 {
15221477
store := ctx.KVStore(k.storeKey)

protocol/x/perpetuals/keeper/perpetual_test.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3013,32 +3013,6 @@ func TestIsPositionUpdatable(t *testing.T) {
30133013
}
30143014
}
30153015

3016-
func TestModifyOpenInterest_store(t *testing.T) {
3017-
pc := keepertest.PerpetualsKeepers(t)
3018-
perps := keepertest.CreateLiquidityTiersAndNPerpetuals(t, pc.Ctx, pc.PerpetualsKeeper, pc.PricesKeeper, 100)
3019-
pc.Ctx = pc.Ctx.WithExecMode(sdk.ExecModeFinalize)
3020-
for _, perp := range perps {
3021-
openInterestDeltaBaseQuantums := big.NewInt(2_000_000 * (int64(perp.Params.Id)))
3022-
3023-
err := pc.PerpetualsKeeper.ModifyOpenInterest(
3024-
pc.Ctx,
3025-
perp.Params.Id,
3026-
openInterestDeltaBaseQuantums,
3027-
)
3028-
require.NoError(t, err)
3029-
}
3030-
3031-
transientStore := prefix.NewStore(pc.Ctx.TransientStore(pc.TransientStoreKey), []byte(types.UpdatedOIKeyPrefix))
3032-
for _, perp := range perps {
3033-
perpetualObject, err := pc.PerpetualsKeeper.GetPerpetual(pc.Ctx, perp.Params.Id)
3034-
require.NoError(t, err)
3035-
serializedOpenInterest := dtypes.SerializableInt{}
3036-
err = serializedOpenInterest.Unmarshal(transientStore.Get(lib.Uint32ToKey(perpetualObject.Params.Id)))
3037-
require.NoError(t, err)
3038-
require.Equal(t, perpetualObject.OpenInterest, serializedOpenInterest)
3039-
}
3040-
}
3041-
30423016
func TestIsIsolatedPerpetual(t *testing.T) {
30433017
testCases := map[string]struct {
30443018
perp types.Perpetual

protocol/x/perpetuals/types/types.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ type PerpetualsKeeper interface {
114114
ctx sdk.Context,
115115
) []Perpetual
116116
GetAllLiquidityTiers(ctx sdk.Context) (list []LiquidityTier)
117-
SendOIUpdatesToIndexer(ctx sdk.Context)
118117
ValidateAndSetPerpetual(
119118
ctx sdk.Context,
120119
perpetual Perpetual,

0 commit comments

Comments
 (0)