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.

132 lines (131 loc) 3.95 kB
"use strict"; 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(), name: zod_1.z.string(), custody_address: common_1.addressSchema, adjudicator_address: common_1.addressSchema, }) .transform((raw) => ({ chainId: raw.chain_id, name: raw.name, 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 AllowanceObjectSchema = zod_1.z .object({ asset: zod_1.z.string(), amount: zod_1.z.string(), }) .transform((raw) => ({ asset: raw.asset, amount: raw.amount, })); const AllowanceUsageObjectSchema = zod_1.z .object({ asset: zod_1.z.string(), allowance: zod_1.z.string(), used: zod_1.z.string(), }) .transform((raw) => ({ asset: raw.asset, allowance: raw.allowance, used: raw.used, })); const SessionKeyObjectSchema = zod_1.z .object({ id: zod_1.z.number(), session_key: common_1.addressSchema, application: zod_1.z.string(), allowances: zod_1.z.array(AllowanceUsageObjectSchema), scope: zod_1.z.string().optional(), expires_at: zod_1.z.string(), created_at: zod_1.z.string(), }) .transform((raw) => ({ id: raw.id, sessionKey: raw.session_key, application: raw.application, allowances: raw.allowances, scope: raw.scope, expiresAt: new Date(raw.expires_at), createdAt: new Date(raw.created_at), })); const GetSessionKeysParamsSchema = zod_1.z .object({ session_keys: zod_1.z.array(SessionKeyObjectSchema), }) .transform((raw) => ({ sessionKeys: raw.session_keys, })); const RevokeSessionKeyParamsSchema = zod_1.z .object({ session_key: common_1.addressSchema, }) .strict() .transform((raw) => ({ sessionKey: raw.session_key, })); 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.GetSessionKeys]: (params) => GetSessionKeysParamsSchema.parse(params), [types_1.RPCMethod.RevokeSessionKey]: (params) => RevokeSessionKeyParamsSchema.parse(params), [types_1.RPCMethod.Message]: parseMessageParams, };