import type { Account, Address, Chain, LocalAccount, OneOf, Transport, WalletClient } from "viem" import type { EthereumProvider } from "../../utils/toOwner.js" import { type KernelSmartAccountImplementation, type KernelVersion, type ToKernelSmartAccountParameters, type ToKernelSmartAccountReturnType, toKernelSmartAccount } from "./toKernelSmartAccount.js" export type ToEcdsaKernelSmartAccountParameters< entryPointVersion extends "0.6" | "0.7", kernelVersion extends KernelVersion, owner extends OneOf< | EthereumProvider | WalletClient | LocalAccount > > = ToKernelSmartAccountParameters & { ecdsaValidatorAddress?: Address } export type EcdsaKernelSmartAccountImplementation< entryPointVersion extends "0.6" | "0.7" = "0.7" > = KernelSmartAccountImplementation export type ToEcdsaKernelSmartAccountReturnType< entryPointVersion extends "0.6" | "0.7" = "0.7" > = ToKernelSmartAccountReturnType /** * @deprecated ECDSA Kernel Smart Account is deprecated. Please use toKernelSmartAccount instead. * @see toKernelSmartAccount */ export async function toEcdsaKernelSmartAccount< entryPointVersion extends "0.6" | "0.7", kernelVersion extends KernelVersion, owner extends OneOf< | EthereumProvider | WalletClient | LocalAccount > >( parameters: ToEcdsaKernelSmartAccountParameters< entryPointVersion, kernelVersion, owner > ): Promise> { return toKernelSmartAccount({ ...parameters, validatorAddress: parameters.validatorAddress ?? parameters.ecdsaValidatorAddress }) }