@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.
74 lines (73 loc) • 2.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.miscParamsParsers = void 0;
const zod_1 = require("zod");
const types_1 = require("../types");
const common_1 = require("./common");
const NetworkInfoObjectSchema = zod_1.z
.object({
chain_id: zod_1.z.number(),
custody_address: common_1.addressSchema,
adjudicator_address: common_1.addressSchema,
})
.transform((raw) => ({
chainId: raw.chain_id,
custodyAddress: raw.custody_address,
adjudicatorAddress: raw.adjudicator_address,
}));
const GetConfigParamsSchema = zod_1.z
.object({ broker_address: common_1.addressSchema, networks: zod_1.z.array(NetworkInfoObjectSchema) })
.strict()
.transform((raw) => ({
brokerAddress: raw.broker_address,
networks: raw.networks,
}));
const ErrorParamsSchema = zod_1.z
.object({ error: zod_1.z.string() })
.transform((raw) => raw);
const RPCEntryObjectSchema = zod_1.z
.object({
id: zod_1.z.number(),
sender: common_1.addressSchema,
req_id: zod_1.z.number(),
method: zod_1.z.string(),
params: zod_1.z.string(),
timestamp: zod_1.z.number(),
req_sig: zod_1.z.array(common_1.hexSchema),
res_sig: zod_1.z.array(common_1.hexSchema),
response: zod_1.z.string(),
})
.transform((raw) => ({
id: raw.id,
sender: raw.sender,
reqId: raw.req_id,
method: raw.method,
params: raw.params,
timestamp: raw.timestamp,
reqSig: raw.req_sig,
resSig: raw.res_sig,
response: raw.response,
}));
const GetRPCHistoryParamsSchema = zod_1.z
.object({
rpc_entries: zod_1.z.array(RPCEntryObjectSchema),
})
.transform((raw) => ({
rpcEntries: raw.rpc_entries,
}));
const GetUserTagParamsSchema = zod_1.z
.object({
tag: zod_1.z.string(),
})
.strict()
.transform((raw) => raw);
const parseMessageParams = (params) => {
return params;
};
exports.miscParamsParsers = {
[types_1.RPCMethod.GetConfig]: (params) => GetConfigParamsSchema.parse(params),
[types_1.RPCMethod.Error]: (params) => ErrorParamsSchema.parse(params),
[types_1.RPCMethod.GetRPCHistory]: (params) => GetRPCHistoryParamsSchema.parse(params),
[types_1.RPCMethod.GetUserTag]: (params) => GetUserTagParamsSchema.parse(params),
[types_1.RPCMethod.Message]: parseMessageParams,
};