UNPKG

@lifi/composer-sdk

Version:

Public Composer SDK for building and submitting flows

74 lines 2.15 kB
import z from "zod"; const balanceEntrySchema = z.object({ token: z.string(), owner: z.string(), amount: z.string() }); const simulateOkSchema = z.object({ status: z.literal("ok"), block: z.number(), timestamp: z.number(), balancesBefore: z.array(balanceEntrySchema), balancesAfter: z.array(balanceEntrySchema), deltas: z.array(balanceEntrySchema), gasUsed: z.string() }); const simulateRevertDecodeResultSchema = z.object({ errorCandidates: z.array( z.object({ decodedErrorSignature: z.string(), decodedParams: z.array(z.string()) }) ).optional(), error: z.string().optional() }); const simulateRevertSchema = z.object({ status: z.literal("revert"), block: z.number(), timestamp: z.number(), revertReason: z.string().optional(), code: z.number().optional(), rawErrorBytes: z.string().optional(), decodeResult: simulateRevertDecodeResultSchema.optional() }); const simulateSetupErrorSchema = z.object({ status: z.literal("error"), message: z.string() }); const simulateResultSchema = z.discriminatedUnion("status", [ simulateOkSchema, simulateRevertSchema, simulateSetupErrorSchema ]); const parseSimulateResult = (body) => { const parsed = simulateResultSchema.safeParse(body); if (!parsed.success) return null; const result = parsed.data; return result; }; const compilePartialEnvelopeSchema = z.object({ data: z.record(z.string(), z.unknown()), error: z.object({ kind: z.string(), message: z.string() }) }); const parseCompilePartialEnvelope = (body) => { const parsed = compilePartialEnvelopeSchema.safeParse(body); return parsed.success ? parsed.data : null; }; const serverErrorBodySchema = z.object({ error: z.object({ kind: z.string().optional(), message: z.string().optional(), path: z.string().optional(), details: z.custom().optional() }).optional() }); const parseServerErrorBody = (json) => { const parsed = serverErrorBodySchema.safeParse(json); return parsed.success ? parsed.data : null; }; export { parseCompilePartialEnvelope, parseServerErrorBody, parseSimulateResult }; //# sourceMappingURL=responseSchemas.js.map