UNPKG

@alchemy/aa-core

Version:

viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts

35 lines 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isMultiplier = exports.isBigNumberish = exports.MultiplierSchema = exports.BigNumberishRangeSchema = exports.BigNumberishSchema = exports.HexSchema = exports.ChainSchema = void 0; const viem_1 = require("viem"); const zod_1 = require("zod"); exports.ChainSchema = zod_1.z.custom((chain) => chain != null && typeof chain === "object" && "id" in chain && typeof chain.id === "number"); exports.HexSchema = zod_1.z.custom((val) => { return (0, viem_1.isHex)(val, { strict: true }); }); exports.BigNumberishSchema = zod_1.z.union([exports.HexSchema, zod_1.z.number(), zod_1.z.bigint()]); exports.BigNumberishRangeSchema = zod_1.z .object({ min: exports.BigNumberishSchema.optional(), max: exports.BigNumberishSchema.optional(), }) .strict(); exports.MultiplierSchema = zod_1.z .object({ multiplier: zod_1.z.number().refine((n) => { return (n.toString().split(".")[1]?.length ?? 0) <= 4; }, { message: "Max precision is 4 decimal places" }), }) .strict(); function isBigNumberish(x) { return x != null && exports.BigNumberishSchema.safeParse(x).success; } exports.isBigNumberish = isBigNumberish; function isMultiplier(x) { return x != null && exports.MultiplierSchema.safeParse(x).success; } exports.isMultiplier = isMultiplier; //# sourceMappingURL=schema.js.map