From 0eec75fb80863fb30ddc8e6f97856676894224f7 Mon Sep 17 00:00:00 2001 From: Aleksandr Kraiz Date: Wed, 17 May 2023 00:02:42 +0400 Subject: [PATCH] selfBrokerSchema --- src/services/Aggregator/schemas/orderSchema.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/services/Aggregator/schemas/orderSchema.ts b/src/services/Aggregator/schemas/orderSchema.ts index 35e1982..4e4f19c 100644 --- a/src/services/Aggregator/schemas/orderSchema.ts +++ b/src/services/Aggregator/schemas/orderSchema.ts @@ -63,6 +63,12 @@ const baseOrderSchema = z.object({ const selfBrokers = exchanges.map((exchange) => `SELF_BROKER_${exchange}` as const); type SelfBroker = typeof selfBrokers[number]; const isSelfBroker = (value: string): value is SelfBroker => selfBrokers.some((broker) => broker === value); +const selfBrokerSchema = z.custom((value) => { + if (typeof value === 'string' && isSelfBroker(value)) { + return true; + } + return false; +}); const subOrderSchema = baseOrderSchema.extend({ price: z.number(), id: z.number(), @@ -72,12 +78,7 @@ const subOrderSchema = baseOrderSchema.extend({ exchange: z.enum(exchanges), brokerAddress: z.enum(['ORION_BROKER', 'SELF_BROKER']) - .or(z.custom((value) => { - if (typeof value === 'string' && isSelfBroker(value)) { - return true; - } - return false; - })) + .or(selfBrokerSchema) .or(z.string().refine(ethers.utils.isAddress, (value) => ({ message: `subOrder.subOrders.[n].brokerAddress must be an address, got ${value}`, }))),