diff --git a/protocol/testutil/keeper/subaccounts.go b/protocol/testutil/keeper/subaccounts.go index cf95cc5980..6a9ac1c67e 100644 --- a/protocol/testutil/keeper/subaccounts.go +++ b/protocol/testutil/keeper/subaccounts.go @@ -1,7 +1,6 @@ package keeper import ( - "math/big" "testing" "github.com/cosmos/gogoproto/proto" @@ -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" @@ -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( diff --git a/protocol/testutil/util/subaccounts_util.go b/protocol/testutil/util/subaccounts_util.go new file mode 100644 index 0000000000..952f831d03 --- /dev/null +++ b/protocol/testutil/util/subaccounts_util.go @@ -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, + } +} diff --git a/protocol/x/clob/client/cli/cancel_order_cli_test.go b/protocol/x/clob/client/cli/cancel_order_cli_test.go index 8de1f7d1ff..1e212ee32d 100644 --- a/protocol/x/clob/client/cli/cancel_order_cli_test.go +++ b/protocol/x/clob/client/cli/cancel_order_cli_test.go @@ -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" @@ -125,7 +125,7 @@ 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{ @@ -133,7 +133,7 @@ func (s *CancelOrderIntegrationTestSuite) SetupTest() { Owner: s.validatorAddress.String(), Number: cancelsSubaccountNumberOne, }, - AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(cancelsInitialQuoteBalance)), + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(cancelsInitialQuoteBalance)), PerpetualPositions: []*satypes.PerpetualPosition{}, }, ) diff --git a/protocol/x/clob/client/cli/place_order_cli_test.go b/protocol/x/clob/client/cli/place_order_cli_test.go index 92d4fdf467..3b65557d94 100644 --- a/protocol/x/clob/client/cli/place_order_cli_test.go +++ b/protocol/x/clob/client/cli/place_order_cli_test.go @@ -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" @@ -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" @@ -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{}, }, ) diff --git a/protocol/x/clob/keeper/deleveraging_test.go b/protocol/x/clob/keeper/deleveraging_test.go index 3f54a3cd19..b2dcffa329 100644 --- a/protocol/x/clob/keeper/deleveraging_test.go +++ b/protocol/x/clob/keeper/deleveraging_test.go @@ -19,6 +19,7 @@ import ( "github.com/dydxprotocol/v4-chain/protocol/testutil/constants" keepertest "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" perptest "github.com/dydxprotocol/v4-chain/protocol/testutil/perpetuals" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" assettypes "github.com/dydxprotocol/v4-chain/protocol/x/assets/types" blocktimetypes "github.com/dydxprotocol/v4-chain/protocol/x/blocktime/types" "github.com/dydxprotocol/v4-chain/protocol/x/clob/memclob" @@ -487,7 +488,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 54_999_000_000), ), }, @@ -515,7 +516,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { }, { Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(100_000_000_000 - 54_999_000_000), ), }, @@ -568,7 +569,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 0.5 BTC short is $27,499.5 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 27_499_500_000), ), }, @@ -576,7 +577,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { Id: &constants.Dave_Num1, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 0.5 BTC short is $27,499.5 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 27_499_500_000), ), }, @@ -612,7 +613,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 54_999_000_000), ), }, @@ -644,7 +645,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 54_999_000_000), ), }, @@ -676,7 +677,7 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { Id: &constants.Dave_Num1, // TNC of liquidated subaccount is $0, which means the bankruptcy price // to close 1 BTC short is $50,000 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_000_000_000), ), }, @@ -723,13 +724,13 @@ func TestOffsetSubaccountPerpetualPosition(t *testing.T) { FundingIndex: dtypes.NewInt(0), }, }, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-3_000_000_000), ), }, { Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_000_000_000), ), }, @@ -923,7 +924,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 54_999_000_000), ), }, @@ -940,7 +941,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-45_001_000_000 + 54_999_000_000), ), }, @@ -957,7 +958,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-50_000_000_000 + 54_999_000_000), ), }, @@ -974,7 +975,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 1 BTC short is $54,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-50_001_000_000 + 54_999_000_000)), }, }, @@ -990,7 +991,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $0, which means the bankruptcy price // to close 1 BTC short is $50,000 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_000_000_000), ), }, @@ -1007,7 +1008,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $0, which means the bankruptcy price // to close 1 BTC short is $50,000 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-45_001_000_000 + 50_000_000_000), ), }, @@ -1053,7 +1054,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $-1, which means the bankruptcy price // to close 1 BTC short is $49,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 49_999_000_000), ), }, @@ -1070,7 +1071,7 @@ func TestProcessDeleveraging(t *testing.T) { Id: &constants.Dave_Num0, // TNC of liquidated subaccount is $-1, which means the bankruptcy price // to close 1 BTC short is $49,999 and we close both positions at this price. - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-45_001_000_000 + 49_999_000_000), ), }, @@ -1110,7 +1111,7 @@ func TestProcessDeleveraging(t *testing.T) { expectedLiquidatedSubaccount: satypes.Subaccount{ Id: &constants.Carl_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(54_999_000_000 - 5_499_900_000), ), PerpetualPositions: []*satypes.PerpetualPosition{ @@ -1123,7 +1124,7 @@ func TestProcessDeleveraging(t *testing.T) { }, expectedOffsettingSubaccount: satypes.Subaccount{ Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( // TNC of liquidated subaccount is $4,999, which means the bankruptcy price // to close 0.1 BTC short is $5,499.9 and we close both positions at this price. big.NewInt(50_000_000_000 + 5_499_900_000), @@ -1178,7 +1179,7 @@ func TestProcessDeleveraging(t *testing.T) { expectedLiquidatedSubaccount: satypes.Subaccount{ Id: &constants.Carl_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( // TNC of liquidated subaccount is $800, MMR(BTC) = $5,000, MMR(ETH) = $3,000, // which means the bankruptcy price to close 1 BTC short is $50,500 // and we close both positions at this price. @@ -1194,7 +1195,7 @@ func TestProcessDeleveraging(t *testing.T) { }, expectedOffsettingSubaccount: satypes.Subaccount{ Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_500_000_000), ), }, @@ -1352,13 +1353,13 @@ func TestProcessDeleveragingAtOraclePrice(t *testing.T) { expectedLiquidatedSubaccount: satypes.Subaccount{ Id: &constants.Carl_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(100_000_000_000 - 50_000_000_000), ), }, expectedOffsettingSubaccount: satypes.Subaccount{ Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_000_000_000), ), }, @@ -1370,13 +1371,13 @@ func TestProcessDeleveragingAtOraclePrice(t *testing.T) { expectedLiquidatedSubaccount: satypes.Subaccount{ Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_000_000_000), ), }, expectedOffsettingSubaccount: satypes.Subaccount{ Id: &constants.Carl_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(54_999_000_000 - 50_000_000_000), ), }, @@ -1388,7 +1389,7 @@ func TestProcessDeleveragingAtOraclePrice(t *testing.T) { expectedLiquidatedSubaccount: satypes.Subaccount{ Id: &constants.Carl_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(100_000_000_000 - 50_000_000_000), ), }, @@ -1411,13 +1412,13 @@ func TestProcessDeleveragingAtOraclePrice(t *testing.T) { expectedLiquidatedSubaccount: satypes.Subaccount{ Id: &constants.Carl_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(54_999_000_000 - 50_000_000_000), ), }, expectedOffsettingSubaccount: satypes.Subaccount{ Id: &constants.Dave_Num0, - AssetPositions: keepertest.CreateUsdcAssetPosition( + AssetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(50_000_000_000 + 50_000_000_000), ), }, diff --git a/protocol/x/clob/keeper/liquidations_test.go b/protocol/x/clob/keeper/liquidations_test.go index 8092b3fcc0..e0a6a8c00f 100644 --- a/protocol/x/clob/keeper/liquidations_test.go +++ b/protocol/x/clob/keeper/liquidations_test.go @@ -21,6 +21,7 @@ import ( "github.com/dydxprotocol/v4-chain/protocol/testutil/constants" keepertest "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" perptest "github.com/dydxprotocol/v4-chain/protocol/testutil/perpetuals" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" blocktimetypes "github.com/dydxprotocol/v4-chain/protocol/x/blocktime/types" "github.com/dydxprotocol/v4-chain/protocol/x/clob/memclob" "github.com/dydxprotocol/v4-chain/protocol/x/clob/types" @@ -2307,13 +2308,13 @@ func TestIsLiquidatable(t *testing.T) { }{ "Subaccount with no open positions but positive net collateral is not liquidatable": { expectedIsLiquidatable: false, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 1), ), }, "Subaccount with no open positions but negative net collateral is not liquidatable": { expectedIsLiquidatable: false, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -1), ), }, @@ -2328,7 +2329,7 @@ func TestIsLiquidatable(t *testing.T) { Quantums: dtypes.NewInt(10_000_000), // 0.1 BTC, $5,000 notional. }, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_000), ), expectedIsLiquidatable: false, @@ -2344,7 +2345,7 @@ func TestIsLiquidatable(t *testing.T) { Quantums: dtypes.NewInt(10_000_000), // 0.1 BTC, $5,000 notional. }, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_500), ), expectedIsLiquidatable: false, @@ -2360,7 +2361,7 @@ func TestIsLiquidatable(t *testing.T) { Quantums: dtypes.NewInt(10_000_000), // 0.1 BTC, $5,000 notional. }, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), expectedIsLiquidatable: true, @@ -2439,7 +2440,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2459,7 +2460,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_499), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2479,7 +2480,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2499,7 +2500,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2519,7 +2520,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2539,7 +2540,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2559,7 +2560,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2579,7 +2580,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2600,7 +2601,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.EthUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -490), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2622,7 +2623,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.EthUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 510), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2644,7 +2645,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.EthUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 110), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2665,7 +2666,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -13), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2686,7 +2687,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 13), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2709,7 +2710,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { // Note that if quote balance is positive for longs, this indicates that the subaccount's // quote balance exceeds the notional value of their long position. - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2728,7 +2729,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2744,7 +2745,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{}, @@ -2758,7 +2759,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2774,7 +2775,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2852,7 +2853,7 @@ func TestGetBankruptcyPriceInQuoteQuantums(t *testing.T) { []satypes.Update{ { SubaccountId: subaccountId, - AssetUpdates: keepertest.CreateUsdcAssetUpdate(bankruptcyPriceInQuoteQuantums), + AssetUpdates: testutil.CreateUsdcAssetUpdates(bankruptcyPriceInQuoteQuantums), PerpetualUpdates: []satypes.PerpetualUpdate{ { PerpetualId: tc.perpetualId, @@ -2900,7 +2901,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2919,7 +2920,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2948,7 +2949,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2977,7 +2978,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_499), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -2996,7 +2997,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_499), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3026,7 +3027,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_499), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3055,7 +3056,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3075,7 +3076,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3096,7 +3097,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 5_000), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3115,7 +3116,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_500), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3134,7 +3135,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_500), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3154,7 +3155,7 @@ func TestGetFillablePrice(t *testing.T) { constants.EthUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -490), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3174,7 +3175,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3203,7 +3204,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3230,7 +3231,7 @@ func TestGetFillablePrice(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3258,7 +3259,7 @@ func TestGetFillablePrice(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3274,7 +3275,7 @@ func TestGetFillablePrice(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{}, @@ -3288,7 +3289,7 @@ func TestGetFillablePrice(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3304,7 +3305,7 @@ func TestGetFillablePrice(t *testing.T) { perpetuals: []perptypes.Perpetual{ constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -4_501), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3412,7 +3413,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3436,7 +3437,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3466,7 +3467,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3495,7 +3496,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3519,7 +3520,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3549,7 +3550,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3579,7 +3580,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3603,7 +3604,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3626,7 +3627,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3649,7 +3650,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3673,7 +3674,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * -5_100), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3696,7 +3697,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3718,7 +3719,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ @@ -3736,7 +3737,7 @@ func TestGetLiquidationInsuranceFundDelta(t *testing.T) { constants.BtcUsd_20PercentInitial_10PercentMaintenance, }, - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(constants.QuoteBalance_OneDollar * 4_900), ), perpetualPositions: []*satypes.PerpetualPosition{ diff --git a/protocol/x/sending/e2e/isolated_subaccount_transfers_test.go b/protocol/x/sending/e2e/isolated_subaccount_transfers_test.go index 244fee11e2..29de4e2e1f 100644 --- a/protocol/x/sending/e2e/isolated_subaccount_transfers_test.go +++ b/protocol/x/sending/e2e/isolated_subaccount_transfers_test.go @@ -14,10 +14,10 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/dydxprotocol/v4-chain/protocol/dtypes" "github.com/dydxprotocol/v4-chain/protocol/lib" testapp "github.com/dydxprotocol/v4-chain/protocol/testutil/app" "github.com/dydxprotocol/v4-chain/protocol/testutil/constants" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" assettypes "github.com/dydxprotocol/v4-chain/protocol/x/assets/types" clobtypes "github.com/dydxprotocol/v4-chain/protocol/x/clob/types" feetiertypes "github.com/dydxprotocol/v4-chain/protocol/x/feetiers/types" @@ -70,8 +70,8 @@ func TestTransfer_Isolated_Non_Isolated_Subaccounts(t *testing.T) { constants.IsoUsd_IsolatedMarket, }, expectedSubaccounts: []satypes.Subaccount{ - changeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, -100_000_000), - changeUsdcBalance(constants.Bob_Num0_10_000USD, 100_000_000), + testutil.ChangeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, -100_000_000), + testutil.ChangeUsdcBalance(constants.Bob_Num0_10_000USD, 100_000_000), }, expectedCollateralPoolBalances: map[string]int64{ satypes.ModuleAddress.String(): 10_100_000_000, // $10,100 USDC @@ -103,8 +103,8 @@ func TestTransfer_Isolated_Non_Isolated_Subaccounts(t *testing.T) { constants.IsoUsd_IsolatedMarket, }, expectedSubaccounts: []satypes.Subaccount{ - changeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, 100_000_000), - changeUsdcBalance(constants.Bob_Num0_10_000USD, -100_000_000), + testutil.ChangeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, 100_000_000), + testutil.ChangeUsdcBalance(constants.Bob_Num0_10_000USD, -100_000_000), }, expectedCollateralPoolBalances: map[string]int64{ satypes.ModuleAddress.String(): 9_900_000_000, // $9,900 USDC @@ -139,8 +139,8 @@ func TestTransfer_Isolated_Non_Isolated_Subaccounts(t *testing.T) { constants.Iso2Usd_IsolatedMarket, }, expectedSubaccounts: []satypes.Subaccount{ - changeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, -100_000_000), - changeUsdcBalance(constants.Bob_Num0_1ISO2_LONG_10_000USD, 100_000_000), + testutil.ChangeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, -100_000_000), + testutil.ChangeUsdcBalance(constants.Bob_Num0_1ISO2_LONG_10_000USD, 100_000_000), }, expectedCollateralPoolBalances: map[string]int64{ authtypes.NewModuleAddress( @@ -234,8 +234,8 @@ func TestTransfer_Isolated_Non_Isolated_Subaccounts(t *testing.T) { constants.IsoUsd_IsolatedMarket, }, expectedSubaccounts: []satypes.Subaccount{ - changeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, -100_000_000), - changeUsdcBalance(constants.Bob_Num0_1ISO_LONG_10_000USD, 100_000_000), + testutil.ChangeUsdcBalance(constants.Alice_Num0_1ISO_LONG_10_000USD, -100_000_000), + testutil.ChangeUsdcBalance(constants.Bob_Num0_1ISO_LONG_10_000USD, 100_000_000), }, expectedCollateralPoolBalances: map[string]int64{ authtypes.NewModuleAddress( @@ -381,45 +381,3 @@ func TestTransfer_Isolated_Non_Isolated_Subaccounts(t *testing.T) { }) } } - -// 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 != constants.Usdc.Id { - assetPositions = append(assetPositions, &satypes.AssetPosition{ - AssetId: ap.AssetId, - Quantums: dtypes.NewInt(ap.Quantums.BigInt().Int64()), - }) - } else { - assetPositions = append(assetPositions, &satypes.AssetPosition{ - AssetId: ap.AssetId, - Quantums: dtypes.NewInt(ap.Quantums.BigInt().Int64() + deltaQuantums), - }) - } - } - if len(assetPositions) == 0 { - assetPositions = nil - } - perpetualPositions := make([]*satypes.PerpetualPosition, 0) - for _, pp := range subaccount.PerpetualPositions { - perpetualPositions = append(perpetualPositions, &satypes.PerpetualPosition{ - PerpetualId: pp.PerpetualId, - Quantums: dtypes.NewInt(pp.Quantums.BigInt().Int64()), - FundingIndex: dtypes.NewInt(pp.FundingIndex.BigInt().Int64()), - }) - } - if len(perpetualPositions) == 0 { - perpetualPositions = nil - } - return satypes.Subaccount{ - Id: &subaccountId, - AssetPositions: assetPositions, - PerpetualPositions: perpetualPositions, - MarginEnabled: subaccount.MarginEnabled, - } -} diff --git a/protocol/x/sending/types/transfer_test.go b/protocol/x/sending/types/transfer_test.go index 05013bf382..41bd03e697 100644 --- a/protocol/x/sending/types/transfer_test.go +++ b/protocol/x/sending/types/transfer_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/dydxprotocol/v4-chain/protocol/testutil/constants" - testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" "github.com/dydxprotocol/v4-chain/protocol/x/sending/types" satypes "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/types" @@ -28,11 +28,11 @@ func TestGetSubaccountUpdates(t *testing.T) { expected: []satypes.Update{ { SubaccountId: constants.Carl_Num0, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-500_000_000)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-500_000_000)), }, { SubaccountId: constants.Dave_Num0, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(500_000_000)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(500_000_000)), }, }, }, diff --git a/protocol/x/subaccounts/client/cli/query_subaccount_test.go b/protocol/x/subaccounts/client/cli/query_subaccount_test.go index 6f1e6f03d7..f50c45bcfd 100644 --- a/protocol/x/subaccounts/client/cli/query_subaccount_test.go +++ b/protocol/x/subaccounts/client/cli/query_subaccount_test.go @@ -15,9 +15,9 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - keepertest "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" "github.com/dydxprotocol/v4-chain/protocol/testutil/network" "github.com/dydxprotocol/v4-chain/protocol/testutil/nullify" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/client/cli" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/types" ) @@ -37,7 +37,7 @@ func networkWithSubaccountObjects(t *testing.T, n int) (*network.Network, []type Owner: strconv.Itoa(i), Number: uint32(n), }, - AssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1_000)), + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000)), } nullify.Fill(&subaccount) //nolint:staticcheck state.Subaccounts = append(state.Subaccounts, subaccount) diff --git a/protocol/x/subaccounts/genesis_test.go b/protocol/x/subaccounts/genesis_test.go index 906de1404d..8439528d64 100644 --- a/protocol/x/subaccounts/genesis_test.go +++ b/protocol/x/subaccounts/genesis_test.go @@ -8,6 +8,7 @@ import ( keepertest "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" "github.com/dydxprotocol/v4-chain/protocol/testutil/nullify" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/keeper" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/types" @@ -22,14 +23,14 @@ func TestGenesis(t *testing.T) { Owner: "foo", Number: uint32(0), }, - AssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1_000)), + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000)), }, { Id: &types.SubaccountId{ Owner: "bar", Number: uint32(99), }, - AssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1_000)), + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000)), }, }, } diff --git a/protocol/x/subaccounts/keeper/subaccount_test.go b/protocol/x/subaccounts/keeper/subaccount_test.go index dcb4e4d0fe..6fee0958e7 100644 --- a/protocol/x/subaccounts/keeper/subaccount_test.go +++ b/protocol/x/subaccounts/keeper/subaccount_test.go @@ -17,10 +17,11 @@ import ( bank_testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/bank" big_testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/big" "github.com/dydxprotocol/v4-chain/protocol/testutil/constants" - testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" + keepertest "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" "github.com/dydxprotocol/v4-chain/protocol/testutil/nullify" perptest "github.com/dydxprotocol/v4-chain/protocol/testutil/perpetuals" pricestest "github.com/dydxprotocol/v4-chain/protocol/testutil/prices" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" asstypes "github.com/dydxprotocol/v4-chain/protocol/x/assets/types" perptypes "github.com/dydxprotocol/v4-chain/protocol/x/perpetuals/types" pricestypes "github.com/dydxprotocol/v4-chain/protocol/x/prices/types" @@ -39,7 +40,7 @@ func createNSubaccount(keeper *keeper.Keeper, ctx sdk.Context, n int, usdcBalanc Owner: strconv.Itoa(i), Number: uint32(i), } - items[i].AssetPositions = testutil.CreateUsdcAssetPosition(usdcBalance) + items[i].AssetPositions = testutil.CreateUsdcAssetPositions(usdcBalance) keeper.SetSubaccount(ctx, items[i]) } @@ -53,7 +54,7 @@ func assertSubaccountUpdateEventsNotInIndexerBlock( k *keeper.Keeper, ctx sdk.Context, ) { - subaccountUpdates := testutil.GetSubaccountUpdateEventsFromIndexerBlock(ctx, k) + subaccountUpdates := keepertest.GetSubaccountUpdateEventsFromIndexerBlock(ctx, k) require.Empty(t, subaccountUpdates) } @@ -72,7 +73,7 @@ func assertSubaccountUpdateEventsInIndexerBlock( expectedSubaccoundIdToFundingPayments map[types.SubaccountId]map[uint32]dtypes.SerializableInt, expectedUpdatedAssetPositions map[types.SubaccountId][]*types.AssetPosition, ) { - subaccountUpdates := testutil.GetSubaccountUpdateEventsFromIndexerBlock(ctx, k) + subaccountUpdates := keepertest.GetSubaccountUpdateEventsFromIndexerBlock(ctx, k) // No subaccount update events included in the case of an error or failure to update subaccounts. if expectedErr != nil || !expectedSuccess { @@ -153,15 +154,15 @@ func TestGetCollateralPool(t *testing.T) { for name, tc := range tests { t.Run( name, func(t *testing.T) { - ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := testutil.SubaccountsKeepers( + ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := keepertest.SubaccountsKeepers( t, true, ) - testutil.CreateTestMarkets(t, ctx, pricesKeeper) - testutil.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) + keepertest.CreateTestMarkets(t, ctx, pricesKeeper) + keepertest.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) - require.NoError(t, testutil.CreateUsdcAsset(ctx, assetsKeeper)) + require.NoError(t, keepertest.CreateUsdcAsset(ctx, assetsKeeper)) for _, p := range tc.perpetuals { _, err := perpetualsKeeper.CreatePerpetual( ctx, @@ -188,7 +189,7 @@ func TestGetCollateralPool(t *testing.T) { } func TestSubaccountGet(t *testing.T) { - ctx, keeper, _, _, _, _, _, _, _ := testutil.SubaccountsKeepers(t, true) + ctx, keeper, _, _, _, _, _, _, _ := keepertest.SubaccountsKeepers(t, true) items := createNSubaccount(keeper, ctx, 10, big.NewInt(1_000)) for _, item := range items { rst := keeper.GetSubaccount(ctx, @@ -202,7 +203,7 @@ func TestSubaccountGet(t *testing.T) { } func TestSubaccountSet_Empty(t *testing.T) { - ctx, keeper, _, _, _, _, _, _, _ := testutil.SubaccountsKeepers(t, true) + ctx, keeper, _, _, _, _, _, _, _ := keepertest.SubaccountsKeepers(t, true) keeper.SetSubaccount(ctx, types.Subaccount{ Id: &constants.Alice_Num0, }) @@ -211,7 +212,7 @@ func TestSubaccountSet_Empty(t *testing.T) { keeper.SetSubaccount(ctx, types.Subaccount{ Id: &constants.Alice_Num0, - AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000)), + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000)), }) keeper.SetSubaccount(ctx, types.Subaccount{ Id: &constants.Alice_Num0, @@ -220,7 +221,7 @@ func TestSubaccountSet_Empty(t *testing.T) { } func TestSubaccountGetNonExistent(t *testing.T) { - ctx, keeper, _, _, _, _, _, _, _ := testutil.SubaccountsKeepers(t, true) + ctx, keeper, _, _, _, _, _, _, _ := keepertest.SubaccountsKeepers(t, true) id := types.SubaccountId{ Owner: "non-existent", Number: uint32(123), @@ -234,7 +235,7 @@ func TestSubaccountGetNonExistent(t *testing.T) { } func TestGetAllSubaccount(t *testing.T) { - ctx, keeper, _, _, _, _, _, _, _ := testutil.SubaccountsKeepers(t, true) + ctx, keeper, _, _, _, _, _, _, _ := keepertest.SubaccountsKeepers(t, true) items := createNSubaccount(keeper, ctx, 10, big.NewInt(1_000)) require.Equal( t, @@ -275,7 +276,7 @@ func TestForEachSubaccount(t *testing.T) { } for name, tc := range tests { t.Run(name, func(t *testing.T) { - ctx, keeper, _, _, _, _, _, _, _ := testutil.SubaccountsKeepers(t, true) + ctx, keeper, _, _, _, _, _, _, _ := keepertest.SubaccountsKeepers(t, true) items := createNSubaccount(keeper, ctx, tc.numSubaccountsInState, big.NewInt(1_000)) collectedSubaccounts := make([]types.Subaccount, 0) i := 0 @@ -344,7 +345,7 @@ func TestUpdateSubaccounts(t *testing.T) { expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, expectedAssetPositions: []*types.AssetPosition{ @@ -392,7 +393,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -449,7 +450,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -507,7 +508,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -561,16 +562,16 @@ func TestUpdateSubaccounts(t *testing.T) { expectedSuccessPerUpdate: nil, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, }, "update increases position size": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(25_000_000_000)), // $25,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(25_000_000_000)), // $25,000 expectedQuoteBalance: big.NewInt(0), expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, @@ -599,7 +600,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-25_000_000_000)), // -$25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-25_000_000_000)), // -$25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -611,8 +612,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: false, }, "update decreases position size": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(25_000_000_000)), // $25,000 - expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(25_000_000_000)), // $25,000 + expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -653,7 +654,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(25_000_000_000)), // $25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(25_000_000_000)), // $25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -665,8 +666,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: false, }, "update closes long position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(25_000_000_000)), // $25,000 - expectedQuoteBalance: big.NewInt(75_000_000_000), // $75,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(25_000_000_000)), // $25,000 + expectedQuoteBalance: big.NewInt(75_000_000_000), // $75,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -702,7 +703,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(50_000_000_000)), // $50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(50_000_000_000)), // $50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -714,8 +715,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update closes short position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -755,7 +756,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -767,7 +768,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update closes 2nd position and updates 1st": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -835,7 +836,7 @@ func TestUpdateSubaccounts(t *testing.T) { constants.BtcUsd, }, assetPositions: append( - testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 + testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 &types.AssetPosition{ AssetId: constants.BtcUsd.Id, Quantums: dtypes.NewInt(50_000), @@ -880,8 +881,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update closes first 1 positions and updates 2nd": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -938,7 +939,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -954,8 +955,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update opens new long position, uses current perpetual funding index": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(50_000_000_000), // $50,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -995,7 +996,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -1007,8 +1008,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: false, }, "update opens new short position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(150_000_000_000), // $50,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(150_000_000_000), // $50,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1047,7 +1048,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(50_000_000_000)), // $50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(50_000_000_000)), // $50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -1059,8 +1060,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: false, }, "update opens new long eth position with existing btc position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1107,8 +1108,8 @@ func TestUpdateSubaccounts(t *testing.T) { }, // TODO(DEC-581): add similar test case for multi-collateral asset support. "update eth position from long to short with existing btc position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1159,8 +1160,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update opens new long eth position with existing btc and sol position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1217,8 +1218,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update opens new long btc position with existing eth and sol position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1279,8 +1280,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update opens new long eth position with existing unsettled sol position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1350,8 +1351,8 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "provides out-of-order updates (not ordered by PerpetualId)": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 - expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 + expectedQuoteBalance: big.NewInt(100_000_000_000), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1499,7 +1500,7 @@ func TestUpdateSubaccounts(t *testing.T) { Owner: "non-existent account", Number: uint32(12), }, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(500_000_000)), // $500 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(500_000_000)), // $500 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -1508,7 +1509,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, }, { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100_000_000)), // $100 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100_000_000)), // $100 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(1), @@ -1534,7 +1535,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -1546,7 +1547,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "updates new USDC asset position which exceeds max uint64": { - assetPositions: testutil.CreateUsdcAssetPosition(new(big.Int).SetUint64(math.MaxUint64)), + assetPositions: testutil.CreateUsdcAssetPositions(new(big.Int).SetUint64(math.MaxUint64)), expectedQuoteBalance: new(big.Int).SetUint64(math.MaxUint64), expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, @@ -1563,7 +1564,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), }, }, expectedUpdatedAssetPositions: map[types.SubaccountId][]*types.AssetPosition{ @@ -1582,7 +1583,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "new USDC asset position (including unsettled funding) size exceeds max uint64": { - assetPositions: testutil.CreateUsdcAssetPosition(new(big.Int).SetUint64(math.MaxUint64 - 5)), + assetPositions: testutil.CreateUsdcAssetPositions(new(big.Int).SetUint64(math.MaxUint64 - 5)), expectedQuoteBalance: new(big.Int).Add( new(big.Int).SetUint64(math.MaxUint64), new(big.Int).SetInt64(1), @@ -1602,7 +1603,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(3)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(3)), }, }, expectedPerpetualPositions: []*types.PerpetualPosition{ @@ -1721,7 +1722,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -1770,7 +1771,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update ETH position; start with BTC and ETH positions; both BTC and ETH positions have unsettled funding": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1848,7 +1849,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update ETH position; start with BTC and ETH positions; only ETH position has unsettled funding": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1920,7 +1921,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update closes ETH position; start with BTC and ETH positions; both BTC and ETH positions have unsettled funding": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -1994,7 +1995,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "update closes ETH position; start with ETH position; ETH position has no unsettled funding": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100_000_000_000)), // $100,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100_000_000_000)), // $100,000 expectedSuccess: true, expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, perpetuals: []perptypes.Perpetual{ @@ -2040,7 +2041,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "2 updates, 1 update involves not-updatable perp": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedErr: types.ErrProductPositionNotUpdatable, perpetuals: []perptypes.Perpetual{ *perptest.GeneratePerpetual( @@ -2108,7 +2109,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "Isolated subaccounts - has update for both an isolated perpetual and non-isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -2138,7 +2139,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "Isolated subaccounts - has update for both 2 isolated perpetuals": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -2168,7 +2169,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "Isolated subaccounts - subaccount with isolated perpetual position has update for non-isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -2208,7 +2209,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "Isolated subaccounts - subaccount with isolated perpetual position has update for another isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -2248,7 +2249,7 @@ func TestUpdateSubaccounts(t *testing.T) { msgSenderEnabled: true, }, "Isolated subaccounts - subaccount with non-isolated perpetual position has update for isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -2289,7 +2290,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, `Isolated - subaccounts - empty subaccount has update to open position for isolated perpetual, collateral is moved from cross-perpetual collateral pool to isolated perpetual collateral pool`: { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), collateralPoolUsdcBalances: map[string]int64{ types.ModuleAddress.String(): 1_500_000_000_000, // $1,500,000 USDC }, @@ -2338,7 +2339,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100_000_000)), // -$100 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100_000_000)), // -$100 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(3), @@ -2351,7 +2352,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, `Isolated - subaccounts - subaccount has update to close position for isolated perpetual, collateral is moved from isolated perpetual collateral pool to cross perpetual collateral pool`: { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(999_900_000_000)), // $999,900 USDC + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(999_900_000_000)), // $999,900 USDC collateralPoolUsdcBalances: map[string]int64{ types.ModuleAddress.String(): 2_000_000_000_000, // $500,000 USDC authtypes.NewModuleAddress( @@ -2403,7 +2404,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100_000_000)), // $100 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100_000_000)), // $100 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(3), @@ -2416,7 +2417,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, `Isolated subaccounts - empty subaccount has update to open position for isolated perpetual, errors out when collateral pool for cross perpetuals has no funds`: { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{}, perpetuals: []perptypes.Perpetual{ @@ -2433,7 +2434,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100_000_000)), // -$100 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100_000_000)), // -$100 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(3), @@ -2447,7 +2448,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, `Isolated subaccounts - isolated subaccount has update to close position for isolated perpetual, errors out when collateral pool for isolated perpetual has no funds`: { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{}, perpetuals: []perptypes.Perpetual{ @@ -2476,7 +2477,7 @@ func TestUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100_000_000)), // $100 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100_000_000)), // $100 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(3), @@ -2523,11 +2524,11 @@ func TestUpdateSubaccounts(t *testing.T) { }, }, }, - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(900_000_000_000)), // 900_000 USDC + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(900_000_000_000)), // 900_000 USDC additionalTestSubaccounts: []types.Subaccount{ { Id: &constants.Bob_Num0, - AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt( + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt( 900_000_000_000, )), // 900_000 USDC }, @@ -2593,7 +2594,7 @@ func TestUpdateSubaccounts(t *testing.T) { Quantums: dtypes.NewInt(100_000_000), // 1 BTC }, }, - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-40_000_000_000)), // -40_000 USDC + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-40_000_000_000)), // -40_000 USDC updates: []types.Update{ { PerpetualUpdates: []types.PerpetualUpdate{ @@ -2628,7 +2629,7 @@ func TestUpdateSubaccounts(t *testing.T) { additionalTestSubaccounts: []types.Subaccount{ { Id: &constants.Bob_Num0, - AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt( + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt( 120_000_000_000, )), // 120_000 USDC PerpetualPositions: []*types.PerpetualPosition{ @@ -2700,7 +2701,7 @@ func TestUpdateSubaccounts(t *testing.T) { Quantums: dtypes.NewInt(100_000_000), // 1 BTC }, }, - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-40_000_000_000)), // -40_000 USDC + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-40_000_000_000)), // -40_000 USDC updates: []types.Update{ { PerpetualUpdates: []types.PerpetualUpdate{ @@ -2735,7 +2736,7 @@ func TestUpdateSubaccounts(t *testing.T) { additionalTestSubaccounts: []types.Subaccount{ { Id: &constants.Bob_Num0, - AssetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(5_000_000_000)), // 5000 USDC + AssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(5_000_000_000)), // 5000 USDC PerpetualPositions: []*types.PerpetualPosition{ { PerpetualId: uint32(0), @@ -2799,13 +2800,13 @@ func TestUpdateSubaccounts(t *testing.T) { for name, tc := range tests { t.Run(name, func(t *testing.T) { - ctx, keeper, pricesKeeper, perpetualsKeeper, _, bankKeeper, assetsKeeper, _, _ := testutil.SubaccountsKeepers( + ctx, keeper, pricesKeeper, perpetualsKeeper, _, bankKeeper, assetsKeeper, _, _ := keepertest.SubaccountsKeepers( t, tc.msgSenderEnabled, ) ctx = ctx.WithTxBytes(constants.TestTxBytes) - testutil.CreateTestMarkets(t, ctx, pricesKeeper) - testutil.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) + keepertest.CreateTestMarkets(t, ctx, pricesKeeper) + keepertest.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) for _, m := range tc.marketParamPrices { _, err := pricesKeeper.CreateMarket( @@ -2817,7 +2818,7 @@ func TestUpdateSubaccounts(t *testing.T) { } // Always creates USDC asset first - require.NoError(t, testutil.CreateUsdcAsset(ctx, assetsKeeper)) + require.NoError(t, keepertest.CreateUsdcAsset(ctx, assetsKeeper)) for _, a := range tc.assets { _, err := assetsKeeper.CreateAsset( ctx, @@ -3006,7 +3007,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, expectedAssetPositions: map[types.SubaccountId][]*types.AssetPosition{ @@ -3044,7 +3045,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, expectedAssetPositions: map[types.SubaccountId][]*types.AssetPosition{ @@ -3082,7 +3083,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, expectedAssetPositions: map[types.SubaccountId][]*types.AssetPosition{ @@ -3129,7 +3130,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3161,7 +3162,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3206,7 +3207,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3250,7 +3251,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3296,7 +3297,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3331,7 +3332,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3371,11 +3372,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3417,11 +3418,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3466,11 +3467,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3515,11 +3516,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, }, msgSenderEnabled: true, @@ -3536,7 +3537,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, "well-collateralized matches are not blocked if negative TNC subaccount was seen at current block": { assetPositions: map[types.SubaccountId][]*types.AssetPosition{ - firstSubaccountId: testutil.CreateUsdcAssetPosition(big.NewInt(25_000_000_000)), // $25,000 + firstSubaccountId: testutil.CreateUsdcAssetPositions(big.NewInt(25_000_000_000)), // $25,000 }, expectedQuoteBalance: big.NewInt(0), expectedSuccess: true, @@ -3566,7 +3567,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-25_000_000_000)), // -$25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-25_000_000_000)), // -$25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3576,7 +3577,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(25_000_000_000)), // $25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(25_000_000_000)), // $25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3597,7 +3598,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { `well-collateralized matches are not blocked if current block is within WITHDRAWAL_AND_TRANSFERS_BLOCKED_AFTER_NEGATIVE_TNC_SUBACCOUNT_SEEN_BLOCKS`: { assetPositions: map[types.SubaccountId][]*types.AssetPosition{ - firstSubaccountId: testutil.CreateUsdcAssetPosition(big.NewInt(25_000_000_000)), // $25,000 + firstSubaccountId: testutil.CreateUsdcAssetPositions(big.NewInt(25_000_000_000)), // $25,000 }, expectedQuoteBalance: big.NewInt(0), expectedSuccess: true, @@ -3627,7 +3628,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-25_000_000_000)), // -$25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-25_000_000_000)), // -$25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3637,7 +3638,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(25_000_000_000)), // $25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(25_000_000_000)), // $25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3658,7 +3659,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, "well-collateralized matches are not blocked if negative TNC subaccount was never seen": { assetPositions: map[types.SubaccountId][]*types.AssetPosition{ - firstSubaccountId: testutil.CreateUsdcAssetPosition(big.NewInt(25_000_000_000)), // $25,000 + firstSubaccountId: testutil.CreateUsdcAssetPositions(big.NewInt(25_000_000_000)), // $25,000 }, expectedQuoteBalance: big.NewInt(0), expectedSuccess: true, @@ -3688,7 +3689,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-25_000_000_000)), // -$25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-25_000_000_000)), // -$25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3698,7 +3699,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(25_000_000_000)), // $25,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(25_000_000_000)), // $25,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3734,7 +3735,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3744,7 +3745,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(50_000_000_000)), // $50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(50_000_000_000)), // $50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3780,7 +3781,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3790,7 +3791,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(50_000_000_000)), // $50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(50_000_000_000)), // $50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3827,7 +3828,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3837,7 +3838,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(50_000_000_000)), // $50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(50_000_000_000)), // $50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -3875,11 +3876,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -3912,11 +3913,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -3950,11 +3951,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -3987,11 +3988,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -4030,11 +4031,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -4075,11 +4076,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -4122,11 +4123,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -4171,11 +4172,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -4220,11 +4221,11 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { updates: []types.Update{ { SubaccountId: firstSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-100)), }, { SubaccountId: secondSubaccountId, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(100)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(100)), }, }, msgSenderEnabled: true, @@ -4243,13 +4244,13 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { for name, tc := range tests { t.Run(name, func(t *testing.T) { - ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := testutil.SubaccountsKeepers( + ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := keepertest.SubaccountsKeepers( t, tc.msgSenderEnabled, ) ctx = ctx.WithTxBytes(constants.TestTxBytes) - testutil.CreateTestMarkets(t, ctx, pricesKeeper) - testutil.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) + keepertest.CreateTestMarkets(t, ctx, pricesKeeper) + keepertest.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) for _, m := range tc.marketParamPrices { _, err := pricesKeeper.CreateMarket( @@ -4261,7 +4262,7 @@ func TestUpdateSubaccounts_WithdrawalsBlocked(t *testing.T) { } // Always creates USDC asset first - require.NoError(t, testutil.CreateUsdcAsset(ctx, assetsKeeper)) + require.NoError(t, keepertest.CreateUsdcAsset(ctx, assetsKeeper)) for _, a := range tc.assets { _, err := assetsKeeper.CreateAsset( ctx, @@ -4760,10 +4761,10 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "new USDC asset position exceeds max uint64": { - assetPositions: testutil.CreateUsdcAssetPosition(new(big.Int).SetUint64(math.MaxUint64)), + assetPositions: testutil.CreateUsdcAssetPositions(new(big.Int).SetUint64(math.MaxUint64)), updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), }, }, updateType: types.Deposit, @@ -4814,7 +4815,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4841,7 +4842,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4850,7 +4851,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-49_999_000_000)), // -$49,999 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-49_999_000_000)), // -$49,999 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4873,7 +4874,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { "Second update results in no change, " + "Third update makes account _more_ collateralized," + "Fourth update makes it collateralized": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-496_000_000)), // -$496 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-496_000_000)), // -$496 expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{ types.StillUndercollateralized, @@ -4889,7 +4890,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4906,7 +4907,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(500_000)), // $.50 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(500_000)), // $.50 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4915,7 +4916,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(2_000_000)), // $2 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(2_000_000)), // $2 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4926,10 +4927,10 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "USDC asset position is negative but increasing when no positions are open": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-10)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-10)), updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), // $.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), // $.000001 }, }, expectedSuccess: true, @@ -4938,10 +4939,10 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "USDC asset position is negative but unchanging when no positions are open": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-10)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-10)), updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(0)), // $0 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(0)), // $0 }, }, expectedSuccess: false, @@ -4952,7 +4953,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { "USDC asset position decreases below zero when no positions are open": { updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 }, }, expectedSuccess: false, @@ -4961,10 +4962,10 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "USDC asset position decreases further below zero when no positions are open": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-1)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-1)), updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 }, }, expectedSuccess: false, @@ -4973,7 +4974,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "two updates on different accounts, second account is new account": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(50_000_000_000)), // $50,000 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(50_000_000_000)), // $50,000 expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.Success, types.NewlyUndercollateralized}, perpetuals: []perptypes.Perpetual{ @@ -4984,7 +4985,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -4997,7 +4998,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { Owner: "non-existent-acount", Number: uint32(0), }, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-50_000_000_000)), // -$50,000 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-50_000_000_000)), // -$50,000 PerpetualUpdates: []types.PerpetualUpdate{ { PerpetualId: uint32(0), @@ -5008,7 +5009,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "unsettled funding reduces USDC asset position to 1; further decrease USDC asset position, still collateralized": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), perpetuals: []perptypes.Perpetual{ constants.BtcUsd_100PercentMarginRequirement, }, @@ -5021,7 +5022,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 }, }, expectedSuccess: true, @@ -5030,7 +5031,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "unsettled funding reduces USDC asset position to zero; further decrease USDC asset position, undercollateralized": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(100)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), perpetuals: []perptypes.Perpetual{ constants.BtcUsd_100PercentMarginRequirement, }, @@ -5043,7 +5044,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 }, }, expectedSuccess: false, @@ -5052,7 +5053,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "unsettled funding makes position undercollateralized": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(200)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(200)), perpetuals: []perptypes.Perpetual{ constants.BtcUsd_100PercentMarginRequirement, }, @@ -5065,7 +5066,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 }, }, expectedSuccess: false, @@ -5075,7 +5076,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, "position was undercollateralized before update due to funding and still undercollateralized" + "after due to funding": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(199)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(199)), perpetuals: []perptypes.Perpetual{ constants.BtcUsd_100PercentMarginRequirement, }, @@ -5088,7 +5089,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), // -$0.000001 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), // -$0.000001 }, }, expectedSuccess: false, @@ -5097,7 +5098,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "unsettled funding makes position with negative USDC asset position collateralized before update": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-100)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-100)), perpetuals: []perptypes.Perpetual{ constants.BtcUsd_100PercentMarginRequirement, }, @@ -5117,7 +5118,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "adding unsettled funding to USDC asset position exceeds max uint64": { - assetPositions: testutil.CreateUsdcAssetPosition(new(big.Int).SetUint64(math.MaxUint64 - 1)), + assetPositions: testutil.CreateUsdcAssetPositions(new(big.Int).SetUint64(math.MaxUint64 - 1)), perpetuals: []perptypes.Perpetual{ constants.BtcUsd_100PercentMarginRequirement, }, @@ -5136,7 +5137,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, }, "adding unsettled funding to USDC asset position exceeds negative max uint64": { - assetPositions: testutil.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( new(big.Int).Neg(new(big.Int).SetUint64(math.MaxUint64 - 1)), ), perpetuals: []perptypes.Perpetual{ @@ -5157,7 +5158,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, }, "adding unsettled funding, original USDC asset position and USDC asset position delta exceeds max int64": { - assetPositions: testutil.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( new(big.Int).SetUint64(math.MaxUint64 - 5), ), perpetuals: []perptypes.Perpetual{ @@ -5172,7 +5173,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, updates: []types.Update{ { - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(3)), // $3 + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(3)), // $3 }, }, updateType: types.Deposit, @@ -5180,7 +5181,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { expectedSuccessPerUpdate: []types.UpdateResult{types.Success}, }, "2 updates, 1 update involves not-updatable perp": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedErr: types.ErrProductPositionNotUpdatable, perpetuals: []perptypes.Perpetual{ *perptest.GeneratePerpetual( @@ -5228,7 +5229,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "Isolated subaccounts - has update for both an isolated perpetual and non-isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -5251,7 +5252,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "Isolated subaccounts - has update for both 2 isolated perpetuals": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -5274,7 +5275,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "Isolated subaccounts - subaccount with isolated perpetual position has update for non-isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -5300,7 +5301,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "Isolated subaccounts - subaccount with isolated perpetual position has update for another isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -5326,7 +5327,7 @@ func TestCanUpdateSubaccounts(t *testing.T) { }, }, "Isolated subaccounts - subaccount with non-isolated perpetual position has update for isolated perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1_000_000_000_000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1_000_000_000_000)), expectedSuccess: false, expectedSuccessPerUpdate: []types.UpdateResult{types.ViolatesIsolatedSubaccountConstraints}, perpetuals: []perptypes.Perpetual{ @@ -5355,11 +5356,11 @@ func TestCanUpdateSubaccounts(t *testing.T) { for name, tc := range tests { t.Run(name, func(t *testing.T) { - ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := testutil.SubaccountsKeepers(t, true) - testutil.CreateTestMarkets(t, ctx, pricesKeeper) - testutil.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) + ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := keepertest.SubaccountsKeepers(t, true) + keepertest.CreateTestMarkets(t, ctx, pricesKeeper) + keepertest.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) - require.NoError(t, testutil.CreateUsdcAsset(ctx, assetsKeeper)) + require.NoError(t, keepertest.CreateUsdcAsset(ctx, assetsKeeper)) for _, a := range tc.assets { _, err := assetsKeeper.CreateAsset( ctx, @@ -5478,21 +5479,21 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }{ "zero balance": {}, "non-negative USDC asset position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(123_456)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(123_456)), expectedNetCollateral: big.NewInt(123_456), }, "negative USDC asset position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-123_456)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-123_456)), expectedNetCollateral: big.NewInt(-123_456), }, "USDC asset position with update": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-123_456)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-123_456)), expectedNetCollateral: big.NewInt(0), - assetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(123_456)), + assetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(123_456)), }, "single perpetual and USDC asset position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(10_000_000_001)), // $10,000.000001 - expectedNetCollateral: big.NewInt(60_000_000_001), // $60,000.000001 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(10_000_000_001)), // $10,000.000001 + expectedNetCollateral: big.NewInt(60_000_000_001), // $60,000.000001 perpetuals: []perptypes.Perpetual{ constants.BtcUsd_NoMarginRequirement, }, @@ -5501,8 +5502,8 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, }, "single perpetual, USDC asset position and unsettled funding (long)": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(10_000_000_001)), // $10,000.000001 - expectedNetCollateral: big.NewInt(60_006_250_001), // $60,006.250001 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(10_000_000_001)), // $10,000.000001 + expectedNetCollateral: big.NewInt(60_006_250_001), // $60,006.250001 perpetuals: []perptypes.Perpetual{ constants.BtcUsd_NoMarginRequirement, }, @@ -5515,8 +5516,8 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, }, "single perpetual, USDC asset position and unsettled funding (short)": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(-10_000_000_001)), // -$10,000.000001 - expectedNetCollateral: big.NewInt(-60_006_250_001), // -$60,006.250001 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(-10_000_000_001)), // -$10,000.000001 + expectedNetCollateral: big.NewInt(-60_006_250_001), // -$60,006.250001 perpetuals: []perptypes.Perpetual{ constants.BtcUsd_NoMarginRequirement, }, @@ -5529,7 +5530,7 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, }, "non-existing perpetual heled by subaccount (should never happen)": { - assetPositions: testutil.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(-10_000_000_001), // -$10,000.000001 ), expectedNetCollateral: big.NewInt(-60_006_250_001), // -$60,006.250001 @@ -5546,16 +5547,16 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { expectedErr: perptypes.ErrPerpetualDoesNotExist, }, "USDC asset position update underflows uint64": { - assetPositions: testutil.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( constants.BigNegMaxUint64(), ), - assetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(-1)), + assetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(-1)), }, "USDC asset position update overflows uint64": { - assetPositions: testutil.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( new(big.Int).SetUint64(math.MaxUint64), ), - assetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), + assetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), }, "update for non-existent perpetual": { expectedErr: perptypes.ErrPerpetualDoesNotExist, @@ -5567,8 +5568,8 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, }, "update with no existing position": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(10_000_000_001)), // $10,000.000001 - expectedNetCollateral: big.NewInt(60_000_000_001), // $60,000.000001 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(10_000_000_001)), // $10,000.000001 + expectedNetCollateral: big.NewInt(60_000_000_001), // $60,000.000001 perpetuals: []perptypes.Perpetual{ constants.BtcUsd_NoMarginRequirement, }, @@ -5580,8 +5581,8 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, }, "single perpetual with USDC asset position and positive update to perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(10_000_000_001)), // $10,000.000001 - expectedNetCollateral: big.NewInt(110_000_000_001), // $110,000.000001 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(10_000_000_001)), // $10,000.000001 + expectedNetCollateral: big.NewInt(110_000_000_001), // $110,000.000001 perpetuals: []perptypes.Perpetual{ constants.BtcUsd_NoMarginRequirement, }, @@ -5635,8 +5636,8 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, }, "single perpetual with USDC asset position and negative update to perpetual": { - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(10_000_000_001)), // $10,000.000001 - expectedNetCollateral: big.NewInt(10_000_000_001), // $10,000.000001 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(10_000_000_001)), // $10,000.000001 + expectedNetCollateral: big.NewInt(10_000_000_001), // $10,000.000001 perpetuals: []perptypes.Perpetual{ constants.BtcUsd_NoMarginRequirement, }, @@ -5673,7 +5674,7 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, "multiple perpetual updates for the same position": { useEmptySubaccount: true, - assetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1_000_000)), + assetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1_000_000)), expectedNetCollateral: big.NewInt(-99_249_000_000), // $1 - $100,000 (BTC update) + $750 (ETH update) expectedInitialMargin: big.NewInt(50_150_000_000), // $50,000 (BTC update) + $150 (ETH update) expectedMaintenanceMargin: big.NewInt(40_075_000_000), // $40,000 (BTC update) + $75 (ETH update) @@ -5701,7 +5702,7 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, "speculative update to non-existent subaccount": { useEmptySubaccount: true, - assetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1_000_000)), + assetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1_000_000)), expectedNetCollateral: big.NewInt(-99_249_000_000), // $1 - $100,000 (BTC update) + $750 (ETH update) expectedInitialMargin: big.NewInt(50_150_000_000), // $50,000 (BTC update) + $150 (ETH update) expectedMaintenanceMargin: big.NewInt(40_075_000_000), // $40,000 (BTC update) + $75 (ETH update) @@ -5722,7 +5723,7 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { }, "multiple perpetuals with margin requirements and updates": { // $1 - assetPositions: testutil.CreateUsdcAssetPosition(big.NewInt(1000000)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1000000)), // $1 + $50,000 (BTC) + $1,500 (ETH) - $100,000 (BTC update) + $750 (ETH update) expectedNetCollateral: big.NewInt(-47_749_000_000), // abs($25,000 (BTC) - $50,000 (BTC update)) + $300 (ETH) + $150 (ETH update) @@ -5801,11 +5802,11 @@ func TestGetNetCollateralAndMarginRequirements(t *testing.T) { for name, tc := range tests { t.Run(name, func(t *testing.T) { - ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := testutil.SubaccountsKeepers(t, true) - testutil.CreateTestMarkets(t, ctx, pricesKeeper) - testutil.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) + ctx, keeper, pricesKeeper, perpetualsKeeper, _, _, assetsKeeper, _, _ := keepertest.SubaccountsKeepers(t, true) + keepertest.CreateTestMarkets(t, ctx, pricesKeeper) + keepertest.CreateTestLiquidityTiers(t, ctx, perpetualsKeeper) - require.NoError(t, testutil.CreateUsdcAsset(ctx, assetsKeeper)) + require.NoError(t, keepertest.CreateUsdcAsset(ctx, assetsKeeper)) for _, a := range tc.assets { _, err := assetsKeeper.CreateAsset( ctx, diff --git a/protocol/x/subaccounts/keeper/transfer_test.go b/protocol/x/subaccounts/keeper/transfer_test.go index 1ca9f61ef8..95106fd5dd 100644 --- a/protocol/x/subaccounts/keeper/transfer_test.go +++ b/protocol/x/subaccounts/keeper/transfer_test.go @@ -19,6 +19,7 @@ import ( "github.com/dydxprotocol/v4-chain/protocol/testutil/constants" keepertest "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" sample_testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/sample" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" asstypes "github.com/dydxprotocol/v4-chain/protocol/x/assets/types" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/types" "github.com/stretchr/testify/require" @@ -54,7 +55,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(2500), subaccountModuleAccBalance: big.NewInt(600), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), perpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, @@ -69,7 +70,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(2500), subaccountModuleAccBalance: big.NewInt(600), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), perpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, @@ -94,7 +95,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(2_500_000), // $2.5 subaccountModuleAccBalance: big.NewInt(10_000_000), // $10 quantums: big.NewInt(20_000_001), // $2.0000001, only $2 transferred. - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( big.NewInt(30_000_001), ), // $3.0001 perpetualPositions: []*types.PerpetualPosition{ @@ -111,7 +112,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun subaccountModuleAccBalance: big.NewInt(200), accAddressBalance: big.NewInt(2000), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(150)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(150)), perpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, @@ -126,7 +127,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun subaccountModuleAccBalance: big.NewInt(200), accAddressBalance: big.NewInt(2000), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(150)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(150)), perpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, @@ -148,10 +149,10 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun MarketId: uint32(0), AtomicResolution: int32(-5), // $1 = 100_000 quantums }, - subaccountModuleAccBalance: big.NewInt(2_000_000), // $2 - accAddressBalance: big.NewInt(9_000_000), // $9 - quantums: big.NewInt(502_100), // $5.021 - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(105_000)), // $1.05 + subaccountModuleAccBalance: big.NewInt(2_000_000), // $2 + accAddressBalance: big.NewInt(9_000_000), // $9 + quantums: big.NewInt(502_100), // $5.021 + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(105_000)), // $1.05 perpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, @@ -166,7 +167,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun asset: *constants.Usdc, subaccountModuleAccBalance: new(big.Int).SetUint64(math.MaxUint64 - 100), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition( + assetPositions: testutil.CreateUsdcAssetPositions( new(big.Int).SetUint64(math.MaxUint64 - 100), ), perpetualPositions: []*types.PerpetualPosition{ @@ -336,7 +337,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(1000), subaccountModuleAccBalance: big.NewInt(500), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(100)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), collateralPoolAddr: types.ModuleAddress, expectedErr: types.ErrFailedToUpdateSubaccounts, }, @@ -346,7 +347,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun subaccountModuleAccBalance: big.NewInt(400), accAddressBalance: big.NewInt(5000), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: sdkerrors.ErrInsufficientFunds, }, @@ -356,7 +357,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun subaccountModuleAccBalance: big.NewInt(400), accAddressBalance: big.NewInt(5000), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), perpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, @@ -371,7 +372,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(2500), subaccountModuleAccBalance: big.NewInt(600), quantums: big.NewInt(0), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: types.ErrAssetTransferQuantumsNotPositive, }, @@ -381,7 +382,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(2500), subaccountModuleAccBalance: big.NewInt(600), quantums: big.NewInt(-100), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: types.ErrAssetTransferQuantumsNotPositive, }, @@ -391,7 +392,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun asset: *constants.BtcUsd, subaccountModuleAccBalance: big.NewInt(500), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: types.ErrAssetTransferThroughBankNotImplemented, }, @@ -402,7 +403,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun skipSetUpUsdc: true, subaccountModuleAccBalance: big.NewInt(500), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: asstypes.ErrAssetDoesNotExist, }, @@ -412,7 +413,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun asset: *constants.Usdc, subaccountModuleAccBalance: big.NewInt(2000), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: sdkerrors.ErrInsufficientFunds, }, @@ -422,7 +423,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun accAddressBalance: big.NewInt(2500), subaccountModuleAccBalance: big.NewInt(600), quantums: big.NewInt(0), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: types.ErrAssetTransferQuantumsNotPositive, }, @@ -432,7 +433,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun asset: *constants.BtcUsd, subaccountModuleAccBalance: big.NewInt(500), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: types.ErrAssetTransferThroughBankNotImplemented, }, @@ -443,7 +444,7 @@ func TestWithdrawFundsFromSubaccountToAccount_DepositFundsFromAccountToSubaccoun asset: *constants.Usdc, subaccountModuleAccBalance: big.NewInt(500), quantums: big.NewInt(500), - assetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + assetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), collateralPoolAddr: types.ModuleAddress, expectedErr: asstypes.ErrAssetDoesNotExist, }, @@ -604,11 +605,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { "Send USDC from non-isolated subaccount to non-isolated subaccount": { asset: *constants.Usdc, quantums: big.NewInt(500), - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, @@ -616,7 +617,7 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { recipientCollateralPoolBalance: big.NewInt(1100), // same collateral pool, same balance senderCollateralPoolAddr: types.ModuleAddress, recipientCollateralPoolAddr: types.ModuleAddress, - expectedRecipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1100)), + expectedRecipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1100)), expectedSenderQuoteBalance: big.NewInt(0), // 500 - 500 expectedRecipientQuoteBalance: big.NewInt(1100), // 500 + 600 expectedSenderCollateralPoolBalance: big.NewInt(1100), // no changes to collateral pools @@ -625,11 +626,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { "Send USDC from isolated subaccount to non-isolated subaccount": { asset: *constants.Usdc, quantums: big.NewInt(500), - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, @@ -639,7 +640,7 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { types.ModuleName + ":" + lib.UintToString(constants.PerpetualPosition_OneISOLong.PerpetualId), ), recipientCollateralPoolAddr: types.ModuleAddress, - expectedRecipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1100)), + expectedRecipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1100)), expectedSenderQuoteBalance: big.NewInt(0), // 500 - 500 expectedRecipientQuoteBalance: big.NewInt(1100), // 500 + 600 expectedSenderCollateralPoolBalance: big.NewInt(100), // 600 - 500 @@ -648,11 +649,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { "Send USDC from non-isolated subaccount to isolated subaccount": { asset: *constants.Usdc, quantums: big.NewInt(500), - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, @@ -662,7 +663,7 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { recipientCollateralPoolAddr: authtypes.NewModuleAddress( types.ModuleName + ":" + lib.UintToString(constants.PerpetualPosition_OneISOLong.PerpetualId), ), - expectedRecipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1100)), + expectedRecipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1100)), expectedSenderQuoteBalance: big.NewInt(0), // 500 - 500 expectedRecipientQuoteBalance: big.NewInt(1100), // 500 + 600 expectedSenderCollateralPoolBalance: big.NewInt(100), // 600 - 500 @@ -671,11 +672,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { "Send USDC from isolated subaccount to isolated subaccount (same perp)": { asset: *constants.Usdc, quantums: big.NewInt(500), - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, @@ -687,7 +688,7 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { recipientCollateralPoolAddr: authtypes.NewModuleAddress( types.ModuleName + ":" + lib.UintToString(constants.PerpetualPosition_OneISOLong.PerpetualId), ), - expectedRecipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1100)), + expectedRecipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1100)), expectedSenderQuoteBalance: big.NewInt(0), // 500 - 500 expectedRecipientQuoteBalance: big.NewInt(1100), // 500 + 600 expectedSenderCollateralPoolBalance: big.NewInt(1100), // no changes to collateral pools @@ -696,11 +697,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { "Send USDC from isolated subaccount to isolated subaccount (different perp)": { asset: *constants.Usdc, quantums: big.NewInt(500), - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISO2Long, }, @@ -712,7 +713,7 @@ func TestTransferFundsFromSubaccountToSubaccount_Success(t *testing.T) { recipientCollateralPoolAddr: authtypes.NewModuleAddress( types.ModuleName + ":" + lib.UintToString(constants.PerpetualPosition_OneISO2Long.PerpetualId), ), - expectedRecipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(1100)), + expectedRecipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(1100)), expectedSenderQuoteBalance: big.NewInt(0), // 500 - 500 expectedRecipientQuoteBalance: big.NewInt(1100), // 500 + 600 expectedSenderCollateralPoolBalance: big.NewInt(100), // 600 - 500 @@ -868,11 +869,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }{ "Send from non-isolated subaccount to non-isolated subaccount, sender does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(100)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCShort, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCShort, }, @@ -885,11 +886,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Send between isolated subaccounts (same perp), sender does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(100)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOShort, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOShort, }, @@ -906,11 +907,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Send between isolated subaccounts (different perp), sender does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(100)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOShort, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISO2Short, }, @@ -927,11 +928,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Send from isolated subaccount to non-isolated subaccount, sender does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(100)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(100)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOShort, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCShort, }, @@ -946,11 +947,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Send from non-isolated subaccount to isolated subaccount, collateral pool does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, @@ -965,11 +966,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Send from isolated subaccount to non-isolated subaccount, collateral pool does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneBTCLong, }, @@ -984,11 +985,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Send between isolated subaccounts (different perp), collateral pool does not have enough balance": { asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISO2Long, }, @@ -1005,11 +1006,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { }, "Do not support assets other than USDC": { asset: *constants.BtcUsd, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISO2Long, }, @@ -1027,11 +1028,11 @@ func TestTransferFundsFromSubaccountToSubaccount_Failure(t *testing.T) { "Asset ID doesn't exist": { skipSetUpUsdc: true, asset: *constants.Usdc, - senderAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(500)), + senderAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(500)), senderPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISOLong, }, - recipientAssetPositions: keepertest.CreateUsdcAssetPosition(big.NewInt(600)), + recipientAssetPositions: testutil.CreateUsdcAssetPositions(big.NewInt(600)), recipientPerpetualPositions: []*types.PerpetualPosition{ &constants.PerpetualPosition_OneISO2Long, }, diff --git a/protocol/x/subaccounts/types/update_test.go b/protocol/x/subaccounts/types/update_test.go index c4cd9c5e74..937cdd275a 100644 --- a/protocol/x/subaccounts/types/update_test.go +++ b/protocol/x/subaccounts/types/update_test.go @@ -4,7 +4,7 @@ import ( "math/big" "testing" - testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/keeper" + testutil "github.com/dydxprotocol/v4-chain/protocol/testutil/util" "github.com/dydxprotocol/v4-chain/protocol/x/subaccounts/types" "github.com/stretchr/testify/require" ) @@ -28,7 +28,7 @@ func TestGetErrorFromUpdateResults(t *testing.T) { SubaccountId: types.SubaccountId{ Owner: "owner", }, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), }}, expectedErr: types.ErrFailedToUpdateSubaccounts, }, @@ -39,7 +39,7 @@ func TestGetErrorFromUpdateResults(t *testing.T) { SubaccountId: types.SubaccountId{ Owner: "owner", }, - AssetUpdates: testutil.CreateUsdcAssetUpdate(big.NewInt(1)), + AssetUpdates: testutil.CreateUsdcAssetUpdates(big.NewInt(1)), }}, expectPanic: true, },