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.

88 lines (87 loc) 3.11 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 AppSessionObjectSchema = 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: common_1.dateSchema, updated_at: common_1.dateSchema, session_data: zod_1.z.string().optional(), }) .transform((raw) => ({ appSessionId: raw.app_session_id, status: raw.status, participants: raw.participants, protocol: raw.protocol, challenge: raw.challenge, weights: raw.weights, quorum: raw.quorum, version: raw.version, nonce: raw.nonce, createdAt: raw.created_at, updatedAt: raw.updated_at, sessionData: raw.session_data, })); const CreateAppSessionParamsSchema = 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, })); const SubmitAppStateParamsSchema = 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, })); const CloseAppSessionParamsSchema = 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, })); const GetAppDefinitionParamsSchema = 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, })); const GetAppSessionsParamsSchema = zod_1.z .object({ app_sessions: zod_1.z.array(AppSessionObjectSchema), }) .transform((raw) => ({ appSessions: raw.app_sessions, })); 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), };