constants

package
v0.0.0-...-41d3419 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2025 License: AGPL-3.0, AGPL-3.0-or-later Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TestFee is the gas fee offered for test transactions.
	TestFee = "50000" + asstypes.TDaiDenom // 5 cents
	// TestFeeNativeTokens is the gas fee offered for test transactions specified in native tokens.
	// Value is .05 of native token in adv4tnt denom.
	TestFeeNativeTokens = "50000000000000000" + lib.DefaultBaseDenom
	// TestGasLimit is the gas limit used for test transactions.
	// It's set to a larger amount such that the transaction never runs out of gas.
	TestGasLimit = 1_000_000
	// TestNativeTokenDenom is the denom of the native token used for testing.
	TestNativeTokenDenom = "adv4tnt"
)
View Source
const (
	AliceMnenomic = "merge panther lobster crazy road hollow amused security before critic about cliff exhibit " +
		"cause coyote talent happy where lion river tobacco option coconut small"
	BobMnenomic = "color habit donor nurse dinosaur stable wonder process post perfect raven gold census inside " +
		"worth inquiry mammal panic olive toss shadow strong name drum"
	CarlMnenomic = "school artefact ghost shop exchange slender letter debris dose window alarm hurt whale tiger " +
		"find found island what engine ketchup globe obtain glory manage"
	DaveMnenomic = "switch boring kiss cash lizard coconut romance hurry sniff bus accident zone chest height " +
		"merit elevator furnace eagle fetch quit toward steak mystery nest"
)
View Source
const (
	BtcUsdPair   = "BTC-USD"
	EthUsdPair   = "ETH-USD"
	MaticUsdPair = "MATIC-USD"
	SolUsdPair   = "SOL-USD"
	LtcUsdPair   = "LTC-USD"
	IsoUsdPair   = "ISO-USD"
	Iso2UsdPair  = "ISO2-USD"
	IsoBtcPair   = "ISO-BTC"
	Iso2BtcPair  = "ISO2-BTC"

	DefaultMarketIdNotUsedInGenesis = 9999
	LastMarketIdInGenesis           = 6

	BtcUsdExponent   = -5
	EthUsdExponent   = -6
	LinkUsdExponent  = -8
	MaticUsdExponent = -9
	CrvUsdExponent   = -10
	SolUsdExponent   = -8
	LtcUsdExponent   = -7
	IsoUsdExponent   = -8
	Iso2UsdExponent  = -7
	IsoBtcExponent   = -8
	Iso2BtcExponent  = -8
	LinkBtcExponent  = -8

	CoinbaseExchangeName  = "Coinbase"
	BinanceExchangeName   = "Binance"
	BinanceUSExchangeName = "BinanceUS"
	BitfinexExchangeName  = "Bitfinex"
	KrakenExchangeName    = "Kraken"

	FiveHundredBillion = uint64(500_000_000_000)
	ThirtyBillion      = uint64(30_000_000_000)
	FiveBillion        = uint64(5_000_000_000)
	ThreeBillion       = uint64(3_000_000_000)
	FiveMillion        = uint64(5_000_000)
	ThreeMillion       = uint64(3_000_000)
	OneMillion         = uint64(1_000_000)

	// Market param validation errors.
	ErrorMsgMarketPairCannotBeEmpty = "Pair cannot be empty"
	ErrorMsgInvalidMinPriceChange   = "Min price change in parts-per-million must be greater than 0 and less than 10000"
)
View Source
const GenesisState = `` /* 62486-byte string literal not displayed */

This is a copy of the localnet genesis.json. This can be retrieved from the localnet docker container path: /klyraprotocol/chain/.alice/config/genesis.json Disable linter for exchange config.

View Source
const GenesisStateNoVe = `` /* 59750-byte string literal not displayed */

This is a copy of the localnet genesis.json. This can be retrieved from the localnet docker container path: /klyraprotocol/chain/.alice/config/genesis.json. This genesis has Vote Extension disabled until a very high height. Disable linter for exchange config.

View Source
const GenesisStateNoVeIBC1 = `` /* 67700-byte string literal not displayed */

This is a copy of the localnet genesis.json. This can be retrieved from the localnet docker container path: /klyraprotocol/chain/.alice/config/genesis.json. This genesis has Vote Extension disabled until a very high height. Disable linter for exchange config.

View Source
const GenesisStateNoVeIBC2 = `` /* 59719-byte string literal not displayed */

This is a copy of the localnet genesis.json. This can be retrieved from the localnet docker container path: /klyraprotocol/chain/.alice/config/genesis.json. This genesis has Vote Extension disabled until a very high height. Disable linter for exchange config.

View Source
const GenesisStateNoVeIBC3 = `` /* 59719-byte string literal not displayed */

This is a copy of the localnet genesis.json. This can be retrieved from the localnet docker container path: /klyraprotocol/chain/.alice/config/genesis.json. This genesis has Vote Extension disabled until a very high height. Disable linter for exchange config.

View Source
const TestFundingRateClampFactorPpm = 6_000_000

Perpetual genesis parameters.

View Source
const TestMinNumVotesPerSample = 15
View Source
const TestPremiumVoteClampFactorPpm = 60_000_000

Variables

