@0xmonaco/types 0.8.4 → 0.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,8 @@ import type { OrderSide, OrderType, PositionSide } from "../trading";
3
3
  export interface MarginAccountSummary {
4
4
  margin_account_id: string;
5
5
  label?: string;
6
+ trading_pair_id?: string;
7
+ strategy_key?: string;
6
8
  account_state: string;
7
9
  equity: string;
8
10
  initial_margin_required: string;
@@ -18,6 +20,7 @@ export interface ListMarginAccountsParams {
18
20
  page?: number;
19
21
  page_size?: number;
20
22
  state?: string;
23
+ tradingPairId?: string;
21
24
  }
22
25
  export interface ListMarginAccountsResponse {
23
26
  accounts: MarginAccountSummary[];
@@ -49,9 +52,14 @@ export interface TransferCollateralRequest {
49
52
  asset: string;
50
53
  amount: string;
51
54
  }
55
+ export interface TransferCollateralToAutoMarginAccountRequest extends TransferCollateralRequest {
56
+ tradingPairId: string;
57
+ strategyKey?: string;
58
+ }
52
59
  export interface TransferCollateralResponse {
53
60
  movement_id: string;
54
61
  margin_account_id: string;
62
+ strategy_key?: string;
55
63
  asset: string;
56
64
  amount: string;
57
65
  status: string;
@@ -80,6 +88,7 @@ export interface GetMarginAccountMovementsResponse {
80
88
  }
81
89
  export interface SimulateOrderRiskRequest {
82
90
  tradingPairId: string;
91
+ strategyKey?: string;
83
92
  side: OrderSide;
84
93
  positionSide: PositionSide;
85
94
  orderType: OrderType;
@@ -91,6 +100,8 @@ export interface SimulateOrderRiskRequest {
91
100
  export interface SimulateOrderRiskResponse {
92
101
  accepted: boolean;
93
102
  reject_reason?: string;
103
+ margin_account_id: string;
104
+ strategy_key?: string;
94
105
  equity_after: string;
95
106
  initial_margin_required_after: string;
96
107
  maintenance_margin_required_after: string;
@@ -104,7 +115,9 @@ export interface MarginAccountsAPI extends BaseAPI {
104
115
  getMarginAccountSummary(marginAccountId: string): Promise<MarginAccountSummary>;
105
116
  getAvailableCollateral(params?: GetAvailableCollateralParams): Promise<GetAvailableCollateralResponse>;
106
117
  transferCollateralToMarginAccount(marginAccountId: string, request: TransferCollateralRequest): Promise<TransferCollateralResponse>;
118
+ transferCollateralToAutoMarginAccount(request: TransferCollateralToAutoMarginAccountRequest): Promise<TransferCollateralResponse>;
107
119
  transferCollateralFromMarginAccount(marginAccountId: string, request: TransferCollateralRequest): Promise<TransferCollateralResponse>;
108
120
  getMarginAccountMovements(marginAccountId: string, params?: GetMarginAccountMovementsParams): Promise<GetMarginAccountMovementsResponse>;
109
121
  simulateOrderRisk(marginAccountId: string, request: SimulateOrderRiskRequest): Promise<SimulateOrderRiskResponse>;
122
+ simulateAutoMarginOrderRisk(request: SimulateOrderRiskRequest): Promise<SimulateOrderRiskResponse>;
110
123
  }
@@ -259,6 +259,7 @@ export interface ListFundingHistoryResponse {
259
259
  }
260
260
  export interface OpenInterest {
261
261
  trading_pair_id: string;
262
+ open_interest?: string;
262
263
  open_interest_base: string;
263
264
  open_interest_notional: string;
264
265
  updated_at: string;
@@ -116,7 +116,7 @@ export interface GetUserBalancesParams {
116
116
  */
117
117
  export interface GetPaginatedUserMovementsResponse {
118
118
  /**
119
- * Latest movements from Redis cache (real-time, instant updates).
119
+ * Latest movements from the live engine cache (real-time, instant updates).
120
120
  * These are the most recent movements that may not yet be in PostgreSQL.
121
121
  * Only populated on page 1; empty for subsequent pages.
122
122
  */
@@ -141,7 +141,7 @@ export interface GetPaginatedOrdersParams {
141
141
  * Response from getting paginated orders
142
142
  */
143
143
  export interface GetPaginatedOrdersResponse {
144
- /** Latest orders from Redis cache (real-time, instant updates).
144
+ /** Latest orders from the live engine cache (real-time, instant updates).
145
145
  * These are the most recently created/updated orders that may not yet be in PostgreSQL.
146
146
  * Only populated on page 1.
147
147
  */
@@ -6,6 +6,7 @@ export declare const ListMarginAccountsSchema: z.ZodObject<{
6
6
  page: z.ZodOptional<z.ZodNumber>;
7
7
  page_size: z.ZodOptional<z.ZodNumber>;
8
8
  state: z.ZodOptional<z.ZodString>;
9
+ tradingPairId: z.ZodOptional<z.ZodUUID>;
9
10
  }, z.core.$strip>;
10
11
  export declare const CreateMarginAccountSchema: z.ZodOptional<z.ZodObject<{
11
12
  label: z.ZodOptional<z.ZodString>;
@@ -24,6 +25,14 @@ export declare const TransferCollateralSchema: z.ZodObject<{
24
25
  amount: z.ZodString;
25
26
  }, z.core.$strip>;
26
27
  }, z.core.$strip>;
28
+ export declare const TransferCollateralToAutoMarginAccountSchema: z.ZodObject<{
29
+ request: z.ZodObject<{
30
+ asset: z.ZodString;
31
+ amount: z.ZodString;
32
+ tradingPairId: z.ZodUUID;
33
+ strategyKey: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ }, z.core.$strip>;
27
36
  export declare const GetMarginAccountMovementsSchema: z.ZodObject<{
28
37
  page: z.ZodOptional<z.ZodNumber>;
29
38
  page_size: z.ZodOptional<z.ZodNumber>;
@@ -34,6 +43,30 @@ export declare const SimulateOrderRiskSchema: z.ZodObject<{
34
43
  marginAccountId: z.ZodUUID;
35
44
  request: z.ZodObject<{
36
45
  tradingPairId: z.ZodUUID;
46
+ strategyKey: z.ZodOptional<z.ZodString>;
47
+ side: z.ZodEnum<{
48
+ BUY: "BUY";
49
+ SELL: "SELL";
50
+ }>;
51
+ positionSide: z.ZodEnum<{
52
+ LONG: "LONG";
53
+ SHORT: "SHORT";
54
+ NONE: "NONE";
55
+ }>;
56
+ orderType: z.ZodEnum<{
57
+ LIMIT: "LIMIT";
58
+ MARKET: "MARKET";
59
+ }>;
60
+ price: z.ZodOptional<z.ZodString>;
61
+ quantity: z.ZodString;
62
+ leverage: z.ZodString;
63
+ reduceOnly: z.ZodOptional<z.ZodBoolean>;
64
+ }, z.core.$strip>;
65
+ }, z.core.$strip>;
66
+ export declare const SimulateAutoMarginOrderRiskSchema: z.ZodObject<{
67
+ request: z.ZodObject<{
68
+ tradingPairId: z.ZodUUID;
69
+ strategyKey: z.ZodOptional<z.ZodString>;
37
70
  side: z.ZodEnum<{
38
71
  BUY: "BUY";
39
72
  SELL: "SELL";
@@ -9,6 +9,7 @@ const PaginationSchema = z.object({
9
9
  });
10
10
  export const ListMarginAccountsSchema = PaginationSchema.extend({
11
11
  state: z.string().trim().min(1, "State cannot be empty").optional(),
12
+ tradingPairId: UUIDSchema.optional(),
12
13
  });
13
14
  export const CreateMarginAccountSchema = z
14
15
  .object({
@@ -24,36 +25,50 @@ export const GetAvailableCollateralSchema = z
24
25
  asset: z.string().trim().min(1, "Asset cannot be empty").optional(),
25
26
  })
26
27
  .optional();
28
+ const TransferCollateralRequestSchema = z.object({
29
+ asset: z.string().trim().min(1, "Asset cannot be empty"),
30
+ amount: PositiveDecimalStringSchema,
31
+ });
32
+ const AutoMarginBucketRequestSchema = z.object({
33
+ tradingPairId: UUIDSchema,
34
+ strategyKey: z.string().trim().min(1, "Strategy key cannot be empty").optional(),
35
+ });
27
36
  export const TransferCollateralSchema = z.object({
28
37
  marginAccountId: UUIDSchema,
29
- request: z.object({
30
- asset: z.string().trim().min(1, "Asset cannot be empty"),
31
- amount: PositiveDecimalStringSchema,
32
- }),
38
+ request: TransferCollateralRequestSchema,
39
+ });
40
+ export const TransferCollateralToAutoMarginAccountSchema = z.object({
41
+ request: TransferCollateralRequestSchema.merge(AutoMarginBucketRequestSchema),
33
42
  });
34
43
  export const GetMarginAccountMovementsSchema = PaginationSchema.extend({
35
44
  marginAccountId: UUIDSchema,
36
45
  movement_type: z.string().trim().min(1, "Movement type cannot be empty").optional(),
37
46
  });
47
+ const SimulateOrderRiskRequestSchema = z.object({
48
+ tradingPairId: UUIDSchema,
49
+ strategyKey: z.string().trim().min(1, "Strategy key cannot be empty").optional(),
50
+ side: OrderSideSchema,
51
+ positionSide: PositionSideSchema,
52
+ orderType: OrderTypeSchema,
53
+ price: PositiveDecimalStringSchema.optional(),
54
+ quantity: PositiveDecimalStringSchema,
55
+ leverage: PositiveDecimalStringSchema,
56
+ reduceOnly: z.boolean().optional(),
57
+ });
38
58
  export const SimulateOrderRiskSchema = z
39
59
  .object({
40
60
  marginAccountId: UUIDSchema,
41
- request: z.object({
42
- tradingPairId: UUIDSchema,
43
- side: OrderSideSchema,
44
- positionSide: PositionSideSchema,
45
- orderType: OrderTypeSchema,
46
- price: PositiveDecimalStringSchema.optional(),
47
- quantity: PositiveDecimalStringSchema,
48
- leverage: PositiveDecimalStringSchema,
49
- reduceOnly: z.boolean().optional(),
50
- }),
61
+ request: SimulateOrderRiskRequestSchema,
51
62
  })
52
63
  .refine((data) => data.request.orderType !== "LIMIT" || data.request.price !== undefined, {
53
64
  message: "price is required for LIMIT risk simulations",
54
65
  path: ["request", "price"],
66
+ });
67
+ export const SimulateAutoMarginOrderRiskSchema = z
68
+ .object({
69
+ request: SimulateOrderRiskRequestSchema,
55
70
  })
56
- .refine((data) => data.request.orderType !== "MARKET" || data.request.price === undefined, {
57
- message: "price must not be provided for MARKET risk simulations",
71
+ .refine((data) => data.request.orderType !== "LIMIT" || data.request.price !== undefined, {
72
+ message: "price is required for LIMIT risk simulations",
58
73
  path: ["request", "price"],
59
74
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/types",
3
- "version": "0.8.4",
3
+ "version": "0.8.7",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  "lint": "biome lint ."
21
21
  },
22
22
  "dependencies": {
23
- "@0xmonaco/contracts": "0.8.4",
23
+ "@0xmonaco/contracts": "0.8.7",
24
24
  "zod": "^4.1.12"
25
25
  },
26
26
  "peerDependencies": {