import { GasParamsOverrideCapability } from "./gasParamsOverride.js"; import { PaymasterCapability } from "./paymaster.js"; import { PermissionsCapability } from "./permissions/index.js"; import { Eip7702AuthCapability } from "./eip7702Auth.js"; import { MultiDimensionalNonceCapability } from "./multiDimensionalNonce.js"; import { StateOverrideCapability } from "./stateOverride.js"; import { SinglePolicyId, MultiplePolicyIds, WebhookData } from "./paymaster.js"; import { DataSuffixCapability } from "./dataSuffix.js"; import { object, z } from "../zod.js"; export const PrepareCallsCapabilities = object({ permissions: PermissionsCapability.optional(), paymasterService: PaymasterCapability.optional(), gasParamsOverride: GasParamsOverrideCapability.optional(), eip7702Auth: Eip7702AuthCapability.optional(), nonceOverride: MultiDimensionalNonceCapability.optional(), stateOverride: StateOverrideCapability.optional(), experimental_dataSuffix: DataSuffixCapability.optional(), }); export type PrepareCallsCapabilities = z.input; export const SendPreparedCallsCapabilities = object({ permissions: PermissionsCapability.optional(), paymasterService: z .intersection( z.union([SinglePolicyId, MultiplePolicyIds]), object({ webhookData: WebhookData.optional() }), ) .optional(), }); export type SendPreparedCallsCapabilities = z.input< typeof SendPreparedCallsCapabilities >;