@polyester/sdk 0.7.0 → 0.8.0

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/gen/auth/v1/api_keys_pb.d.ts +1 -1
  3. package/dist/gen/auth/v1/api_keys_pb.js.map +1 -1
  4. package/dist/gen/auth/v1/policies_pb.d.ts +47 -337
  5. package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -1
  6. package/dist/gen/auth/v1/policies_pb.js +49 -73
  7. package/dist/gen/auth/v1/policies_pb.js.map +1 -1
  8. package/dist/gen/orders/v1/orders_pb.d.ts +32 -1
  9. package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
  10. package/dist/gen/orders/v1/orders_pb.js +25 -1
  11. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  12. package/dist/gen/triggers/v1/triggers_pb.d.ts +22 -2
  13. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
  14. package/dist/gen/triggers/v1/triggers_pb.js +7 -1
  15. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
  16. package/dist/index.d.ts +3 -3
  17. package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
  18. package/dist/services/orders/order-errors.schemas.d.ts +1 -1
  19. package/dist/services/orders/orders-batch.schemas.d.ts +20 -20
  20. package/dist/services/orders/orders-input.schemas.d.ts +4 -4
  21. package/dist/services/orders/orders-modify.schemas.d.ts +3 -2
  22. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  23. package/dist/services/orders/orders-modify.schemas.js +5 -3
  24. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  25. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  26. package/dist/services/orders/orders.d.ts +1 -1
  27. package/dist/services/orders/orders.js +1 -1
  28. package/dist/services/orders/orders.js.map +1 -1
  29. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +2 -2
  30. package/dist/services/policies/api-key-policies/api-key-policies.js +2 -2
  31. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  32. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +15 -140
  33. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
  34. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +5 -53
  35. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
  36. package/dist/services/policies/shared.codecs.js +4 -12
  37. package/dist/services/policies/shared.codecs.js.map +1 -1
  38. package/dist/services/policies/shared.d.ts +1 -1
  39. package/dist/services/policies/shared.d.ts.map +1 -1
  40. package/dist/services/policies/shared.js +3 -11
  41. package/dist/services/policies/shared.js.map +1 -1
  42. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +1 -1
  43. package/dist/services/policies/subaccount-policies/subaccount-policies.js +1 -1
  44. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  45. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +10 -206
  46. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
  47. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +9 -115
  48. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
  49. package/dist/services/subaccounts/subaccounts.schemas.d.ts +5 -5
  50. package/dist/services/triggers/trigger-input.schemas.d.ts +14 -7
  51. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  52. package/dist/services/triggers/trigger-input.schemas.js +13 -3
  53. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  54. package/dist/services/triggers/triggers-output.schemas.d.ts +15 -15
  55. package/dist/services/triggers/triggers.codecs.js +6 -3
  56. package/dist/services/triggers/triggers.codecs.js.map +1 -1
  57. package/dist/services/triggers/triggers.d.ts +2 -2
  58. package/dist/services/triggers/triggers.js +2 -2
  59. package/dist/services/triggers/triggers.js.map +1 -1
  60. package/dist/services/triggers/triggers.types.d.ts +3 -3
  61. package/dist/shared/schemas.js +2 -2
  62. package/dist/shared/schemas.js.map +1 -1
  63. package/dist/shared/transports.js +6 -1
  64. package/dist/shared/transports.js.map +1 -1
  65. package/dist/shared/wire-bounds.js +3 -1
  66. package/dist/shared/wire-bounds.js.map +1 -1
  67. package/dist/utils/numbers.js +1 -10
  68. package/dist/utils/numbers.js.map +1 -1
  69. package/package.json +1 -1
@@ -38,27 +38,12 @@ declare const SubaccountPolicySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<
38
38
  readonly symbol: v.StringSchema<undefined>;
39
39
  }, undefined>, undefined>, readonly []>;
40
40
  readonly spotMarketScope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof MarketScope_Value, undefined>, v.TransformAction<MarketScope_Value, DecodedEnum<"all" | "allowlist">>]>;
41
- readonly perpMarketScope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof MarketScope_Value, undefined>, v.TransformAction<MarketScope_Value, DecodedEnum<"all" | "allowlist">>]>;
42
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
43
- readonly symbol: v.StringSchema<undefined>;
44
- readonly maxLeverageX: v.NumberSchema<undefined>;
45
- }, undefined>, undefined>, readonly []>;
46
- readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.EnumSchema<typeof PolicyAction, undefined>, undefined>, readonly []>, v.TransformAction<v.EnumValues<typeof PolicyAction>[], DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[]>]>;
41
+ readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.EnumSchema<typeof PolicyAction, undefined>, undefined>, readonly []>, v.TransformAction<v.EnumValues<typeof PolicyAction>[], DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[]>]>;
47
42
  readonly isTemplate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
48
43
  readonly sourceTemplateId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
49
- readonly globalNotionalCap: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
50
44
  readonly maxOrderNotional: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
51
45
  readonly maxOpenOrders: v.NumberSchema<undefined>;
52
- readonly maxOpenPositions: v.NumberSchema<undefined>;
53
- readonly globalPerpLeverageX: v.NumberSchema<undefined>;
54
- readonly dailyInternalTransferOutLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
55
- readonly dailyWithdrawLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
56
- readonly internalTransfersOwnOnly: v.BooleanSchema<undefined>;
57
- readonly enforceWithdrawWhitelist: v.BooleanSchema<undefined>;
58
46
  readonly tradingHalted: v.BooleanSchema<undefined>;
59
- readonly liquidationOnly: v.BooleanSchema<undefined>;
60
- readonly dailyLossLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
61
- readonly intradayDrawdownLimitBps: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, number>]>;
62
47
  readonly locked: v.BooleanSchema<undefined>;
63
48
  readonly reviewAt: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ObjectSchema<{
64
49
  readonly seconds: v.BigintSchema<undefined>;
@@ -94,27 +79,12 @@ declare const SubaccountPolicySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<
94
79
  symbol: string;
95
80
  }[];
96
81
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
97
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
98
- perpMarkets: {
99
- symbol: string;
100
- maxLeverageX: number;
101
- }[];
102
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
82
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
103
83
  isTemplate: boolean;
104
84
  sourceTemplateId?: string | undefined;
105
- globalNotionalCap: number;
106
85
  maxOrderNotional: number;
107
86
  maxOpenOrders: number;
108
- maxOpenPositions: number;
109
- globalPerpLeverageX: number;
110
- dailyInternalTransferOutLimit: number;
111
- dailyWithdrawLimit: number;
112
- internalTransfersOwnOnly: boolean;
113
- enforceWithdrawWhitelist: boolean;
114
87
  tradingHalted: boolean;
115
- liquidationOnly: boolean;
116
- dailyLossLimit: number;
117
- intradayDrawdownLimitBps: number;
118
88
  locked: boolean;
119
89
  reviewAt?: number | undefined;
120
90
  expiresAt?: number | undefined;
@@ -134,32 +104,17 @@ declare const SubaccountPolicySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<
134
104
  symbol: string;
135
105
  }[];
136
106
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
137
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
138
- perpMarkets: {
139
- symbol: string;
140
- maxLeverageX: number;
141
- }[];
142
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
107
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
143
108
  isTemplate: boolean;
144
109
  sourceTemplateId?: string | undefined;
145
110
  maxOpenOrders: number;
146
- maxOpenPositions: number;
147
- globalPerpLeverageX: number;
148
- dailyInternalTransferOutLimit: number;
149
- dailyWithdrawLimit: number;
150
- internalTransfersOwnOnly: boolean;
151
- enforceWithdrawWhitelist: boolean;
152
111
  tradingHalted: boolean;
153
- liquidationOnly: boolean;
154
- dailyLossLimit: number;
155
112
  locked: boolean;
156
113
  reviewAt?: number | undefined;
157
114
  expiresAt?: number | undefined;
158
115
  createdAt: number;
159
116
  revision: string;
160
117
  maxOrderSize: number;
161
- globalExposureCap: number;
162
- intradayDrawdownLimitPct: number;
163
118
  }>]>;
164
119
  type SubaccountPolicy = v.InferOutput<typeof SubaccountPolicySchema>;
165
120
  declare const CreateSubaccountPolicyInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
@@ -168,97 +123,33 @@ declare const CreateSubaccountPolicyInputSchema: v.SchemaWithPipe<readonly [v.St
168
123
  readonly spotMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
169
124
  readonly symbol: v.StringSchema<undefined>;
170
125
  }, undefined>, undefined>, readonly []>;
171
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
172
- readonly symbol: v.StringSchema<undefined>;
173
- readonly maxLeverageX: v.NumberSchema<undefined>;
174
- }, undefined>, undefined>, readonly []>;
175
126
  readonly spotMarketScope: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["all", "allowlist"], undefined>, v.TransformAction<"all" | "allowlist", MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST>]>;
176
- readonly perpMarketScope: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["all", "allowlist"], undefined>, v.TransformAction<"all" | "allowlist", MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST>]>;
177
- readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "trade-perp", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-perp", "read-internal-transfers", "read-external-withdrawals", "read-transfer-controls", "manage-address-book", "manage-transfer-whitelists"], undefined>, undefined>, readonly ["read-balances", "read-spot"]>, v.TransformAction<("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[], (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[]>]>;
178
- readonly globalLeverageCap: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, number>]>;
179
- readonly globalExposureCap: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
127
+ readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-internal-transfers", "read-address-book", "manage-address-book"], undefined>, undefined>, readonly []>, v.TransformAction<("trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book")[], (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[]>]>;
180
128
  readonly maxOrderSize: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
181
129
  readonly maxOpenOrders: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, number>]>;
