UNPKG

@erc7824/nitrolite

Version:

The Nitrolite SDK empowers developers to build high-performance, scalable web3 applications using state channels. It's designed to provide near-instant transactions and significantly improved user experiences by minimizing direct blockchain interactions.

91 lines (90 loc) 3.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.appParamsParsers = void 0; const zod_1 = require("zod"); const types_1 = require("../types"); const common_1 = require("./common"); const CreateAppSessionParamsSchema = zod_1.z .array(zod_1.z.object({ app_session_id: common_1.hexSchema, version: zod_1.z.number(), status: common_1.statusEnum }).transform((raw) => ({ appSessionId: raw.app_session_id, version: raw.version, status: raw.status, }))) .refine((arr) => arr.length === 1) .transform((arr) => arr[0]); const SubmitAppStateParamsSchema = zod_1.z .array(zod_1.z.object({ app_session_id: common_1.hexSchema, version: zod_1.z.number(), status: common_1.statusEnum }).transform((raw) => ({ appSessionId: raw.app_session_id, version: raw.version, status: raw.status, }))) .refine((arr) => arr.length === 1) .transform((arr) => arr[0]); const CloseAppSessionParamsSchema = zod_1.z .array(zod_1.z.object({ app_session_id: common_1.hexSchema, version: zod_1.z.number(), status: common_1.statusEnum }).transform((raw) => ({ appSessionId: raw.app_session_id, version: raw.version, status: raw.status, }))) .refine((arr) => arr.length === 1) .transform((arr) => arr[0]); const GetAppDefinitionParamsSchema = zod_1.z .array(zod_1.z .object({ protocol: zod_1.z.string(), participants: zod_1.z.array(common_1.addressSchema), weights: zod_1.z.array(zod_1.z.number()), quorum: zod_1.z.number(), challenge: zod_1.z.number(), nonce: zod_1.z.number(), }) .transform((raw) => ({ protocol: raw.protocol, participants: raw.participants, weights: raw.weights, quorum: raw.quorum, challenge: raw.challenge, nonce: raw.nonce, }))) .refine((arr) => arr.length === 1) .transform((arr) => arr[0]); const GetAppSessionsParamsSchema = zod_1.z .array(zod_1.z.array(zod_1.z .object({ app_session_id: common_1.hexSchema, status: common_1.statusEnum, participants: zod_1.z.array(common_1.addressSchema), protocol: zod_1.z.string(), challenge: zod_1.z.number(), weights: zod_1.z.array(zod_1.z.number()), quorum: zod_1.z.number(), version: zod_1.z.number(), nonce: zod_1.z.number(), created_at: zod_1.z.union([zod_1.z.string(), zod_1.z.date()]).transform((v) => new Date(v)), updated_at: zod_1.z.union([zod_1.z.string(), zod_1.z.date()]).transform((v) => new Date(v)), session_data: zod_1.z.string().optional(), }) .transform((s) => ({ appSessionId: s.app_session_id, status: s.status, participants: s.participants, protocol: s.protocol, challenge: s.challenge, weights: s.weights, quorum: s.quorum, version: s.version, nonce: s.nonce, createdAt: s.created_at, updatedAt: s.updated_at, sessionData: s.session_data, })))) .refine((arr) => arr.length === 1) .transform((arr) => arr[0]) .transform((arr) => arr); exports.appParamsParsers = { [types_1.RPCMethod.CreateAppSession]: (params) => CreateAppSessionParamsSchema.parse(params), [types_1.RPCMethod.SubmitAppState]: (params) => SubmitAppStateParamsSchema.parse(params), [types_1.RPCMethod.CloseAppSession]: (params) => CloseAppSessionParamsSchema.parse(params), [types_1.RPCMethod.GetAppDefinition]: (params) => GetAppDefinitionParamsSchema.parse(params), [types_1.RPCMethod.GetAppSessions]: (params) => GetAppSessionsParamsSchema.parse(params), };