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

59 lines 2.12 kB
import { z } from "zod"; import { BigNumberishRangeSchema, MultiplierSchema } from "../utils/index.js"; export const createPublicErc4337ClientSchema = () => z.custom((provider) => { return (provider != null && typeof provider === "object" && "request" in provider && "type" in provider && "key" in provider && "name" in provider); }); export const ConnectionConfigSchema = z.union([ z.object({ rpcUrl: z.never().optional(), apiKey: z.string(), jwt: z.never().optional(), }), z.object({ rpcUrl: z.never().optional(), apiKey: z.never().optional(), jwt: z.string(), }), z.object({ rpcUrl: z.string(), apiKey: z.never().optional(), jwt: z.never().optional(), }), z.object({ rpcUrl: z.string(), apiKey: z.never().optional(), jwt: z.string(), }), ]); export const UserOperationFeeOptionsFieldSchema = BigNumberishRangeSchema.merge(MultiplierSchema).partial(); export const UserOperationFeeOptionsSchema_v6 = z .object({ maxFeePerGas: UserOperationFeeOptionsFieldSchema, maxPriorityFeePerGas: UserOperationFeeOptionsFieldSchema, callGasLimit: UserOperationFeeOptionsFieldSchema, verificationGasLimit: UserOperationFeeOptionsFieldSchema, preVerificationGas: UserOperationFeeOptionsFieldSchema, }) .partial() .strict(); export const UserOperationFeeOptionsSchema_v7 = UserOperationFeeOptionsSchema_v6.extend({ paymasterVerificationGasLimit: UserOperationFeeOptionsFieldSchema, paymasterPostOpGasLimit: UserOperationFeeOptionsFieldSchema, }) .partial() .strict(); export const UserOperationFeeOptionsSchema = UserOperationFeeOptionsSchema_v7; export const SmartAccountClientOptsSchema = z .object({ txMaxRetries: z.number().min(0).optional().default(5), txRetryIntervalMs: z.number().min(0).optional().default(2000), txRetryMultiplier: z.number().min(0).optional().default(1.5), feeOptions: UserOperationFeeOptionsSchema.optional(), }) .strict(); //# sourceMappingURL=schema.js.map