Skip to content

Commit

Permalink
[TRA-233] Fix IsIsolatedPerpetual function orientation (#1403)
Browse files Browse the repository at this point in the history
Signed-off-by: Shrenuj Bansal <shrenuj@dydx.exchange>
(cherry picked from commit fa2117e)
  • Loading branch information
shrenujb authored and mergify[bot] committed Apr 23, 2024
1 parent 1598800 commit 9770d2e
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 4 deletions.
8 changes: 6 additions & 2 deletions protocol/x/perpetuals/keeper/perpetual.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,12 @@ import (
)

func (k Keeper) IsIsolatedPerpetual(ctx sdk.Context, perpetualId uint32) (bool, error) {
insuranceFundName, err := k.GetInsuranceFundName(ctx, perpetualId)
return insuranceFundName == types.InsuranceFundName, err
perpetual, err := k.GetPerpetual(ctx, perpetualId)
if err != nil {
return false, err
}

return perpetual.Params.MarketType == types.PerpetualMarketType_PERPETUAL_MARKET_TYPE_ISOLATED, nil
}

// GetInsuranceFundName returns the name of the insurance fund account for a given perpetual.
Expand Down
32 changes: 32 additions & 0 deletions protocol/x/perpetuals/keeper/perpetual_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3542,3 +3542,35 @@ func TestModifyOpenInterest_store(t *testing.T) {
require.Equal(t, perpetualObject.OpenInterest, serializedOpenInterest)
}
}

func TestIsIsolatedPerpetual(t *testing.T) {
testCases := map[string]struct {
perp types.Perpetual
expected bool
}{
"Isolated Perpetual": {
perp: *perptest.GeneratePerpetual(
perptest.WithMarketType(types.PerpetualMarketType_PERPETUAL_MARKET_TYPE_ISOLATED),
),
expected: true,
},
"Cross Perpetual": {
perp: *perptest.GeneratePerpetual(
perptest.WithMarketType(types.PerpetualMarketType_PERPETUAL_MARKET_TYPE_CROSS),
),
expected: false,
},
}

for name, tc := range testCases {
t.Run(
name, func(t *testing.T) {
pc := keepertest.PerpetualsKeepers(t)
pc.PerpetualsKeeper.SetPerpetual(pc.Ctx, tc.perp)
isIsolated, err := pc.PerpetualsKeeper.IsIsolatedPerpetual(pc.Ctx, tc.perp.Params.Id)
require.NoError(t, err)
require.Equal(t, tc.expected, isIsolated)
},
)
}
}
4 changes: 2 additions & 2 deletions protocol/x/subaccounts/keeper/negative_tnc_subaccount.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@ func (k Keeper) getNegativeTncSubaccountStoreSuffix(
return "", err
}
if isIsolated {
return types.CrossCollateralSuffix, nil
} else {
return lib.UintToString(perpetualId), nil
} else {
return types.CrossCollateralSuffix, nil
}
}

Expand Down

0 comments on commit 9770d2e

Please sign in to comment.