@polyester/sdk 0.8.0 → 0.9.1
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 +22 -0
- package/dist/catalogs/decimal.js +6 -4
- package/dist/catalogs/decimal.js.map +1 -1
- package/dist/catalogs/readers.js +1 -1
- package/dist/gen/auth/v1/policies_pb.d.ts +28 -10
- package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -1
- package/dist/gen/auth/v1/policies_pb.js +37 -31
- package/dist/gen/auth/v1/policies_pb.js.map +1 -1
- package/dist/gen/fees/v1/fees_pb.d.ts +0 -6
- package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -1
- package/dist/gen/fees/v1/fees_pb.js +1 -1
- package/dist/gen/fees/v1/fees_pb.js.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +6 -11
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
- package/dist/gen/orderbook/v1/orderbook_pb.d.ts +3 -3
- package/dist/gen/orderbook/v1/orderbook_pb.js +1 -1
- package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_pb.d.ts +11 -11
- package/dist/gen/orders/v1/orders_pb.js +1 -1
- package/dist/gen/orders/v1/orders_pb.js.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.d.ts +6 -12
- package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.js +1 -1
- package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
- package/dist/services/fees/fees.schemas.d.ts +2 -3
- package/dist/services/fees/fees.schemas.d.ts.map +1 -1
- package/dist/services/fees/fees.schemas.js +3 -4
- package/dist/services/fees/fees.schemas.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
- package/dist/services/market-data/market-data.schemas.js +1 -1
- package/dist/services/market-overview/market-overview.d.ts +1 -1
- package/dist/services/market-overview/market-overview.js +1 -1
- package/dist/services/market-overview/market-overview.js.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts +20 -7
- package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.js +8 -6
- package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
- package/dist/services/orderbook/orderbook.d.ts +3 -4
- package/dist/services/orderbook/orderbook.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.js +13 -10
- package/dist/services/orderbook/orderbook.js.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.d.ts +8 -9
- package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.js +9 -8
- package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +209 -35
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +11 -9
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders-input.schemas.d.ts +50 -50
- package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-input.schemas.js +12 -12
- package/dist/services/orders/orders-input.schemas.js.map +1 -1
- package/dist/services/orders/orders-modify.schemas.d.ts +18 -18
- package/dist/services/orders/orders-modify.schemas.js +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +6 -6
- package/dist/services/orders/orders-risk.schemas.d.ts +12 -12
- package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-risk.schemas.js +8 -7
- package/dist/services/orders/orders-risk.schemas.js.map +1 -1
- package/dist/services/orders/orders.d.ts +4 -4
- package/dist/services/orders/orders.d.ts.map +1 -1
- package/dist/services/orders/orders.js +7 -7
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +15 -15
- package/dist/services/policies/shared.d.ts.map +1 -1
- package/dist/services/policies/shared.js +2 -1
- package/dist/services/policies/shared.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +9 -9
- package/dist/services/shared.js +4 -1
- package/dist/services/shared.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +1 -1
- package/dist/services/trades/trades.schemas.js +1 -1
- package/dist/services/trailing-oneof-inputs.js +1 -1
- package/dist/services/triggers/trigger-child-order.schemas.js +5 -3
- package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.d.ts +36 -32
- package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.js +8 -8
- package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.d.ts +17 -18
- package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.js +3 -3
- package/dist/services/triggers/triggers-output.schemas.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/shared/decimal-surface.d.ts.map +1 -1
- package/dist/shared/decimal-surface.js +2 -2
- package/dist/shared/decimal-surface.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,14 +2,14 @@ import { LimitFokSchema, LimitGtcSchema, LimitIocSchema, MarketIocSchema } from
|
|
|
2
2
|
import { idToBigInt } from "../../utils/base58-id.js";
|
|
3
3
|
import { tsNsToMs } from "../../utils/time.js";
|
|
4
4
|
import { OptionalPublicIdSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampMsSchema, optionalIdInputSchema, optionalUint64DecimalFilterSchema } from "../../shared/schemas.js";
|
|
5
|
+
import { SideSchema, SymbolIdInputSchema } from "../shared.js";
|
|
5
6
|
import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
|
|
6
7
|
import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
|
|
7
|
-
import { SideSchema } from "../shared.js";
|
|
8
8
|
import { FEE_ASSET_VALUES, FeeAssetCodec, OrderSideCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec } from "./order-enums.codecs.js";
|
|
9
9
|
import { ORDER_STATUS_FILTER_VALUES, OrderStatusFilterCodec } from "./orders.codecs.js";
|
|
10
10
|
import { OrderErrorDetailSchema } from "./order-errors.schemas.js";
|
|
11
11
|
import { MarketMaxSlippageSchema, createRiskPolicyInputSchema, parseMarketMaxSlippage } from "./orders-risk.schemas.js";
|
|
12
|
-
import { OptionalClientOrderIdInputSchema } from "./orders-identifiers.schemas.js";
|
|
12
|
+
import { OptionalClientOrderIdInputSchema, OrderRequestIdInputSchema } from "./orders-identifiers.schemas.js";
|
|
13
13
|
import { create } from "@bufbuild/protobuf";
|
|
14
14
|
import * as v from "valibot";
|
|
15
15
|
//#region src/services/orders/orders-input.schemas.ts
|
|
@@ -50,7 +50,7 @@ const OrderHistoryInputSchema = v.pipe(v.strictObject({
|
|
|
50
50
|
const DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));
|
|
51
51
|
function createOrderIntentBaseEntries(scales) {
|
|
52
52
|
return {
|
|
53
|
-
|
|
53
|
+
symbolId: SymbolIdInputSchema,
|
|
54
54
|
side: v.pipe(SideSchema, v.transform((v) => OrderSideCodec.inputToProto[v])),
|
|
55
55
|
execution: createOrderExecutionInputSchema(scales),
|
|
56
56
|
clientOrderId: OptionalClientOrderIdInputSchema,
|
|
@@ -90,10 +90,10 @@ function toOrderIntent(input, scales) {
|
|
|
90
90
|
const { risk, qty, maxQuoteDebit, ...intent } = input;
|
|
91
91
|
const sizing = qty !== void 0 ? {
|
|
92
92
|
case: "baseQtyScaled",
|
|
93
|
-
value: positiveDecimalInputToScaled("qty", qty, scales.baseQty(intent.
|
|
93
|
+
value: positiveDecimalInputToScaled("qty", qty, scales.baseQty(intent.symbolId))
|
|
94
94
|
} : {
|
|
95
95
|
case: "maxQuoteDebitScaled",
|
|
96
|
-
value: positiveDecimalInputToScaled("maxQuoteDebit", maxQuoteDebit, scales.quoteAmount(intent.
|
|
96
|
+
value: positiveDecimalInputToScaled("maxQuoteDebit", maxQuoteDebit, scales.quoteAmount(intent.symbolId))
|
|
97
97
|
};
|
|
98
98
|
return {
|
|
99
99
|
...intent,
|
|
@@ -191,10 +191,10 @@ const CancelOrderResultSchema = v.pipe(v.object({
|
|
|
191
191
|
})));
|
|
192
192
|
const CancelAllOrdersInputSchema = v.pipe(v.strictObject({
|
|
193
193
|
...AccountScopeInputEntries,
|
|
194
|
-
|
|
194
|
+
symbolId: v.optional(SymbolIdInputSchema),
|
|
195
195
|
side: v.pipe(v.optional(SideSchema), v.transform((v) => v ? OrderSideCodec.inputToProto[v] : void 0)),
|
|
196
196
|
dryRun: v.optional(v.boolean(), false),
|
|
197
|
-
requestId: v.optional(
|
|
197
|
+
requestId: v.optional(OrderRequestIdInputSchema)
|
|
198
198
|
}), v.transform(({ account, ...input }) => ({
|
|
199
199
|
...input,
|
|
200
200
|
subaccountId: accountScopeToSubaccountId(account)
|
|
@@ -234,7 +234,7 @@ const GetOrderDetailsInputSchema = v.pipe(v.strictObject({
|
|
|
234
234
|
key
|
|
235
235
|
};
|
|
236
236
|
}));
|
|
237
|
-
function createCreateOrderResultSchema(scales,
|
|
237
|
+
function createCreateOrderResultSchema(scales, symbolId) {
|
|
238
238
|
return v.pipe(v.object({
|
|
239
239
|
orderId: PublicIdSchema,
|
|
240
240
|
clientOrderId: v.string(),
|
|
@@ -249,11 +249,11 @@ function createCreateOrderResultSchema(scales, symbol) {
|
|
|
249
249
|
...result,
|
|
250
250
|
acceptedAt: acceptedAt ?? tsNsToMs(acceptedAtTsNs),
|
|
251
251
|
acceptedAtNs: acceptedAtTsNs.toString(),
|
|
252
|
-
resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(
|
|
253
|
-
...submittedMaxQuoteDebitScaled === void 0 ? {} : { submittedMaxQuoteDebit: scaledToDecimalOutput(submittedMaxQuoteDebitScaled, scales.quoteAmount(
|
|
252
|
+
resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(symbolId)),
|
|
253
|
+
...submittedMaxQuoteDebitScaled === void 0 ? {} : { submittedMaxQuoteDebit: scaledToDecimalOutput(submittedMaxQuoteDebitScaled, scales.quoteAmount(symbolId)) }
|
|
254
254
|
})));
|
|
255
255
|
}
|
|
256
|
-
function createPreviewOrderResultSchema(scales,
|
|
256
|
+
function createPreviewOrderResultSchema(scales, symbolId) {
|
|
257
257
|
return v.pipe(v.object({
|
|
258
258
|
admissible: v.optional(v.boolean()),
|
|
259
259
|
rejection: v.optional(OrderErrorDetailSchema),
|
|
@@ -262,7 +262,7 @@ function createPreviewOrderResultSchema(scales, symbol) {
|
|
|
262
262
|
evaluatedAt: TimestampMsSchema
|
|
263
263
|
}), v.transform(({ resolvedBaseQtyScaled, protectedPriceBoundTicks, ...result }) => ({
|
|
264
264
|
...result,
|
|
265
|
-
...resolvedBaseQtyScaled === void 0 ? {} : { resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(
|
|
265
|
+
...resolvedBaseQtyScaled === void 0 ? {} : { resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(symbolId)) },
|
|
266
266
|
...protectedPriceBoundTicks === void 0 ? {} : { protectedPriceBound: scaledToDecimalOutput(protectedPriceBoundTicks, scales.price()) }
|
|
267
267
|
})));
|
|
268
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-input.schemas.js","names":["ProtoWrite.MarketIocSchema","ProtoWrite.LimitGtcSchema","ProtoWrite.LimitIocSchema","ProtoWrite.LimitFokSchema"],"sources":["../../../src/services/orders/orders-input.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport { SideSchema } from \"../shared.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\nimport {\n OptionalPublicIdSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampMsSchema,\n optionalIdInputSchema,\n optionalUint64DecimalFilterSchema,\n} from \"../../shared/schemas.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport {\n FEE_ASSET_VALUES,\n ORDER_STATUS_FILTER_VALUES,\n OrderSideCodec,\n OrderStatusFilterCodec,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n} from \"./orders.codecs.js\";\nimport {\n MarketMaxSlippageSchema,\n createRiskPolicyInputSchema,\n parseMarketMaxSlippage,\n} from \"./orders-risk.schemas.js\";\nimport { OptionalClientOrderIdInputSchema } from \"./orders-identifiers.schemas.js\";\nimport { OrderErrorDetailSchema } from \"./order-errors.schemas.js\";\n\nconst OrderStatusSchema = v.picklist(ORDER_STATUS_FILTER_VALUES);\nconst FeeAssetSchema = v.picklist(FEE_ASSET_VALUES);\nconst SelfTradePreventionModeSchema = v.picklist(SELF_TRADE_PREVENTION_MODE_VALUES);\n\nconst BaseOrdersFilterInputEntries = {\n ...AccountScopeInputEntries,\n symbolId: v.optional(v.array(v.number())),\n triggerId: optionalIdInputSchema(\"triggerId\"),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n limit: v.optional(v.number()),\n pageToken: v.optional(v.pipe(v.string(), v.trim())),\n};\n\nexport const BaseOrdersFilterInputSchema = v.pipe(\n v.strictObject(BaseOrdersFilterInputEntries),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport const OpenOrdersInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OpenOrdersInput = v.InferInput<typeof OpenOrdersInputSchema>;\n\nexport const OrderHistoryInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n status: v.pipe(\n v.optional(OrderStatusSchema),\n v.transform((v) => (v ? OrderStatusFilterCodec.inputToProto[v] : undefined)),\n ),\n startTsNs: optionalUint64DecimalFilterSchema(\"startTsNs\"),\n endTsNs: optionalUint64DecimalFilterSchema(\"endTsNs\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OrderHistoryInput = v.InferInput<typeof OrderHistoryInputSchema>;\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nfunction createOrderIntentBaseEntries(scales: SdkScales) {\n return {\n symbol: v.pipe(v.string(), v.trim(), v.minLength(1)),\n side: v.pipe(\n SideSchema,\n v.transform((v) => OrderSideCodec.inputToProto[v]),\n ),\n execution: createOrderExecutionInputSchema(scales),\n clientOrderId: OptionalClientOrderIdInputSchema,\n feeAsset: v.pipe(\n v.optional(FeeAssetSchema),\n v.transform((v) => (v ? FeeAssetCodec.inputToProto[v] : undefined)),\n ),\n selfTradePreventionMode: v.pipe(\n v.optional(SelfTradePreventionModeSchema),\n v.transform((v) => (v ? SelfTradePreventionModeCodec.inputToProto[v] : undefined)),\n ),\n risk: createRiskPolicyInputSchema(scales),\n };\n}\n\ntype ParsedOrderIntentInput = v.InferOutput<ReturnType<typeof createOrderIntentInputObjectSchema>>;\n\nfunction createOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = createOrderIntentBaseEntries(scales);\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction createScopedOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = {\n ...AccountScopeInputEntries,\n ...createOrderIntentBaseEntries(scales),\n };\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction toOrderIntent(input: ParsedOrderIntentInput, scales: SdkScales) {\n const { risk, qty, maxQuoteDebit, ...intent } = input;\n const sizing =\n qty !== undefined\n ? ({\n case: \"baseQtyScaled\",\n value: positiveDecimalInputToScaled(\"qty\", qty, scales.baseQty(intent.symbol)),\n } as const)\n : ({\n case: \"maxQuoteDebitScaled\",\n value: positiveDecimalInputToScaled(\n \"maxQuoteDebit\",\n maxQuoteDebit,\n scales.quoteAmount(intent.symbol),\n ),\n } as const);\n return {\n ...intent,\n sizing,\n feeAsset: intent.feeAsset ?? ProtoWrite.FeeAsset.QUOTE,\n attachedRisk: risk,\n };\n}\n\nexport function createOrderIntentInputSchema(scales: SdkScales) {\n return v.pipe(\n createOrderIntentInputObjectSchema(scales),\n v.transform((input) => toOrderIntent(input, scales)),\n );\n}\n\nexport type OrderIntentInput = v.InferInput<ReturnType<typeof createOrderIntentInputSchema>>;\n\nfunction createOrderExecutionInputSchema(scales: SdkScales) {\n const priceToTicks = (fieldName: string, price: string) =>\n positiveDecimalInputToScaled(fieldName, price, scales.price());\n\n return v.variant(\"type\", [\n v.pipe(\n v.strictObject({\n type: v.literal(\"market_ioc\"),\n maxSlippage: v.optional(MarketMaxSlippageSchema),\n clientRefPrice: v.optional(DecimalInputStringSchema),\n }),\n v.transform(({ maxSlippage, clientRefPrice }) => ({\n case: \"marketIoc\" as const,\n value: create(ProtoWrite.MarketIocSchema, {\n maxSlippage: parseMarketMaxSlippage(scales, maxSlippage),\n clientRefPriceTicks:\n clientRefPrice === undefined\n ? 0n\n : priceToTicks(\"execution.clientRefPrice\", clientRefPrice),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_gtc\"),\n price: DecimalInputStringSchema,\n postOnly: v.optional(v.boolean(), false),\n }),\n v.transform(({ price, postOnly }) => ({\n case: \"limitGtc\" as const,\n value: create(ProtoWrite.LimitGtcSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n postOnly,\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_ioc\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitIoc\" as const,\n value: create(ProtoWrite.LimitIocSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_fok\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitFok\" as const,\n value: create(ProtoWrite.LimitFokSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n ]);\n}\n\nexport function createNewOrderInputSchema(scales: SdkScales) {\n return v.pipe(\n createScopedOrderIntentInputObjectSchema(scales),\n v.transform(({ account, ...input }) => {\n return {\n subaccountId: accountScopeToSubaccountId(account),\n order: toOrderIntent(input, scales),\n };\n }),\n );\n}\n\nexport type NewOrderInput = v.InferInput<ReturnType<typeof createNewOrderInputSchema>>;\n\nconst CancelOrderScopeInputEntries = {\n symbolId: v.optional(v.number()),\n ...AccountScopeInputEntries,\n};\n\nexport const CancelOrderInputSchema = v.pipe(\n v.union([\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((v) => idToBigInt(v, \"orderId\")),\n ),\n clientOrderId: v.optional(v.never()),\n }),\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.optional(v.never()),\n clientOrderId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n ]),\n v.transform(({ orderId, clientOrderId, account, ...rest }) => {\n const key =\n orderId !== undefined\n ? ({ case: \"orderId\", value: orderId } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type CancelOrderInput = v.InferInput<typeof CancelOrderInputSchema>;\n\nexport const CancelOrderResultSchema = v.pipe(\n v.object({\n status: v.string(),\n orderId: PublicIdSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type CancelOrderResult = v.InferOutput<typeof CancelOrderResultSchema>;\n\nexport const CancelAllOrdersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n symbol: v.optional(v.pipe(v.string(), v.trim())),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n dryRun: v.optional(v.boolean(), false),\n requestId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(64))),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CancelAllOrdersInput = v.InferInput<typeof CancelAllOrdersInputSchema>;\n\nexport const CancelAllOrdersResponseSchema = v.pipe(\n v.object({\n status: v.string(),\n matchedOrders: v.number(),\n submittedCancels: v.number(),\n failedCancels: v.number(),\n tsNs: v.bigint(),\n }),\n v.transform((o) => ({\n status: o.status,\n matchedOrders: o.matchedOrders,\n submittedCancels: o.submittedCancels,\n failedCancels: o.failedCancels,\n ts: tsNsToMs(o.tsNs),\n })),\n);\n\nexport type CancelAllOrdersResponse = v.InferOutput<typeof CancelAllOrdersResponseSchema>;\n\nexport const GetOrderDetailsInputSchema = v.pipe(\n v.strictObject({\n orderId: v.optional(v.pipe(v.string(), v.trim())),\n clientOrderId: v.optional(v.pipe(v.string(), v.trim())),\n ...AccountScopeInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), true),\n }),\n v.check((input) => {\n const hasOrderId = (input.orderId ?? \"\").length > 0;\n const hasClientOrderId = (input.clientOrderId ?? \"\").length > 0;\n return hasOrderId !== hasClientOrderId;\n }, \"Provide exactly one of orderId or clientOrderId\"),\n v.transform(({ account, orderId, clientOrderId, ...rest }) => {\n const hasOrderId = (orderId ?? \"\").length > 0;\n const key = hasOrderId\n ? ({ case: \"orderId\", value: idToBigInt(orderId ?? \"\", \"orderId\") } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId ?? \"\" } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type GetOrderDetailsInput = v.InferInput<typeof GetOrderDetailsInputSchema>;\n\nexport function createCreateOrderResultSchema(scales: SdkScales, symbol: string) {\n return v.pipe(\n v.object({\n orderId: PublicIdSchema,\n clientOrderId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: v.bigint(),\n resolvedBaseQtyScaled: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n takeProfitTriggerId: OptionalPublicIdSchema,\n stopLossTriggerId: OptionalPublicIdSchema,\n trailingStopTriggerId: OptionalPublicIdSchema,\n }),\n v.transform(\n ({\n acceptedAt,\n acceptedAtTsNs,\n resolvedBaseQtyScaled,\n submittedMaxQuoteDebitScaled,\n ...result\n }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(acceptedAtTsNs),\n acceptedAtNs: acceptedAtTsNs.toString(),\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbol),\n ),\n ...(submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n submittedMaxQuoteDebitScaled,\n scales.quoteAmount(symbol),\n ),\n }),\n }),\n ),\n );\n}\n\nexport type CreateOrderResult = v.InferOutput<ReturnType<typeof createCreateOrderResultSchema>>;\n\nexport function createPreviewOrderResultSchema(scales: SdkScales, symbol: string) {\n return v.pipe(\n v.object({\n admissible: v.optional(v.boolean()),\n rejection: v.optional(OrderErrorDetailSchema),\n resolvedBaseQtyScaled: v.optional(v.bigint()),\n protectedPriceBoundTicks: v.optional(v.bigint()),\n evaluatedAt: TimestampMsSchema,\n }),\n v.transform(({ resolvedBaseQtyScaled, protectedPriceBoundTicks, ...result }) => ({\n ...result,\n ...(resolvedBaseQtyScaled === undefined\n ? {}\n : {\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbol),\n ),\n }),\n ...(protectedPriceBoundTicks === undefined\n ? {}\n : {\n protectedPriceBound: scaledToDecimalOutput(\n protectedPriceBoundTicks,\n scales.price(),\n ),\n }),\n })),\n );\n}\n\nexport type PreviewOrderResult = v.InferOutput<ReturnType<typeof createPreviewOrderResultSchema>>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orders-input.schemas.js","names":["ProtoWrite.MarketIocSchema","ProtoWrite.LimitGtcSchema","ProtoWrite.LimitIocSchema","ProtoWrite.LimitFokSchema"],"sources":["../../../src/services/orders/orders-input.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport { SideSchema, SymbolIdInputSchema } from \"../shared.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\nimport {\n OptionalPublicIdSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampMsSchema,\n optionalIdInputSchema,\n optionalUint64DecimalFilterSchema,\n} from \"../../shared/schemas.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport {\n FEE_ASSET_VALUES,\n ORDER_STATUS_FILTER_VALUES,\n OrderSideCodec,\n OrderStatusFilterCodec,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n} from \"./orders.codecs.js\";\nimport {\n MarketMaxSlippageSchema,\n createRiskPolicyInputSchema,\n parseMarketMaxSlippage,\n} from \"./orders-risk.schemas.js\";\nimport {\n OptionalClientOrderIdInputSchema,\n OrderRequestIdInputSchema,\n} from \"./orders-identifiers.schemas.js\";\nimport { OrderErrorDetailSchema } from \"./order-errors.schemas.js\";\n\nconst OrderStatusSchema = v.picklist(ORDER_STATUS_FILTER_VALUES);\nconst FeeAssetSchema = v.picklist(FEE_ASSET_VALUES);\nconst SelfTradePreventionModeSchema = v.picklist(SELF_TRADE_PREVENTION_MODE_VALUES);\n\nconst BaseOrdersFilterInputEntries = {\n ...AccountScopeInputEntries,\n symbolId: v.optional(v.array(v.number())),\n triggerId: optionalIdInputSchema(\"triggerId\"),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n limit: v.optional(v.number()),\n pageToken: v.optional(v.pipe(v.string(), v.trim())),\n};\n\nexport const BaseOrdersFilterInputSchema = v.pipe(\n v.strictObject(BaseOrdersFilterInputEntries),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport const OpenOrdersInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OpenOrdersInput = v.InferInput<typeof OpenOrdersInputSchema>;\n\nexport const OrderHistoryInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n status: v.pipe(\n v.optional(OrderStatusSchema),\n v.transform((v) => (v ? OrderStatusFilterCodec.inputToProto[v] : undefined)),\n ),\n startTsNs: optionalUint64DecimalFilterSchema(\"startTsNs\"),\n endTsNs: optionalUint64DecimalFilterSchema(\"endTsNs\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OrderHistoryInput = v.InferInput<typeof OrderHistoryInputSchema>;\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nfunction createOrderIntentBaseEntries(scales: SdkScales) {\n return {\n symbolId: SymbolIdInputSchema,\n side: v.pipe(\n SideSchema,\n v.transform((v) => OrderSideCodec.inputToProto[v]),\n ),\n execution: createOrderExecutionInputSchema(scales),\n clientOrderId: OptionalClientOrderIdInputSchema,\n feeAsset: v.pipe(\n v.optional(FeeAssetSchema),\n v.transform((v) => (v ? FeeAssetCodec.inputToProto[v] : undefined)),\n ),\n selfTradePreventionMode: v.pipe(\n v.optional(SelfTradePreventionModeSchema),\n v.transform((v) => (v ? SelfTradePreventionModeCodec.inputToProto[v] : undefined)),\n ),\n risk: createRiskPolicyInputSchema(scales),\n };\n}\n\ntype ParsedOrderIntentInput = v.InferOutput<ReturnType<typeof createOrderIntentInputObjectSchema>>;\n\nfunction createOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = createOrderIntentBaseEntries(scales);\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction createScopedOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = {\n ...AccountScopeInputEntries,\n ...createOrderIntentBaseEntries(scales),\n };\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction toOrderIntent(input: ParsedOrderIntentInput, scales: SdkScales) {\n const { risk, qty, maxQuoteDebit, ...intent } = input;\n const sizing =\n qty !== undefined\n ? ({\n case: \"baseQtyScaled\",\n value: positiveDecimalInputToScaled(\"qty\", qty, scales.baseQty(intent.symbolId)),\n } as const)\n : ({\n case: \"maxQuoteDebitScaled\",\n value: positiveDecimalInputToScaled(\n \"maxQuoteDebit\",\n maxQuoteDebit,\n scales.quoteAmount(intent.symbolId),\n ),\n } as const);\n return {\n ...intent,\n sizing,\n feeAsset: intent.feeAsset ?? ProtoWrite.FeeAsset.QUOTE,\n attachedRisk: risk,\n };\n}\n\nexport function createOrderIntentInputSchema(scales: SdkScales) {\n return v.pipe(\n createOrderIntentInputObjectSchema(scales),\n v.transform((input) => toOrderIntent(input, scales)),\n );\n}\n\nexport type OrderIntentInput = v.InferInput<ReturnType<typeof createOrderIntentInputSchema>>;\n\nfunction createOrderExecutionInputSchema(scales: SdkScales) {\n const priceToTicks = (fieldName: string, price: string) =>\n positiveDecimalInputToScaled(fieldName, price, scales.price());\n\n return v.variant(\"type\", [\n v.pipe(\n v.strictObject({\n type: v.literal(\"market_ioc\"),\n maxSlippage: v.optional(MarketMaxSlippageSchema),\n clientRefPrice: v.optional(DecimalInputStringSchema),\n }),\n v.transform(({ maxSlippage, clientRefPrice }) => ({\n case: \"marketIoc\" as const,\n value: create(ProtoWrite.MarketIocSchema, {\n maxSlippage: parseMarketMaxSlippage(scales, maxSlippage),\n clientRefPriceTicks:\n clientRefPrice === undefined\n ? 0n\n : priceToTicks(\"execution.clientRefPrice\", clientRefPrice),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_gtc\"),\n price: DecimalInputStringSchema,\n postOnly: v.optional(v.boolean(), false),\n }),\n v.transform(({ price, postOnly }) => ({\n case: \"limitGtc\" as const,\n value: create(ProtoWrite.LimitGtcSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n postOnly,\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_ioc\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitIoc\" as const,\n value: create(ProtoWrite.LimitIocSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_fok\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitFok\" as const,\n value: create(ProtoWrite.LimitFokSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n ]);\n}\n\nexport function createNewOrderInputSchema(scales: SdkScales) {\n return v.pipe(\n createScopedOrderIntentInputObjectSchema(scales),\n v.transform(({ account, ...input }) => {\n return {\n subaccountId: accountScopeToSubaccountId(account),\n order: toOrderIntent(input, scales),\n };\n }),\n );\n}\n\nexport type NewOrderInput = v.InferInput<ReturnType<typeof createNewOrderInputSchema>>;\n\nconst CancelOrderScopeInputEntries = {\n symbolId: v.optional(v.number()),\n ...AccountScopeInputEntries,\n};\n\nexport const CancelOrderInputSchema = v.pipe(\n v.union([\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((v) => idToBigInt(v, \"orderId\")),\n ),\n clientOrderId: v.optional(v.never()),\n }),\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.optional(v.never()),\n clientOrderId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n ]),\n v.transform(({ orderId, clientOrderId, account, ...rest }) => {\n const key =\n orderId !== undefined\n ? ({ case: \"orderId\", value: orderId } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type CancelOrderInput = v.InferInput<typeof CancelOrderInputSchema>;\n\nexport const CancelOrderResultSchema = v.pipe(\n v.object({\n status: v.string(),\n orderId: PublicIdSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type CancelOrderResult = v.InferOutput<typeof CancelOrderResultSchema>;\n\nexport const CancelAllOrdersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n symbolId: v.optional(SymbolIdInputSchema),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n dryRun: v.optional(v.boolean(), false),\n requestId: v.optional(OrderRequestIdInputSchema),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CancelAllOrdersInput = v.InferInput<typeof CancelAllOrdersInputSchema>;\n\nexport const CancelAllOrdersResponseSchema = v.pipe(\n v.object({\n status: v.string(),\n matchedOrders: v.number(),\n submittedCancels: v.number(),\n failedCancels: v.number(),\n tsNs: v.bigint(),\n }),\n v.transform((o) => ({\n status: o.status,\n matchedOrders: o.matchedOrders,\n submittedCancels: o.submittedCancels,\n failedCancels: o.failedCancels,\n ts: tsNsToMs(o.tsNs),\n })),\n);\n\nexport type CancelAllOrdersResponse = v.InferOutput<typeof CancelAllOrdersResponseSchema>;\n\nexport const GetOrderDetailsInputSchema = v.pipe(\n v.strictObject({\n orderId: v.optional(v.pipe(v.string(), v.trim())),\n clientOrderId: v.optional(v.pipe(v.string(), v.trim())),\n ...AccountScopeInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), true),\n }),\n v.check((input) => {\n const hasOrderId = (input.orderId ?? \"\").length > 0;\n const hasClientOrderId = (input.clientOrderId ?? \"\").length > 0;\n return hasOrderId !== hasClientOrderId;\n }, \"Provide exactly one of orderId or clientOrderId\"),\n v.transform(({ account, orderId, clientOrderId, ...rest }) => {\n const hasOrderId = (orderId ?? \"\").length > 0;\n const key = hasOrderId\n ? ({ case: \"orderId\", value: idToBigInt(orderId ?? \"\", \"orderId\") } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId ?? \"\" } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type GetOrderDetailsInput = v.InferInput<typeof GetOrderDetailsInputSchema>;\n\nexport function createCreateOrderResultSchema(scales: SdkScales, symbolId: number) {\n return v.pipe(\n v.object({\n orderId: PublicIdSchema,\n clientOrderId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: v.bigint(),\n resolvedBaseQtyScaled: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n takeProfitTriggerId: OptionalPublicIdSchema,\n stopLossTriggerId: OptionalPublicIdSchema,\n trailingStopTriggerId: OptionalPublicIdSchema,\n }),\n v.transform(\n ({\n acceptedAt,\n acceptedAtTsNs,\n resolvedBaseQtyScaled,\n submittedMaxQuoteDebitScaled,\n ...result\n }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(acceptedAtTsNs),\n acceptedAtNs: acceptedAtTsNs.toString(),\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbolId),\n ),\n ...(submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n submittedMaxQuoteDebitScaled,\n scales.quoteAmount(symbolId),\n ),\n }),\n }),\n ),\n );\n}\n\nexport type CreateOrderResult = v.InferOutput<ReturnType<typeof createCreateOrderResultSchema>>;\n\nexport function createPreviewOrderResultSchema(scales: SdkScales, symbolId: number) {\n return v.pipe(\n v.object({\n admissible: v.optional(v.boolean()),\n rejection: v.optional(OrderErrorDetailSchema),\n resolvedBaseQtyScaled: v.optional(v.bigint()),\n protectedPriceBoundTicks: v.optional(v.bigint()),\n evaluatedAt: TimestampMsSchema,\n }),\n v.transform(({ resolvedBaseQtyScaled, protectedPriceBoundTicks, ...result }) => ({\n ...result,\n ...(resolvedBaseQtyScaled === undefined\n ? {}\n : {\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbolId),\n ),\n }),\n ...(protectedPriceBoundTicks === undefined\n ? {}\n : {\n protectedPriceBound: scaledToDecimalOutput(\n protectedPriceBoundTicks,\n scales.price(),\n ),\n }),\n })),\n );\n}\n\nexport type PreviewOrderResult = v.InferOutput<ReturnType<typeof createPreviewOrderResultSchema>>;\n"],"mappings":";;;;;;;;;;;;;;;AA2CA,MAAM,oBAAoB,EAAE,SAAS,0BAA0B;AAC/D,MAAM,iBAAiB,EAAE,SAAS,gBAAgB;AAClD,MAAM,gCAAgC,EAAE,SAAS,iCAAiC;AAElF,MAAM,+BAA+B;CACjC,GAAG;CACH,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,WAAW,sBAAsB,WAAW;CAC5C,MAAM,EAAE,KACJ,EAAE,SAAS,UAAU,GACrB,EAAE,WAAW,MAAO,IAAI,eAAe,aAAa,KAAK,KAAA,CAAU,CACvE;CACA,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;CAC5B,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD;AAE2C,EAAE,KACzC,EAAE,aAAa,4BAA4B,GAC3C,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAEA,MAAa,wBAAwB,EAAE,KACnC,EAAE,aAAa;CACX,GAAG;CAEH,qBAAqB,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI;CACjD,0BAA0B,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AAC3D,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAIA,MAAa,0BAA0B,EAAE,KACrC,EAAE,aAAa;CACX,GAAG;CACH,qBAAqB,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI;CACjD,0BAA0B,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;CACvD,QAAQ,EAAE,KACN,EAAE,SAAS,iBAAiB,GAC5B,EAAE,WAAW,MAAO,IAAI,uBAAuB,aAAa,KAAK,KAAA,CAAU,CAC/E;CACA,WAAW,kCAAkC,WAAW;CACxD,SAAS,kCAAkC,SAAS;AACxD,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAIA,MAAM,2BAA2B,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;AAE5E,SAAS,6BAA6B,QAAmB;CACrD,OAAO;EACH,UAAU;EACV,MAAM,EAAE,KACJ,YACA,EAAE,WAAW,MAAM,eAAe,aAAa,EAAE,CACrD;EACA,WAAW,gCAAgC,MAAM;EACjD,eAAe;EACf,UAAU,EAAE,KACR,EAAE,SAAS,cAAc,GACzB,EAAE,WAAW,MAAO,IAAI,cAAc,aAAa,KAAK,KAAA,CAAU,CACtE;EACA,yBAAyB,EAAE,KACvB,EAAE,SAAS,6BAA6B,GACxC,EAAE,WAAW,MAAO,IAAI,6BAA6B,aAAa,KAAK,KAAA,CAAU,CACrF;EACA,MAAM,4BAA4B,MAAM;CAC5C;AACJ;AAIA,SAAS,mCAAmC,QAAmB;CAC3D,MAAM,cAAc,6BAA6B,MAAM;CACvD,OAAO,EAAE,KACL,EAAE,MAAM,CACJ,EAAE,aAAa;EACX,GAAG;EACH,KAAK;EACL,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC;CACvC,CAAC,GACD,EAAE,aAAa;EACX,GAAG;EACH,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;EACzB,eAAe;CACnB,CAAC,CACL,CAAC,GACD,EAAE,OACG,UACG,MAAM,kBAAkB,KAAA,KACvB,MAAM,SAAA,MACF,MAAM,UAAU,SAAS,eAAe,MAAM,UAAU,SAAS,aAC1E,6EACJ,GACA,EAAE,OACG,UACG,MAAM,SAAA,KACN,MAAM,aAAa,KAAA,KACnB,MAAM,aAAA,GACV,0CACJ,CACJ;AACJ;AAEA,SAAS,yCAAyC,QAAmB;CACjE,MAAM,cAAc;EAChB,GAAG;EACH,GAAG,6BAA6B,MAAM;CAC1C;CACA,OAAO,EAAE,KACL,EAAE,MAAM,CACJ,EAAE,aAAa;EACX,GAAG;EACH,KAAK;EACL,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC;CACvC,CAAC,GACD,EAAE,aAAa;EACX,GAAG;EACH,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;EACzB,eAAe;CACnB,CAAC,CACL,CAAC,GACD,EAAE,OACG,UACG,MAAM,kBAAkB,KAAA,KACvB,MAAM,SAAA,MACF,MAAM,UAAU,SAAS,eAAe,MAAM,UAAU,SAAS,aAC1E,6EACJ,GACA,EAAE,OACG,UACG,MAAM,SAAA,KACN,MAAM,aAAa,KAAA,KACnB,MAAM,aAAA,GACV,0CACJ,CACJ;AACJ;AAEA,SAAS,cAAc,OAA+B,QAAmB;CACrE,MAAM,EAAE,MAAM,KAAK,eAAe,GAAG,WAAW;CAChD,MAAM,SACF,QAAQ,KAAA,IACD;EACG,MAAM;EACN,OAAO,6BAA6B,OAAO,KAAK,OAAO,QAAQ,OAAO,QAAQ,CAAC;CACnF,IACC;EACG,MAAM;EACN,OAAO,6BACH,iBACA,eACA,OAAO,YAAY,OAAO,QAAQ,CACtC;CACJ;CACV,OAAO;EACH,GAAG;EACH;EACA,UAAU,OAAO,YAAA;EACjB,cAAc;CAClB;AACJ;AAEA,SAAgB,6BAA6B,QAAmB;CAC5D,OAAO,EAAE,KACL,mCAAmC,MAAM,GACzC,EAAE,WAAW,UAAU,cAAc,OAAO,MAAM,CAAC,CACvD;AACJ;AAIA,SAAS,gCAAgC,QAAmB;CACxD,MAAM,gBAAgB,WAAmB,UACrC,6BAA6B,WAAW,OAAO,OAAO,MAAM,CAAC;CAEjE,OAAO,EAAE,QAAQ,QAAQ;EACrB,EAAE,KACE,EAAE,aAAa;GACX,MAAM,EAAE,QAAQ,YAAY;GAC5B,aAAa,EAAE,SAAS,uBAAuB;GAC/C,gBAAgB,EAAE,SAAS,wBAAwB;EACvD,CAAC,GACD,EAAE,WAAW,EAAE,aAAa,sBAAsB;GAC9C,MAAM;GACN,OAAO,OAAOA,iBAA4B;IACtC,aAAa,uBAAuB,QAAQ,WAAW;IACvD,qBACI,mBAAmB,KAAA,IACb,KACA,aAAa,4BAA4B,cAAc;GACrE,CAAC;EACL,EAAE,CACN;EACA,EAAE,KACE,EAAE,aAAa;GACX,MAAM,EAAE,QAAQ,WAAW;GAC3B,OAAO;GACP,UAAU,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;EAC3C,CAAC,GACD,EAAE,WAAW,EAAE,OAAO,gBAAgB;GAClC,MAAM;GACN,OAAO,OAAOC,gBAA2B;IACrC,YAAY,aAAa,mBAAmB,KAAK;IACjD;GACJ,CAAC;EACL,EAAE,CACN;EACA,EAAE,KACE,EAAE,aAAa;GACX,MAAM,EAAE,QAAQ,WAAW;GAC3B,OAAO;EACX,CAAC,GACD,EAAE,WAAW,EAAE,aAAa;GACxB,MAAM;GACN,OAAO,OAAOC,gBAA2B,EACrC,YAAY,aAAa,mBAAmB,KAAK,EACrD,CAAC;EACL,EAAE,CACN;EACA,EAAE,KACE,EAAE,aAAa;GACX,MAAM,EAAE,QAAQ,WAAW;GAC3B,OAAO;EACX,CAAC,GACD,EAAE,WAAW,EAAE,aAAa;GACxB,MAAM;GACN,OAAO,OAAOC,gBAA2B,EACrC,YAAY,aAAa,mBAAmB,KAAK,EACrD,CAAC;EACL,EAAE,CACN;CACJ,CAAC;AACL;AAEA,SAAgB,0BAA0B,QAAmB;CACzD,OAAO,EAAE,KACL,yCAAyC,MAAM,GAC/C,EAAE,WAAW,EAAE,SAAS,GAAG,YAAY;EACnC,OAAO;GACH,cAAc,2BAA2B,OAAO;GAChD,OAAO,cAAc,OAAO,MAAM;EACtC;CACJ,CAAC,CACL;AACJ;AAIA,MAAM,+BAA+B;CACjC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;CAC/B,GAAG;AACP;AAEA,MAAa,yBAAyB,EAAE,KACpC,EAAE,MAAM,CACJ,EAAE,aAAa;CACX,GAAG;CACH,SAAS,EAAE,KACP,EAAE,OAAO,GACT,EAAE,KAAK,GACP,EAAE,UAAU,CAAC,GACb,EAAE,WAAW,MAAM,WAAW,GAAG,SAAS,CAAC,CAC/C;CACA,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC;AACvC,CAAC,GACD,EAAE,aAAa;CACX,GAAG;CACH,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;CAC7B,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC,CACL,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,eAAe,SAAS,GAAG,WAAW;CAC1D,MAAM,MACF,YAAY,KAAA,IACL;EAAE,MAAM;EAAW,OAAO;CAAQ,IAClC;EAAE,MAAM;EAAiB,OAAO;CAAc;CACzD,OAAO;EACH,GAAG;EACH,cAAc,2BAA2B,OAAO;EAChD;CACJ;AACJ,CAAC,CACL;AAIA,MAAa,0BAA0B,EAAE,KACrC,EAAE,OAAO;CACL,QAAQ,EAAE,OAAO;CACjB,SAAS;CACT,MAAM,EAAE,OAAO;AACnB,CAAC,GACD,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc;CAClC,GAAG;CACH,IAAI,SAAS,IAAI;CACjB,MAAM,KAAK,SAAS;AACxB,EAAE,CACN;AAIA,MAAa,6BAA6B,EAAE,KACxC,EAAE,aAAa;CACX,GAAG;CACH,UAAU,EAAE,SAAS,mBAAmB;CACxC,MAAM,EAAE,KACJ,EAAE,SAAS,UAAU,GACrB,EAAE,WAAW,MAAO,IAAI,eAAe,aAAa,KAAK,KAAA,CAAU,CACvE;CACA,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;CACrC,WAAW,EAAE,SAAS,yBAAyB;AACnD,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAIA,MAAa,gCAAgC,EAAE,KAC3C,EAAE,OAAO;CACL,QAAQ,EAAE,OAAO;CACjB,eAAe,EAAE,OAAO;CACxB,kBAAkB,EAAE,OAAO;CAC3B,eAAe,EAAE,OAAO;CACxB,MAAM,EAAE,OAAO;AACnB,CAAC,GACD,EAAE,WAAW,OAAO;CAChB,QAAQ,EAAE;CACV,eAAe,EAAE;CACjB,kBAAkB,EAAE;CACpB,eAAe,EAAE;CACjB,IAAI,SAAS,EAAE,IAAI;AACvB,EAAE,CACN;AAIA,MAAa,6BAA6B,EAAE,KACxC,EAAE,aAAa;CACX,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;CAChD,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;CACtD,GAAG;CACH,qBAAqB,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI;CACjD,0BAA0B,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI;AAC1D,CAAC,GACD,EAAE,OAAO,UAAU;CAGf,QAFoB,MAAM,WAAW,GAAA,CAAI,SAAS,OACxB,MAAM,iBAAiB,GAAA,CAAI,SAAS;AAElE,GAAG,iDAAiD,GACpD,EAAE,WAAW,EAAE,SAAS,SAAS,eAAe,GAAG,WAAW;CAE1D,MAAM,OADc,WAAW,GAAA,CAAI,SAAS,IAErC;EAAE,MAAM;EAAW,OAAO,WAAW,WAAW,IAAI,SAAS;CAAE,IAC/D;EAAE,MAAM;EAAiB,OAAO,iBAAiB;CAAG;CAC3D,OAAO;EACH,GAAG;EACH,cAAc,2BAA2B,OAAO;EAChD;CACJ;AACJ,CAAC,CACL;AAIA,SAAgB,8BAA8B,QAAmB,UAAkB;CAC/E,OAAO,EAAE,KACL,EAAE,OAAO;EACL,SAAS;EACT,eAAe,EAAE,OAAO;EACxB,YAAY;EACZ,gBAAgB,EAAE,OAAO;EACzB,uBAAuB,EAAE,OAAO;EAChC,8BAA8B,EAAE,SAAS,EAAE,OAAO,CAAC;EACnD,qBAAqB;EACrB,mBAAmB;EACnB,uBAAuB;CAC3B,CAAC,GACD,EAAE,WACG,EACG,YACA,gBACA,uBACA,8BACA,GAAG,cACA;EACH,GAAG;EACH,YAAY,cAAc,SAAS,cAAc;EACjD,cAAc,eAAe,SAAS;EACtC,iBAAiB,sBACb,uBACA,OAAO,QAAQ,QAAQ,CAC3B;EACA,GAAI,iCAAiC,KAAA,IAC/B,CAAC,IACD,EACI,wBAAwB,sBACpB,8BACA,OAAO,YAAY,QAAQ,CAC/B,EACJ;CACV,EACJ,CACJ;AACJ;AAIA,SAAgB,+BAA+B,QAAmB,UAAkB;CAChF,OAAO,EAAE,KACL,EAAE,OAAO;EACL,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;EAClC,WAAW,EAAE,SAAS,sBAAsB;EAC5C,uBAAuB,EAAE,SAAS,EAAE,OAAO,CAAC;EAC5C,0BAA0B,EAAE,SAAS,EAAE,OAAO,CAAC;EAC/C,aAAa;CACjB,CAAC,GACD,EAAE,WAAW,EAAE,uBAAuB,0BAA0B,GAAG,cAAc;EAC7E,GAAG;EACH,GAAI,0BAA0B,KAAA,IACxB,CAAC,IACD,EACI,iBAAiB,sBACb,uBACA,OAAO,QAAQ,QAAQ,CAC3B,EACJ;EACN,GAAI,6BAA6B,KAAA,IAC3B,CAAC,IACD,EACI,qBAAqB,sBACjB,0BACA,OAAO,MAAM,CACjB,EACJ;CACV,EAAE,CACN;AACJ"}
|
|
@@ -221,7 +221,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
221
221
|
}>]>;
|
|
222
222
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
223
223
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
224
|
-
readonly oco: v.OptionalSchema<v.
|
|
224
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
225
225
|
}, undefined>, v.StrictObjectSchema<{
|
|
226
226
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
227
227
|
readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
|
|
@@ -253,7 +253,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
253
253
|
};
|
|
254
254
|
}>]>;
|
|
255
255
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
256
|
-
readonly oco: v.OptionalSchema<v.
|
|
256
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
257
257
|
}, undefined>, v.StrictObjectSchema<{
|
|
258
258
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
259
259
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
@@ -320,7 +320,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
320
320
|
};
|
|
321
321
|
activationPriceTicks: bigint;
|
|
322
322
|
}>]>;
|
|
323
|
-
readonly oco: v.OptionalSchema<v.
|
|
323
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
324
324
|
}, undefined>], undefined>, v.TransformAction<{
|
|
325
325
|
takeProfit: {
|
|
326
326
|
triggerPriceTicks: bigint;
|
|
@@ -401,7 +401,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
401
401
|
};
|
|
402
402
|
stopLoss?: undefined;
|
|
403
403
|
trailingStop?: undefined;
|
|
404
|
-
oco?:
|
|
404
|
+
oco?: false | undefined;
|
|
405
405
|
} | {
|
|
406
406
|
takeProfit?: undefined;
|
|
407
407
|
stopLoss: {
|
|
@@ -417,7 +417,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
417
417
|
};
|
|
418
418
|
};
|
|
419
419
|
trailingStop?: undefined;
|
|
420
|
-
oco?:
|
|
420
|
+
oco?: false | undefined;
|
|
421
421
|
} | {
|
|
422
422
|
takeProfit?: undefined;
|
|
423
423
|
stopLoss?: undefined;
|
|
@@ -444,7 +444,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
444
444
|
};
|
|
445
445
|
activationPriceTicks: bigint;
|
|
446
446
|
};
|
|
447
|
-
oco?:
|
|
447
|
+
oco?: false | undefined;
|
|
448
448
|
}, {
|
|
449
449
|
takeProfit: {
|
|
450
450
|
triggerPriceTicks: bigint;
|
|
@@ -698,7 +698,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
698
698
|
}>]>;
|
|
699
699
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
700
700
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
701
|
-
readonly oco: v.OptionalSchema<v.
|
|
701
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
702
702
|
}, undefined>, v.StrictObjectSchema<{
|
|
703
703
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
704
704
|
readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
|
|
@@ -730,7 +730,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
730
730
|
};
|
|
731
731
|
}>]>;
|
|
732
732
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
733
|
-
readonly oco: v.OptionalSchema<v.
|
|
733
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
734
734
|
}, undefined>, v.StrictObjectSchema<{
|
|
735
735
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
736
736
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
@@ -797,7 +797,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
797
797
|
};
|
|
798
798
|
activationPriceTicks: bigint;
|
|
799
799
|
}>]>;
|
|
800
|
-
readonly oco: v.OptionalSchema<v.
|
|
800
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
801
801
|
}, undefined>], undefined>, v.TransformAction<{
|
|
802
802
|
takeProfit: {
|
|
803
803
|
triggerPriceTicks: bigint;
|
|
@@ -878,7 +878,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
878
878
|
};
|
|
879
879
|
stopLoss?: undefined;
|
|
880
880
|
trailingStop?: undefined;
|
|
881
|
-
oco?:
|
|
881
|
+
oco?: false | undefined;
|
|
882
882
|
} | {
|
|
883
883
|
takeProfit?: undefined;
|
|
884
884
|
stopLoss: {
|
|
@@ -894,7 +894,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
894
894
|
};
|
|
895
895
|
};
|
|
896
896
|
trailingStop?: undefined;
|
|
897
|
-
oco?:
|
|
897
|
+
oco?: false | undefined;
|
|
898
898
|
} | {
|
|
899
899
|
takeProfit?: undefined;
|
|
900
900
|
stopLoss?: undefined;
|
|
@@ -921,7 +921,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
921
921
|
};
|
|
922
922
|
activationPriceTicks: bigint;
|
|
923
923
|
};
|
|
924
|
-
oco?:
|
|
924
|
+
oco?: false | undefined;
|
|
925
925
|
}, {
|
|
926
926
|
takeProfit: {
|
|
927
927
|
triggerPriceTicks: bigint;
|
|
@@ -1175,7 +1175,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
1175
1175
|
}>]>;
|
|
1176
1176
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
1177
1177
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
1178
|
-
readonly oco: v.OptionalSchema<v.
|
|
1178
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
1179
1179
|
}, undefined>, v.StrictObjectSchema<{
|
|
1180
1180
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
1181
1181
|
readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
|
|
@@ -1207,7 +1207,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
1207
1207
|
};
|
|
1208
1208
|
}>]>;
|
|
1209
1209
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
1210
|
-
readonly oco: v.OptionalSchema<v.
|
|
1210
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
1211
1211
|
}, undefined>, v.StrictObjectSchema<{
|
|
1212
1212
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
1213
1213
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
@@ -1274,7 +1274,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
1274
1274
|
};
|
|
1275
1275
|
activationPriceTicks: bigint;
|
|
1276
1276
|
}>]>;
|
|
1277
|
-
readonly oco: v.OptionalSchema<v.
|
|
1277
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
1278
1278
|
}, undefined>], undefined>, v.TransformAction<{
|
|
1279
1279
|
takeProfit: {
|
|
1280
1280
|
triggerPriceTicks: bigint;
|
|
@@ -1355,7 +1355,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
1355
1355
|
};
|
|
1356
1356
|
stopLoss?: undefined;
|
|
1357
1357
|
trailingStop?: undefined;
|
|
1358
|
-
oco?:
|
|
1358
|
+
oco?: false | undefined;
|
|
1359
1359
|
} | {
|
|
1360
1360
|
takeProfit?: undefined;
|
|
1361
1361
|
stopLoss: {
|
|
@@ -1371,7 +1371,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
1371
1371
|
};
|
|
1372
1372
|
};
|
|
1373
1373
|
trailingStop?: undefined;
|
|
1374
|
-
oco?:
|
|
1374
|
+
oco?: false | undefined;
|
|
1375
1375
|
} | {
|
|
1376
1376
|
takeProfit?: undefined;
|
|
1377
1377
|
stopLoss?: undefined;
|
|
@@ -1398,7 +1398,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
|
|
|
1398
1398
|
};
|
|
1399
1399
|
activationPriceTicks: bigint;
|
|
1400
1400
|
};
|
|
1401
|
-
oco?:
|
|
1401
|
+
oco?: false | undefined;
|
|
1402
1402
|
}, {
|
|
1403
1403
|
takeProfit: {
|
|
1404
1404
|
triggerPriceTicks: bigint;
|
|
@@ -3,8 +3,8 @@ import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
|
|
|
3
3
|
import { idToBigInt } from "../../utils/base58-id.js";
|
|
4
4
|
import { tsNsToMs } from "../../utils/time.js";
|
|
5
5
|
import { OptionalPublicIdSchema, PublicIdSchema } from "../../shared/schemas.js";
|
|
6
|
-
import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
|
|
7
6
|
import { PROTOBUF_UINT32_MAX } from "../../shared/wire-bounds.js";
|
|
7
|
+
import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
|
|
8
8
|
import { positiveDecimalInputToScaled } from "../../shared/decimal-surface.js";
|
|
9
9
|
import { MODIFY_BEHAVIOR_VALUES, ModifyActionCodec, ModifyBehaviorCodec } from "./orders.codecs.js";
|
|
10
10
|
import { createRequiredRiskPolicyInputSchema } from "./orders-risk.schemas.js";
|
|
@@ -74,7 +74,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
|
|
|
74
74
|
}, undefined>, undefined>;
|
|
75
75
|
readonly origin: v.OptionalSchema<v.ObjectSchema<{
|
|
76
76
|
readonly scope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderOriginScope, undefined>, v.TransformAction<OrderOriginScope, "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system">]>;
|
|
77
|
-
readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "
|
|
77
|
+
readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop">]>;
|
|
78
78
|
readonly triggerId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
|
|
79
79
|
readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
|
|
80
80
|
readonly childSeq: v.NumberSchema<undefined>;
|
|
@@ -155,7 +155,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
|
|
|
155
155
|
} | undefined;
|
|
156
156
|
origin?: {
|
|
157
157
|
scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
|
|
158
|
-
triggerType: "unspecified" | "
|
|
158
|
+
triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
|
|
159
159
|
triggerId?: string | undefined;
|
|
160
160
|
parentOrderId?: string | undefined;
|
|
161
161
|
childSeq: number;
|
|
@@ -174,7 +174,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
|
|
|
174
174
|
marketClientRefPrice?: string | undefined;
|
|
175
175
|
origin?: {
|
|
176
176
|
scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
|
|
177
|
-
triggerType: "unspecified" | "
|
|
177
|
+
triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
|
|
178
178
|
triggerId?: string | undefined;
|
|
179
179
|
parentOrderId?: string | undefined;
|
|
180
180
|
childSeq: number;
|
|
@@ -348,7 +348,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
|
|
|
348
348
|
}, undefined>, undefined>;
|
|
349
349
|
readonly origin: v.OptionalSchema<v.ObjectSchema<{
|
|
350
350
|
readonly scope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderOriginScope, undefined>, v.TransformAction<OrderOriginScope, "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system">]>;
|
|
351
|
-
readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "
|
|
351
|
+
readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop">]>;
|
|
352
352
|
readonly triggerId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
|
|
353
353
|
readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
|
|
354
354
|
readonly childSeq: v.NumberSchema<undefined>;
|
|
@@ -429,7 +429,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
|
|
|
429
429
|
} | undefined;
|
|
430
430
|
origin?: {
|
|
431
431
|
scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
|
|
432
|
-
triggerType: "unspecified" | "
|
|
432
|
+
triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
|
|
433
433
|
triggerId?: string | undefined;
|
|
434
434
|
parentOrderId?: string | undefined;
|
|
435
435
|
childSeq: number;
|
|
@@ -448,7 +448,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
|
|
|
448
448
|
marketClientRefPrice?: string | undefined;
|
|
449
449
|
origin?: {
|
|
450
450
|
scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
|
|
451
|
-
triggerType: "unspecified" | "
|
|
451
|
+
triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
|
|
452
452
|
triggerId?: string | undefined;
|
|
453
453
|
parentOrderId?: string | undefined;
|
|
454
454
|
childSeq: number;
|
|
@@ -277,7 +277,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
|
|
|
277
277
|
}>]>;
|
|
278
278
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
279
279
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
280
|
-
readonly oco: v.OptionalSchema<v.
|
|
280
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
281
281
|
}, undefined>, v.StrictObjectSchema<{
|
|
282
282
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
283
283
|
readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
|
|
@@ -309,7 +309,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
|
|
|
309
309
|
};
|
|
310
310
|
}>]>;
|
|
311
311
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
312
|
-
readonly oco: v.OptionalSchema<v.
|
|
312
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
313
313
|
}, undefined>, v.StrictObjectSchema<{
|
|
314
314
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
315
315
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
@@ -376,7 +376,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
|
|
|
376
376
|
};
|
|
377
377
|
activationPriceTicks: bigint;
|
|
378
378
|
}>]>;
|
|
379
|
-
readonly oco: v.OptionalSchema<v.
|
|
379
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
380
380
|
}, undefined>], undefined>, undefined>, v.TransformAction<{
|
|
381
381
|
takeProfit: {
|
|
382
382
|
triggerPriceTicks: bigint;
|
|
@@ -457,7 +457,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
|
|
|
457
457
|
};
|
|
458
458
|
stopLoss?: undefined;
|
|
459
459
|
trailingStop?: undefined;
|
|
460
|
-
oco?:
|
|
460
|
+
oco?: false | undefined;
|
|
461
461
|
} | {
|
|
462
462
|
takeProfit?: undefined;
|
|
463
463
|
stopLoss: {
|
|
@@ -473,7 +473,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
|
|
|
473
473
|
};
|
|
474
474
|
};
|
|
475
475
|
trailingStop?: undefined;
|
|
476
|
-
oco?:
|
|
476
|
+
oco?: false | undefined;
|
|
477
477
|
} | {
|
|
478
478
|
takeProfit?: undefined;
|
|
479
479
|
stopLoss?: undefined;
|
|
@@ -500,7 +500,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
|
|
|
500
500
|
};
|
|
501
501
|
activationPriceTicks: bigint;
|
|
502
502
|
};
|
|
503
|
-
oco?:
|
|
503
|
+
oco?: false | undefined;
|
|
504
504
|
} | undefined, {
|
|
505
505
|
takeProfit: {
|
|
506
506
|
triggerPriceTicks: bigint;
|
|
@@ -743,7 +743,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
|
|
|
743
743
|
}>]>;
|
|
744
744
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
745
745
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
746
|
-
readonly oco: v.OptionalSchema<v.
|
|
746
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
747
747
|
}, undefined>, v.StrictObjectSchema<{
|
|
748
748
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
749
749
|
readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
|
|
@@ -775,7 +775,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
|
|
|
775
775
|
};
|
|
776
776
|
}>]>;
|
|
777
777
|
readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
778
|
-
readonly oco: v.OptionalSchema<v.
|
|
778
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
779
779
|
}, undefined>, v.StrictObjectSchema<{
|
|
780
780
|
readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
781
781
|
readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
|
|
@@ -842,7 +842,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
|
|
|
842
842
|
};
|
|
843
843
|
activationPriceTicks: bigint;
|
|
844
844
|
}>]>;
|
|
845
|
-
readonly oco: v.OptionalSchema<v.
|
|
845
|
+
readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
|
|
846
846
|
}, undefined>], undefined>, v.TransformAction<{
|
|
847
847
|
takeProfit: {
|
|
848
848
|
triggerPriceTicks: bigint;
|
|
@@ -923,7 +923,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
|
|
|
923
923
|
};
|
|
924
924
|
stopLoss?: undefined;
|
|
925
925
|
trailingStop?: undefined;
|
|
926
|
-
oco?:
|
|
926
|
+
oco?: false | undefined;
|
|
927
927
|
} | {
|
|
928
928
|
takeProfit?: undefined;
|
|
929
929
|
stopLoss: {
|
|
@@ -939,7 +939,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
|
|
|
939
939
|
};
|
|
940
940
|
};
|
|
941
941
|
trailingStop?: undefined;
|
|
942
|
-
oco?:
|
|
942
|
+
oco?: false | undefined;
|
|
943
943
|
} | {
|
|
944
944
|
takeProfit?: undefined;
|
|
945
945
|
stopLoss?: undefined;
|
|
@@ -966,7 +966,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
|
|
|
966
966
|
};
|
|
967
967
|
activationPriceTicks: bigint;
|
|
968
968
|
};
|
|
969
|
-
oco?:
|
|
969
|
+
oco?: false | undefined;
|
|
970
970
|
}, {
|
|
971
971
|
takeProfit: {
|
|
972
972
|
triggerPriceTicks: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-risk.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"mappings":";;;;iBAkBS,2BAA2B,QAAQ,WAAW,yCAAsC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"orders-risk.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"mappings":";;;;iBAkBS,2BAA2B,QAAQ,WAAW,yCAAsC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkGpF,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgFxC,4BAA4B,QAAQ,YAAS,EAAA,yBAAA,EAAA,eAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7C,oCAAoC,QAAQ,YAAS,EAAA,yBAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOzD,kBAAkB,EAAE,WAAW,kBAAkB;KACjD,gBAAgB,EAAE,WAAW,kBAAkB;KAC/C,oBAAoB,EAAE,WAAW,kBAAkB;KACnD,kBAAkB,EAAE,WAAW,kBAAkB;KAOjD;EACJ;EAAkB;;EAClB;EAAa"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RiskLimitGtcSchema, RiskMarketIocSchema } from "../../gen/orders/v1/orders_pb.js";
|
|
2
|
-
import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
|
|
3
2
|
import { BpsStringOrNumberInputSchema, NoneInputSchema, PriceDistanceInputSchema, PriceSlippageInputSchema } from "../shared.js";
|
|
3
|
+
import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
|
|
4
4
|
import { parseSlippageInput, parseTrailingDistanceInput } from "../trailing-oneof-inputs.js";
|
|
5
5
|
import { create } from "@bufbuild/protobuf";
|
|
6
6
|
import * as v from "valibot";
|
|
@@ -54,7 +54,8 @@ function parseMaxSlippage(scales, slippage) {
|
|
|
54
54
|
return parseSlippageInput(scales, slippage, {
|
|
55
55
|
fieldName: "trailingStop.maxSlippage",
|
|
56
56
|
ticksCase: "maxSlippageTicks",
|
|
57
|
-
bpsCase: "maxSlippageBps"
|
|
57
|
+
bpsCase: "maxSlippageBps",
|
|
58
|
+
maxBps: MAX_BPS
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
function parseMarketMaxSlippage(scales, slippage) {
|
|
@@ -80,6 +81,7 @@ function createRiskPolicyObjectInputSchema(scales) {
|
|
|
80
81
|
const TakeProfitInputSchema = attachedTriggerInputSchema(scales, "takeProfit");
|
|
81
82
|
const StopLossInputSchema = attachedTriggerInputSchema(scales, "stopLoss");
|
|
82
83
|
const TrailingStopInputSchema = createTrailingStopInputSchema(scales);
|
|
84
|
+
const InactiveOcoInputSchema = v.optional(v.literal(false, "oco requires takeProfit and exactly one stop leg"));
|
|
83
85
|
return v.union([
|
|
84
86
|
v.strictObject({
|
|
85
87
|
takeProfit: TakeProfitInputSchema,
|
|
@@ -97,19 +99,19 @@ function createRiskPolicyObjectInputSchema(scales) {
|
|
|
97
99
|
takeProfit: TakeProfitInputSchema,
|
|
98
100
|
stopLoss: v.optional(v.never()),
|
|
99
101
|
trailingStop: v.optional(v.never()),
|
|
100
|
-
oco:
|
|
102
|
+
oco: InactiveOcoInputSchema
|
|
101
103
|
}),
|
|
102
104
|
v.strictObject({
|
|
103
105
|
takeProfit: v.optional(v.never()),
|
|
104
106
|
stopLoss: StopLossInputSchema,
|
|
105
107
|
trailingStop: v.optional(v.never()),
|
|
106
|
-
oco:
|
|
108
|
+
oco: InactiveOcoInputSchema
|
|
107
109
|
}),
|
|
108
110
|
v.strictObject({
|
|
109
111
|
takeProfit: v.optional(v.never()),
|
|
110
112
|
stopLoss: v.optional(v.never()),
|
|
111
113
|
trailingStop: TrailingStopInputSchema,
|
|
112
|
-
oco:
|
|
114
|
+
oco: InactiveOcoInputSchema
|
|
113
115
|
})
|
|
114
116
|
]);
|
|
115
117
|
}
|
|
@@ -124,11 +126,10 @@ function transformRiskPolicyInput(input) {
|
|
|
124
126
|
case: void 0,
|
|
125
127
|
value: void 0
|
|
126
128
|
};
|
|
127
|
-
const oco = input.oco === true && !!input.takeProfit && stopLeg.case !== void 0;
|
|
128
129
|
return {
|
|
129
130
|
takeProfit: input.takeProfit,
|
|
130
131
|
stopLeg,
|
|
131
|
-
oco
|
|
132
|
+
oco: input.oco ?? false
|
|
132
133
|
};
|
|
133
134
|
}
|
|
134
135
|
function createRiskPolicyInputSchema(scales) {
|