Skip to content

Commit

Permalink
Clean up subaccount test util functions (#1779)
Browse files Browse the repository at this point in the history
  • Loading branch information
jayy04 authored Jun 26, 2024
1 parent eac0455 commit 75829b3
Show file tree
Hide file tree
Showing 13 changed files with 489 additions and 446 deletions.
25 changes: 0 additions & 25 deletions protocol/testutil/keeper/subaccounts.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package keeper

import (
"math/big"
"testing"

"github.com/cosmos/gogoproto/proto"
Expand All @@ -20,9 +19,7 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
"github.com/dydxprotocol/v4-chain/protocol/dtypes"
asskeeper "github.com/dydxprotocol/v4-chain/protocol/x/assets/keeper"
assettypes "github.com/dydxprotocol/v4-chain/protocol/x/assets/types"
blocktimekeeper "github.com/dydxprotocol/v4-chain/protocol/x/blocktime/keeper"
perpskeeper "github.com/dydxprotocol/v4-chain/protocol/x/perpetuals/keeper"
priceskeeper "github.com/dydxprotocol/v4-chain/protocol/x/prices/keeper"
Expand Down Expand Up @@ -122,28 +119,6 @@ func createSubaccountsKeeper(
return k, storeKey
}

func CreateUsdcAssetPosition(
quoteBalance *big.Int,
) []*types.AssetPosition {
return []*types.AssetPosition{
{
AssetId: assettypes.AssetUsdc.Id,
Quantums: dtypes.NewIntFromBigInt(quoteBalance),
},
}
}

func CreateUsdcAssetUpdate(
deltaQuoteBalance *big.Int,
) []types.AssetUpdate {
return []types.AssetUpdate{
{
AssetId: assettypes.AssetUsdc.Id,
BigQuantumsDelta: deltaQuoteBalance,
},
}
}

// GetSubaccountUpdateEventsFromIndexerBlock returns the subaccount update events in the
// Indexer Block event Kafka message.
func GetSubaccountUpdateEventsFromIndexerBlock(
Expand Down
104 changes: 104 additions & 0 deletions protocol/testutil/util/subaccounts_util.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package util

import (
"math/big"

"github.com/dydxprotocol/v4-chain/protocol/dtypes"
assettypes "github.com/dydxprotocol/v4-chain/protocol/x/assets/types"
satypes "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/types"
)

func CreateUsdcAssetPositions(
quoteBalance *big.Int,
) []*satypes.AssetPosition {
return []*satypes.AssetPosition{
CreateSingleAssetPosition(
assettypes.AssetUsdc.Id,
quoteBalance,
),
}
}

func CreateSingleAssetPosition(
assetId uint32,
quoteBalance *big.Int,
) *satypes.AssetPosition {
return &satypes.AssetPosition{
AssetId: assetId,
Quantums: dtypes.NewIntFromBigInt(quoteBalance),
}
}

func CreateUsdcAssetUpdates(
deltaQuoteBalance *big.Int,
) []satypes.AssetUpdate {
return []satypes.AssetUpdate{
{
AssetId: assettypes.AssetUsdc.Id,
BigQuantumsDelta: deltaQuoteBalance,
},
}
}

func CreateSinglePerpetualPosition(
perpetualId uint32,
quantums *big.Int,
fundingIndex *big.Int,
) *satypes.PerpetualPosition {
return &satypes.PerpetualPosition{
PerpetualId: perpetualId,
Quantums: dtypes.NewIntFromBigInt(quantums),
FundingIndex: dtypes.NewIntFromBigInt(fundingIndex),
}
}

// Creates a copy of a subaccount and changes the USDC asset position size of the subaccount by the passed in delta.
func ChangeUsdcBalance(subaccount satypes.Subaccount, deltaQuantums int64) satypes.Subaccount {
subaccountId := satypes.SubaccountId{
Owner: subaccount.Id.Owner,
Number: subaccount.Id.Number,
}
assetPositions := make([]*satypes.AssetPosition, 0)
for _, ap := range subaccount.AssetPositions {
if ap.AssetId != assettypes.AssetUsdc.Id {
assetPositions = append(
assetPositions,
CreateSingleAssetPosition(ap.AssetId, ap.Quantums.BigInt()),
)
} else {
assetPositions = append(
assetPositions,
CreateSingleAssetPosition(
ap.AssetId,
new(big.Int).Add(
ap.Quantums.BigInt(),
new(big.Int).SetInt64(deltaQuantums),
),
),
)
}
}
if len(assetPositions) == 0 {
assetPositions = nil
}
perpetualPositions := make([]*satypes.PerpetualPosition, 0)
for _, pp := range subaccount.PerpetualPositions {
perpetualPositions = append(
perpetualPositions,
CreateSinglePerpetualPosition(
pp.PerpetualId,
pp.Quantums.BigInt(),
pp.FundingIndex.BigInt(),
),
)
}
if len(perpetualPositions) == 0 {
perpetualPositions = nil
}
return satypes.Subaccount{
Id: &subaccountId,
AssetPositions: assetPositions,
PerpetualPositions: perpetualPositions,
MarginEnabled: subaccount.MarginEnabled,
}
}
6 changes: 3 additions & 3 deletions protocol/x/clob/client/cli/cancel_order_cli_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ import (
"github.com/dydxprotocol/v4-chain/protocol/testutil/appoptions"
testutil_bank "github.com/dydxprotocol/v4-chain/protocol/testutil/bank"
"github.com/dydxprotocol/v4-chain/protocol/testutil/constants"
testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper"
"github.com/dydxprotocol/v4-chain/protocol/testutil/network"
testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util"
cli_testutil "github.com/dydxprotocol/v4-chain/protocol/x/clob/client/testutil"
"github.com/dydxprotocol/v4-chain/protocol/x/clob/types"
epochstypes "github.com/dydxprotocol/v4-chain/protocol/x/epochs/types"
Expand Down Expand Up @@ -125,15 +125,15 @@ func (s *CancelOrderIntegrationTestSuite) SetupTest() {
Owner: s.validatorAddress.String(),
Number: cancelsSubaccountNumberZero,
},
AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(cancelsInitialQuoteBalance)),
AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(cancelsInitialQuoteBalance)),
PerpetualPositions: []*satypes.PerpetualPosition{},
},
satypes.Subaccount{
Id: &satypes.SubaccountId{
Owner: s.validatorAddress.String(),
Number: cancelsSubaccountNumberOne,
},
AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(cancelsInitialQuoteBalance)),
AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(cancelsInitialQuoteBalance)),
PerpetualPositions: []*satypes.PerpetualPosition{},
},
)
Expand Down
9 changes: 5 additions & 4 deletions protocol/x/clob/client/cli/place_order_cli_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ package cli_test