View Source
var (
	AliceAccAddress       = sdk.AccAddress(AlicePrivateKey.PubKey().Address())
	BobAccAddress         = sdk.AccAddress(BobPrivateKey.PubKey().Address())
	CarlAccAddress        = sdk.AccAddress(CarlPrivateKey.PubKey().Address())
	DaveAccAddress        = sdk.AccAddress(DavePrivateKey.PubKey().Address())
	AliceValAddress       = sdk.ValAddress(AlicePrivateKey.PubKey().Address())
	BobValAddress         = sdk.ValAddress(BobPrivateKey.PubKey().Address())
	CarlValAddress        = sdk.ValAddress(CarlPrivateKey.PubKey().Address())
	DaveValAddress        = sdk.ValAddress(DavePrivateKey.PubKey().Address())
	AliceConsAddress, _   = sdk.ConsAddressFromBech32("klyravalcons1zf9csp5ygq95cqyxh48w3qkuckmpealrhxq0ye")
	BobConsAddress, _     = sdk.ConsAddressFromBech32("klyravalcons1s7wykslt83kayxuaktep9fw8qxe5n73up9h3xp")
	CarlConsAddress, _    = sdk.ConsAddressFromBech32("klyravalcons1vy0nrh7l4rtezrsakaadz4mngwlpdmhyretgwy")
	DaveConsAddress, _    = sdk.ConsAddressFromBech32("klyravalcons1stjspktkshgcsv8sneqk2vs2ws0nw2wrnjkt6l")
	AliceValidatorAddress = sdk.ValAddress(AlicePrivateKey.PubKey().Address())
	BobValidatorAddress   = sdk.ValAddress(BobPrivateKey.PubKey().Address())
	CarlValidatorAddress  = sdk.ValAddress(CarlPrivateKey.PubKey().Address())
	DaveValidatorAddress  = sdk.ValAddress(DavePrivateKey.PubKey().Address())
	AliceAddressBz        = AlicePrivateKey.PubKey().Address().Bytes()
	BobAddressBz          = BobPrivateKey.PubKey().Address().Bytes()
	CarlAddressBz         = CarlPrivateKey.PubKey().Address().Bytes()
	DaveAddressBz         = DavePrivateKey.PubKey().Address().Bytes()

	// Collateral pool addresses for isolated perpetuals.
	DummyCollateralPoolAddress = authtypes.NewModuleAddress(satypes.ModuleName)
	CollateralPoolAddress0     = authtypes.NewModuleAddress(satypes.ModuleName + ":0")
	CollateralPoolAddress1     = authtypes.NewModuleAddress(satypes.ModuleName + ":1")
	CollateralPoolAddress2     = authtypes.NewModuleAddress(satypes.ModuleName + ":2")
	IsoCollateralPoolAddress   = authtypes.NewModuleAddress(satypes.ModuleName + ":3")
	Iso2CollateralPoolAddress  = authtypes.NewModuleAddress(satypes.ModuleName + ":4")
)
View Source
var (
	// TestFeeCoins_5Cents is the gas fee offered for test transactions.
	TestFeeCoins_5Cents = lib.MustParseCoinsNormalized(TestFee)
	// TestFeeCoins_5Cents_NativeToken is the gas fee offered for test transactions specified in native tokens.
	TestFeeCoins_5Cents_NativeToken = lib.MustParseCoinsNormalized(TestFeeNativeTokens)
)
View Source
var (
	BtcUsd = &asstypes.Asset{
		Id:               1,
		Symbol:           "BTC",
		Denom:            "btc-denom",
		DenomExponent:    int32(-8),
		HasMarket:        false,
		MarketId:         uint32(0),
		AtomicResolution: int32(-8),
		MaxSlippagePpm:   uint32(0),
	}

	TDai = &asstypes.Asset{
		Id:               0,
		Symbol:           "TDAI",
		Denom:            asstypes.AssetTDai.Denom,
		DenomExponent:    int32(-6),
		HasMarket:        false,
		MarketId:         uint32(0),
		AtomicResolution: int32(-6),
		MaxSlippagePpm:   uint32(0),
	}

	Assets_DefaultGenesisState = asstypes.GenesisState{
		Assets: []asstypes.Asset{
			{
				Id:               TDai.Id,
				Symbol:           TDai.Symbol,
				Denom:            TDai.Denom,
				DenomExponent:    TDai.DenomExponent,
				HasMarket:        TDai.HasMarket,
				MarketId:         TDai.MarketId,
				AtomicResolution: TDai.AtomicResolution,
				MaxSlippagePpm:   TDai.MaxSlippagePpm,
			},
			{
				Id:               BtcUsd.Id,
				Symbol:           BtcUsd.Symbol,
				Denom:            BtcUsd.Denom,
				DenomExponent:    BtcUsd.DenomExponent,
				HasMarket:        BtcUsd.HasMarket,
				MarketId:         BtcUsd.MarketId,
				AtomicResolution: BtcUsd.AtomicResolution,
				MaxSlippagePpm:   BtcUsd.MaxSlippagePpm,
			},
		},
	}
)
View Source
var (
	ClobPair_Spot_Btc = clobtypes.ClobPair{
		Id: 1000,
		Metadata: &clobtypes.ClobPair_SpotClobMetadata{
			SpotClobMetadata: &clobtypes.SpotClobMetadata{
				BaseAssetId:  0,
				QuoteAssetId: 0,
			},
		},
		StepBaseQuantums:          10,
		SubticksPerTick:           100,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Btc = clobtypes.ClobPair{
		Id: 0,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 0,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Eth = clobtypes.ClobPair{
		Id: 1,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 1,
			},
		},
		StepBaseQuantums:          1000,
		SubticksPerTick:           1000,
		QuantumConversionExponent: -9,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Eth_No_Fee = clobtypes.ClobPair{
		Id: 1,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 1,
			},
		},
		StepBaseQuantums:          1000,
		SubticksPerTick:           1000,
		QuantumConversionExponent: -9,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Asset = clobtypes.ClobPair{
		Id: 100,
		Metadata: &clobtypes.ClobPair_SpotClobMetadata{
			SpotClobMetadata: &clobtypes.SpotClobMetadata{
				BaseAssetId:  0,
				QuoteAssetId: 1,
			},
		},
		StepBaseQuantums:          1000,
		SubticksPerTick:           100,
		QuantumConversionExponent: 10,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Btc2 = clobtypes.ClobPair{
		Id: 101,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 0,
			},
		},
		StepBaseQuantums:          100,
		SubticksPerTick:           1000,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Btc3 = clobtypes.ClobPair{
		Id: 0,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 0,
			},
		},
		StepBaseQuantums:          10,
		SubticksPerTick:           100,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_Btc_Initializing = clobtypes.ClobPair{
		Id: 0,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 0,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_INITIALIZING,
	}
	ClobPair_Btc_Final_Settlement = clobtypes.ClobPair{
		Id: 0,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 0,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_FINAL_SETTLEMENT,
	}
	ClobPair_Btc_Paused = clobtypes.ClobPair{
		Id: 0,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 0,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_PAUSED,
	}
	ClobPair_2_Sol = clobtypes.ClobPair{
		Id: 2,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 2,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_3_Iso = clobtypes.ClobPair{
		Id: 3,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 3,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_3_Iso_Final_Settlement = clobtypes.ClobPair{
		Id: 3,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 3,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_FINAL_SETTLEMENT,
	}
	ClobPair_4_Iso2 = clobtypes.ClobPair{
		Id: 4,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 4,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_5_IsoBtc = clobtypes.ClobPair{
		Id: 5,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 5,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_6_IsoBtc_CollatPool4 = clobtypes.ClobPair{
		Id: 6,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 6,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_5_Iso2Btc = clobtypes.ClobPair{
		Id: 7,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 7,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_BtcBtc = clobtypes.ClobPair{
		Id: 9,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 10,
			},
		},
		StepBaseQuantums:          5,
		SubticksPerTick:           5,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
	ClobPair_LinkBtc = clobtypes.ClobPair{
		Id: 10,
		Metadata: &clobtypes.ClobPair_PerpetualClobMetadata{
			PerpetualClobMetadata: &clobtypes.PerpetualClobMetadata{
				PerpetualId: 11,
			},
		},
		StepBaseQuantums:          1,
		SubticksPerTick:           1,
		QuantumConversionExponent: -8,
		Status:                    clobtypes.ClobPair_STATUS_ACTIVE,
	}
)
View Source
var (
	// Collateralization check functions.
	CollatCheck_EmptyUpdateResults_Success = func(
		subaccountMatchedOrders map[satypes.SubaccountId][]clobtypes.PendingOpenOrder,
	) (
		success bool,
		successPerUpdate map[satypes.SubaccountId]satypes.UpdateResult,
	) {
		return true, make(map[satypes.SubaccountId]satypes.UpdateResult)
	}
	CollatCheck_EmptyUpdateResults_Failure = func(
		subaccountMatchedOrders map[satypes.SubaccountId][]clobtypes.PendingOpenOrder,
	) (
		success bool,
		successPerUpdate map[satypes.SubaccountId]satypes.UpdateResult,
	) {
		saMap := make(map[satypes.SubaccountId]satypes.UpdateResult)
		for a := range subaccountMatchedOrders {
			saMap[a] = satypes.NewlyUndercollateralized
		}
		return false, saMap
	}
)
View Source
var (
	// MsgUpdateParams replaces MsgCompleteBridge, since we delete the bridge module
	// Note: the crucial component here is that Authority is set to the module address
	// of the delaymsg module
	TestMsg1 = &perpetualstypes.MsgUpdateParams{
		Authority: types.ModuleAddress.String(),
		Params:    PerpetualsGenesisParams,
	}
	TestMsg2 = &perpetualstypes.MsgUpdateParams{
		Authority: types.ModuleAddress.String(),
		Params: perpetualstypes.Params{
			FundingRateClampFactorPpm: TestFundingRateClampFactorPpm + 1,
			PremiumVoteClampFactorPpm: TestPremiumVoteClampFactorPpm,
			MinNumVotesPerSample:      TestMinNumVotesPerSample,
		},
	}
	TestMsg3 = &perpetualstypes.MsgUpdateParams{
		Authority: types.ModuleAddress.String(),
		Params: perpetualstypes.Params{
			FundingRateClampFactorPpm: TestFundingRateClampFactorPpm + 2,
			PremiumVoteClampFactorPpm: TestPremiumVoteClampFactorPpm,
			MinNumVotesPerSample:      TestMinNumVotesPerSample,
		},
	}
	NoHandlerMsg = &testdata.TestMsg{Signers: []string{types.ModuleAddress.String()}}

	AllMsgs = []sdk.Msg{TestMsg1, TestMsg2, TestMsg3}
)
View Source
var (
	TestEncodingCfg = encoding.GetTestEncodingCfg()
	TestTxBuilder   = TestEncodingCfg.TxConfig.NewTxBuilder()
)
View Source
var (
	// Order hashes.
	OrderHash_Empty = [32]byte{
		0x06, 0xd9, 0x36, 0x73, 0x41, 0x3b, 0xa3, 0x29, 0x4a, 0xbc, 0x0e, 0x33, 0x97, 0x38, 0x1a, 0x44,
		0x15, 0xed, 0x37, 0x9c, 0xe6, 0x21, 0xfe, 0x91, 0x6b, 0xaf, 0xf7, 0x45, 0x98, 0x3d, 0x1b, 0x8c,
	}
	OrderHash_Alice_Number0_Id0 = [32]uint8{
		0xc5, 0xb5, 0xc0, 0x77, 0x3f, 0xfa, 0x4f, 0x7, 0x39, 0x61, 0x4f, 0x55, 0x87, 0xcd, 0x80, 0x96, 0xa3, 0x2d, 0x6c, 0xa7, 0x28, 0x53, 0xe7, 0x2b, 0x20, 0xad, 0x86, 0x75, 0xeb, 0x10, 0x46, 0x15,
	}

	// Liquidation order hashes.
	LiquidationOrderHash_Empty = [32]byte{
		0x10, 0x2b, 0x51, 0xb9, 0x76, 0x5a, 0x56, 0xa3, 0xe8, 0x99, 0xf7, 0xcf, 0x0e, 0xe3, 0x8e, 0x52,
		0x51, 0xf9, 0xc5, 0x03, 0xb3, 0x57, 0xb3, 0x30, 0xa4, 0x91, 0x83, 0xeb, 0x7b, 0x15, 0x56, 0x04,
	}
	LiquidationOrderHash_Alice_Number0_Perpetual0 = [32]byte{
		0x82, 0xba, 0x4e, 0xbd, 0x7b, 0x36, 0x58, 0x3c, 0x30, 0x37, 0x5b, 0x88, 0xb5, 0x9a, 0x8f, 0x34, 0x9b, 0x7a, 0x4e, 0xfa, 0x6e, 0xe3, 0x67, 0x65, 0x3c, 0xdf, 0x50, 0x40, 0x7e, 0xa3, 0x26, 0x27,
	}
	LiquidationOrderHash_Alice_Number0_Perpetual1 = [32]byte{
		0x92, 0x15, 0xab, 0xb0, 0xa5, 0xd5, 0x64, 0x79, 0x96, 0x39, 0xe9, 0x23, 0xcb, 0x1e, 0x67, 0x29, 0xbb, 0xc9, 0x56, 0x76, 0x82, 0xa4, 0x21, 0x8e, 0x58, 0xa6, 0xcd, 0xee, 0xbc, 0x3, 0xc2, 0xf9,
	}
	LiquidationOrderHash_Alice_Number1_Perpetual0 = [32]byte{
		0x97, 0xd7, 0x5a, 0x43, 0x53, 0x9c, 0x8d, 0x16, 0xcf, 0xa1, 0x24, 0xb9, 0x35, 0x2b, 0xa8, 0xdb, 0x95, 0x16, 0x8e, 0xf8, 0xd, 0xdd, 0x9d, 0x5e, 0x2f, 0xe, 0x42, 0x8c, 0xb7, 0x69, 0xdc, 0xfd,
	}

	// OrderId hashes
	OrderIdHash_Empty = []byte{
		0x10, 0x2b, 0x51, 0xb9, 0x76, 0x5a, 0x56, 0xa3, 0xe8, 0x99, 0xf7, 0xcf, 0x0e, 0xe3, 0x8e, 0x52,
		0x51, 0xf9, 0xc5, 0x03, 0xb3, 0x57, 0xb3, 0x30, 0xa4, 0x91, 0x83, 0xeb, 0x7b, 0x15, 0x56, 0x04,
	}
	OrderIdHash_Alice_Number0_Id0 = []byte{
		0x82, 0xba, 0x4e, 0xbd, 0x7b, 0x36, 0x58, 0x3c, 0x30, 0x37, 0x5b, 0x88, 0xb5, 0x9a, 0x8f, 0x34, 0x9b, 0x7a, 0x4e, 0xfa, 0x6e, 0xe3, 0x67, 0x65, 0x3c, 0xdf, 0x50, 0x40, 0x7e, 0xa3, 0x26, 0x27,
	}
)

SHA256 hashes.

View Source
var (
	TestTxBytes      = []byte{0x1, 0x2, 0x3}
	TestTxHashBytes  = tmhash.Sum(TestTxBytes)
	TestTxHashString = lib.TxHash(fmt.Sprintf("%X", TestTxHashBytes))
	TestTxHashHeader = msgsender.MessageHeader{
		Key:   msgsender.TransactionHashHeaderKey,
		Value: TestTxHashBytes,
	}
	TestTxBytes1        = []byte{0x4, 0x5, 0x6}
	TestTxHashBytes1    = tmhash.Sum(TestTxBytes1)
	TestTxHashString1   = lib.TxHash(fmt.Sprintf("%X", TestTxHashBytes1))
	TestOffchainUpdates = &clobtypes.OffchainUpdates{
		Messages: []clobtypes.OffchainUpdateMessage{
			{Type: clobtypes.PlaceMessageType, OrderId: testOrderId, Message: testMessage},
			{Type: clobtypes.UpdateMessageType, OrderId: testOrderId, Message: testMessage},
			{Type: clobtypes.RemoveMessageType, OrderId: testOrderId, Message: testMessage},
		},
	}
	TestOffchainMessages = TestOffchainUpdates.GetMessages()
)
View Source
var (
	// Block limits.
	FillablePriceConfig_Default = clobtypes.FillablePriceConfig{
		BankruptcyAdjustmentPpm:           lib.OneMillion,
		SpreadToMaintenanceMarginRatioPpm: 100_000,
	}
	FillablePriceConfig_Max_Smmr = clobtypes.FillablePriceConfig{
		BankruptcyAdjustmentPpm:           lib.OneMillion,
		SpreadToMaintenanceMarginRatioPpm: lib.OneMillion,
	}
	// Liquidation Configs.
	LiquidationsConfig_No_Limit = clobtypes.LiquidationsConfig{
		InsuranceFundFeePpm: 5_000,
		ValidatorFeePpm:     0,
		LiquidityFeePpm:     0,
		FillablePriceConfig: FillablePriceConfig_Default,
	}
	LiquidationsConfig_FillablePrice_Max_Smmr = clobtypes.LiquidationsConfig{
		InsuranceFundFeePpm: 5_000,
		ValidatorFeePpm:     0,
		LiquidityFeePpm:     0,
		FillablePriceConfig: FillablePriceConfig_Max_Smmr,
	}
	LiquidationsConfig_FillablePrice_Max_Smmr_With_Fees = clobtypes.LiquidationsConfig{
		InsuranceFundFeePpm: 5_000,
		ValidatorFeePpm:     100_000,
		LiquidityFeePpm:     400_000,
		FillablePriceConfig: FillablePriceConfig_Max_Smmr,
	}
	LiquidationsConfig_Position_Min10m_Max05mPpm = clobtypes.LiquidationsConfig{
		InsuranceFundFeePpm: 5_000,
		ValidatorFeePpm:     200_000,
		LiquidityFeePpm:     800_000,
		FillablePriceConfig: FillablePriceConfig_Default,
	}
	LiquidationsConfig_Subaccount_Max10bNotionalLiquidated_Max10bInsuranceLost = clobtypes.LiquidationsConfig{
		InsuranceFundFeePpm: 5_000,
		ValidatorFeePpm:     200_000,
		LiquidityFeePpm:     800_000,
		FillablePriceConfig: FillablePriceConfig_Default,
	}
)
View Source
var (
	// Liquidation Orders.
	LiquidationOrder_Carl_Num0_Clob0_Buy3_Price50_BTC = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		3,
		50,
	)
	LiquidationOrder_Bob_Num0_Clob0_Buy100_Price20_BTC = *clobtypes.NewLiquidationOrder(
		Bob_Num0,
		ClobPair_Btc,
		true,
		100,
		20,
	)
	LiquidationOrder_Bob_Num0_Clob0_Buy25_Price30_BTC = *clobtypes.NewLiquidationOrder(
		Bob_Num0,
		ClobPair_Btc,
		true,
		25,
		30,
	)
	LiquidationOrder_Alice_Num0_Clob0_Sell20_Price25_BTC = *clobtypes.NewLiquidationOrder(
		Alice_Num0,
		ClobPair_Btc,
		false,
		20,
		25,
	)
	LiquidationOrder_Bob_Num0_Clob1_Sell70_Price10_ETH = *clobtypes.NewLiquidationOrder(
		Bob_Num0,
		ClobPair_Eth,
		false,
		70,
		10,
	)
	LiquidationOrder_Carl_Num0_Clob0_Buy100BTC_Price101 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		10_000_000_000,
		101_000_000,
	)
	LiquidationOrder_Carl_Num0_Clob0_Buy01BTC_Price50000 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		10_000_000,
		50_000_000_000,
	)
	LiquidationOrder_Carl_Num0_Clob0_Buy1BTC_Price50000 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		100_000_000,
		50_000_000_000,
	)
	LiquidationOrder_Carl_Num0_Clob0_Buy1BTC_Price50500 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		100_000_000,
		50_500_000_000,
	)
	LiquidationOrder_Carl_Num0_Clob0_Buy1BTC_Price50501_01 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		100_000_000,
		50_501_010_000,
	)
	LiquidationOrder_Carl_Num0_Clob0_Buy1BTC_Price60000 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Btc,
		true,
		100_000_000,
		60_000_000_000,
	)
	LiquidationOrder_Carl_Num0_Clob1_Buy1ETH_Price3000 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Eth,
		true,
		1_000_000_000,
		3_000_000_000,
	)
	LiquidationOrder_Carl_Num0_Clob1_Buy1ETH_Price3030 = *clobtypes.NewLiquidationOrder(
		Carl_Num0,
		ClobPair_Eth,
		true,
		1_000_000_000,
		3_030_000_000,
	)
	LiquidationOrder_Dave_Num0_Clob0_Buy100BTC_Price102 = *clobtypes.NewLiquidationOrder(
		Dave_Num0,
		ClobPair_Btc,
		true,
		10_000_000_000,
		102_000_000,
	)
	LiquidationOrder_Dave_Num0_Clob0_Sell100BTC_Price98 = *clobtypes.NewLiquidationOrder(
		Dave_Num0,
		ClobPair_Btc,
		false,
		10_000_000_000,
		98_000_000,
	)
	LiquidationOrder_Dave_Num0_Clob0_Sell1BTC_Price49500 = *clobtypes.NewLiquidationOrder(
		Dave_Num0,
		ClobPair_Btc,
		false,
		100_000_000,
		49_500_000_000,
	)
	LiquidationOrder_Dave_Num0_Clob0_Sell1BTC_Price50000 = *clobtypes.NewLiquidationOrder(
		Dave_Num0,
		ClobPair_Btc,
		false,
		100_000_000,
		50_000_000_000,
	)
	LiquidationOrder_Dave_Num1_Clob0_Buy100BTC_Price101 = *clobtypes.NewLiquidationOrder(
		Dave_Num1,
		ClobPair_Btc,
		true,
		10_000_000_000,
		101_000_000,
	)
	LiquidationOrder_Dave_Num1_Clob0_Buy100BTC_Price102 = *clobtypes.NewLiquidationOrder(
		Dave_Num1,
		ClobPair_Btc,
		true,
		10_000_000_000,
		102_000_000,
	)
	LiquidationOrder_Dave_Num1_Clob0_Sell01BTC_Price50000 = *clobtypes.NewLiquidationOrder(
		Dave_Num1,
		ClobPair_Btc,
		false,
		10_000_000,
		50_000_000_000,
	)
)
View Source
var (
	Msg_CancelOrder = &clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			ClientId:     0,
			SubaccountId: Alice_Num0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 10},
	}
	Msg_CancelOrder_TxBtyes  []byte
	Msg_CancelOrder_LongTerm = &clobtypes.MsgCancelOrder{
		OrderId:      LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15.GetOrderId(),
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 20},
	}
	Msg_CancelOrder_Conditional = &clobtypes.MsgCancelOrder{
		OrderId:      ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15_StopLoss20.GetOrderId(),
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 20},
	}

	Msg_BatchCancel = &clobtypes.MsgBatchCancel{
		SubaccountId: Alice_Num0,
		ShortTermCancels: []clobtypes.OrderBatch{
			{
				ClobPairId: 0,
				ClientIds:  []uint32{0},
			},
		},
		GoodTilBlock: 5,
	}
	Msg_BatchCancel_TxBtyes []byte

	Msg_PlaceOrder = &clobtypes.MsgPlaceOrder{
		Order: Order_Alice_Num0_Id0_Clob0_Buy5_Price10_GTB15,
	}
	Msg_PlaceOrder_TxBtyes []byte

	Msg_PlaceOrder_LongTerm = &clobtypes.MsgPlaceOrder{
		Order: LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15,
	}
	Msg_PlaceOrder_Conditional = &clobtypes.MsgPlaceOrder{
		Order: ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15_StopLoss20,
	}
	Msg_Transfer = &sendingtypes.MsgCreateTransfer{
		Transfer: &sendingtypes.Transfer{
			Sender:    Carl_Num0,
			Recipient: Dave_Num0,
			AssetId:   assettypes.AssetTDai.Id,
			Amount:    500_000_000,
		},
	}
	Msg_Transfer_Invalid_SameSenderAndRecipient = &sendingtypes.MsgCreateTransfer{
		Transfer: &sendingtypes.Transfer{
			Sender:    Alice_Num0,
			Recipient: Alice_Num0,
			AssetId:   assettypes.AssetTDai.Id,
			Amount:    500_000_000,
		},
	}
	Msg_Transfer_Invalid_SameSenderAndRecipient_TxBytes []byte

	Msg_Send = &banktypes.MsgSend{
		FromAddress: AliceAccAddress.String(),
		ToAddress:   BobAccAddress.String(),
		Amount: sdk.Coins{sdk.Coin{
			Denom:  "foo",
			Amount: sdkmath.OneInt(),
		}},
	}
	Msg_Send_TxBytes []byte

	Msg_SendAndTransfer_TxBytes []byte
)
View Source
var (
	ValidEmptyMsgProposedOperations        = &types.MsgProposedOperations{}
	ValidEmptyMsgProposedOperationsTxBytes []byte

	// InvalidProposedOperationsUnspecifiedOrderRemovalReason is invalid because the order removal reason is
	// unspecified.
	InvalidProposedOperationsUnspecifiedOrderRemovalReason = &types.MsgProposedOperations{
		OperationsQueue: []types.OperationRaw{
			{
				Operation: &types.OperationRaw_OrderRemoval{
					OrderRemoval: &types.OrderRemoval{
						OrderId:       LongTermOrder_Alice_Num0_Id0_Clob0_Buy100_Price10_GTBT15.OrderId,
						RemovalReason: types.OrderRemoval_REMOVAL_REASON_UNSPECIFIED,
					},
				},
			},
		},
	}
	InvalidProposedOperationsUnspecifiedOrderRemovalReasonTxBytes []byte
)
View Source
var (
	CancelOrder_Alice_Num0_Id12_Clob0_GTB5 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     12,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 5},
	}
	CancelOrder_Alice_Num1_Id13_Clob0_GTB25 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     13,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 25},
	}
	CancelOrder_Alice_Num1_Id13_Clob0_GTB30 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     13,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 30},
	}
	CancelOrder_Alice_Num1_Id13_Clob0_GTB35 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     13,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 35},
	}
	CancelOrder_Bob_Num0_Id2_Clob1_GTB5 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   1,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 5},
	}
	CancelOrder_Alice_Num0_Id10_Clob0_GTB20 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     10,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 20},
	}
	CancelOrder_Alice_Num1_Id11_Clob1_GTB20 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     11,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   1,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 20},
	}
	CancelOrder_Bob_Num1_Id11_Clob1_GTB20 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num1,
			ClientId:     11,
			OrderFlags:   clobtypes.OrderIdFlags_ShortTerm,
			ClobPairId:   1,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlock{GoodTilBlock: 20},
	}

	// Long Term Order Cancellations
	CancelLongTermOrder_Alice_Num1_Id1_Clob0_GTBT_20 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 25},
	}
	CancelLongTermOrder_Alice_Num0_Id0_Clob0_GTBT5 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	CancelLongTermOrder_Alice_Num0_Id0_Clob0_GTBT15 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	CancelLongTermOrder_Alice_Num11_Id0_Clob2_GTBT15 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   2,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	CancelLongTermOrder_Bob_Num0_Id0_Clob0_GTBT5 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	// Conditional Order Cancellations
	CancelConditionalOrder_Alice_Num1_Id0_Clob0_GTBT15 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	CancelConditionalOrder_Alice_Num1_Id0_Clob1_GTBT15 = clobtypes.MsgCancelOrder{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		GoodTilOneof: &clobtypes.MsgCancelOrder_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
)
View Source
var (
	OrderId_Alice_Num0_ClientId0_Clob0         = clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0}
	OrderId_Alice_Num0_ClientId1_Clob0         = clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 0}
	OrderId_Alice_Num0_ClientId2_Clob0         = clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 2, ClobPairId: 0}
	OrderId_Bob_Num0_ClientId0_Clob0           = clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 0, ClobPairId: 0}
	LongTermOrderId_Alice_Num0_ClientId0_Clob0 = clobtypes.OrderId{
		SubaccountId: Alice_Num0,
		ClientId:     0,
		ClobPairId:   0,
		OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
	}
	LongTermOrderId_Alice_Num1_ClientId3_Clob1 = clobtypes.OrderId{
		SubaccountId: Alice_Num1,
		ClientId:     3,
		ClobPairId:   1,
		OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
	}

	// Invalid clobPairId
	InvalidClobPairId_Long_Term_Order = clobtypes.OrderId{
		SubaccountId: Alice_Num0,
		ClientId:     0,
		OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
		ClobPairId:   99999,
	}

	// Invalid order ids
	InvalidSubaccountIdOwner_OrderId = clobtypes.OrderId{
		SubaccountId: InvalidSubaccountIdOwner,
		ClientId:     0,
		ClobPairId:   0,
	}
	InvalidSubaccountIdNumber_OrderId = clobtypes.OrderId{
		SubaccountId: InvalidSubaccountIdNumber,
		ClientId:     0,
		ClobPairId:   0,
	}
)
View Source
var (
	// Short-term orders.
	Order_Alice_Num0_Id0_Clob0_Buy5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}

	Order_Alice_Num0_Id0_Clob7_Buy5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 7},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}

	Order_Alice_Num0_Id0_Clob0_Buy10_Price10_GTB16 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 16},
	}
	Order_Alice_Num0_Id0_Clob1_Buy5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id0_Clob2_Buy5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id0_Clob0_Buy5_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id0_Clob0_Sell5_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id0_Clob0_Buy5_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id0_Clob0_Buy6_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     6,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id0_Clob0_Buy35_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     35,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id1_Clob0_Sell5_Price15_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id1_Clob0_Sell10_Price15_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id1_Clob7_Sell10_Price15_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 7},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id2_Clob1_Sell5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 2, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id3_Clob1_Sell5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 3, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Alice_Num0_Id4_Clob1_Buy25_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id4_Clob2_Buy25_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 4, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id5_Clob1_Sell25_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 5, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id6_Clob0_Buy25_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 6, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id7_Clob0_Sell25_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 7, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id8_Clob1_Sell25_PriceMax_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 8, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     math.MaxUint64,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id9_Clob1_Buy15_Price45_GTB19 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 9, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     45,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 19},
	}
	Order_Alice_Num0_Id10_Clob0_Sell25_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id10_Clob0_Sell35_Price15_GTB25 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     35,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 25},
	}
	Order_Alice_Num0_Id0_Clob0_Sell200BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id0_Clob0_Sell100BTC_Price102_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10_000_000_000,
		Subticks:     102_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num0_Id0_Clob0_Sell100BTC_Price106_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10_000_000_000,
		Subticks:     106_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id0_Clob0_Sell10_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num11_Id0_Clob2_Sell10_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id0_Clob0_Sell10_Price10_GTB30 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	Order_Alice_Num11_Id0_Clob2_Sell10_Price10_GTB30 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	Order_Alice_Num1_Id0_Clob0_Sell10_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id2_Clob1_Buy10_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 2, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num11_Id2_Clob2_Buy10_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 2, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id2_Clob1_Buy10_Price10_GTB26 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 2, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 26},
	}
	Order_Alice_Num11_Id2_Clob2_Buy10_Price10_GTB26 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 2, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 26},
	}
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num11_Id1_Clob2_Sell10_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id2_Clob1_Buy67_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 2, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     67,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id3_Clob1_Buy7_Price5 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 3, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     7,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Clob0_Id4_Buy10_Price45_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 4, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     45,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id5_Clob1_Sell50_Price40_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 5, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     50,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id6_Clob1_Sell15_Price22_GTB30 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 6, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     22,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	Order_Alice_Num1_Id7_Clob1_Buy35_PriceMax_GTB30 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 7, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     35,
		Subticks:     math.MaxUint64,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	Order_Alice_Num1_Id8_Clob0_Buy15_Price25_GTB31 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 8, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     25,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 31},
	}
	Order_Alice_Num1_Id9_Clob0_Sell10_Price10_GTB31 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 9, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 31},
	}
	Order_Alice_Num1_Id10_Clob0_Buy5_Price30_GTB31 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 31},
	}
	Order_Alice_Num1_Id10_Clob0_Buy5_Price30_GTB32 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 32},
	}
	Order_Alice_Num1_Id10_Clob0_Buy6_Price30_GTB32 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     6,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 32},
	}
	Order_Alice_Num1_Id10_Clob0_Buy7_Price30_GTB33 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     7,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 33},
	}
	Order_Alice_Num1_Id10_Clob0_Buy10_Price30_GTB33 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 33},
	}
	Order_Alice_Num1_Id10_Clob0_Buy15_Price30_GTB33 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 33},
	}
	Order_Alice_Num1_Id10_Clob0_Buy10_Price30_GTB34 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 34},
	}
	Order_Alice_Num1_Id10_Clob0_Buy5_Price30_GTB34 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 34},
	}
	Order_Alice_Num1_Id11_Clob1_Buy10_Price45_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 11, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     45,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id12_Clob0_Sell20_Price5_GTB25 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 12, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 25},
	}
	Order_Alice_Num1_Id13_Clob0_Buy30_Price50_GTB25 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 13, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     30,
		Subticks:     50,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 25},
	}
	Order_Alice_Num1_Id13_Clob0_Buy50_Price50_GTB30 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 13, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     50,
		Subticks:     50,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	Order_Alice_Num1_Id0_Clob0_Sell100_Price500000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id0_Clob0_Sell100_Price51000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100,
		Subticks:     51_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id0_Clob0_Sell100_Price100000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100,
		Subticks:     1_000_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id3_Clob0_Sell100_Price100000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 3, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100,
		Subticks:     1_000_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num11_Id3_Clob2_Sell100_Price100000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 3, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100,
		Subticks:     1_000_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Alice_Num1_Id5_Clob1_Buy10_Price15_GTB23 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 5, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 23},
	}
	Order_Alice_Num11_Id5_Clob2_Buy10_Price15_GTB23 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 5, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 23},
	}
	Order_Bob_Num0_Id0_Clob1_Sell10_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 0, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id0_Clob2_Sell10_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id1_Clob1_Sell11_Price16_GTB18 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     11,
		Subticks:     16,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 18},
	}
	Order_Bob_Num0_Id1_Clob1_Sell11_Price16_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     11,
		Subticks:     16,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id2_Clob1_Sell12_Price13_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 2, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     12,
		Subticks:     13,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Bob_Num0_Id3_Clob1_Buy10_Price10_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 3, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id4_Clob1_Buy20_Price35_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num11_Id4_Clob2_Buy20_Price35_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 4, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id4_Clob1_Buy20_Price35_GTB22_RouterFee = clobtypes.Order{
		OrderId:        clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 4, ClobPairId: 1},
		Side:           clobtypes.Order_SIDE_BUY,
		Quantums:       20,
		Subticks:       35,
		GoodTilOneof:   &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
		RouterFeePpm:   1_000,
		RouterFeeOwner: authtypes.NewModuleAddress("NULL_ROUTER_ADDRESS").String(),
	}
	Order_Bob_Num0_Id5_Clob0_Buy20_Price10_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 5, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id6_Clob0_Buy20_Price1000_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 6, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     1000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id7_Clob0_Buy20_Price10000_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 7, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     10000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id8_Clob1_Sell5_Price10_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 8, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num11_Id8_Clob2_Sell5_Price10_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 8, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id8_Clob1_Sell20_Price10_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 8, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num11_Id8_Clob2_Sell20_Price10_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 8, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id8_Clob0_Sell20_Price10_GTB22 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 8, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id9_Clob0_Sell20_Price1000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 9, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     1000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id10_Clob0_Sell20_Price10000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 10, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     10000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
	}
	Order_Bob_Num0_Id11_Clob1_Sell5_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 11, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num11_Id11_Clob2_Sell5_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 11, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id11_Clob1_Buy5_Price40_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 11, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num11_Id11_Clob2_Buy5_Price40_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 11, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id12_Clob0_Buy5_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 12, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num11_Id12_Clob2_Buy5_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 12, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id12_Clob0_Buy5_Price40_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 12, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num11_Id12_Clob2_Buy5_Price40_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 12, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id12_Clob1_Buy5_Price40_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 12, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id11_Clob1_Buy5_Price40_GTB32 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 11, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 32},
	}
	Order_Bob_Num0_Id12_Clob0_Sell20_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 12, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num11_Id12_Clob2_Sell20_Price5_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 12, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id12_Clob0_Sell20_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 12, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num11_Id12_Clob2_Sell20_Price15_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num11, ClientId: 12, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id12_Clob0_Sell20_Price35_GTB32 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 12, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 32},
	}
	Order_Bob_Num0_Id13_Clob0_Sell35_Price35_GTB30 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 13, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     35,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	Order_Bob_Num0_Id14_Clob0_Sell10_Price10_GTB25 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 14, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 25},
	}
	Order_Bob_Num0_Id1_Clob0_Buy35_Price55_GTB32 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     35,
		Subticks:     55,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 32},
	}
	Order_Bob_Num0_Id2_Clob0_Sell25_Price95_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     95,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Bob_Num0_Id1_Clob0_Buy100BTC_Price98_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     98_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id1_Clob0_Buy100BTC_Price99_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     99_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id0_Clob0_Sell100BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num0_Id0_Clob0_Sell200BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Bob_Num1_Id1_Clob1_Sell25_Price85_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     85,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price5subticks_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Sell1BTC_Price5000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     5_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price500000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy025BTC_Price500000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25_000_000,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Sell1BTC_Price500000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy70_Price500000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     70,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy110_Price500000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     110,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy110_Price50000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     110,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy10_Price500000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id0_Clob0_Buy80_Price500000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     80,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id0_Clob0_Buy10_Price50000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id0_Clob0_Buy110_Price50000_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     110,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id2_Clob0_Sell5_Price10_GTB15 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	Order_Carl_Num0_Id1_Clob0_Buy01BTC_Price49500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price45000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     45_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy_SmallETH_Price3000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     1_000,
		Subticks:     3_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price49500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_BuySub1BTC_Price49500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     90_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy2BTC_Price49500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     200_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price49800_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     49_800_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price50000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id2_Clob0_Buy1BTC_Price50500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id1_Clob0_Buy1BTC_Price49999 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     49_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id2_Clob0_Buy05BTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     50_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id3_Clob0_Buy025BTC_Price49500 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 3, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id3_Clob0_Buy025BTC_Price49800 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 3, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25_000_000,
		Subticks:     49_800_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id3_Clob0_Buy025BTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 3, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id4_Clob0_Buy05BTC_Price40000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 4, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     50_000_000,
		Subticks:     40_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id5_Clob0_Buy2BTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 5, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     200_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id2_Clob1_Buy10ETH_Price3000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 2, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     3_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id3_Clob1_Buy1ETH_Price3000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 3, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     1_000_000_000,
		Subticks:     3_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id4_Clob1_Buy01ETH_Price3000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     3_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy10QtBTC_Price100000QuoteQt = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     100_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id0_Clob0_Buy10QtBTC_Price100001QuoteQt = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     100_001_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id0_Clob0_Sell1kQtBTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     1_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id1_Clob0_Sell1kQtBTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     1_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num0_Id0_Clob0_Buy100BTC_Price99_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     99_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id1_Clob0_Buy100BTC_Price100_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     100_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num0_Id1_Clob0_Buy100BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1kQtBTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     1_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1kQtBTC_Price60000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     1_000_000,
		Subticks:     60_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id1_Clob0_Buy1kQtBTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     1_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1BTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     49_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1BTC_Price50000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1BTC_Price50003_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_003_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num11_Id0_Clob10_Buy1Link_Price7_003_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num11, ClientId: 0, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     700_300_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1BTC_Price50500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Carl_Num1_Id0_Clob0_Buy1BTC_Price51500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     51_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id2_Clob0_Sell1BTC_Price49500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num11_Id2_Clob10_Sell20Link_Price0_0495_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num11, ClientId: 2, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     2_000_000_000,
		Subticks:     4_950_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price49999_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     49_999_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price50498_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_498_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id1_Clob0_Sell01BTC_Price50500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num11_Id1_Clob10_Sell2Link_Price0_0505_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num11, ClientId: 1, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     200_000_000,
		Subticks:     5_050_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price50500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num11_Id0_Clob10_Sell20Link_Price0_505_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num11, ClientId: 0, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     2_000_000_000,
		Subticks:     5_050_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price60000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     60_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id1_Clob0_Sell025BTC_Price50000_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	Order_Dave_Num0_Id1_Clob0_Sell025BTC_Price50001_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_001_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	Order_Dave_Num11_Id1_Clob10_Sell5Link_Price0_0501_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num11, ClientId: 1, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     500_000_000,
		Subticks:     5_010_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	Order_Dave_Num0_Id1_Clob0_Sell025BTC_Price50498_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_498_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	Order_Dave_Num0_Id1_Clob0_Sell025BTC_Price50500_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	// Replacement for the above order
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id1_Clob0_Sell025BTC_Price50000_GTB12 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 12},
	}
	Order_Dave_Num0_Id2_Clob0_Sell025BTC_Price50000_GTB12 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 12},
	}
	Order_Dave_Num0_Id2_Clob0_Sell025BTC_Price50500_GTB12 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 12},
	}
	Order_Dave_Num0_Id0_Clob0_Buy100BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Dave_Num0_Id0_Clob0_Buy100BTC_Price102_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     102_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Dave_Num0_Id1_Clob0_Buy100BTC_Price104_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     104_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Dave_Num0_Id3_Clob1_Sell1ETH_Price3000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 3, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     1_000_000_000,
		Subticks:     3_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id4_Clob1_Sell1ETH_Price3000 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     1_000_000_000,
		Subticks:     3_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id4_Clob1_Sell1ETH_Price3020 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     1_000_000_000,
		Subticks:     3_020_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num0_Id4_Clob1_Sell1ETH_Price3030 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     1_000_000_000,
		Subticks:     3_030_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num1_Id0_Clob0_Sell1BTC_Price48500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     48_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num1_Id1_Clob0_Sell025BTC_Price50500_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	Order_Dave_Num11_Id1_Clob10_Sell5Link_Price0_0505_GTB11 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num11, ClientId: 1, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     500_000_000,
		Subticks:     5_050_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
	}
	Order_Dave_Num1_Id0_Clob0_Sell1BTC_Price49500_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num1_Id0_Clob0_Sell1BTC_Price49997_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     49_997_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num11_Id0_Clob10_Sell1Link_Price6_997_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num11, ClientId: 0, ClobPairId: 10},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     699_700_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num1_Id0_Clob0_Sell025BTC_Price49999_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     49_999_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num1_Id0_Clob0_Sell025BTC_Price50000_GTB10 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
	}
	Order_Dave_Num1_Id0_Clob0_Buy100BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Dave_Num1_Id0_Clob0_Sell100BTC_Price101_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10_000_000_000,
		Subticks:     101_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}
	Order_Dave_Num1_Id0_Clob0_Sell100BTC_Price102_GTB20 = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10_000_000_000,
		Subticks:     102_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
	}

	// IOC orders.
	Order_Alice_Num0_Id1_Clob0_Buy5_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num0_Id1_Clob1_Buy5_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num11_Id1_Clob2_Buy5_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num0_Id1_Clob1_Sell5_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num11_Id1_Clob2_Sell5_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num0_Id1_Clob1_Buy10_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num11_Id1_Clob2_Buy10_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num0_Id1_Clob1_Sell10_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num11_Id1_Clob2_Sell10_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB20_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB21_IOC = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 21},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}

	// Fill-or-kill orders.
	Order_Alice_Num0_Id0_Clob1_Sell10_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num11_Id0_Clob2_Sell10_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num0_Id0_Clob1_Buy10_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num11_Id0_Clob2_Buy10_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num0_Id0_Clob1_Buy20_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num11_Id0_Clob2_Buy20_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 0, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB21_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 21},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTB10_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Bob_Num0_Id1_Clob1_Buy20_Price35_GTB22_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Carl_Num0_Id0_Clob0_Buy05BTC_Price50000_GTB10_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     50_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price50000_GTB10_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price50000_GTB20_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Carl_Num0_Id0_Clob0_Buy075BTC_Price50000_GTB11_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     75_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 11},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000_GTB10_FOK = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	// FOK + RO orders.
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB20_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob1_Buy10_Price15_GTB20_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob0_Sell10_Price15_GTB20_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob0_Buy10_Price15_GTB20_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id0_Clob0_Buy110_Price50000_GTB21_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     110,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 21},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id0_Clob0_Sell110_Price50000_GTB21_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     110,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 21},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob0_Sell15_Price500000_GTB20_FOK_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:   true,
	}
	// IOC + RO orders.
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB20_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob1_Buy10_Price15_GTB20_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob0_Sell10_Price15_GTB20_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob0_Buy10_Price15_GTB20_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id1_Clob0_Sell15_Price500000_GTB20_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     500_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id0_Clob0_Sell110_Price50000_GTB21_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     110,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 21},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id0_Clob0_Buy110_Price50000_GTB21_IOC_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     110,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 21},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:   true,
	}

	// Reduce-only orders.
	Order_Alice_Num1_Id1_Clob0_Sell10_Price15_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id2_Clob0_Buy20_Price30_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id3_Clob1_Buy30_Price35_GTB25_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 3, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     30,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 25},
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id4_Clob0_Sell15_Price20_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 4, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     20,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id5_Clob1_Sell10_Price15_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 5, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Alice_Num1_Id6_Clob0_Buy10_Price5_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 6, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Bob_Num0_Id1_Clob0_Sell15_Price50_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     50,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Bob_Num0_Id2_Clob0_Sell10_Price35_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Bob_Num0_Id3_Clob0_Sell20_Price10_GTB20_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 3, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}
	Order_Carl_Num0_Id0_Clob0_Buy1BTC_Price50000_GTB10_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Carl_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
		ReduceOnly:   true,
	}
	Order_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000_GTB10_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 0, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 10},
		ReduceOnly:   true,
	}
	Order_Dave_Num0_Id2_Clob0_Sell25BTC_Price50000_GTB12_RO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Dave_Num0, ClientId: 2, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 12},
		ReduceOnly:   true,
	}

	// Post-only orders.
	Order_Alice_Num0_Id1_Clob0_Sell15_Price10_GTB18_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 18},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num11_Id1_Clob2_Sell15_Price10_GTB18_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 18},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num0_Id1_Clob0_Buy15_Price10_GTB18_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num0, ClientId: 1, ClobPairId: 0},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 18},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num11_Id1_Clob2_Buy15_Price10_GTB18_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 18},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num11_Id1_Clob2_Buy15_Price20_GTB18_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 1, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     20,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 18},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num1_Id1_Clob1_Sell10_Price15_GTB20_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 1, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num1_Id4_Clob1_Sell10_Price15_GTB20_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num1, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Alice_Num11_Id4_Clob2_Sell10_Price15_GTB20_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Alice_Num11, ClientId: 4, ClobPairId: 2},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	Order_Bob_Num0_Id4_Clob1_Buy20_Price35_GTB22_PO = clobtypes.Order{
		OrderId:      clobtypes.OrderId{SubaccountId: Bob_Num0, ClientId: 4, ClobPairId: 1},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 22},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
)
View Source
var (
	BtcUsd_OpenInterest1_AtomicRes8 = perptypes.OpenInterestDelta{
		PerpetualId:  0,
		BaseQuantums: big.NewInt(100_000_000),
	}
	EthUsd_OpenInterest1_AtomicRes9 = perptypes.OpenInterestDelta{
		PerpetualId:  1,
		BaseQuantums: big.NewInt(1_000_000_000),
	}
	DefaultTestPerpOIs = []perptypes.OpenInterestDelta{
		BtcUsd_OpenInterest1_AtomicRes8,
		EthUsd_OpenInterest1_AtomicRes9,
	}
)

