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