import (
"fmt"
appflags "github.com/dydxprotocol/v4-chain/protocol/app/flags"
"math"
"math/big"
"testing"

appflags "github.com/dydxprotocol/v4-chain/protocol/app/flags"

networktestutil "github.com/cosmos/cosmos-sdk/testutil/network"
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
Expand All @@ -19,8 +20,8 @@ import (
"github.com/dydxprotocol/v4-chain/protocol/testutil/appoptions"
testutil_bank "github.com/dydxprotocol/v4-chain/protocol/testutil/bank"
"github.com/dydxprotocol/v4-chain/protocol/testutil/constants"
testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper"
"github.com/dydxprotocol/v4-chain/protocol/testutil/network"
testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util"
cli_testutil "github.com/dydxprotocol/v4-chain/protocol/x/clob/client/testutil"
"github.com/dydxprotocol/v4-chain/protocol/x/clob/types"
epochstypes "github.com/dydxprotocol/v4-chain/protocol/x/epochs/types"
Expand Down Expand Up @@ -130,12 +131,12 @@ func (s *PlaceOrderIntegrationTestSuite) SetupSuite() {
sastate.Subaccounts,
satypes.Subaccount{
Id: &satypes.SubaccountId{Owner: s.validatorAddress.String(), Number: subaccountNumberZero},
AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(initialQuoteBalance)),
AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(initialQuoteBalance)),
PerpetualPositions: []*satypes.PerpetualPosition{},
},
satypes.Subaccount{
Id: &satypes.SubaccountId{Owner: s.validatorAddress.String(), Number: subaccountNumberOne},
AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(initialQuoteBalance)),
AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(initialQuoteBalance)),
PerpetualPositions: []*satypes.PerpetualPosition{},
},
)
Expand Down
Loading

0 comments on commit 75829b3

Please sign in to comment.