Skip to content

Commit

Permalink
merge from upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
jakob-dydx committed Dec 20, 2023
1 parent 2bddbbe commit 82c56c0
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 18 deletions.
10 changes: 0 additions & 10 deletions protocol/daemons/server/liquidation.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"github.com/dydxprotocol/v4-chain/protocol/daemons/server/types"
liquidationtypes "github.com/dydxprotocol/v4-chain/protocol/daemons/server/types/liquidations"
"github.com/dydxprotocol/v4-chain/protocol/lib/metrics"
clobtypes "github.com/dydxprotocol/v4-chain/protocol/x/clob/types"
)

// LiquidationServer defines the fields required for liquidation updates.
Expand All @@ -26,15 +25,6 @@ func (server *Server) WithDaemonLiquidationInfo(
return server
}

// SetSubaccountOpenPositions stores the list of subaccount open positions in a go-routine safe map.
// Placeholder to allow for testing.
func (s *Server) SetSubaccountOpenPositions(
ctx context.Context,
subaccountsWithPositions map[uint32]*clobtypes.SubaccountOpenPositionInfo,
) {
s.daemonLiquidationInfo.UpdateSubaccountsWithPositions(subaccountsWithPositions)
}

// LiquidateSubaccounts stores the list of potentially liquidatable subaccount ids
// in a go-routine safe slice.
func (s *Server) LiquidateSubaccounts(
Expand Down
15 changes: 7 additions & 8 deletions protocol/x/clob/e2e/liquidation_deleveraging_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -645,7 +645,7 @@ func TestPlacePerpetualLiquidation_Deleveraging(t *testing.T) {
// Parameters.
placedMatchableOrders []clobtypes.MatchableOrder
liquidatableSubaccountIds []satypes.SubaccountId
subaccountPositionInfo map[uint32]*clobtypes.SubaccountOpenPositionInfo
subaccountPositionInfo []clobtypes.SubaccountOpenPositionInfo

// Configuration.
liquidationConfig clobtypes.LiquidationsConfig
Expand Down Expand Up @@ -1046,8 +1046,8 @@ func TestPlacePerpetualLiquidation_Deleveraging(t *testing.T) {
constants.Carl_Num0_1BTC_Short_50499USD,
constants.Dave_Num0_1BTC_Long_50000USD,
},
subaccountPositionInfo: map[uint32]*clobtypes.SubaccountOpenPositionInfo{
constants.BtcUsd_20PercentInitial_10PercentMaintenance.GetId(): {
subaccountPositionInfo: []clobtypes.SubaccountOpenPositionInfo{
{
PerpetualId: constants.BtcUsd_20PercentInitial_10PercentMaintenance.GetId(),
SubaccountsWithLongPosition: []satypes.SubaccountId{
constants.Dave_Num0,
Expand Down Expand Up @@ -1092,8 +1092,8 @@ func TestPlacePerpetualLiquidation_Deleveraging(t *testing.T) {
constants.Carl_Num0_1BTC_Short_100000USD,
constants.Dave_Num0_1BTC_Long_50000USD,
},
subaccountPositionInfo: map[uint32]*clobtypes.SubaccountOpenPositionInfo{
constants.BtcUsd_20PercentInitial_10PercentMaintenance.GetId(): {
subaccountPositionInfo: []clobtypes.SubaccountOpenPositionInfo{
{
PerpetualId: constants.BtcUsd_20PercentInitial_10PercentMaintenance.GetId(),
SubaccountsWithLongPosition: []satypes.SubaccountId{
constants.Dave_Num0,
Expand All @@ -1103,7 +1103,6 @@ func TestPlacePerpetualLiquidation_Deleveraging(t *testing.T) {
},
},
},
// Account should be deleveraged regardless of whether or not the liquidations engine returns this subaccount
liquidatableSubaccountIds: []satypes.SubaccountId{},
liquidationConfig: constants.LiquidationsConfig_FillablePrice_Max_Smmr,
liquidityTiers: constants.LiquidityTiers,
Expand Down Expand Up @@ -1215,9 +1214,9 @@ func TestPlacePerpetualLiquidation_Deleveraging(t *testing.T) {
require.Conditionf(t, resp.IsOK, "Expected CheckTx to succeed. Response: %+v", resp)
}

tApp.App.Server.SetSubaccountOpenPositions(ctx, tc.subaccountPositionInfo)
_, err := tApp.App.Server.LiquidateSubaccounts(ctx, &api.LiquidateSubaccountsRequest{
LiquidatableSubaccountIds: tc.liquidatableSubaccountIds,
LiquidatableSubaccountIds: tc.liquidatableSubaccountIds,
SubaccountOpenPositionInfo: tc.subaccountPositionInfo,
})
require.NoError(t, err)

Expand Down
4 changes: 4 additions & 0 deletions protocol/x/clob/types/clob_pair.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ func IsSupportedClobPairStatus(clobPairStatus ClobPair_Status) bool {
// the first provided ClobPair_Status to the second provided ClobPair_Status. Else, returns false.
// Transitions from a ClobPair_Status to itself are considered valid.
func IsSupportedClobPairStatusTransition(from ClobPair_Status, to ClobPair_Status) bool {
if !IsSupportedClobPairStatus(from) || !IsSupportedClobPairStatus(to) {
return false
}

if from == to {
return true
}
Expand Down
4 changes: 4 additions & 0 deletions protocol/x/clob/types/clob_pair_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ func TestIsSupportedClobPairStatusTransition_Unsupported(t *testing.T) {
// iterate over all permutations of clob pair statuses
for _, fromClobPairStatus := range types.ClobPair_Status_value {
for _, toClobPairStatus := range types.ClobPair_Status_value {
if toClobPairStatus == fromClobPairStatus {
continue
}

switch fromClobPairStatus {
case int32(types.ClobPair_STATUS_INITIALIZING):
{
Expand Down

0 comments on commit 82c56c0

Please sign in to comment.