@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
JavaScript
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