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