@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
JavaScript
"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),
};