Perpetual OI setup in tests

View Source
var (
	BtcUsd_InvalidMarketId_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD invalid market Id",
		MarketId:          uint32(9999),
		AtomicResolution:  int32(-10),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_InvalidMarketId = perptypes.Perpetual{
		Params:       BtcUsd_InvalidMarketId_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_0DefaultFunding_0AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 0 percent default funding, 0 atomic resolution",
		MarketId:          uint32(0),
		AtomicResolution:  int32(0),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(2),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_0DefaultFunding_0AtomicResolution = perptypes.Perpetual{
		Params:       BtcUsd_0DefaultFunding_0AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_0DefaultFunding_6AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 0 percent default funding, -6 atomic resolution",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-6),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(2),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_0DefaultFunding_6AtomicResolution = perptypes.Perpetual{
		Params:       BtcUsd_0DefaultFunding_6AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_NegativeDefaultFunding_10AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD -0.001 percent percent default funding",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-10),
		DefaultFundingPpm: int32(-1_000),
		LiquidityTier:     uint32(1),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_NegativeDefaultFunding_10AtomicResolution = perptypes.Perpetual{
		Params:       BtcUsd_NegativeDefaultFunding_10AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_0DefaultFunding_10AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 0 percent default funding",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-10),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(1),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_0DefaultFunding_10AtomicResolution = perptypes.Perpetual{
		Params:       BtcUsd_0DefaultFunding_10AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_0DefaultFunding_10AtomicResolution_UniqueCollatPool_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 0 percent default funding",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-10),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(1),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	BtcUsd_0DefaultFunding_10AtomicResolution_UniqueCollatPool = perptypes.Perpetual{
		Params:       BtcUsd_0DefaultFunding_10AtomicResolution_UniqueCollatPool_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_0DefaultFunding_10AtomicResolution_20IM_18MM_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 0 percent default funding, 20% IM, 18% MM",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-10),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(6),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_0_001Percent_DefaultFunding_10AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                10000,
		Ticker:            "BTC-USD 0.001 percent default funding",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-10),
		DefaultFundingPpm: int32(1000),
		LiquidityTier:     uint32(1),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_0DefaultFunding_10AtomicResolution_20IM_18MM = perptypes.Perpetual{
		Params:       BtcUsd_0DefaultFunding_10AtomicResolution_20IM_18MM_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_0_001Percent_DefaultFunding_10AtomicResolution = perptypes.Perpetual{
		Params:       BtcUsd_0_001Percent_DefaultFunding_10AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_SmallMarginRequirement_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD small margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(8),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_SmallMarginRequirement_DangerIndex_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD small margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(8),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_SmallMarginRequirement_Isolated_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD small margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(8),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(2),
	}

	BtcUsd_SmallMarginRequirement = perptypes.Perpetual{
		Params:       BtcUsd_SmallMarginRequirement_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_SmallMarginRequirement_CollatPool1_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "ETH-USD small margin requirement",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(8),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	EthUsd_SmallMarginRequirement_CollatPool1 = perptypes.Perpetual{
		Params:       EthUsd_SmallMarginRequirement_CollatPool1_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_SmallMarginRequirement_DangerIndex = perptypes.Perpetual{
		Params:       BtcUsd_SmallMarginRequirement_DangerIndex_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_SmallMarginRequirement_Isolated = perptypes.Perpetual{
		Params:       BtcUsd_SmallMarginRequirement_Isolated_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_100PercentMarginRequirement_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 100% margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_100PercentMarginRequirement_Params_Danger_Index = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 100% margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_50PercentInitial_40PercentMaintenance_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 50/40 margin requirements",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(4),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_100PercentMarginRequirement = perptypes.Perpetual{
		Params:       BtcUsd_100PercentMarginRequirement_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_100PercentMarginRequirement_Danger_Index = perptypes.Perpetual{
		Params:       BtcUsd_100PercentMarginRequirement_Params_Danger_Index,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_50PercentInitial_40PercentMaintenance = perptypes.Perpetual{
		Params:       BtcUsd_50PercentInitial_40PercentMaintenance_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 20/10 margin requirements",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_Params_Danger_Index = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 20/10 margin requirements",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(0),
	}

	// Note: These share the same params
	BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest1_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 20/10 margin requirements",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance = perptypes.Perpetual{
		Params:       BtcUsd_20PercentInitial_10PercentMaintenance_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest20 = perptypes.Perpetual{
		Params:       BtcUsd_20PercentInitial_10PercentMaintenance_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.NewInt(20_000_000_000),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_Danger_Index = perptypes.Perpetual{
		Params:       BtcUsd_20PercentInitial_10PercentMaintenance_Params_Danger_Index,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcEth_20PercentInitial_10PercentMaintenance_OpenInterest1_Params = perptypes.PerpetualParams{
		Id:                2,
		Ticker:            "BTC-ETH 20/10 margin requirements",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	BtcEth_20PercentInitial_10PercentMaintenance = perptypes.Perpetual{
		Params:       BtcEth_20PercentInitial_10PercentMaintenance_OpenInterest1_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest1 = perptypes.Perpetual{
		Params:       BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest1_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.NewInt(100_000_000),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest2_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 20/10 margin requirements",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_25mmLowerCap_50mmUpperCap_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD 20/10 margin requirements",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(9),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest2 = perptypes.Perpetual{
		Params:       BtcUsd_20PercentInitial_10PercentMaintenance_OpenInterest2_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.NewInt(200_000_000),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_20PercentInitial_10PercentMaintenance_25mmLowerCap_50mmUpperCap = perptypes.Perpetual{
		Params:       BtcUsd_20PercentInitial_10PercentMaintenance_25mmLowerCap_50mmUpperCap_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcUsd_NoMarginRequirement_Params = perptypes.PerpetualParams{
		Id:                0,
		Ticker:            "BTC-USD no margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(7),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_0DefaultFunding_6AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD default fundingm, -9 atomic resolution",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-6),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(5),
		CollateralPoolId:  uint32(0),
	}

	BtcUsd_NoMarginRequirement = perptypes.Perpetual{
		Params:       BtcUsd_NoMarginRequirement_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_0DefaultFunding_6AtomicResolution = perptypes.Perpetual{
		Params:       EthUsd_0DefaultFunding_6AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_0DefaultFunding_9AtomicResolution_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD default fundingm, -9 atomic resolution",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(5),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_NoMarginRequirement_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD no margin requirement",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(7),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_0DefaultFunding_9AtomicResolution = perptypes.Perpetual{
		Params:       EthUsd_0DefaultFunding_9AtomicResolution_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_NoMarginRequirement = perptypes.Perpetual{
		Params:       EthUsd_NoMarginRequirement_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_20PercentInitial_10PercentMaintenance_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD 20/10 margin requirements",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_20PercentInitial_10PercentMaintenance_DangerIndex_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD 20/10 margin requirements",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_20PercentInitial_10PercentMaintenance = perptypes.Perpetual{
		Params:       EthUsd_20PercentInitial_10PercentMaintenance_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_20PercentInitial_10PercentMaintenance_DangerIndex = perptypes.Perpetual{
		Params:       EthUsd_20PercentInitial_10PercentMaintenance_DangerIndex_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_20PercentInitial_10PercentMaintenance_Isolated_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD 20/10 margin requirements",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(2),
	}

	EthUsd_100PercentMarginRequirement_Params = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD 100/100 margin requirements",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_100PercentMarginRequirement_Params_DangerIndex = perptypes.PerpetualParams{
		Id:                1,
		Ticker:            "ETH-USD 100/100 margin requirements",
		MarketId:          uint32(1),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(0),
	}

	EthUsd_20PercentInitial_10PercentMaintenance_Isolated = perptypes.Perpetual{
		Params:       EthUsd_20PercentInitial_10PercentMaintenance_Isolated_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_100PercentMarginRequirement = perptypes.Perpetual{
		Params:       EthUsd_100PercentMarginRequirement_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	EthUsd_100PercentMarginRequirement_DangerIndex = perptypes.Perpetual{
		Params:       EthUsd_100PercentMarginRequirement_Params_DangerIndex,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	SolUsd_20PercentInitial_10PercentMaintenance_Params = perptypes.PerpetualParams{
		Id:                2,
		Ticker:            "SOL-USD 20/10 margin requirements",
		MarketId:          uint32(2),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(0),
	}

	SolUsd_20PercentInitial_10PercentMaintenance_Params_DangerIndex = perptypes.PerpetualParams{
		Id:                2,
		Ticker:            "SOL-USD 20/10 margin requirements",
		MarketId:          uint32(2),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(0),
	}

	SolUsd_20PercentInitial_10PercentMaintenance = perptypes.Perpetual{
		Params:       SolUsd_20PercentInitial_10PercentMaintenance_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	SolUsd_20PercentInitial_10PercentMaintenance_DangerIndex = perptypes.Perpetual{
		Params:       SolUsd_20PercentInitial_10PercentMaintenance_Params_DangerIndex,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	IsoUsd_IsolatedMarket_Params = perptypes.PerpetualParams{
		Id:                3,
		Ticker:            "ISO-USD",
		MarketId:          uint32(3),
		AtomicResolution:  int32(-9),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(2),
	}

	IsoUsd_IsolatedMarket = perptypes.Perpetual{
		Params:       IsoUsd_IsolatedMarket_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	Iso2Usd_IsolatedMarket_Params = perptypes.PerpetualParams{
		Id:                4,
		Ticker:            "ISO2-USD",
		MarketId:          uint32(4),
		AtomicResolution:  int32(-7),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(3),
	}

	Iso2Usd_IsolatedMarket = perptypes.Perpetual{
		Params:       Iso2Usd_IsolatedMarket_Params,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id5 = perptypes.PerpetualParams{
		Id:                5,
		Ticker:            "ISO-BTC1",
		MarketId:          uint32(5),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id5_DangerIndex1 = perptypes.PerpetualParams{
		Id:                5,
		Ticker:            "ISO-BTC1",
		MarketId:          uint32(5),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(1),
	}

	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Id5 = perptypes.Perpetual{
		Params:       IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id5,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Id5_DangerIndex1 = perptypes.Perpetual{
		Params:       IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id5_DangerIndex1,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool4_Params_Id6 = perptypes.PerpetualParams{
		Id:                6,
		Ticker:            "ISO-BTC4",
		MarketId:          uint32(5),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(4),
	}

	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool4_Id6 = perptypes.Perpetual{
		Params:       IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool4_Params_Id6,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id7 = perptypes.PerpetualParams{
		Id:                7,
		Ticker:            "ISO2-BTC1",
		MarketId:          uint32(6),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id7_DangerIndex1 = perptypes.PerpetualParams{
		Id:                7,
		Ticker:            "ISO2-BTC1",
		MarketId:          uint32(6),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(1),
	}

	Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Id7 = perptypes.Perpetual{
		Params:       Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id7,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Id7_DangerIndex1 = perptypes.Perpetual{
		Params:       Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Params_Id7_DangerIndex1,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcBtc_100PercentMarginRequirement_CollatPool1_Params_Id8 = perptypes.PerpetualParams{
		Id:                8,
		Ticker:            "BTC-BTC 100% margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	BtcBtc_100PercentMarginRequirement_CollatPool1_Id8 = perptypes.Perpetual{
		Params:       BtcBtc_100PercentMarginRequirement_CollatPool1_Params_Id8,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcBtc_100PercentMarginRequirement_CollatPool1_Params_Id8_DangerIndex1 = perptypes.PerpetualParams{
		Id:                8,
		Ticker:            "BTC-BTC 100% margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(0),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(1),
	}

	BtcBtc_100PercentMarginRequirement_CollatPool1_Id8_DangerIndex1 = perptypes.Perpetual{
		Params:       BtcBtc_100PercentMarginRequirement_CollatPool1_Params_Id8_DangerIndex1,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcBtc_SmallMarginRequirement_CollatPool1_Params_Id9 = perptypes.PerpetualParams{
		Id:                9,
		Ticker:            "BTC-BTC small margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(8),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	BtcBtc_SmallMarginRequirement_CollatPool1_Id9 = perptypes.Perpetual{
		Params:       BtcBtc_SmallMarginRequirement_CollatPool1_Params_Id9,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcBtc_10_20MarginRequirement_CollatPool1_Params_Id10 = perptypes.PerpetualParams{
		Id:                10,
		Ticker:            "BTC-BTC 10/20 margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	BtcBtc_10_20MarginRequirement_CollatPool1_Id10 = perptypes.Perpetual{
		Params:       BtcBtc_10_20MarginRequirement_CollatPool1_Params_Id10,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcBtc_10_20MarginRequirement_CollatPool1_Id10_OpenInterest20 = perptypes.Perpetual{
		Params:       BtcBtc_10_20MarginRequirement_CollatPool1_Params_Id10,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.NewInt(2_000_000_000),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	BtcBtc_10_20MarginRequirement_CollatPool1_Params_Id10_DangerIndex1 = perptypes.PerpetualParams{
		Id:                10,
		Ticker:            "BTC-BTC 10/20 margin requirement",
		MarketId:          uint32(0),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(1),
		CollateralPoolId:  uint32(1),
	}

	BtcBtc_10_20MarginRequirement_CollatPool1_Id10_DangerIndex1 = perptypes.Perpetual{
		Params:       BtcBtc_10_20MarginRequirement_CollatPool1_Params_Id10_DangerIndex1,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	}

	LinkBtc_10_20MarginRequirement_CollatPool1_Params_Id11 = perptypes.PerpetualParams{
		Id:                11,
		Ticker:            "Link-BTC 10/20 margin requirement",
		MarketId:          uint32(5),
		AtomicResolution:  int32(-8),
		DefaultFundingPpm: int32(0),
		LiquidityTier:     uint32(3),
		DangerIndexPpm:    uint32(0),
		CollateralPoolId:  uint32(1),
	}

	LinkBtc_10_20MarginRequirement_CollatPool1_Id11_OpenInterest20 = perptypes.Perpetual{
		Params:       LinkBtc_10_20MarginRequirement_CollatPool1_Params_Id11,
		FundingIndex: dtypes.ZeroInt(),
		OpenInterest: dtypes.NewInt(2_000_000_000),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
)

Perpetual objects.

View Source
var (
	TestAddPremiumVotesMsg = &perptypes.MsgAddPremiumVotes{
		Votes: []perptypes.FundingPremium{
			{
				PerpetualId: 0,
				PremiumPpm:  1000,
			},
		},
	}

	EmptyMsgAddPremiumVotes        = &perptypes.MsgAddPremiumVotes{}
	EmptyMsgAddPremiumVotesTxBytes []byte

	ValidMsgAddPremiumVotes = &perptypes.MsgAddPremiumVotes{
		Votes: []perptypes.FundingPremium{
			{PerpetualId: 1, PremiumPpm: 1_000},
			{PerpetualId: 2, PremiumPpm: 2_000},
		},
	}
	ValidMsgAddPremiumVotesTxBytes []byte

	InvalidMsgAddPremiumVotes = &perptypes.MsgAddPremiumVotes{
		Votes: []perptypes.FundingPremium{
			{PerpetualId: 3, PremiumPpm: 3_000},
			{PerpetualId: 2, PremiumPpm: 2_000},
		},
	}
	InvalidMsgAddPremiumVotesTxBytes []byte

	Perpetuals_DefaultGenesisState = perptypes.GenesisState{
		CollateralPools: []perptypes.CollateralPool{
			{
				CollateralPoolId:                        0,
				MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
				MultiCollateralAssets:                   &perptypes.MultiCollateralAssetsArray{MultiCollateralAssets: []uint32{0}},
				QuoteAssetId:                            0,
			},
			{
				CollateralPoolId:                        1,
				MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
				MultiCollateralAssets:                   &perptypes.MultiCollateralAssetsArray{MultiCollateralAssets: []uint32{1}},
				QuoteAssetId:                            1,
			},
			{
				CollateralPoolId:                        2,
				MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
				MultiCollateralAssets:                   &perptypes.MultiCollateralAssetsArray{MultiCollateralAssets: []uint32{0}},
				QuoteAssetId:                            0,
			},
		},
		LiquidityTiers: []perptypes.LiquidityTier{
			{
				Id:                     uint32(0),
				Name:                   "Large-Cap",
				InitialMarginPpm:       200_000,
				MaintenanceFractionPpm: 500_000,
				ImpactNotional:         2_500_000_000,
				OpenInterestLowerCap:   0,
				OpenInterestUpperCap:   0,
			},
			{
				Id:                     uint32(1),
				Name:                   "Mid-Cap",
				InitialMarginPpm:       300_000,
				MaintenanceFractionPpm: 600_000,
				ImpactNotional:         1_667_000_000,
				OpenInterestLowerCap:   25_000_000_000_000,
				OpenInterestUpperCap:   50_000_000_000_000,
			},
			{
				Id:                     uint32(2),
				Name:                   "Small-Cap",
				InitialMarginPpm:       400_000,
				MaintenanceFractionPpm: 700_000,
				ImpactNotional:         1_250_000_000,
				OpenInterestLowerCap:   10_000_000_000_000,
				OpenInterestUpperCap:   20_000_000_000_000,
			},
		},
		Params: PerpetualsGenesisParams,
		Perpetuals: []perptypes.Perpetual{
			{
				Params: perptypes.PerpetualParams{
					Id:               uint32(0),
					Ticker:           "genesis_test_ticker_0",
					LiquidityTier:    0,
					DangerIndexPpm:   uint32(0),
					CollateralPoolId: 0,
				},
				FundingIndex:    dtypes.ZeroInt(),
				OpenInterest:    dtypes.ZeroInt(),
				LastFundingRate: dtypes.ZeroInt(),
				YieldIndex:      big.NewRat(0, 1).String(),
			},
			{
				Params: perptypes.PerpetualParams{
					Id:               uint32(1),
					Ticker:           "genesis_test_ticker_1",
					LiquidityTier:    1,
					DangerIndexPpm:   uint32(0),
					CollateralPoolId: 0,
				},
				FundingIndex:    dtypes.ZeroInt(),
				OpenInterest:    dtypes.ZeroInt(),
				LastFundingRate: dtypes.ZeroInt(),
				YieldIndex:      big.NewRat(0, 1).String(),
			},
		},
	}
)

AddPremiumVotes messages.

View Source
var (
	// Perpetual Positions.
	Long_Perp_1BTC_PositiveFunding = satypes.PerpetualPosition{
		PerpetualId:  0,
		Quantums:     dtypes.NewInt(100_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	Short_Perp_1ETH_NegativeFunding = satypes.PerpetualPosition{
		PerpetualId:  1,
		Quantums:     dtypes.NewInt(-100_000_000),
		FundingIndex: dtypes.NewInt(-1),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneBTCLong = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}

	PerpetualPosition_OneETHLong_BTCQuote = satypes.PerpetualPosition{
		PerpetualId: 6,
		Quantums:    dtypes.NewInt(100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}

	PerpetualPosition_OneETHLong_BTCQuote_CollatPool1_Id8 = satypes.PerpetualPosition{
		PerpetualId: 8,
		Quantums:    dtypes.NewInt(100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}

	PerpetualPosition_OneETHLong_BTCQuote_CollatPool4 = satypes.PerpetualPosition{
		PerpetualId: 7,
		Quantums:    dtypes.NewInt(100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}

	PerpetualPosition_OneBTCShort = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(-100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneTenthBTCLong = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(10_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneTenthBTCShort = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(-10_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneHundredthBTCLong = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(1_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneAndHalfBTCLong = satypes.PerpetualPosition{
		PerpetualId:  0,
		Quantums:     dtypes.NewInt(150_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_FourThousandthsBTCLong = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(400_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_FourThousandthsBTCShort = satypes.PerpetualPosition{
		PerpetualId: 0,
		Quantums:    dtypes.NewInt(-400_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneTenthEthLong = satypes.PerpetualPosition{
		PerpetualId: 1,
		Quantums:    dtypes.NewInt(100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneTenthEthShort = satypes.PerpetualPosition{
		PerpetualId: 1,
		Quantums:    dtypes.NewInt(-100_000_000),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_MaxUint64EthLong = satypes.PerpetualPosition{
		PerpetualId: 1,
		Quantums:    dtypes.NewIntFromUint64(math.MaxUint64),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	PerpetualPosition_MaxUint64EthShort = satypes.PerpetualPosition{
		PerpetualId: 1,
		Quantums:    dtypes.NewIntFromBigInt(BigNegMaxUint64()),
		YieldIndex:  big.NewRat(0, 1).String(),
	}
	// Long position for arbitrary isolated market
	PerpetualPosition_OneISOLong = satypes.PerpetualPosition{
		PerpetualId:  3,
		Quantums:     dtypes.NewInt(1_000_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneISO2Long = satypes.PerpetualPosition{
		PerpetualId:  4,
		Quantums:     dtypes.NewInt(10_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneIsoBtcLong = satypes.PerpetualPosition{
		PerpetualId:  5,
		Quantums:     dtypes.NewInt(10_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_MaxUintIsoBtcLong = satypes.PerpetualPosition{
		PerpetualId:  5,
		Quantums:     dtypes.NewIntFromUint64(math.MaxUint64),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_MaxUintIsoBtcShort = satypes.PerpetualPosition{
		PerpetualId:  5,
		Quantums:     dtypes.NewIntFromBigInt(BigNegMaxUint64()),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneIsoBtcLong_CollatPool4 = satypes.PerpetualPosition{
		PerpetualId:  6,
		Quantums:     dtypes.NewInt(10_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	// Short positions for isolated markets
	PerpetualPosition_OneISOShort = satypes.PerpetualPosition{
		PerpetualId:  3,
		Quantums:     dtypes.NewInt(-100_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneISO2Short = satypes.PerpetualPosition{
		PerpetualId:  4,
		Quantums:     dtypes.NewInt(-10_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	PerpetualPosition_OneIsoBtcShort = satypes.PerpetualPosition{
		PerpetualId:  5,
		Quantums:     dtypes.NewInt(-10_000_000),
		FundingIndex: dtypes.NewInt(0),
		YieldIndex:   big.NewRat(0, 1).String(),
	}
	// Asset Positions
	TDai_Asset_0 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(0),
	}
	TDai_Asset_500 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(500_000_000),
	}
	Short_TDai_Asset_500 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(-500_000_000),
	}
	TDai_Asset_599 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(599_000_000),
	}
	TDai_Asset_660 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(660_000_000),
	}
	Short_TDai_Asset_4_600 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(-4_600_000_000),
	}
	Short_TDai_Asset_2_900 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(-2_900_000_000),
	}
	Short_TDai_Asset_46_000 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(-46_000_000_000),
	}
	Short_TDai_Asset_49_500 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(-49_500_000_000),
	}
	Short_TDai_Asset_9_900 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(-9_900_000_000),
	}
	TDai_Asset_1 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(1_000_000),
	}
	TDai_Asset_10_000 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(10_000_000_000),
	}
	Btc_Asset_10_000 = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(10_000_000_000),
	}
	Btc_Asset_5 = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(500_000_000),
	}
	Btc_Asset_500 = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(50_000_000_000),
	}
	Btc_Asset_1 = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(100_000_000),
	}
	Btc_Asset_0_1 = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(10_000_000),
	}
	TDai_Asset_10_100 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(10_100_000_000),
	}
	TDai_Asset_10_200 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(10_200_000_000),
	}
	TDai_Asset_50_000 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(50_000_000_000),
	}
	TDai_Asset_99_999 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(99_999_000_000),
	}
	TDai_Asset_100_000 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(100_000_000_000),
	}
	TDai_Asset_100_499 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(100_499_000_000),
	}
	TDai_Asset_500_000 = satypes.AssetPosition{
		AssetId:  0,
		Quantums: dtypes.NewInt(500_000_000_000),
	}
	Long_Asset_1BTC = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(100_000_000),
	}
	Long_Asset_100000BTC = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(10_000_000_000_000),
	}
	Short_Asset_1BTC = satypes.AssetPosition{
		AssetId:  1,
		Quantums: dtypes.NewInt(-100_000_000),
	}
	Long_Asset_1ETH = satypes.AssetPosition{
		AssetId:  2,
		Quantums: dtypes.NewInt(1_000_000_000),
	}
	Short_Asset_1ETH = satypes.AssetPosition{
		AssetId:  2,
		Quantums: dtypes.NewInt(-1_000_000_000),
	}
)
View Source
var (
	// Markets
	MarketId0 = uint32(0)
	MarketId1 = uint32(1)
	MarketId2 = uint32(2)
	MarketId3 = uint32(3)
	MarketId4 = uint32(4)

	MarketId7  = uint32(7)
	MarketId8  = uint32(8)
	MarketId9  = uint32(9)
	MarketId10 = uint32(10)
	MarketId11 = uint32(11)

	// Exponents
	Exponent9 = int32(-9)
	Exponent8 = int32(-8)
	Exponent7 = int32(-7)

	// Exchanges
	ExchangeId0 = "Exchange0"
	ExchangeId1 = "Exchange1"
	ExchangeId2 = "Exchange2"
	ExchangeId3 = "Exchange3"

	// ExchangeArray
	Exchange1Exchange2Array = []string{
		ExchangeId1,
		ExchangeId2,
	}

	// MarketPriceTimestamps
	Market8_TimeTMinusThreshold_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId8,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price1,
	}
	Market8_TimeTMinusThreshold_Price2 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId8,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price2,
	}
	Market8_TimeTMinusThreshold_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId8,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price3,
	}
	Market8_TimeT_Price2 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId8,
		LastUpdatedAt: TimeT,
		Price:         Price2,
	}
	Market8_TimeT_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId8,
		LastUpdatedAt: TimeT,
		Price:         Price3,
	}
	Market8_TimeT_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId8,
		LastUpdatedAt: TimeT,
		Price:         Price1,
	}
	Market9_TimeTMinusThreshold_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price1,
	}
	Market9_TimeTMinusThreshold_Price2 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price2,
	}
	Market9_TimeTMinusThreshold_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price3,
	}
	Market9_TimeT_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeT,
		Price:         Price1,
	}
	Market9_TimeT_Price2 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeT,
		Price:         Price2,
	}
	Market9_TimeT_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeT,
		Price:         Price3,
	}
	Market9_TimeTPlusThreshold_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeTPlusThreshold,
		Price:         Price1,
	}
	Market9_TimeTPlusThreshold_Price2 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeTPlusThreshold,
		Price:         Price2,
	}
	Market9_TimeTPlusThreshold_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId9,
		LastUpdatedAt: TimeTPlusThreshold,
		Price:         Price3,
	}
	Market10_TimeT_Price4 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId10,
		LastUpdatedAt: TimeT,
		Price:         Price4,
	}
	Market11_TimeT_Price5 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId11,
		LastUpdatedAt: TimeT,
		Price:         Price5,
	}
	Market7_BeforeTimeT_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId7,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price1,
	}
	Market7_BeforeTimeT_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId7,
		LastUpdatedAt: TimeTMinusThreshold,
		Price:         Price3,
	}
	Market7_TimeT_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId7,
		LastUpdatedAt: TimeT,
		Price:         Price1,
	}
	Market7_TimeT_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId7,
		LastUpdatedAt: TimeT,
		Price:         Price3,
	}
	Market7_TimeTPlusThreshold_Price1 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId7,
		LastUpdatedAt: TimeTPlusThreshold,
		Price:         Price1,
	}
	Market7_TimeTPlusThreshold_Price3 = &daemonClientTypes.MarketPriceTimestamp{
		MarketId:      MarketId7,
		LastUpdatedAt: TimeTPlusThreshold,
		Price:         Price3,
	}

	// Prices
	InvalidPrice uint64 = 0
	Price1       uint64 = 1001
	Price2       uint64 = 2002
	Price3       uint64 = 3003
	Price4       uint64 = 4004
	Price5       uint64 = 500005
	Price6       uint64 = 60006
	Price7       uint64 = 7007

	Price1In100_000SubticksPerTick = Price1 * 100_000
	Price2In100_000SubticksPerTick = Price2 * 100_000
	Price3In100_000SubticksPerTick = Price3 * 100_000
	Price4In100_000SubticksPerTick = Price4 * 100_000
	Price5In100_000SubticksPerTick = Price5 * 100_000
	Price6In100_000SubticksPerTick = Price6 * 100_000
	Price7In100_000SubticksPerTick = Price7 * 100_000

	Price5Negative int64 = -500005
	Price6Negative int64 = -60006
	Price7Negative int64 = -7007

	Price1Big = big.NewInt(int64(Price1))
	Price2Big = big.NewInt(int64(Price2))
	Price3Big = big.NewInt(int64(Price3))
	Price4Big = big.NewInt(int64(Price4))
	Price5Big = big.NewInt(int64(Price5))
	Price6Big = big.NewInt(int64(Price6))
	Price7Big = big.NewInt(int64(Price7))

	Price5NegativeBig = big.NewInt(Price5Negative)
	Price6NegativeBig = big.NewInt(Price6Negative)
	Price7NegativeBig = big.NewInt(Price7Negative)

	Price1Bytes, _ = Price1Big.GobEncode()
	Price2Bytes, _ = Price2Big.GobEncode()
	Price3Bytes, _ = Price3Big.GobEncode()
	Price4Bytes, _ = Price4Big.GobEncode()
	Price5Bytes, _ = Price5Big.GobEncode()
	Price6Bytes, _ = Price6Big.GobEncode()
	Price7Bytes, _ = Price7Big.GobEncode()

	Price5NegativeBytes, _ = Price5NegativeBig.GobEncode()
	Price6NegativeBytes, _ = Price6NegativeBig.GobEncode()
	Price7NegativeBytes, _ = Price7NegativeBig.GobEncode()

	// Funding Rates
	FundingRate1 = int64(10000) // 0.01% (10000 ppm)
	FundingRate2 = int64(-5000) // -0.005% (-5000 ppm)
	FundingRate3 = int64(25000) // 0.025% (25000 ppm)

	// Exchange 0 prices
	Exchange0_Price4_TimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId1,
		Price:          Price4,
		LastUpdateTime: &TimeT,
	}

	// Exchange 1 prices
	Exchange1_Price1_TimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId1,
		Price:          Price1,
		LastUpdateTime: &TimeT,
	}
	Exchange1_Price2_AfterTimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId1,
		Price:          Price2,
		LastUpdateTime: &TimeTPlusThreshold,
	}
	Exchange1_Price3_BeforeTimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId1,
		Price:          Price3,
		LastUpdateTime: &TimeTMinusThreshold,
	}

	// Exchange 2 prices
	Exchange2_Price2_TimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId2,
		Price:          Price2,
		LastUpdateTime: &TimeT,
	}
	Exchange2_Price3_AfterTimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId2,
		Price:          Price3,
		LastUpdateTime: &TimeTPlusThreshold,
	}
	Exchange2_Price1_BeforeTimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId2,
		Price:          Price1,
		LastUpdateTime: &TimeTMinusThreshold,
	}

	// Exchange 3 prices
	Exchange3_Price3_TimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId3,
		Price:          Price3,
		LastUpdateTime: &TimeT,
	}
	Exchange3_Price4_AfterTimeT = &api.ExchangePrice{
		ExchangeId:     ExchangeId3,
		Price:          Price4,
		LastUpdateTime: &TimeTPlusThreshold,
	}

	// Price Updates
	Market9_SingleExchange_AtTimeUpdate = []*api.MarketPriceUpdate{
		{
			MarketId: MarketId9,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price1_TimeT,
			},
		},
	}
	AtTimeTPriceUpdate = []*api.MarketPriceUpdate{
		{
			MarketId: MarketId9,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price1_TimeT,
				Exchange2_Price2_TimeT,
			},
		},
		{
			MarketId: MarketId8,
			ExchangePrices: []*api.ExchangePrice{
				Exchange2_Price2_TimeT,
				Exchange3_Price3_TimeT,
			},
		},
		{
			MarketId: MarketId7,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price1_TimeT,
				Exchange3_Price3_TimeT,
			},
		},
	}

	AtTimeTSingleExchangePriceUpdate = []*api.MarketPriceUpdate{
		{
			MarketId: MarketId0,
			ExchangePrices: []*api.ExchangePrice{
				Exchange0_Price4_TimeT,
			},
		},
		{
			MarketId: MarketId1,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price1_TimeT,
			},
		},
		{
			MarketId: MarketId2,
			ExchangePrices: []*api.ExchangePrice{
				Exchange2_Price2_TimeT,
			},
		},
		{
			MarketId: MarketId3,
			ExchangePrices: []*api.ExchangePrice{
				Exchange3_Price3_TimeT,
			},
		},
		{
			MarketId: MarketId4,
			ExchangePrices: []*api.ExchangePrice{
				Exchange3_Price3_TimeT,
			},
		},
	}
	AtTimeTSingleExchangeSmoothedPrices = map[uint32]uint64{
		MarketId0: Exchange0_Price4_TimeT.Price,
		MarketId1: Exchange1_Price1_TimeT.Price,
		MarketId2: Exchange2_Price2_TimeT.Price,
		MarketId3: Exchange3_Price3_TimeT.Price,
		MarketId4: Exchange3_Price3_TimeT.Price,
	}

	AtTimeTSingleExchangeSmoothedPricesPlus10 = map[uint32]uint64{
		MarketId0: Exchange0_Price4_TimeT.Price + 10,
		MarketId1: Exchange1_Price1_TimeT.Price + 10,
		MarketId2: Exchange2_Price2_TimeT.Price + 10,
		MarketId3: Exchange3_Price3_TimeT.Price + 10,
		MarketId4: Exchange3_Price3_TimeT.Price + 10,
	}

	AtTimeTSingleExchangeSmoothedPricesPlus7 = map[uint32]uint64{
		MarketId0: Exchange0_Price4_TimeT.Price + 7,
		MarketId1: Exchange1_Price1_TimeT.Price + 7,
		MarketId2: Exchange2_Price2_TimeT.Price + 7,
		MarketId3: Exchange3_Price3_TimeT.Price + 7,
		MarketId4: Exchange3_Price3_TimeT.Price + 7,
	}

	MixedTimePriceUpdate = []*api.MarketPriceUpdate{
		{
			MarketId: MarketId9,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price1_TimeT,
				Exchange2_Price2_TimeT,
				Exchange3_Price3_TimeT,
			},
		},
		{
			MarketId: MarketId8,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price3_BeforeTimeT,
				Exchange2_Price2_TimeT,
				Exchange3_Price3_TimeT,
			},
		},
		{
			MarketId: MarketId7,
			ExchangePrices: []*api.ExchangePrice{
				Exchange1_Price3_BeforeTimeT,
				Exchange2_Price1_BeforeTimeT,
				Exchange3_Price3_TimeT,
			},
		},
	}

	// Markets
	AllMarketParamsMinExchanges2 = []types.MarketParam{
		{
			Id:           MarketId9,
			Exponent:     Exponent9,
			MinExchanges: 2,
		},
		{
			Id:           MarketId8,
			Exponent:     Exponent8,
			MinExchanges: 2,
		},
		{
			Id:           MarketId7,
			Exponent:     Exponent7,
			MinExchanges: 2,
		},
	}
	AllMarketParamsMinExchanges3 = []types.MarketParam{
		{
			Id:           MarketId9,
			MinExchanges: 3,
		},
		{
			Id:           MarketId8,
			MinExchanges: 3,
		},
		{
			Id:           MarketId7,
			MinExchanges: 3,
		},
	}

	SingleMarketExchangeQueryDetails = daemonClientTypes.ExchangeQueryDetails{IsMultiMarket: false}
	MultiMarketExchangeQueryDetails  = daemonClientTypes.ExchangeQueryDetails{IsMultiMarket: true}

	// ExchangeQueryConfigs.
	Exchange1_0MaxQueries_QueryConfig = daemonClientTypes.ExchangeQueryConfig{
		ExchangeId: ExchangeId1,
		IntervalMs: 100,
		TimeoutMs:  3_000,
		MaxQueries: 0,
	}

	Exchange1_1MaxQueries_QueryConfig = daemonClientTypes.ExchangeQueryConfig{
		ExchangeId: ExchangeId1,
		IntervalMs: 100,
		TimeoutMs:  3_000,
		MaxQueries: 1,
	}

	Exchange1_2MaxQueries_QueryConfig = daemonClientTypes.ExchangeQueryConfig{
		ExchangeId: ExchangeId1,
		IntervalMs: 100,
		TimeoutMs:  3_000,
		MaxQueries: 2,
	}

	// MutableExchangeMarketConfigs for 0, 1, 2, 3, and 5 markets.
	Exchange1_NoMarkets_MutableExchangeMarketConfig = daemonClientTypes.MutableExchangeMarketConfig{
		Id:                   ExchangeId1,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{},
	}

	Exchange1_1Markets_MutableExchangeMarketConfig = daemonClientTypes.MutableExchangeMarketConfig{
		Id: ExchangeId1,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{
			MarketId7: {
				Ticker: "BTC-USD",
			},
		},
	}

	Exchange1_2Markets_MutableExchangeMarketConfig = daemonClientTypes.MutableExchangeMarketConfig{
		Id: ExchangeId1,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{
			MarketId7: {
				Ticker: "BTC-USD",
			},
			MarketId8: {
				Ticker: "ETH-USD",
			},
		},
	}

	Exchange1_3Markets_MutableExchangeMarketConfig = daemonClientTypes.MutableExchangeMarketConfig{
		Id: ExchangeId1,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{
			MarketId7: {
				Ticker: "BTC-USD",
			},
			MarketId8: {
				Ticker: "ETH-USD",
			},
			MarketId9: {
				Ticker: "LTC-USD",
			},
		},
	}

	Exchange1_5Markets_MutableExchangeMarketConfig = daemonClientTypes.MutableExchangeMarketConfig{
		Id: ExchangeId1,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{
			MarketId7: {
				Ticker: "BTC-USD",
			},
			MarketId8: {
				Ticker: "ETH-USD",
			},
			MarketId9: {
				Ticker: "LTC-USD",
			},
			MarketId10: {
				Ticker: "XRP-USD",
			},
			MarketId11: {
				Ticker: "BCH-USD",
			},
		},
	}

	CanonicalMarketExponents = map[daemonClientTypes.MarketId]daemonClientTypes.Exponent{
		MarketId7:  MutableMarketConfigs_5Markets[0].Exponent,
		MarketId8:  MutableMarketConfigs_5Markets[1].Exponent,
		MarketId9:  MutableMarketConfigs_5Markets[2].Exponent,
		MarketId10: MutableMarketConfigs_5Markets[3].Exponent,
		MarketId11: MutableMarketConfigs_5Markets[4].Exponent,
	}

	CanonicalMarketPriceTimestampResponses = map[uint32]*daemonClientTypes.MarketPriceTimestamp{
		MarketId7:  Market7_TimeTPlusThreshold_Price3,
		MarketId8:  Market8_TimeTMinusThreshold_Price2,
		MarketId9:  Market9_TimeT_Price1,
		MarketId10: Market10_TimeT_Price4,
		MarketId11: Market11_TimeT_Price5,
	}

	// ExchangeIdMarketPriceTimestamps
	ExchangeId1_Market9_TimeT_Price1 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId1,
		MarketPriceTimestamp: Market9_TimeT_Price1,
	}
	ExchangeId2_Market9_TimeT_Price2 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId2,
		MarketPriceTimestamp: Market9_TimeT_Price2,
	}
	ExchangeId3_Market9_TimeT_Price3 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId3,
		MarketPriceTimestamp: Market9_TimeT_Price3,
	}
	ExchangeId1_Market8_BeforeTimeT_Price3 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId1,
		MarketPriceTimestamp: Market8_TimeTMinusThreshold_Price3,
	}
	ExchangeId2_Market8_TimeT_Price2 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId2,
		MarketPriceTimestamp: Market8_TimeT_Price2,
	}
	ExchangeId3_Market8_TimeT_Price3 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId3,
		MarketPriceTimestamp: Market8_TimeT_Price3,
	}
	ExchangeId1_Market7_BeforeTimeT_Price3 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId1,
		MarketPriceTimestamp: Market7_BeforeTimeT_Price3,
	}
	ExchangeId2_Market7_BeforeTimeT_Price1 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId2,
		MarketPriceTimestamp: Market7_BeforeTimeT_Price1,
	}
	ExchangeId1_Market7_TimeT_Price1 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId1,
		MarketPriceTimestamp: Market7_TimeT_Price1,
	}
	ExchangeId3_Market7_TimeT_Price3 = &client.ExchangeIdMarketPriceTimestamp{
		ExchangeId:           ExchangeId3,
		MarketPriceTimestamp: Market7_TimeT_Price3,
	}

	CoinbaseMutableMarketConfig = &daemonClientTypes.MutableExchangeMarketConfig{
		Id: CoinbaseExchangeName,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{
			MarketId7: {
				Ticker: "BTC-USD",
			},
			MarketId8: {
				Ticker: "ETH-USD",
			},
		},
	}
	BinanceMutableMarketConfig = &daemonClientTypes.MutableExchangeMarketConfig{
		Id: BinanceExchangeName,
		MarketToMarketConfig: map[daemonClientTypes.MarketId]daemonClientTypes.MarketConfig{
			MarketId7: {
				Ticker: "BTCUSDT",
			},
			MarketId8: {
				Ticker: "ETHUSDT",
			},
		},
	}

	TestCanonicalExchangeIds = []string{ExchangeId1, ExchangeId2}

	// Test constants for starting the daemon client.
	TestMutableExchangeMarketConfigs = map[string]*daemonClientTypes.MutableExchangeMarketConfig{
		CoinbaseExchangeName: CoinbaseMutableMarketConfig,
		BinanceExchangeName:  BinanceMutableMarketConfig,
	}

	TestMarket7And8Params = []types.MarketParam{
		{
			Id:       7,
			Pair:     BtcUsdPair,
			Exponent: BtcUsdExponent,
			ExchangeConfigJson: `{"exchanges":[{"exchangeName":"Binance","ticker":"BTCUSDT"},` +
				`{"exchangeName":"Coinbase","ticker":"BTC-USD"}]}`,
			MinExchanges:      1,
			MinPriceChangePpm: 50,
		},
		{
			Id:           8,
			Pair:         EthUsdPair,
			Exponent:     EthUsdExponent,
			MinExchanges: 1,
			ExchangeConfigJson: `{"exchanges":[{"exchangeName":"Binance","ticker":"ETHUSDT"},` +
				`{"exchangeName":"Coinbase","ticker":"ETH-USD"}]}`,
			MinPriceChangePpm: 50,
		},
	}

	TestMutableMarketConfigs = map[daemonClientTypes.MarketId]*daemonClientTypes.MutableMarketConfig{
		MarketId7: {
			Id:           MarketId7,
			Pair:         BtcUsdPair,
			Exponent:     BtcUsdExponent,
			MinExchanges: 1,
		},
		MarketId8: {
			Id:           MarketId8,
			Pair:         EthUsdPair,
			Exponent:     EthUsdExponent,
			MinExchanges: 1,
		},
	}

	// Pricefetcher MutableMarketConfigs for 0, 1, 2, 3 and 5 markets.
	MutableMarketConfigs_0Markets = []*daemonClientTypes.MutableMarketConfig{}

	MutableMarketConfigs_1Markets = []*daemonClientTypes.MutableMarketConfig{
		{
			Id:           MarketId7,
			Pair:         BtcUsdPair,
			Exponent:     BtcUsdExponent,
			MinExchanges: 1,
		},
	}

	MutableMarketConfigs_2Markets = []*daemonClientTypes.MutableMarketConfig{
		{
			Id:           MarketId7,
			Pair:         BtcUsdPair,
			Exponent:     BtcUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId8,
			Pair:         EthUsdPair,
			Exponent:     EthUsdExponent,
			MinExchanges: 1,
		},
	}

	MutableMarketConfigs_3Markets = []*daemonClientTypes.MutableMarketConfig{
		{
			Id:           MarketId7,
			Pair:         BtcUsdPair,
			Exponent:     BtcUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId8,
			Pair:         EthUsdPair,
			Exponent:     EthUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId9,
			Pair:         LtcUsdPair,
			Exponent:     LtcUsdExponent,
			MinExchanges: 1,
		},
	}

	MutableMarketConfigs_5Markets = []*daemonClientTypes.MutableMarketConfig{
		{
			Id:           MarketId7,
			Pair:         BtcUsdPair,
			Exponent:     BtcUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId8,
			Pair:         EthUsdPair,
			Exponent:     EthUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId9,
			Pair:         LtcUsdPair,
			Exponent:     LtcUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId10,
			Pair:         SolUsdPair,
			Exponent:     SolUsdExponent,
			MinExchanges: 1,
		},
		{
			Id:           MarketId11,
			Pair:         MaticUsdPair,
			Exponent:     MaticUsdExponent,
			MinExchanges: 1,
		},
	}

	MarketToMutableMarketConfigs_5Markets = map[daemonClientTypes.MarketId]*daemonClientTypes.MutableMarketConfig{
		MarketId7:  MutableMarketConfigs_5Markets[0],
		MarketId8:  MutableMarketConfigs_5Markets[1],
		MarketId9:  MutableMarketConfigs_5Markets[2],
		MarketId10: MutableMarketConfigs_5Markets[3],
		MarketId11: MutableMarketConfigs_5Markets[4],
	}

	// Expected exponents for above configs.
	MutableMarketConfigs_3Markets_ExpectedExponents = map[daemonClientTypes.MarketId]daemonClientTypes.Exponent{
		MarketId7: BtcUsdExponent,
		MarketId8: EthUsdExponent,
		MarketId9: LtcUsdExponent,
	}

	MutableMarketConfigs_5Markets_ExpectedExponents = map[daemonClientTypes.MarketId]daemonClientTypes.Exponent{
		MarketId7:  BtcUsdExponent,
		MarketId8:  EthUsdExponent,
		MarketId9:  LtcUsdExponent,
		MarketId10: SolUsdExponent,
		MarketId11: MaticUsdExponent,
	}

	TestExchangeQueryConfigs = map[string]*daemonClientTypes.ExchangeQueryConfig{
		ExchangeId1: {
			ExchangeId: ExchangeId1,
			IntervalMs: 100,
			TimeoutMs:  3_000,
			MaxQueries: 2,
		},
		ExchangeId2: {
			ExchangeId: ExchangeId2,
			IntervalMs: 100,
			TimeoutMs:  3_000,
			MaxQueries: 2,
		},
	}
	TestExchangeIdToExchangeQueryDetails = map[string]daemonClientTypes.ExchangeQueryDetails{
		ExchangeId1: constants.StaticExchangeDetails[ExchangeId1],
		ExchangeId2: constants.StaticExchangeDetails[ExchangeId2],
	}
)
View Source
var (
	ValidMultiMarketSpotPriceUpdates = []*types.MarketSpotPriceUpdate{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5,
		},
		{
			MarketId:  MarketId1,
			SpotPrice: Price6,
		},
		{
			MarketId:  MarketId2,
			SpotPrice: Price7,
		},
		{
			MarketId:  MarketId3,
			SpotPrice: Price4,
		},
		{
			MarketId:  MarketId4,
			SpotPrice: Price3,
		},
	}
	ValidMarketPriceUpdates = []*types.MarketPriceUpdate{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5,
			PnlPrice:  Price5,
		},
		{
			MarketId:  MarketId1,
			SpotPrice: Price6,
			PnlPrice:  Price6,
		},
		{
			MarketId:  MarketId2,
			SpotPrice: Price7,
			PnlPrice:  Price7,
		},
		{
			MarketId:  MarketId3,
			SpotPrice: Price4,
			PnlPrice:  Price4,
		},
		{
			MarketId:  MarketId4,
			SpotPrice: Price3,
			PnlPrice:  Price3,
		},
	}

	ValidSingleSpotMarketPriceUpdate = []*types.MarketSpotPriceUpdate{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5,
		},
	}

	ValidSingleMarketPriceUpdate = []*types.MarketPriceUpdate{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5,
			PnlPrice:  Price5,
		},
	}

	ValidSingleVEPrice = []vetypes.PricePair{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5Bytes,
			PnlPrice:  Price5Bytes,
		},
	}

	ValidVEPricesWithOneInvalid = []vetypes.PricePair{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5Bytes,
			PnlPrice:  Price5Bytes,
		},
		{
			MarketId:  MarketId1,
			SpotPrice: Price6Bytes,
			PnlPrice:  Price6Bytes,
		},
		{
			MarketId:  MarketId2,
			SpotPrice: []byte("invalid"),
			PnlPrice:  []byte("invalid"),
		},
	}

	ValidVEPrices = []vetypes.PricePair{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5Bytes,
			PnlPrice:  Price5Bytes,
		},
		{
			MarketId:  MarketId1,
			SpotPrice: Price6Bytes,
			PnlPrice:  Price6Bytes,
		},
		{
			MarketId:  MarketId2,
			SpotPrice: Price7Bytes,
			PnlPrice:  Price7Bytes,
		},
	}

	ValidVEPricesOnlySpot = []vetypes.PricePair{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5Bytes,
		},
		{
			MarketId:  MarketId1,
			SpotPrice: Price6Bytes,
		},
		{
			MarketId:  MarketId2,
			SpotPrice: Price7Bytes,
		},
	}

	ValidVEPricesWithNoMarkets = []vetypes.PricePair{
		{
			MarketId:  99,
			SpotPrice: Price5Bytes,
			PnlPrice:  Price5Bytes,
		},
	}

	InvalidVEPriceBytes = []vetypes.PricePair{
		{
			MarketId:  MarketId0,
			SpotPrice: Price5NegativeBytes,
			PnlPrice:  Price5NegativeBytes,
		},
		{
			MarketId:  MarketId1,
			SpotPrice: Price6NegativeBytes,
			PnlPrice:  Price6NegativeBytes,
		},
		{
			MarketId:  MarketId2,
			SpotPrice: Price7NegativeBytes,
			PnlPrice:  Price7NegativeBytes,
		},
	}

	InvalidVePricesMarketIds = []vetypes.PricePair{
		{
			MarketId:  99,
			SpotPrice: Price5Bytes,
			PnlPrice:  Price5Bytes,
		},
		{
			MarketId:  101,
			SpotPrice: Price6Bytes,
			PnlPrice:  Price6Bytes,
		},
		{
			MarketId:  102,
			SpotPrice: Price7Bytes,
			PnlPrice:  Price7Bytes,
		},
	}

	ValidEmptyMarketParams         = []types.MarketParam{}
	EmptyUpdateMarketPrices        = &types.MarketPriceUpdates{}
	EmptyUpdateMarketPricesTxBytes []byte

	ValidUpdateMarketPrices = &types.MarketPriceUpdates{
		MarketPriceUpdates: ValidMarketPriceUpdates,
	}
	ValidUpdateMarketPricesTxBytes []byte

	InvalidUpdateMarketPricesStateless = &types.MarketPriceUpdates{
		MarketPriceUpdates: []*types.MarketPriceUpdate{
			{
				MarketId:  MarketId0,
				SpotPrice: 0,
				PnlPrice:  0,
			},
		},
	}
	InvalidUpdateMarketPricesStatelessTxBytes []byte

	InvalidUpdateMarketPricesStateful = &types.MarketPriceUpdates{
		MarketPriceUpdates: []*types.MarketPriceUpdate{
			{
				MarketId:  MarketId0,
				SpotPrice: Price5,
				PnlPrice:  Price5,
			},
			{
				MarketId:  MarketId1,
				SpotPrice: Price6,
				PnlPrice:  Price6,
			},
			{
				MarketId:  99,
				SpotPrice: Price3,
				PnlPrice:  Price3,
			},
		},
	}
	InvalidUpdateMarketPricesStatefulTxBytes []byte

	Prices_DefaultGenesisState = types.GenesisState{
		MarketParams: []types.MarketParam{
			{
				Id:                 uint32(0),
				Pair:               BtcUsdPair,
				Exponent:           BtcUsdExponent,
				MinExchanges:       uint32(2),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_BTC_USD],
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(1),
				Pair:               EthUsdPair,
				Exponent:           EthUsdExponent,
				MinExchanges:       uint32(1),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ETH_USD],
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(2),
				Pair:               SolUsdPair,
				Exponent:           SolUsdExponent,
				MinExchanges:       uint32(1),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_SOL_USD],
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(3),
				Pair:               IsoUsdPair,
				Exponent:           IsoUsdExponent,
				MinExchanges:       uint32(1),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO_USD],
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(4),
				Pair:               Iso2UsdPair,
				Exponent:           Iso2UsdExponent,
				MinExchanges:       uint32(1),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO2_USD],
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(5),
				Pair:               IsoBtcPair,
				Exponent:           IsoBtcExponent,
				MinExchanges:       uint32(1),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO_BTC],
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(6),
				Pair:               Iso2BtcPair,
				Exponent:           Iso2BtcExponent,
				MinExchanges:       uint32(1),
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO2_BTC],
				MinPriceChangePpm:  uint32(50),
			},
		},
		MarketPrices: []types.MarketPrice{
			{
				Id:        uint32(0),
				Exponent:  BtcUsdExponent,
				SpotPrice: FiveBillion,
				PnlPrice:  FiveBillion,
			},
			{
				Id:        uint32(1),
				Exponent:  EthUsdExponent,
				SpotPrice: ThreeBillion,
				PnlPrice:  ThreeBillion,
			},
			{
				Id:        uint32(2),
				Exponent:  SolUsdExponent,
				SpotPrice: FiveBillion,
				PnlPrice:  FiveBillion,
			},
			{
				Id:        uint32(3),
				Exponent:  IsoUsdExponent,
				SpotPrice: FiveHundredBillion,
				PnlPrice:  FiveHundredBillion,
			},
			{
				Id:        uint32(4),
				Exponent:  Iso2UsdExponent,
				SpotPrice: ThirtyBillion,
				PnlPrice:  ThirtyBillion,
			},
			{
				Id:        uint32(5),
				Exponent:  IsoBtcExponent,
				SpotPrice: FiveMillion,
				PnlPrice:  FiveMillion,
			},
			{
				Id:        uint32(6),
				Exponent:  Iso2BtcExponent,
				SpotPrice: ThreeMillion,
				PnlPrice:  ThreeMillion,
			},
		},
	}

	Prices_MultiExchangeMarketGenesisState = types.GenesisState{
		MarketParams: []types.MarketParam{
			{
				Id:                 uint32(0),
				Pair:               BtcUsdPair,
				Exponent:           BtcUsdExponent,
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_BTC_USD],
				MinExchanges:       uint32(2),
				MinPriceChangePpm:  uint32(50),
			},
			{
				Id:                 uint32(1),
				Pair:               EthUsdPair,
				Exponent:           EthUsdExponent,
				ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ETH_USD],
				MinExchanges:       uint32(2),
				MinPriceChangePpm:  uint32(50),
			},
		},
		MarketPrices: []types.MarketPrice{
			{
				Id:        uint32(0),
				Exponent:  BtcUsdExponent,
				SpotPrice: FiveBillion,
				PnlPrice:  FiveBillion,
			},
			{
				Id:        uint32(1),
				Exponent:  EthUsdExponent,
				SpotPrice: ThreeBillion,
				PnlPrice:  ThreeBillion,
			},
		},
	}
)
View Source
var (
	AlicePrivateKey = privateKeyFromMnenomic(AliceMnenomic)
	BobPrivateKey   = privateKeyFromMnenomic(BobMnenomic)
	CarlPrivateKey  = privateKeyFromMnenomic(CarlMnenomic)
	DavePrivateKey  = privateKeyFromMnenomic(DaveMnenomic)

	AlicePrivateKeyEddsa = loadPrivKeyFromBase64("65frslxv5ig0KSNKlJOHT2FKTkOzkb/66eDPsiBaNUtiIBHHzbn1n58YVTFAuvP/kVTZFhFPp/nLO+3sPsKtAw==")
	BobPrivateKeyEddsa   = loadPrivKeyFromBase64("QL39Lu2bfmgfea0SwI891fXqEqOsLWjdhtniTs9U0Wz4/xiKiCqpBj6IP3rIRr04nHoSCJ5T3m715HenPF8OnQ==")
	CarlPrivateKeyEddsa  = loadPrivKeyFromBase64("E079rll4qMCWBRrHUw3IkGQBZCQQ921HaQl8m0HloSvK0t+zVboTYjjWK14oL9jCPJn/nX4IBgIdjGZEeIF5jg==")
	DavePrivateKeyEddsa  = loadPrivKeyFromBase64("FaPbbz/gB/Id6GKYv9M/rwsUziScfbUiIObEWLeCpYrIbb2RF9n+GAATUju5aNspAkkvj+Bf/TlcGd8H6bX3oA==")

	AliceConsAddressEddsa, _ = sdk.ConsAddressFromBech32("klyravalcons1zf9csp5ygq95cqyxh48w3qkuckmpealrhxq0ye")
	BobConsAddressEddsa, _   = sdk.ConsAddressFromBech32("klyravalcons1s7wykslt83kayxuaktep9fw8qxe5n73up9h3xp")
	CarlConsAddressEddsa, _  = sdk.ConsAddressFromBech32("klyravalcons1vy0nrh7l4rtezrsakaadz4mngwlpdmhyretgwy")
	DaveConsAddressEddsa, _  = sdk.ConsAddressFromBech32("klyravalcons1stjspktkshgcsv8sneqk2vs2ws0nw2wrnjkt6l")

	AlicePubKey = AlicePrivateKey.PubKey()
	BobPubKey   = BobPrivateKey.PubKey()
	CarlPubKey  = CarlPrivateKey.PubKey()
	DavePubKey  = DavePrivateKey.PubKey()
)
View Source
var (

	// Eth Chain ID.
	EthChainId = 1

	// sDAI conversion rate
	SDAIRate = "123456"
)
View Source
var (
	// Long-term orders.
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTB5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 5},
	}
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price5_GTBT5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	LongTermOrder_Alice_Num11_Id0_Clob2_Buy5_Price10_GTBT5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   2,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	LongTermOrder_Alice_Num0_Id0_Clob1_Buy5_Price10_GTBT5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   1,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Alice_Num1_Id0_Clob0_Buy5_Price10_GTBT5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 5},
	}
	LongTermOrder_Alice_Num1_Id1_Clob0_Buy02BTC_Price10_GTB15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     20_000_000,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Alice_Num1_Id2_Clob0_Sell02BTC_Price10_GTB15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20_000_000,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy100_Price10_GTBT15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 20},
	}
	LongTermOrder_Alice_Num0_Id1_Clob1_Sell65_Price15_GTBT25 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   1,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     65,
		Subticks:     15,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 25},
	}
	LongTermOrder_Alice_Num0_Id2_Clob0_Sell65_Price10_GTBT25 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     65,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 25},
	}
	LongTermOrder_Alice_Num1_Id4_Clob0_Buy10_Price45_GTBT20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     4,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     45,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 20},
	}
	LongTermOrder_Alice_Num1_Id0_Clob0_Sell15_Price5_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     15,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Alice_Num1_Id1_Clob0_Sell25_Price30_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Alice_Num1_Id2_Clob0_Buy10_Price40_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Alice_Num0_Id1_Clob0_Sell20_Price10_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     20,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Alice_Num0_Id1_Clob0_Buy1BTC_Price50000_GTBT15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Bob_Num0_Id0_Clob0_Sell2_Price5_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     2,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Bob_Num0_Id0_Clob0_Sell5_Price5_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Bob_Num0_Id1_Clob0_Sell5_Price10_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Bob_Num0_Id1_Clob0_Sell50_Price10_GTBT15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     50,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
	}
	LongTermOrder_Bob_Num0_Id0_Clob0_Buy25_Price30_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     25,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Bob_Num0_Id0_Clob0_Buy35_Price30_GTBT11 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     35,
		Subticks:     30,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 11},
	}
	LongTermOrder_Bob_Num0_Id1_Clob0_Buy45_Price10_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     45,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Bob_Num0_Id2_Clob0_Buy15_Price5_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     15,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Bob_Num1_Id3_Clob0_Buy10_Price40_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num1,
			ClientId:     3,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     10,
		Subticks:     40,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Carl_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Carl_Num0_Id0_Clob0_Buy1BTC_Price49500_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     49_500_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Carl_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Dave_Num0_Id0_Clob0_Sell025BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Dave_Num0_Id1_Clob0_Sell025BTC_Price50001_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     50_001_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Dave_Num11_Id1_Clob10_Sell0_25Link_Price7_001_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num11,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   10,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     25_000_000,
		Subticks:     700_100_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Dave_Num11_Id0_Clob10_Sell1Link_Price7_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   10,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     700_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	LongTermOrder_Dave_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}

	// Conditional orders.
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price20_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        20,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15_TakeProfit10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 10,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT15_TakeProfit25 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 25,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Sell5_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Sell5_Price10_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id1_Clob0_Buy15_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        15,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id1_Clob0_Buy15_Price25_GTBT15_StopLoss25 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        15,
		Subticks:                        25,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 25,
	}
	ConditionalOrder_Alice_Num0_Id1_Clob0_Buy15_Price10_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        15,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id1_Clob0_Buy15_Price10_GTBT15_TakeProfit5 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        15,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 5,
	}
	ConditionalOrder_Alice_Num0_Id2_Clob0_Buy20_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        20,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id2_Clob0_Sell20_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        20,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id2_Clob0_Sell20_Price20_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        20,
		Subticks:                        20,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id2_Clob0_Buy20_Price10_GTBT15_TakeProfit10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        20,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 10,
	}
	ConditionalOrder_Alice_Num0_Id3_Clob0_Buy25_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     3,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        25,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id3_Clob0_Buy25_Price25_GTBT15_StopLoss25 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     3,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        25,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 25,
	}
	ConditionalOrder_Alice_Num0_Id3_Clob0_Buy25_Price10_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     3,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        25,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id3_Clob0_Sell25_Price10_GTBT15_StopLoss10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     3,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        25,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 10,
	}
	ConditionalOrder_Alice_Num0_Id3_Clob1_Buy25_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     3,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        25,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob1_Buy5_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob1_Buy5_Price10_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob1_Buy5_Price10_GTBT15_TakeProfit30 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 30,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob1_Sell5_Price10_GTBT15_StopLoss20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob1_Sell5_Price10_GTBT15_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   1,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price50_GTBT10_StopLoss51_FOK = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        50,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 51,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price50_GTBT10_StopLoss51_IOC = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        50,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_IOC,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 51,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 20},
	}
	ConditionalOrder_Alice_Num1_Id0_Clob0_Sell5_Price10_GTBT15_StopLoss15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 15,
	}
	ConditionalOrder_Alice_Num1_Id1_Clob0_Sell50_Price5_GTBT30_TakeProfit10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        50,
		Subticks:                        5,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 30},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 10,
	}
	ConditionalOrder_Alice_Num1_Id0_Clob0_Sell5_Price10_GTB15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     5,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 15},
	}
	ConditionalOrder_Alice_Num1_Id1_Clob0_Sell50_Price5_GTB30 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     50,
		Subticks:     5,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
	}
	ConditionalOrder_Alice_Num1_Id1_Clob0_Sell50_Price5_GTB30_TakeProfit20 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        50,
		Subticks:                        5,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlock{GoodTilBlock: 30},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 20,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_TP_48700 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 48_700_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_TP_49700 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 49_700_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_TP_49995 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 49_995_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_TP_49999 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 49_999_000_000,
	}
	ConditionalOrder_Alice_Num11_Id0_Clob10_Buy1Link_Price7_GTBT10_TP_6_99 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   10,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        700_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 699_000_000,
	}
	ConditionalOrder_Alice_Num11_Id0_Clob10_Buy1Link_Price7_GTBT10_TP_6_999 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   10,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        700_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 699_900_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_TP_49999_IOC = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 49_999_000_000,
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_IOC,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_TP_49999_FOK = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 49_999_000_000,
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_SL_50001 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 50_001_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_SL_50005 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 50_005_000_000,
	}
	ConditionalOrder_Alice_Num11_Id0_Clob10_Buy1Link_Price7_GTBT10_SL_7_01 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   10,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        700_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 701_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_SL_50300 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 50_300_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_SL_51300 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 51_300_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_TP_50001 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 50_001_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_TP_50005 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 50_005_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_TP_50300 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 50_300_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_TP_51300 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 51_300_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_SL_48700 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 48_700_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_SL_49700 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 49_700_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_SL_49995 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 49_995_000_000,
	}
	ConditionalOrder_Bob_Num11_Id0_Clob10_Sell1Link_Price7_GTBT10_SL_6_99 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   10,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        700_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 699_000_000,
	}
	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_SL_49999 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 49_999_000_000,
	}
	ConditionalOrder_Carl_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	ConditionalOrder_Carl_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}
	ConditionalOrder_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
	}

	ConditionalOrder_Bob_Num0_Id0_Clob0_Sell10_Price10_GTBT10_PO_SL_15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        10,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 15_000_000,
	}
	ConditionalOrder_Alice_Num0_Id1_Clob0_Sell20_Price10_GTBT10_SL_15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        20,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 15_000_000,
	}
	ConditionalOrder_Bob_Num0_Id1_Clob0_Sell50_Price10_GTBT15_SL_15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     1,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        50,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 15_000_000,
	}
	ConditionalOrder_Alice_Num0_Id0_Clob0_Buy5_Price10_GTBT5_SL_15 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        5,
		Subticks:                        10,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 5},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 15_000_000,
	}
	ConditionalOrder_Dave_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_SL_50003 = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        100_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 50_003_000_000,
	}
	ConditionalOrder_Carl_Num0_Id0_Clob0_Buy05BTC_Price50000_GTBT10_SL_50003_FOK = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        50_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 50_003_000_000,
	}
	ConditionalOrder_Carl_Num0_Id0_Clob0_Sell05BTC_Price50000_GTBT10_TP_50003_FOK = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        50_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 50_003_000_000,
	}
	ConditionalOrder_Carl_Num0_Id0_Clob0_Buy05BTC_Price50000_GTBT10_SL_50003_IOC = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        50_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_IOC,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 50_003_000_000,
	}
	ConditionalOrder_Carl_Num11_Id0_Clob10_Buy05Link_Price7_GTBT10_SL_7_003_IOC = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   10,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        50_000_000,
		Subticks:                        700_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_IOC,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_STOP_LOSS,
		ConditionalOrderTriggerSubticks: 700_300_000,
	}
	ConditionalOrder_Carl_Num0_Id0_Clob0_Buy05BTC_Price50000_GTBT10_TP_49999_PO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   0,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        50_000_000,
		Subticks:                        50_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 49_999_000_000,
	}
	ConditionalOrder_Carl_Num11_Id0_Clob10_Buy05Link_Price7_GTBT10_TP_6_999_PO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num11,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
			ClobPairId:   10,
		},
		Side:                            clobtypes.Order_SIDE_BUY,
		Quantums:                        50_000_000,
		Subticks:                        700_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 699_900_000,
	}

	// Conditional FOK/IOC RO orders.
	ConditionalOrder_Alice_Num1_Id1_Clob0_Sell05BTC_Price500000_GTBT20_TP_50001_IOC_RO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			ClobPairId:   0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        50_000_000,
		Subticks:                        500_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 20},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_IOC,
		ReduceOnly:                      true,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 50_001_000_000,
	}
	ConditionalOrder_Alice_Num1_Id1_Clob0_Sell05BTC_Price500000_GTBT20_TP_50001_FOK_RO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num1,
			ClientId:     1,
			ClobPairId:   0,
			OrderFlags:   clobtypes.OrderIdFlags_Conditional,
		},
		Side:                            clobtypes.Order_SIDE_SELL,
		Quantums:                        50_000_000,
		Subticks:                        500_000_000_000,
		GoodTilOneof:                    &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 20},
		TimeInForce:                     clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
		ReduceOnly:                      true,
		ConditionType:                   clobtypes.Order_CONDITION_TYPE_TAKE_PROFIT,
		ConditionalOrderTriggerSubticks: 50_001_000_000,
	}

	// Long-Term post-only orders.
	LongTermOrder_Alice_Num0_Id0_Clob0_Buy100_Price10_GTBT15_PO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 15},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	LongTermOrder_Alice_Num0_Id2_Clob0_Sell65_Price10_GTBT25_PO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Alice_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     65,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 25},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	LongTermOrder_Bob_Num0_Id0_Clob0_Sell10_Price10_GTBT10_PO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     10,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}
	LongTermOrder_Dave_Num0_Id0_Clob0_Buy1BTC_Price50000_GTBT10_PO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Dave_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_BUY,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_POST_ONLY,
	}

	// Long-Term reduce-only orders.
	LongTermOrder_Bob_Num0_Id2_Clob0_Sell10_Price35_GTB20_RO = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Bob_Num0,
			ClientId:     2,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     10,
		Subticks:     35,
		GoodTilOneof: &clobtypes.Order_GoodTilBlock{GoodTilBlock: 20},
		ReduceOnly:   true,
	}

	// Long-Term Fill Or Kill Orders.
	LongTermOrder_Carl_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_FOK = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_FILL_OR_KILL,
	}

	// Long-Term Immediate Or Cancel Orders.
	LongTermOrder_Carl_Num0_Id0_Clob0_Sell1BTC_Price50000_GTBT10_IOC = clobtypes.Order{
		OrderId: clobtypes.OrderId{
			SubaccountId: Carl_Num0,
			ClientId:     0,
			OrderFlags:   clobtypes.OrderIdFlags_LongTerm,
			ClobPairId:   0,
		},
		Side:         clobtypes.Order_SIDE_SELL,
		Quantums:     100_000_000,
		Subticks:     50_000_000_000,
		GoodTilOneof: &clobtypes.Order_GoodTilBlockTime{GoodTilBlockTime: 10},
		TimeInForce:  clobtypes.Order_TIME_IN_FORCE_IOC,
	}
)
View Source
var (
	Alice_Num0 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, AliceAccAddress),
		Number: 0,
	}
	Alice_Num1 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, AliceAccAddress),
		Number: 1,
	}
	Alice_Num11 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, AliceAccAddress),
		Number: 11,
	}
	Bob_Num0 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, BobAccAddress),
		Number: 0,
	}
	Bob_Num1 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, BobAccAddress),
		Number: 1,
	}
	Bob_Num11 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, BobAccAddress),
		Number: 11,
	}
	Bob_Num2 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, BobAccAddress),
		Number: 2,
	}
	Carl_Num0 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, CarlAccAddress),
		Number: 0,
	}
	Carl_Num1 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, CarlAccAddress),
		Number: 1,
	}
	Carl_BTC = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, CarlAccAddress),
		Number: 11,
	}
	Carl_Num11 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, CarlAccAddress),
		Number: 11,
	}
	Dave_Num0 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, DaveAccAddress),
		Number: 0,
	}
	Dave_Num1 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, DaveAccAddress),
		Number: 1,
	}
	Dave_Num2 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, DaveAccAddress),
		Number: 2,
	}
	Dave_Num11 = satypes.SubaccountId{
		Owner:  types.MustBech32ifyAddressBytes(config.Bech32PrefixAccAddr, DaveAccAddress),
		Number: 11,
	}
)
View Source
var (
	// Subaccounts.
	Alice_Num0_1USD = satypes.Subaccount{
		Id: &Alice_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_1,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num0_10_000USD = satypes.Subaccount{
		Id: &Alice_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num0_100_000USD = satypes.Subaccount{
		Id: &Alice_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num1_10_000USD = satypes.Subaccount{
		Id: &Alice_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num11_10_000BTC = satypes.Subaccount{
		Id: &Alice_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num1_1BTC = satypes.Subaccount{
		Id: &Alice_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&Long_Asset_1BTC,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(0, 1).String(),
	}
	Alice_Num11_1BTC = satypes.Subaccount{
		Id: &Alice_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_1,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num11_5BTC = satypes.Subaccount{
		Id: &Alice_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_5,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num11_500BTC = satypes.Subaccount{
		Id: &Alice_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_500,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num1_100_000USD = satypes.Subaccount{
		Id: &Alice_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Alice_Num0_1ISO_LONG_10_000USD = satypes.Subaccount{
		Id: &Alice_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  3,
				Quantums:     dtypes.NewInt(1_000_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Alice_Num1_1BTC_Short_100_000USD = satypes.Subaccount{
		Id: &Alice_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Alice_Num0_1ISOBTC_LONG_10_000BTC = satypes.Subaccount{
		Id: &Alice_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Long_Asset_1BTC,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  5,
				Quantums:     dtypes.NewInt(10_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(0, 1).String(),
	}
	Alice_Num1_1BTC_Long_500_000USD = satypes.Subaccount{
		Id: &Alice_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_500_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Bob_Num0_10_000USD = satypes.Subaccount{
		Id: &Bob_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Bob_Num11_10_000BTC = satypes.Subaccount{
		Id: &Bob_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Bob_Num11_20Link_Short_10499BTC = satypes.Subaccount{
		Id: &Bob_Num11,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(104_990_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 11,
				Quantums:    dtypes.NewInt(-2_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Bob_Num11_0_2BTC_With_Link = satypes.Subaccount{
		Id: &Bob_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_0_1,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 11,
				Quantums:    dtypes.NewInt(2_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Bob_Num0_100_000USD = satypes.Subaccount{
		Id: &Bob_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Bob_Num11_1BTC = satypes.Subaccount{
		Id: &Bob_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_1,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_100BTC_Short_10100USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_100,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-10_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_100000BTC_Asset_1BTC_Short = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Long_Asset_100000BTC,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 8,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_2BTC_Short = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_500_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-200_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num1_1BTC_Short = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num1_99999TDAI_Long_1BTC_Short = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_99_999,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short_49999USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(49_999_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(-100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short_50000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(50_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(-100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num11_20Link_Short_1BTC = satypes.Subaccount{
		Id: &Carl_Num11,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(100_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  11,
				Quantums:     dtypes.NewInt(-2_000_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_short_50000_non_TDai = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(50_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(-100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
	}

	Carl_Num0_1BTC_Short_50499USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(50_499_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num11_20Link_Short_10099BTC = satypes.Subaccount{
		Id: &Carl_Num11,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(100_990_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 11,
				Quantums:    dtypes.NewInt(-2_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short_54999USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(54_999_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(-100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Long_54999USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-54_999_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short_55000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(55_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(-100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short_100000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(100_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC_Short_1ETH_Long_47000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(47_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
			{
				PerpetualId: 1,
				Quantums:    dtypes.NewInt(1_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num0_599USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_599,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_1BTC = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Long_Asset_1BTC,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_660USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_660,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_10000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_50000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_100000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_500000USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_500_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_0USD = satypes.Subaccount{
		Id:                 &Carl_Num0,
		AssetPositions:     []*satypes.AssetPosition{},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num1_500USD = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_500,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num1_100000USD = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num11_1BTC = satypes.Subaccount{
		Id: &Carl_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_1,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num11_5BTC = satypes.Subaccount{
		Id: &Carl_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_5,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num11_500BTC = satypes.Subaccount{
		Id: &Carl_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_500,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num1_Short_500USD = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_500,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Carl_Num0_1ISO_Short_49USD = satypes.Subaccount{
		Id: &Carl_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(49_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  3,
				Quantums:     dtypes.NewInt(-1_000_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num1_01BTC_Long_4600USD_Short = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_4_600,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(10_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Carl_Num1_1BTC_Short_50499USD = satypes.Subaccount{
		Id: &Carl_Num1,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(50_499_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_01BTC_Long_50000USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(10_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_50000USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num11_20Link_Long_1BTC = satypes.Subaccount{
		Id: &Dave_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_1,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  11,
				Quantums:     dtypes.NewInt(2_000_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_50001USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(50_001_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Short_100000USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_100_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_45000USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-45_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_45001USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-45_001_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_49501USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-49_501_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_50000USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-50_000_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_49999USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-49_999_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num11_20Link_Long_0_99999BTC_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(-99_999_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  11,
				Quantums:     dtypes.NewInt(2_000_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_50001USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-50_001_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  0,
				Quantums:     dtypes.NewInt(100_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_599USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_599,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Long_Asset_1BTC,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num0_10000USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num0_500000USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_500_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num0_100BTC_Short_10200USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_200,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-10_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_100BTC_Long_9900USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_9_900,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(10_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1ISO2_Short_499USD = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(499_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId:  4,
				Quantums:     dtypes.NewInt(-10_000_000),
				FundingIndex: dtypes.NewInt(0),
				YieldIndex:   big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_46000USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_46_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_49500USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_49_500,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_1BTC_Long_1ETH_Long_46000USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_46_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
			{
				PerpetualId: 1,
				Quantums:    dtypes.NewInt(1_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num0_TinyBTC_Long_1ETH_Long_2900USD_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_2_900,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(1),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
			{
				PerpetualId: 1,
				Quantums:    dtypes.NewInt(1_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}

	Dave_Num0_TinyIso_Long_LargerIso2_Long_1BTC_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(-100_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Id5_DangerIndex1.Params.Id,
				Quantums:    dtypes.NewInt(1_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
			{
				PerpetualId: Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Id7_DangerIndex1.Params.Id,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}

	Dave_Num0_TinyIso_Long_SmallBTC_Short = satypes.Subaccount{
		Id: &Dave_Num0,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  1,
				Quantums: dtypes.NewInt(-1_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Id5_DangerIndex1.Params.Id,
				Quantums:    dtypes.NewInt(1_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}

	Dave_Num1_1BTC_Long_46000USD_Short = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_46_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_1ETH_Long_2900USD_Short = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_2_900,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 1,
				Quantums:    dtypes.NewInt(1_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_10_000USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num1_10_000USD_With_BTC = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_500000USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_500_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num11_5Btc = satypes.Subaccount{
		Id: &Dave_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_5,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num11_500BTC = satypes.Subaccount{
		Id: &Dave_Num11,
		AssetPositions: []*satypes.AssetPosition{
			&Btc_Asset_500,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{},
		AssetYieldIndex:    big.NewRat(1, 1).String(),
	}
	Dave_Num1_025BTC_Long_50000USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(25_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_05BTC_Long_50000USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(50_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_1BTC_Long_50000USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_100BTC_Short_10100USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_10_100,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(-10_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_1BTC_Long_49501USD_Short = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			{
				AssetId:  0,
				Quantums: dtypes.NewInt(-49_501_000_000),
			},
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num1_1ETH_Long_50000USD = satypes.Subaccount{
		Id: &Dave_Num1,
		AssetPositions: []*satypes.AssetPosition{
			&TDai_Asset_50_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 1,
				Quantums:    dtypes.NewInt(1_000_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}
	Dave_Num2_1BTC_Long_46000USD_Short = satypes.Subaccount{
		Id: &Dave_Num2,
		AssetPositions: []*satypes.AssetPosition{
			&Short_TDai_Asset_46_000,
		},
		PerpetualPositions: []*satypes.PerpetualPosition{
			{
				PerpetualId: 0,
				Quantums:    dtypes.NewInt(100_000_000),
				YieldIndex:  big.NewRat(0, 1).String(),
			},
		},
		AssetYieldIndex: big.NewRat(1, 1).String(),
	}

	// Quote balances.
	QuoteBalance_OneDollar = int64(1_000_000) // $1.

	// Asset Yield Index
	AssetYieldIndex_Zero = big.NewRat(1, 1).String()

	InvalidSubaccountIdNumber = satypes.SubaccountId{
		Owner:  Alice_Num0.Owner,
		Number: satypes.MaxSubaccountIdNumber + 1,
	}
	InvalidSubaccountIdOwner = satypes.SubaccountId{
		Owner:  "This is not valid",
		Number: 0,
	}
)
View Source
var (
	// Time
	TimeZero            = time.Date(1, time.Month(1), 1, 0, 0, 0, 0, time.UTC)
	TimeTen             = time.Unix(10, 0)
	TimeFifteen         = time.Unix(15, 0)
	TimeTwenty          = time.Unix(20, 0)
	TimeTwentyFive      = time.Unix(25, 0)
	TimeThirty          = time.Unix(30, 0)
	TimeT               = time.Unix(1650000000, 0) // 2022-04-14 22:20:00 -0700 PDT
	TimeTMinus1         = TimeT.Add(-time.Duration(1))
	TimeTPlus1          = TimeT.Add(time.Duration(1))
	TimeTMinusThreshold = TimeT.Add(-pricefeed.MaxPriceAge).Add(-time.Duration(1))
	TimeTPlusThreshold  = TimeT.Add(pricefeed.MaxPriceAge).Add(time.Duration(1))
	Time_21st_Feb_2021  = time.Date(2021, time.Month(2), 21, 0, 0, 0, 0, time.UTC)
)
View Source
var (
	Transfer_Carl_Num0_Dave_Num0_Quote_500 = types.Transfer{
		Sender:    Carl_Num0,
		Recipient: Dave_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Amount:    500_000_000,
	}
	Transfer_Carl_Num0_Dave_Num0_Quote_1Tenth_BTC = types.Transfer{
		Sender:    Carl_Num0,
		Recipient: Dave_Num0,
		AssetId:   assettypes.AssetBtc.Id,
		Amount:    10_000_000,
	}
	Transfer_Carl_Num0_Dave_Num0_Quote_600 = types.Transfer{
		Sender:    Carl_Num0,
		Recipient: Dave_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Amount:    600_000_000,
	}
	Transfer_Carl_Num0_Dave_Num0_Quote_2_BTC = types.Transfer{
		Sender:    Carl_Num0,
		Recipient: Dave_Num0,
		AssetId:   assettypes.AssetBtc.Id,
		Amount:    200_000_000,
	}
	Transfer_Carl_Num0_Dave_Num0_Asset_600 = types.Transfer{
		Sender:    Carl_Num0,
		Recipient: Dave_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Amount:    600_000_000,
	}
	Transfer_Dave_Num0_Carl_Num0_Asset_500 = types.Transfer{
		Sender:    Dave_Num0,
		Recipient: Carl_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Amount:    500_000_000,
	}
	Transfer_Dave_Num0_Carl_Num0_Asset_500_GTB_20 = types.Transfer{
		Sender:    Dave_Num0,
		Recipient: Carl_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Amount:    500_000_000,
	}
)
View Source
var (
	MsgDepositToSubaccount_Alice_To_Alice_Num0_500 = types.MsgDepositToSubaccount{
		Sender:    AliceAccAddress.String(),
		Recipient: Alice_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Quantums:  500_000_000,
	}
	MsgDepositToSubaccount_Alice_To_Alice_Num0_1BTC = types.MsgDepositToSubaccount{
		Sender:    AliceAccAddress.String(),
		Recipient: Alice_Num0,
		AssetId:   assettypes.AssetBtc.Id,
		Quantums:  100_000_000,
	}
	MsgDepositToSubaccount_Alice_To_Carl_Num0_750 = types.MsgDepositToSubaccount{
		Sender:    AliceAccAddress.String(),
		Recipient: Carl_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Quantums:  750_000_000,
	}
	MsgDepositToSubaccount_Alice_To_Carl_Num0_halfBTC = types.MsgDepositToSubaccount{
		Sender:    AliceAccAddress.String(),
		Recipient: Carl_Num0,
		AssetId:   assettypes.AssetTDai.Id,
		Quantums:  50_000_000,
	}
)

Test constants for deposit-to-subaccount messages.

View Source
var (
	MsgWithdrawFromSubaccount_Alice_Num0_To_Alice_500 = types.MsgWithdrawFromSubaccount{
		Sender:    Alice_Num0,
		Recipient: AliceAccAddress.String(),
		AssetId:   assettypes.AssetTDai.Id,
		Quantums:  500_000_000,
	}
	MsgWithdrawFromSubaccount_Alice_Num0_To_Alice_1BTC = types.MsgWithdrawFromSubaccount{
		Sender:    Alice_Num0,
		Recipient: AliceAccAddress.String(),
		AssetId:   assettypes.AssetBtc.Id,
		Quantums:  100_000_000,
	}
	MsgWithdrawFromSubaccount_Carl_Num0_To_Alice_750 = types.MsgWithdrawFromSubaccount{
		Sender:    Carl_Num0,
		Recipient: AliceAccAddress.String(),
		AssetId:   assettypes.AssetTDai.Id,
		Quantums:  750_000_000,
	}
	MsgWithdrawFromSubaccount_Carl_Num0_To_Alice_halfBTC = types.MsgWithdrawFromSubaccount{
		Sender:    Carl_Num0,
		Recipient: AliceAccAddress.String(),
		AssetId:   assettypes.AssetBtc.Id,
		Quantums:  50_000_000,
	}
)

Test constants for withdraw-from-subaccount messages.

View Source
var (
	ValidEmptyExtInfoBytes []byte = []byte{}

	Val1 = sdk.ConsAddress("val1")
	Val2 = sdk.ConsAddress("val2")
	Val3 = sdk.ConsAddress("val3")

	ValidSingleVoteExtInfoBytes []byte = []byte{}/* 150 elements not displayed */

	// return value of the following function call
	// (empty prices vote extension from 4 validators with 500000 power and block height 3)
	// validators, err := tApp.App.StakingKeeper.GetBondedValidatorsByPower(tApp.App.NewContextLegacy(true, tApp.header))
	// if err != nil {
	// 	tApp.builder.t.Fatalf("Failed to get bonded validators: %v", err)
	// }
	// localLastCommit := vetestutil.GetEmptyLocalLastCommit(
	// 	validators,
	// 	tApp.App.LastBlockHeight(),
	// 	0,
	// 	"localklyraprotocol",
	// )
	ValidMultiEmptyVoteExtInfoBytes []byte = []byte{} /* 392 elements not displayed */
)
View Source
var CollateralPools = []perptypes.CollateralPool{
	{
		CollateralPoolId:                        0,
		MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
		MultiCollateralAssets: &perptypes.MultiCollateralAssetsArray{
			MultiCollateralAssets: []uint32{0},
		},
		QuoteAssetId: 0,
	},
	{
		CollateralPoolId:                        1,
		MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
		MultiCollateralAssets: &perptypes.MultiCollateralAssetsArray{
			MultiCollateralAssets: []uint32{1},
		},
		QuoteAssetId: 1,
	},
	{
		CollateralPoolId:                        2,
		MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
		MultiCollateralAssets: &perptypes.MultiCollateralAssetsArray{
			MultiCollateralAssets: []uint32{0},
		},
		QuoteAssetId: 0,
	},
	{
		CollateralPoolId:                        3,
		MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
		MultiCollateralAssets: &perptypes.MultiCollateralAssetsArray{
			MultiCollateralAssets: []uint32{0},
		},
		QuoteAssetId: 0,
	},
	{
		CollateralPoolId:                        4,
		MaxCumulativeInsuranceFundDeltaPerBlock: 1_000_000_000_000,
		MultiCollateralAssets: &perptypes.MultiCollateralAssetsArray{
			MultiCollateralAssets: []uint32{1},
		},
		QuoteAssetId: 1,
	},
}

Collateral Pool objects.

View Source
var (
	Duration_OneYear = time.Hour * 24 * 365
)
View Source
var (
	EmptyAnteHandler = func(c sdk.Context, t sdk.Tx, b bool) (sdk.Context, error) { return c, nil }
)
View Source
var (
	// Get state position functions.
	GetStatePosition_ZeroPositionSize = func(
		subaccountId satypes.SubaccountId,
		clobPairId clobtypes.ClobPairId,
	) (
		statePositionSize *big.Int,
	) {
		return big.NewInt(0)
	}
)
View Source
var LiquidityTiers = []perptypes.LiquidityTier{
	{
		Id:                     0,
		Name:                   "0",
		InitialMarginPpm:       1_000_000,
		MaintenanceFractionPpm: 1_000_000,
		ImpactNotional:         500_000_000,
	},
	{
		Id:                     1,
		Name:                   "1",
		InitialMarginPpm:       1_000_000,
		MaintenanceFractionPpm: 750_000,
		ImpactNotional:         500_000_000,
	},
	{
		Id:                     2,
		Name:                   "2",
		InitialMarginPpm:       1_000_000,
		MaintenanceFractionPpm: 0,
		ImpactNotional:         500_000_000,
	},
	{
		Id:                     3,
		Name:                   "3",
		InitialMarginPpm:       200_000,
		MaintenanceFractionPpm: 500_000,
		ImpactNotional:         2_500_000_000,
	},
	{
		Id:                     4,
		Name:                   "4",
		InitialMarginPpm:       500_000,
		MaintenanceFractionPpm: 800_000,
		ImpactNotional:         1_000_000_000,
	},
	{
		Id:                     5,
		Name:                   "5",
		InitialMarginPpm:       500_000,
		MaintenanceFractionPpm: 600_000,
		ImpactNotional:         1_000_000_000,
	},
	{
		Id:                     6,
		Name:                   "6",
		InitialMarginPpm:       200_000,
		MaintenanceFractionPpm: 900_000,
		ImpactNotional:         2_500_000_000,
	},
	{
		Id:                     7,
		Name:                   "7",
		InitialMarginPpm:       0,
		MaintenanceFractionPpm: 0,
		ImpactNotional:         1_000_000_000,
	},
	{
		Id:                     8,
		Name:                   "8",
		InitialMarginPpm:       9_910,
		MaintenanceFractionPpm: 1_000_000,
		ImpactNotional:         50_454_000_000,
	},
	{
		Id:                     9,
		Name:                   "9",
		InitialMarginPpm:       200_000,
		MaintenanceFractionPpm: 500_000,
		ImpactNotional:         2_500_000_000,
		OpenInterestUpperCap:   50_000_000_000_000,
		OpenInterestLowerCap:   25_000_000_000_000,
	},
	{
		Id:                     101,
		Name:                   "101",
		InitialMarginPpm:       200_000,
		MaintenanceFractionPpm: 500_000,
		ImpactNotional:         2_500_000_000,
	},
}

LiquidityTier objects.

View Source
var PerpetualFeeParams = types.PerpetualFeeParams{
	Tiers: []*types.PerpetualFeeTier{
		{
			Name:        "1",
			MakerFeePpm: 200,
			TakerFeePpm: 500,
		},
	},
}
View Source
var PerpetualFeeParamsMakerRebate = types.PerpetualFeeParams{
	Tiers: []*types.PerpetualFeeTier{
		{
			Name:        "1",
			MakerFeePpm: -200,
			TakerFeePpm: 500,
		},
	},
}
View Source
var PerpetualFeeParamsNoFee = types.PerpetualFeeParams{
	Tiers: []*types.PerpetualFeeTier{
		{
			Name:        "1",
			MakerFeePpm: 0,
			TakerFeePpm: 0,
		},
	},
}
View Source
var PerpetualsGenesisParams = perptypes.Params{
	FundingRateClampFactorPpm: TestFundingRateClampFactorPpm,
	PremiumVoteClampFactorPpm: TestPremiumVoteClampFactorPpm,
	MinNumVotesPerSample:      TestMinNumVotesPerSample,
}
View Source
var Perpetuals_GenesisState_ParamsOnly = perptypes.GenesisState{
	Params: PerpetualsGenesisParams,
}
View Source
var TestMarketExchangeConfigs = map[pricefeedclient.MarketId]string{
	exchange_config.MARKET_BTC_USD: `{
		"exchanges": [
		  {
			"exchangeName": "Binance",
			"ticker": "BTCUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "BinanceUS",
			"ticker": "BTCUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Bitfinex",
			"ticker": "tBTCUSD"
		  },
		  {
			"exchangeName": "Bitstamp",
			"ticker": "BTC/USD"
		  },
		  {
			"exchangeName": "Bybit",
			"ticker": "BTCUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "CoinbasePro",
			"ticker": "BTC-USD"
		  },
		  {
			"exchangeName": "CryptoCom",
			"ticker": "BTC_USD"
		  },
		  {
			"exchangeName": "Kraken",
			"ticker": "XXBTZUSD"
		  },
		  {
			"exchangeName": "Mexc",
			"ticker": "BTC_USDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Okx",
			"ticker": "BTC-USDT",
			"adjustByMarket": "USDT-USD"
		  }
		]
	  }`,
	exchange_config.MARKET_ETH_USD: `{
		"exchanges": [
		  {
			"exchangeName": "Binance",
			"ticker": "ETHUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "BinanceUS",
			"ticker": "ETHUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Bitfinex",
			"ticker": "tETHUSD"
		  },
		  {
			"exchangeName": "Bitstamp",
			"ticker": "ETH/USD"
		  },
		  {
			"exchangeName": "Bybit",
			"ticker": "ETHUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "CoinbasePro",
			"ticker": "ETH-USD"
		  },
		  {
			"exchangeName": "CryptoCom",
			"ticker": "ETH_USD"
		  },
		  {
			"exchangeName": "Kraken",
			"ticker": "XETHZUSD"
		  },
		  {
			"exchangeName": "Mexc",
			"ticker": "ETH_USDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Okx",
			"ticker": "ETH-USDT",
			"adjustByMarket": "USDT-USD"
		  }
		]
	  }`,
	exchange_config.MARKET_SOL_USD: `{
		"exchanges": [
		  {
			"exchangeName": "Binance",
			"ticker": "SOLUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Bitfinex",
			"ticker": "tSOLUSD",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Bybit",
			"ticker": "SOLUSDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "CoinbasePro",
			"ticker": "SOL-USD"
		  },
		  {
			"exchangeName": "CryptoCom",
			"ticker": "SOL_USD"
		  },
		  {
			"exchangeName": "Huobi",
			"ticker": "solusdt",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Kraken",
			"ticker": "SOLUSD"
		  },
		  {
			"exchangeName": "Kucoin",
			"ticker": "SOL-USDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Mexc",
			"ticker": "SOL_USDT",
			"adjustByMarket": "USDT-USD"
		  },
		  {
			"exchangeName": "Okx",
			"ticker": "SOL-USDT",
			"adjustByMarket": "USDT-USD"
		  }
		]
	  }`,
	exchange_config.MARKET_ISO_USD: `{
		"exchanges": [
		  {
			"exchangeName": "Binance",
			"ticker": "ISOUSDT",
			"adjustByMarket": "USDT-USD"
		  }
		]
	  }`,
	exchange_config.MARKET_ISO2_USD: `{
		"exchanges": [
			{
			"exchangeName": "Binance",
			"ticker": "ISO2USDT",
			"adjustByMarket": "USDT-USD"
			}
		]
	  }`,
	exchange_config.MARKET_ISO_BTC: `{
		"exchanges": [
			{
			"exchangeName": "Binance",
			"ticker": "ISOBTC"
			}
		]
	  }`,
	exchange_config.MARKET_ISO2_BTC: `{
		"exchanges": [
			{
			"exchangeName": "Binance",
			"ticker": "ISO2BTC"
			}
		]
	  }`,
}
View Source
var TestMarketIdsToExponents = map[uint32]int32{
	0: BtcUsdExponent,
	1: EthUsdExponent,
	2: SolUsdExponent,
	5: LinkBtcExponent,
}
View Source
var TestMarketParams = []types.MarketParam{
	{
		Id:                 0,
		Pair:               BtcUsdPair,
		Exponent:           BtcUsdExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_BTC_USD],
	},
	{
		Id:                 1,
		Pair:               EthUsdPair,
		Exponent:           EthUsdExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ETH_USD],
	},
	{
		Id:                 2,
		Pair:               SolUsdPair,
		Exponent:           SolUsdExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_SOL_USD],
	},
	{
		Id:                 3,
		Pair:               IsoUsdPair,
		Exponent:           IsoUsdExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO_USD],
	},
	{
		Id:                 4,
		Pair:               Iso2UsdPair,
		Exponent:           Iso2UsdExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO2_USD],
	},
	{
		Id:                 5,
		Pair:               IsoBtcPair,
		Exponent:           IsoBtcExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO_BTC],
	},
	{
		Id:                 6,
		Pair:               Iso2BtcPair,
		Exponent:           Iso2BtcExponent,
		MinExchanges:       1,
		MinPriceChangePpm:  50,
		ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_ISO2_BTC],
	},
}
View Source
var TestMarketPerpetuals = []perptypes.Perpetual{
	{
		Params: perptypes.PerpetualParams{
			Id:                0,
			Ticker:            "BTC-USD",
			MarketId:          uint32(0),
			AtomicResolution:  int32(-10),
			DefaultFundingPpm: int32(0),
			LiquidityTier:     uint32(0),
			DangerIndexPpm:    uint32(0),
			CollateralPoolId:  uint32(0),
		},
		FundingIndex: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	},
	{
		Params: perptypes.PerpetualParams{
			Id:                1,
			Ticker:            "ETH-USD",
			MarketId:          uint32(1),
			AtomicResolution:  int32(-9),
			DefaultFundingPpm: int32(0),
			LiquidityTier:     uint32(0),
			DangerIndexPpm:    uint32(0),
			CollateralPoolId:  uint32(0),
		},
		FundingIndex: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	},
	{
		Params: perptypes.PerpetualParams{
			Id:                2,
			Ticker:            "SOL-USD",
			MarketId:          uint32(2),
			AtomicResolution:  int32(-9),
			DefaultFundingPpm: int32(0),
			LiquidityTier:     uint32(3),
			DangerIndexPpm:    uint32(0),
			CollateralPoolId:  uint32(0),
		},
		FundingIndex: dtypes.ZeroInt(),
		YieldIndex:   big.NewRat(0, 1).String(),
	},
	IsoUsd_IsolatedMarket,
	Iso2Usd_IsolatedMarket,
	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool1_Id5,
	IsoBtc_20PercentInitial_10PercentMaintenance_CollatPool4_Id6,
	Iso2Btc_20PercentInitial_10PercentMaintenance_CollatPool1_Id7,
	BtcBtc_100PercentMarginRequirement_CollatPool1_Id8,
}
View Source
var TestMarketPrices = []types.MarketPrice{
	{
		Id:        0,
		Exponent:  BtcUsdExponent,
		SpotPrice: FiveBillion,
		PnlPrice:  FiveBillion,
	},
	{
		Id:        1,
		Exponent:  EthUsdExponent,
		SpotPrice: ThreeBillion,
		PnlPrice:  ThreeBillion,
	},
	{
		Id:        2,
		Exponent:  SolUsdExponent,
		SpotPrice: FiveBillion,
		PnlPrice:  FiveBillion,
	},
	{
		Id:        3,
		Exponent:  IsoUsdExponent,
		SpotPrice: FiveHundredBillion,
		PnlPrice:  FiveHundredBillion,
	},
	{
		Id:        4,
		Exponent:  Iso2UsdExponent,
		SpotPrice: ThirtyBillion,
		PnlPrice:  ThirtyBillion,
	},
	{
		Id:        5,
		Exponent:  IsoBtcExponent,
		SpotPrice: FiveMillion,
		PnlPrice:  FiveMillion,
	},
	{
		Id:        6,
		Exponent:  Iso2BtcExponent,
		SpotPrice: ThreeMillion,
		PnlPrice:  ThreeMillion,
	},
}
View Source
var TestPricesGenesisState = types.GenesisState{
	MarketParams: TestMarketParams,
	MarketPrices: TestMarketPrices,
}
View Source
var TestSingleMarketParam = types.MarketParam{
	Id:                 0,
	Pair:               BtcUsdPair,
	Exponent:           BtcUsdExponent,
	MinExchanges:       1,
	MinPriceChangePpm:  50,
	ExchangeConfigJson: TestMarketExchangeConfigs[exchange_config.MARKET_BTC_USD],
}

Functions

func BigNegMaxUint64

func BigNegMaxUint64() *big.Int

BigNegMaxUint64 returns a `big.Int` that is set to -math.MaxUint64.

func FundingSamples_Constant_0_001_Percent_Length_60_With_Noises

func FundingSamples_Constant_0_001_Percent_Length_60_With_Noises() (
	result []int32,
)

Return a list of 60 funding premium samples, with 30 equal to 0.001% or 1000 in ppm, 15 equal to -0.1% and 15 equal to 0.1%.

func GenerateConstantFundingPremiums

func GenerateConstantFundingPremiums(
	value int32,
	count uint32,
) (
	result []int32,
)

Return a list of `count` constant funding premiums equal to `value`.

func GenerateEpochGenesisStateWithoutFunding

func GenerateEpochGenesisStateWithoutFunding() types.GenesisState

GenerateEpochGenesisStateWithoutFunding is a testutil function to generate genesis state for the epochs module where no new epochs will trigger for `funding-tick` and `funding-sample` within the next 365 days, meaning that there will be no funding payment for unit and end-to-end tests that use this genesis state.

func GenerateFundingSamplesWithValues

func GenerateFundingSamplesWithValues(
	values []int32,
	counts []uint32,
) (
	result []int32,
)

Returns a funding sample list of length `n = sum(counts)`, where each `values[i]` appears `counts[i]` times.

func GetConsAddressFromStringValidatorAddress

func GetConsAddressFromStringValidatorAddress(validatorAddr string) sdk.ConsAddress

func GetConsAddressFromValidatorAddress

func GetConsAddressFromValidatorAddress(validatorAddr sdk.ValAddress) sdk.ConsAddress

func GetEddsaPrivKeyFromValidatorAddressString

func GetEddsaPrivKeyFromValidatorAddressString(validatorAddrString string) cometbfted25519.PrivKey

func GetPrivKeyFromConsAddress

func GetPrivKeyFromConsAddress(consAddr sdk.ConsAddress) cometbfted25519.PrivKey

func GetPrivKeyFromValidatorAddress

func GetPrivKeyFromValidatorAddress(validatorAddr sdk.ValAddress) cryptotypes.PrivKey

func GetPrivKeyFromValidatorAddressString

func GetPrivKeyFromValidatorAddressString(validatorAddrString string) cryptotypes.PrivKey

func GetPrivateKeyFromAddress

func GetPrivateKeyFromAddress(accAddress string) cryptotypes.PrivKey

GetPrivateKeyFromAddress returns the private key for the specified account address. Note that this panics if the account address is not one of the well known accounts.

func GetPublicKeyFromAddress

func GetPublicKeyFromAddress(accAddress string) cryptotypes.PubKey

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL