@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.
- package/CHANGELOG.md +16 -0
- package/dist/gen/auth/v1/api_keys_pb.d.ts +1 -1
- package/dist/gen/auth/v1/api_keys_pb.js.map +1 -1
- package/dist/gen/auth/v1/policies_pb.d.ts +47 -337
- package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -1
- package/dist/gen/auth/v1/policies_pb.js +49 -73
- package/dist/gen/auth/v1/policies_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_pb.d.ts +32 -1
- package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_pb.js +25 -1
- package/dist/gen/orders/v1/orders_pb.js.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.d.ts +22 -2
- package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.js +7 -1
- package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
- package/dist/services/orders/order-errors.schemas.d.ts +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +20 -20
- package/dist/services/orders/orders-input.schemas.d.ts +4 -4
- package/dist/services/orders/orders-modify.schemas.d.ts +3 -2
- package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-modify.schemas.js +5 -3
- package/dist/services/orders/orders-modify.schemas.js.map +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +6 -6
- package/dist/services/orders/orders.d.ts +1 -1
- package/dist/services/orders/orders.js +1 -1
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.d.ts +2 -2
- package/dist/services/policies/api-key-policies/api-key-policies.js +2 -2
- package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +15 -140
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +5 -53
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
- package/dist/services/policies/shared.codecs.js +4 -12
- package/dist/services/policies/shared.codecs.js.map +1 -1
- package/dist/services/policies/shared.d.ts +1 -1
- package/dist/services/policies/shared.d.ts.map +1 -1
- package/dist/services/policies/shared.js +3 -11
- package/dist/services/policies/shared.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.js +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +10 -206
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +9 -115
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +5 -5
- package/dist/services/triggers/trigger-input.schemas.d.ts +14 -7
- package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.js +13 -3
- package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.d.ts +15 -15
- package/dist/services/triggers/triggers.codecs.js +6 -3
- package/dist/services/triggers/triggers.codecs.js.map +1 -1
- package/dist/services/triggers/triggers.d.ts +2 -2
- package/dist/services/triggers/triggers.js +2 -2
- package/dist/services/triggers/triggers.js.map +1 -1
- package/dist/services/triggers/triggers.types.d.ts +3 -3
- package/dist/shared/schemas.js +2 -2
- package/dist/shared/schemas.js.map +1 -1
- package/dist/shared/transports.js +6 -1
- package/dist/shared/transports.js.map +1 -1
- package/dist/shared/wire-bounds.js +3 -1
- package/dist/shared/wire-bounds.js.map +1 -1
- package/dist/utils/numbers.js +1 -10
- package/dist/utils/numbers.js.map +1 -1
- 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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;;
|
|
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 {
|
|
2
|
+
import { toBigIntOrZero, toIntOrZero } from "../../../utils/numbers.js";
|
|
3
3
|
import { tsObjToMs, tsObjToNsString } from "../../../utils/time.js";
|
|
4
|
-
import { BigIntStringSchema, OptionalNumberToBigIntOrZeroSchema,
|
|
5
|
-
import {
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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(({
|
|
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-
|
|
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
|