@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.24 kB
JavaScript
import { Address } from "abitype/zod";
import { isHex } from "viem";
import z from "zod";
import { createPublicErc4337ClientSchema } from "../client/schema.js";
import { isEntryPointVersion } from "../entrypoint/index.js";
import { isSigner } from "../signer/schema.js";
import { ChainSchema } from "../utils/index.js";
export const createBaseSmartAccountParamsSchema = () => z.object({
rpcClient: z.union([
z.string(),
createPublicErc4337ClientSchema(),
]),
factoryAddress: Address,
signer: z.custom(isSigner),
entryPointAddress: Address.optional(),
chain: ChainSchema,
accountAddress: Address.optional().describe("Optional override for the account address."),
initCode: z
.string()
.refine((x) => isHex(x, { strict: true }), "initCode must be a valid hex.")
.optional()
.describe("Optional override for the account init code."),
entryPointVersion: z
.custom(isEntryPointVersion)
.optional(),
});
export const SimpleSmartAccountParamsSchema = () => createBaseSmartAccountParamsSchema()
.omit({
rpcClient: true,
})
.extend({
transport: z.custom(),
salt: z.bigint().optional(),
});
//# sourceMappingURL=schema.js.map