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

30 lines 997 B
import { isHex } from "viem"; import { z } from "zod"; export const ChainSchema = z.custom((chain) => chain != null && typeof chain === "object" && "id" in chain && typeof chain.id === "number"); export const HexSchema = z.custom((val) => { return isHex(val, { strict: true }); }); export const BigNumberishSchema = z.union([HexSchema, z.number(), z.bigint()]); export const BigNumberishRangeSchema = z .object({ min: BigNumberishSchema.optional(), max: BigNumberishSchema.optional(), }) .strict(); export const MultiplierSchema = z .object({ multiplier: z.number().refine((n) => { return (n.toString().split(".")[1]?.length ?? 0) <= 4; }, { message: "Max precision is 4 decimal places" }), }) .strict(); export function isBigNumberish(x) { return x != null && BigNumberishSchema.safeParse(x).success; } export function isMultiplier(x) { return x != null && MultiplierSchema.safeParse(x).success; } //# sourceMappingURL=schema.js.map