import { KernelAccountClient } from '@zerodev/sdk/clients'; import { Client, LocalAccount, RpcSchema, Transport } from 'viem'; import { SmartAccount } from 'viem/account-abstraction'; import { type Chain as ViemChain } from 'viem/chains'; import { AccountAbstractionConnectorProps } from '@dynamic-labs/ethereum-aa-core'; import { RegisterEvmProvidersConfig } from '@dynamic-labs/ethereum-core'; import { EcdsaValidatorOptions, Provider, ProviderEntryPointVersionEnum, ProviderEnum, ProviderKernelVersionEnum, ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core'; import { GenericNetwork, WalletUiUtils } from '@dynamic-labs/types'; import { WalletBookSchema } from '@dynamic-labs/wallet-book'; import { IDynamicWaasConnector, InternalWalletConnector, ITurnkeyWalletConnector } from '@dynamic-labs/wallet-connector-core'; export type IDynamicWaasConnectorWithViemAccount = IDynamicWaasConnector & { getViemAccount: (props: { accountAddress: string; }) => Promise; }; export type ITurnkeyWalletConnectorWithAccount = ITurnkeyWalletConnector & { getAccount: () => Promise; }; export type ZeroDevConnectorProps = AccountAbstractionConnectorProps & { apiProviders: { [key in ProviderEnum]?: Provider; }; evmNetworks: GenericNetwork[]; walletBook: WalletBookSchema; walletUiUtils: WalletUiUtils; bundlerProvider: ZerodevBundlerProvider | undefined; enableEIP7702?: boolean; providersConfig?: RegisterEvmProvidersConfig; }; export type KernelClient = KernelAccountClient; export type ZeroDevWalletProperties = { ecdsaProviderType?: EcdsaValidatorOptions; kernelVersion?: ProviderKernelVersionEnum; entryPointVersion?: ProviderEntryPointVersionEnum; enableKernelV3Migration?: boolean; defaultToKernelWithSponsorship?: boolean; }; export type ChainProviderMap = { [chainId: string]: { signerAddress: string; kernelClient: KernelClient; kernelClientWithSponsorship: KernelClient; }; }; export type ProviderMap = { [walletAddress: string]: ChainProviderMap; };