@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.
33 lines (32 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assetParamsParsers = void 0;
const zod_1 = require("zod");
const types_1 = require("../types");
const common_1 = require("./common");
const AssetObjectSchema = zod_1.z
.object({ token: common_1.addressSchema, chain_id: zod_1.z.number(), symbol: zod_1.z.string(), decimals: zod_1.z.number() })
.transform((raw) => ({
token: raw.token,
chainId: raw.chain_id,
symbol: raw.symbol,
decimals: raw.decimals,
}));
const GetAssetsParamsSchema = zod_1.z
.object({
assets: zod_1.z.array(AssetObjectSchema),
})
.transform((raw) => ({
assets: raw.assets,
}));
const AssetsParamsSchema = zod_1.z
.object({
assets: zod_1.z.array(AssetObjectSchema),
})
.transform((raw) => ({
assets: raw.assets,
}));
exports.assetParamsParsers = {
[types_1.RPCMethod.GetAssets]: (params) => GetAssetsParamsSchema.parse(params),
[types_1.RPCMethod.Assets]: (params) => AssetsParamsSchema.parse(params),
};