182
- readonly maxOpenPositions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, number>]>;
183
- readonly dailyInternalTransferLimit: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
184
- readonly dailyWithdrawLimit: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
185
- readonly dailyLossLimit: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
186
- readonly intradayDrawdownLimitPct: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, number>]>;
187
130
  readonly tradingHalted: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
188
- readonly liquidationOnly: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
189
131
  readonly policyLocked: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
190
- readonly internalTransfersOwnOnly: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
191
- readonly enforceWithdrawWhitelist: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
192
132
  readonly reviewAt: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
193
133
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
194
134
  readonly subaccountId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
195
- }, undefined>, v.CheckAction<{
135
+ }, undefined>, v.TransformAction<{
196
136
  name: string;
197
137
  description: string;
198
138
  spotMarkets: {
199
139
  symbol: string;
200
140
  }[];
201
- perpMarkets: {
202
- symbol: string;
203
- maxLeverageX: number;
204
- }[];
205
141
  spotMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
206
- perpMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
207
- actions: (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[];
208
- globalLeverageCap: number;
209
- globalExposureCap: bigint;
142
+ actions: (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[];
210
143
  maxOrderSize: bigint;
211
144
  maxOpenOrders: number;
212
- maxOpenPositions: number;
213
- dailyInternalTransferLimit: bigint;
214
- dailyWithdrawLimit: bigint;
215
- dailyLossLimit: bigint;
216
- intradayDrawdownLimitPct: number;
217
145
  tradingHalted: boolean;
218
- liquidationOnly: boolean;
219
146
  policyLocked: boolean;
220
- internalTransfersOwnOnly: boolean;
221
- enforceWithdrawWhitelist: boolean;
222
- reviewAt?: number | null | undefined;
223
- expiresAt?: number | null | undefined;
224
- subaccountId?: bigint | undefined;
225
- }, "Subaccount policy actions must include read-balances and read-spot">, v.TransformAction<{
226
- name: string;
227
- description: string;
228
- spotMarkets: {
229
- symbol: string;
230
- }[];
231
- perpMarkets: {
232
- symbol: string;
233
- maxLeverageX: number;
234
- }[];
235
- spotMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
236
- perpMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
237
- actions: (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[];
238
- globalLeverageCap: number;
239
- globalExposureCap: bigint;
240
- maxOrderSize: bigint;
241
- maxOpenOrders: number;
242
- maxOpenPositions: number;
243
- dailyInternalTransferLimit: bigint;
244
- dailyWithdrawLimit: bigint;
245
- dailyLossLimit: bigint;
246
- intradayDrawdownLimitPct: number;
247
- tradingHalted: boolean;
248
- liquidationOnly: boolean;
249
- policyLocked: boolean;
250
- internalTransfersOwnOnly: boolean;
251
- enforceWithdrawWhitelist: boolean;
252
147
  reviewAt?: number | null | undefined;
253
148
  expiresAt?: number | null | undefined;
254
149
  subaccountId?: bigint | undefined;
255
150
  }, {
256
151
  policy: {
257
- globalNotionalCap: bigint;
258
152
  maxOrderNotional: bigint;
259
- globalPerpLeverageX: number;
260
- dailyInternalTransferOutLimit: bigint;
261
- intradayDrawdownLimitBps: number;
262
153
  locked: boolean;
263
154
  reviewAt: import("@bufbuild/protobuf/wkt").Timestamp | undefined;
264
155
  expiresAt: import("@bufbuild/protobuf/wkt").Timestamp | undefined;
@@ -267,21 +158,10 @@ declare const CreateSubaccountPolicyInputSchema: v.SchemaWithPipe<readonly [v.St
267
158
  spotMarkets: {
268
159
  symbol: string;
269
160
  }[];
270
- perpMarkets: {
271
- symbol: string;
272
- maxLeverageX: number;
273
- }[];
274
161
  spotMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
275
- perpMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
276
- actions: (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[];
162
+ actions: (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[];
277
163
  maxOpenOrders: number;
278
- maxOpenPositions: number;
279
- dailyWithdrawLimit: bigint;
280
- dailyLossLimit: bigint;
281
164
  tradingHalted: boolean;
282
- liquidationOnly: boolean;
283
- internalTransfersOwnOnly: boolean;
284
- enforceWithdrawWhitelist: boolean;
285
165
  };
286
166
  subaccountId: bigint | undefined;
287
167
  }>]>;
@@ -294,27 +174,12 @@ declare const UpdateSubaccountPolicyInputSchema: v.SchemaWithPipe<readonly [v.St
294
174
  readonly spotMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
295
175
  readonly symbol: v.StringSchema<undefined>;
296
176
  }, undefined>, undefined>, undefined>;
297
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
298
- readonly symbol: v.StringSchema<undefined>;
299
- readonly maxLeverageX: v.NumberSchema<undefined>;
300
- }, undefined>, undefined>, undefined>;
301
177
  readonly spotMarketScope: v.OptionalSchema<v.PicklistSchema<readonly ["all", "allowlist"], undefined>, undefined>;
302
- readonly perpMarketScope: v.OptionalSchema<v.PicklistSchema<readonly ["all", "allowlist"], undefined>, undefined>;
303
- readonly actions: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "trade-perp", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-perp", "read-internal-transfers", "read-external-withdrawals", "read-transfer-controls", "manage-address-book", "manage-transfer-whitelists"], undefined>, undefined>, undefined>;
304
- readonly globalLeverageCap: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
305
- readonly globalExposureCap: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
178
+ readonly actions: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-internal-transfers", "read-address-book", "manage-address-book"], undefined>, undefined>, undefined>;
306
179
  readonly maxOrderSize: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
307
180
  readonly maxOpenOrders: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
308
- readonly maxOpenPositions: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
309
- readonly dailyInternalTransferLimit: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
310
- readonly dailyWithdrawLimit: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
311
- readonly dailyLossLimit: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
312
- readonly intradayDrawdownLimitPct: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
313
181
  readonly tradingHalted: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
314
- readonly liquidationOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
315
182
  readonly policyLocked: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
316
- readonly internalTransfersOwnOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
317
- readonly enforceWithdrawWhitelist: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
318
183
  readonly reviewAt: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
319
184
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
320
185
  }, undefined>, v.CheckAction<{
@@ -325,58 +190,12 @@ declare const UpdateSubaccountPolicyInputSchema: v.SchemaWithPipe<readonly [v.St
325
190
  spotMarkets?: {
326
191
  symbol: string;
327
192
  }[] | undefined;
328
- perpMarkets?: {
329
- symbol: string;
330
- maxLeverageX: number;
331
- }[] | undefined;
332
193
  spotMarketScope?: "all" | "allowlist" | undefined;
333
- perpMarketScope?: "all" | "allowlist" | undefined;
334
- actions?: ("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[] | undefined;
335
- globalLeverageCap?: number | null | undefined;
336
- globalExposureCap?: number | null | undefined;
194
+ actions?: ("trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book")[] | undefined;
337
195
  maxOrderSize?: number | null | undefined;
338
196
  maxOpenOrders?: number | null | undefined;
339
- maxOpenPositions?: number | null | undefined;
340
- dailyInternalTransferLimit?: number | null | undefined;
341
- dailyWithdrawLimit?: number | null | undefined;
342
- dailyLossLimit?: number | null | undefined;
343
- intradayDrawdownLimitPct?: number | null | undefined;
344
197
  tradingHalted?: boolean | undefined;
345
- liquidationOnly?: boolean | undefined;
346
198
  policyLocked?: boolean | undefined;
347
- internalTransfersOwnOnly?: boolean | undefined;
348
- enforceWithdrawWhitelist?: boolean | undefined;
349
- reviewAt?: number | null | undefined;
350
- expiresAt?: number | null | undefined;
351
- }, "Subaccount policy actions must include read-balances and read-spot">, v.CheckAction<{
352
- policyId: bigint;
353
- expectedRevision: bigint;
354
- name?: string | undefined;
355
- description?: string | undefined;
356
- spotMarkets?: {
357
- symbol: string;
358
- }[] | undefined;
359
- perpMarkets?: {
360
- symbol: string;
361
- maxLeverageX: number;
362
- }[] | undefined;
363
- spotMarketScope?: "all" | "allowlist" | undefined;
364
- perpMarketScope?: "all" | "allowlist" | undefined;
365
- actions?: ("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[] | undefined;
366
- globalLeverageCap?: number | null | undefined;
367
- globalExposureCap?: number | null | undefined;
368
- maxOrderSize?: number | null | undefined;
369
- maxOpenOrders?: number | null | undefined;
370
- maxOpenPositions?: number | null | undefined;
371
- dailyInternalTransferLimit?: number | null | undefined;
372
- dailyWithdrawLimit?: number | null | undefined;
373
- dailyLossLimit?: number | null | undefined;
374
- intradayDrawdownLimitPct?: number | null | undefined;
375
- tradingHalted?: boolean | undefined;
376
- liquidationOnly?: boolean | undefined;
377
- policyLocked?: boolean | undefined;
378
- internalTransfersOwnOnly?: boolean | undefined;
379
- enforceWithdrawWhitelist?: boolean | undefined;
380
199
  reviewAt?: number | null | undefined;
381
200
  expiresAt?: number | null | undefined;
382
201
  }, "At least one subaccount policy field must be provided">, v.TransformAction<{
@@ -387,27 +206,12 @@ declare const UpdateSubaccountPolicyInputSchema: v.SchemaWithPipe<readonly [v.St
387
206
  spotMarkets?: {
388
207
  symbol: string;
389
208
  }[] | undefined;
390
- perpMarkets?: {
391
- symbol: string;
392
- maxLeverageX: number;
393
- }[] | undefined;
394
209
  spotMarketScope?: "all" | "allowlist" | undefined;
395
- perpMarketScope?: "all" | "allowlist" | undefined;
396
- actions?: ("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[] | undefined;
397
- globalLeverageCap?: number | null | undefined;
398
- globalExposureCap?: number | null | undefined;
210
+ actions?: ("trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book")[] | undefined;
399
211
  maxOrderSize?: number | null | undefined;
400
212
  maxOpenOrders?: number | null | undefined;
401
- maxOpenPositions?: number | null | undefined;
402
- dailyInternalTransferLimit?: number | null | undefined;
403
- dailyWithdrawLimit?: number | null | undefined;
404
- dailyLossLimit?: number | null | undefined;
405
- intradayDrawdownLimitPct?: number | null | undefined;
406
213
  tradingHalted?: boolean | undefined;
407
- liquidationOnly?: boolean | undefined;
408
214
  policyLocked?: boolean | undefined;
409
- internalTransfersOwnOnly?: boolean | undefined;
410
- enforceWithdrawWhitelist?: boolean | undefined;
411
215
  reviewAt?: number | null | undefined;
412
216
  expiresAt?: number | null | undefined;
413
217
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"subaccount-policies.schemas.d.ts","names":[],"sources":["../../../../src/services/policies/subaccount-policies/subaccount-policies.schemas.ts"],"mappings":";;;;cAwCa,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;cASjC,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;cAgB9B,wBAAsB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6EvB,mBAAmB,EAAE,mBAAmB;cA0EvC,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAalC,8BAA8B,EAAE,kBAAkB;cA6HjD,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BlC,8BAA8B,EAAE,kBAAkB;cASjD,kCAAgC,EAAA;;;;KAQjC,6BAA6B,EAAE,kBAAkB"}
1
+ {"version":3,"file":"subaccount-policies.schemas.d.ts","names":[],"sources":["../../../../src/services/policies/subaccount-policies/subaccount-policies.schemas.ts"],"mappings":";;;;cAqCa,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;cASjC,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;cAgB9B,wBAAsB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCvB,mBAAmB,EAAE,mBAAmB;cAmDvC,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOlC,8BAA8B,EAAE,kBAAkB;cA6DjD,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BlC,8BAA8B,EAAE,kBAAkB;cASjD,kCAAgC,EAAA;;;;KAQjC,6BAA6B,EAAE,kBAAkB"}
@@ -1,8 +1,8 @@
1
1
  import { idToBigInt } from "../../../utils/base58-id.js";
2
- import { bpsToPct, toBigIntOrZero, toBpsOrZero, toIntOrZero } from "../../../utils/numbers.js";
2
+ import { toBigIntOrZero, toIntOrZero } from "../../../utils/numbers.js";
3
3
  import { tsObjToMs, tsObjToNsString } from "../../../utils/time.js";
4
- import { BigIntStringSchema, OptionalNumberToBigIntOrZeroSchema, OptionalNumberToBpsOrZeroSchema, OptionalNumberToIntOrZeroSchema, OptionalPublicIdSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampMsSchema, TimestampSchema, idInputSchema, optionalSubaccountIdInputSchema, positiveBigintStringInputSchema } from "../../../shared/schemas.js";
5
- import { PerpMarketRuleSchema, PolicyActionEnumSchema, PolicyMarketScopeEnumSchema, ProtoPolicyActionEnumSchema, ProtoPolicyMarketScopeEnumSchema, SpotMarketRuleSchema } from "../shared.js";
4
+ import { BigIntStringSchema, OptionalNumberToBigIntOrZeroSchema, OptionalNumberToIntOrZeroSchema, OptionalPublicIdSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampMsSchema, TimestampSchema, idInputSchema, optionalSubaccountIdInputSchema, positiveBigintStringInputSchema } from "../../../shared/schemas.js";
5
+ import { PolicyActionEnumSchema, PolicyMarketScopeEnumSchema, ProtoPolicyActionEnumSchema, ProtoPolicyMarketScopeEnumSchema, SpotMarketRuleSchema } from "../shared.js";
6
6
  import { PolicyActionCodec, PolicyMarketScopeCodec, policyActionLabelFor, policyMarketScopeLabelFor } from "../shared.codecs.js";
7
7
  import { buildProtoPatch, defineProtoPatchFields } from "../../../utils/proto-patch.js";
8
8
  import { toTimestamp } from "../../../utils/timestamp.js";
@@ -26,34 +26,20 @@ const SubaccountPolicySchema = v.pipe(v.object({
26
26
  description: v.string(),
27
27
  spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),
28
28
  spotMarketScope: v.pipe(ProtoPolicyMarketScopeEnumSchema, v.transform((v) => policyMarketScopeLabelFor(v))),
29
- perpMarketScope: v.pipe(ProtoPolicyMarketScopeEnumSchema, v.transform((v) => policyMarketScopeLabelFor(v))),
30
- perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),
31
29
  actions: v.pipe(v.optional(v.array(ProtoPolicyActionEnumSchema), []), v.transform((v) => v.map((action) => policyActionLabelFor(action)))),
32
30
  isTemplate: v.optional(v.boolean(), false),
33
31
  sourceTemplateId: OptionalPublicIdSchema,
34
- globalNotionalCap: v.pipe(v.bigint(), v.transform((v) => Number(v))),
35
32
  maxOrderNotional: v.pipe(v.bigint(), v.transform((v) => Number(v))),
36
33
  maxOpenOrders: v.number(),
37
- maxOpenPositions: v.number(),
38
- globalPerpLeverageX: v.number(),
39
- dailyInternalTransferOutLimit: v.pipe(v.bigint(), v.transform((v) => Number(v))),
40
- dailyWithdrawLimit: v.pipe(v.bigint(), v.transform((v) => Number(v))),
41
- internalTransfersOwnOnly: v.boolean(),
42
- enforceWithdrawWhitelist: v.boolean(),
43
34
  tradingHalted: v.boolean(),
44
- liquidationOnly: v.boolean(),
45
- dailyLossLimit: v.pipe(v.bigint(), v.transform((v) => Number(v))),
46
- intradayDrawdownLimitBps: v.pipe(v.number(), v.transform((v) => bpsToPct(v))),
47
35
  locked: v.boolean(),
48
36
  reviewAt: OptionalTimestampMsSchema,
49
37
  expiresAt: OptionalTimestampMsSchema,
50
38
  createdAt: TimestampMsSchema,
51
39
  updatedAt: TimestampSchema,
52
40
  revision: BigIntStringSchema
53
- }), v.transform(({ maxOrderNotional, globalNotionalCap, intradayDrawdownLimitBps, updatedAt, ...rest }) => ({
41
+ }), v.transform(({ maxOrderNotional, updatedAt, ...rest }) => ({
54
42
  maxOrderSize: maxOrderNotional,
55
- globalExposureCap: globalNotionalCap,
56
- intradayDrawdownLimitPct: intradayDrawdownLimitBps,
57
43
  ...rest,
58
44
  updatedAt: tsObjToMs(updatedAt),
59
45
  updatedAtNs: tsObjToNsString(updatedAt)
@@ -62,24 +48,12 @@ const SubaccountPolicyInputBaseSchema = v.strictObject({
62
48
  name: v.string(),
63
49
  description: v.optional(v.string(), ""),
64
50
  spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),
65
- perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),
66
51
  spotMarketScope: v.pipe(PolicyMarketScopeEnumSchema, v.transform((v) => PolicyMarketScopeCodec.inputToProto[v])),
67
- perpMarketScope: v.pipe(PolicyMarketScopeEnumSchema, v.transform((v) => PolicyMarketScopeCodec.inputToProto[v])),
68
- actions: v.pipe(v.optional(v.array(PolicyActionEnumSchema), ["read-balances", "read-spot"]), v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action]))),
69
- globalLeverageCap: OptionalNumberToIntOrZeroSchema,
70
- globalExposureCap: OptionalNumberToBigIntOrZeroSchema,
52
+ actions: v.pipe(v.optional(v.array(PolicyActionEnumSchema), []), v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action]))),
71
53
  maxOrderSize: OptionalNumberToBigIntOrZeroSchema,
72
54
  maxOpenOrders: OptionalNumberToIntOrZeroSchema,
73
- maxOpenPositions: OptionalNumberToIntOrZeroSchema,
74
- dailyInternalTransferLimit: OptionalNumberToBigIntOrZeroSchema,
75
- dailyWithdrawLimit: OptionalNumberToBigIntOrZeroSchema,
76
- dailyLossLimit: OptionalNumberToBigIntOrZeroSchema,
77
- intradayDrawdownLimitPct: OptionalNumberToBpsOrZeroSchema,
78
55
  tradingHalted: v.optional(v.boolean(), false),
79
- liquidationOnly: v.optional(v.boolean(), false),
80
56
  policyLocked: v.optional(v.boolean(), false),
81
- internalTransfersOwnOnly: v.optional(v.boolean(), true),
82
- enforceWithdrawWhitelist: v.optional(v.boolean(), false),
83
57
  reviewAt: v.optional(v.nullable(v.pipe(v.number(), v.integer(), v.minValue(0)))),
84
58
  expiresAt: v.optional(v.nullable(v.pipe(v.number(), v.integer(), v.minValue(0)))),
85
59
  subaccountId: optionalSubaccountIdInputSchema()
@@ -92,20 +66,16 @@ function timestampFromMs(value) {
92
66
  });
93
67
  }
94
68
  function createSubaccountPolicyBaseTransform(input) {
95
- const { subaccountId: _subaccountId, reviewAt, expiresAt, globalExposureCap, maxOrderSize, globalLeverageCap, dailyInternalTransferLimit, intradayDrawdownLimitPct, policyLocked, ...rest } = input;
69
+ const { subaccountId: _subaccountId, reviewAt, expiresAt, maxOrderSize, policyLocked, ...rest } = input;
96
70
  return {
97
71
  ...rest,
98
- globalNotionalCap: globalExposureCap,
99
72
  maxOrderNotional: maxOrderSize,
100
- globalPerpLeverageX: globalLeverageCap,
101
- dailyInternalTransferOutLimit: dailyInternalTransferLimit,
102
- intradayDrawdownLimitBps: intradayDrawdownLimitPct,
103
73
  locked: policyLocked,
104
74
  reviewAt: timestampFromMs(reviewAt),
105
75
  expiresAt: timestampFromMs(expiresAt)
106
76
  };
107
77
  }
108
- const CreateSubaccountPolicyInputSchema = v.pipe(SubaccountPolicyInputBaseSchema, v.check(({ actions }) => actions.includes(PolicyActionCodec.inputToProto["read-balances"]) && actions.includes(PolicyActionCodec.inputToProto["read-spot"]), "Subaccount policy actions must include read-balances and read-spot"), v.transform((input) => ({
78
+ const CreateSubaccountPolicyInputSchema = v.pipe(SubaccountPolicyInputBaseSchema, v.transform((input) => ({
109
79
  policy: createSubaccountPolicyBaseTransform(input),
110
80
  subaccountId: input.subaccountId
111
81
  })));
@@ -113,24 +83,12 @@ const SubaccountPolicyPatchSchema = v.strictObject({
113
83
  name: v.optional(v.string()),
114
84
  description: v.optional(v.string()),
115
85
  spotMarkets: v.optional(v.array(SpotMarketRuleSchema)),
116
- perpMarkets: v.optional(v.array(PerpMarketRuleSchema)),
117
86
  spotMarketScope: v.optional(PolicyMarketScopeEnumSchema),
118
- perpMarketScope: v.optional(PolicyMarketScopeEnumSchema),
119
87
  actions: v.optional(v.array(PolicyActionEnumSchema)),
120
- globalLeverageCap: v.optional(v.nullable(v.number())),
121
- globalExposureCap: v.optional(v.nullable(v.number())),
122
88
  maxOrderSize: v.optional(v.nullable(v.number())),
123
89
  maxOpenOrders: v.optional(v.nullable(v.number())),
124
- maxOpenPositions: v.optional(v.nullable(v.number())),
125
- dailyInternalTransferLimit: v.optional(v.nullable(v.number())),
126
- dailyWithdrawLimit: v.optional(v.nullable(v.number())),
127
- dailyLossLimit: v.optional(v.nullable(v.number())),
128
- intradayDrawdownLimitPct: v.optional(v.nullable(v.number())),
129
90
  tradingHalted: v.optional(v.boolean()),
130
- liquidationOnly: v.optional(v.boolean()),
131
91
  policyLocked: v.optional(v.boolean()),
132
- internalTransfersOwnOnly: v.optional(v.boolean()),
133
- enforceWithdrawWhitelist: v.optional(v.boolean()),
134
92
  reviewAt: v.optional(v.nullable(v.pipe(v.number(), v.integer(), v.minValue(0)))),
135
93
  expiresAt: v.optional(v.nullable(v.pipe(v.number(), v.integer(), v.minValue(0))))
136
94
  });
@@ -147,26 +105,14 @@ const SUBACCOUNT_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
147
105
  path: "spot_markets",
148
106
  encode: (spotMarkets) => ({ spotMarkets })
149
107
  },
150
- perpMarkets: {
151
- path: "perp_markets",
152
- encode: (perpMarkets) => ({ perpMarkets })
153
- },
154
108
  spotMarketScope: {
155
109
  path: "spot_market_scope",
156
110
  encode: (scope) => ({ spotMarketScope: PolicyMarketScopeCodec.inputToProto[scope] })
157
111
  },
158
- perpMarketScope: {
159
- path: "perp_market_scope",
160
- encode: (scope) => ({ perpMarketScope: PolicyMarketScopeCodec.inputToProto[scope] })
161
- },
162
112
  actions: {
163
113
  path: "actions",
164
114
  encode: (actions) => ({ actions: actions.map((action) => PolicyActionCodec.inputToProto[action]) })
165
115
  },
166
- globalExposureCap: {
167
- path: "global_notional_cap",
168
- encode: (value) => ({ globalNotionalCap: toBigIntOrZero(value) })
169
- },
170
116
  maxOrderSize: {
171
117
  path: "max_order_notional",
172
118
  encode: (value) => ({ maxOrderNotional: toBigIntOrZero(value) })
@@ -175,46 +121,10 @@ const SUBACCOUNT_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
175
121
  path: "max_open_orders",
176
122
  encode: (value) => ({ maxOpenOrders: toIntOrZero(value) })
177
123
  },
178
- maxOpenPositions: {
179
- path: "max_open_positions",
180
- encode: (value) => ({ maxOpenPositions: toIntOrZero(value) })
181
- },
182
- globalLeverageCap: {
183
- path: "global_perp_leverage_x",
184
- encode: (value) => ({ globalPerpLeverageX: toIntOrZero(value) })
185
- },
186
- dailyInternalTransferLimit: {
187
- path: "daily_internal_transfer_out_limit",
188
- encode: (value) => ({ dailyInternalTransferOutLimit: toBigIntOrZero(value) })
189
- },
190
- dailyWithdrawLimit: {
191
- path: "daily_withdraw_limit",
192
- encode: (value) => ({ dailyWithdrawLimit: toBigIntOrZero(value) })
193
- },
194
- internalTransfersOwnOnly: {
195
- path: "internal_transfers_own_only",
196
- encode: (internalTransfersOwnOnly) => ({ internalTransfersOwnOnly })
197
- },
198
- enforceWithdrawWhitelist: {
199
- path: "enforce_withdraw_whitelist",
200
- encode: (enforceWithdrawWhitelist) => ({ enforceWithdrawWhitelist })
201
- },
202
124
  tradingHalted: {
203
125
  path: "trading_halted",
204
126
  encode: (tradingHalted) => ({ tradingHalted })
205
127
  },
206
- liquidationOnly: {
207
- path: "liquidation_only",
208
- encode: (liquidationOnly) => ({ liquidationOnly })
209
- },
210
- dailyLossLimit: {
211
- path: "daily_loss_limit",
212
- encode: (value) => ({ dailyLossLimit: toBigIntOrZero(value) })
213
- },
214
- intradayDrawdownLimitPct: {
215
- path: "intraday_drawdown_limit_bps",
216
- encode: (value) => ({ intradayDrawdownLimitBps: toBpsOrZero(value) })
217
- },
218
128
  policyLocked: {
219
129
  path: "locked",
220
130
  encode: (locked) => ({ locked })
@@ -234,14 +144,11 @@ const SUBACCOUNT_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
234
144
  }
235
145
  }
236
146
  });
237
- function hasMandatorySubaccountActions(actions) {
238
- return actions === void 0 || actions.includes("read-balances") && actions.includes("read-spot");
239
- }
240
147
  const UpdateSubaccountPolicyInputSchema = v.pipe(v.strictObject({
241
148
  ...SubaccountPolicyPatchSchema.entries,
242
149
  policyId: v.pipe(v.string(), v.transform((v) => idToBigInt(v, "policyId"))),
243
150
  expectedRevision: positiveBigintStringInputSchema("expectedRevision")
244
- }), v.check(({ actions }) => hasMandatorySubaccountActions(actions), "Subaccount policy actions must include read-balances and read-spot"), v.check(({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) => Object.values(patch).some((value) => value !== void 0), "At least one subaccount policy field must be provided"), v.transform(({ policyId, expectedRevision, ...patch }) => {
151
+ }), v.check(({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) => Object.values(patch).some((value) => value !== void 0), "At least one subaccount policy field must be provided"), v.transform(({ policyId, expectedRevision, ...patch }) => {
245
152
  const { patch: policy, updateMask } = buildProtoPatch(patch, SUBACCOUNT_POLICY_PATCH_FIELDS);
246
153
  return {
247
154
  policyId,
@@ -261,28 +168,16 @@ const DEFAULT_SUBACCOUNT_POLICY = {
261
168
  name: "Subaccount Policy",
262
169
  description: "Subaccount Policy description",
263
170
  spotMarkets: [],
264
- perpMarkets: [],
265
171
  spotMarketScope: "all",
266
- perpMarketScope: "all",
267
172
  actions: [
268
173
  "read-balances",
269
- "read-external-withdrawals",
270
174
  "read-internal-transfers",
271
- "read-perp",
175
+ "read-address-book",
272
176
  "read-spot"
273
177
  ],
274
- globalExposureCap: 0,
275
178
  maxOrderSize: 0,
276
179
  maxOpenOrders: 0,
277
- maxOpenPositions: 0,
278
- globalPerpLeverageX: 0,
279
- dailyInternalTransferOutLimit: 0,
280
- dailyWithdrawLimit: 0,
281
- internalTransfersOwnOnly: true,
282
- enforceWithdrawWhitelist: false,
283
180
  tradingHalted: false,
284
- liquidationOnly: false,
285
- dailyLossLimit: 0,
286
181
  createdAt: DEFAULT_SUBACCOUNT_POLICY_UPDATED_AT,
287
182
  updatedAt: DEFAULT_SUBACCOUNT_POLICY_UPDATED_AT,
288
183
  updatedAtNs: (BigInt(DEFAULT_SUBACCOUNT_POLICY_UPDATED_AT) * 1000000n).toString(),
@@ -291,7 +186,6 @@ const DEFAULT_SUBACCOUNT_POLICY = {
291
186
  locked: false,
292
187
  reviewAt: void 0,
293
188
  expiresAt: void 0,
294
- intradayDrawdownLimitPct: 0,
295
189
  revision: "0"
296
190
  };
297
191
  //#endregion