import type { Hex } from 'viem'; import type { UserOperation } from 'viem/account-abstraction'; import type { AccountRuntimePort } from '../../accounts/adapter.js'; import type { UnresolvedCall } from '../../calls/types.js'; import type { EvmChainReference } from '../../chains/types.js'; import type { BundlerPort, BundlerUserOperation } from '../../clients/bundler/port.js'; import type { PaymasterPort } from '../../clients/paymaster/port.js'; import type { RpcPort } from '../../clients/rpc/port.js'; import type { UserOperationTransaction } from '../../config/account.js'; import type { OwnerSignerSelection, SignerInvocationPort, SigningCheckpointPort, SigningTranscript } from '../../signing/types.js'; import type { UserOperationSigningPlanInput } from '../../signing/user-operation.js'; export interface UserOperationInput { readonly chain: EvmChainReference; readonly calls: readonly UnresolvedCall[]; readonly nonceKey?: bigint; readonly gasLimit?: bigint; readonly signers?: OwnerSignerSelection; } export interface PreparedUserOperation { readonly input: UserOperationInput; readonly operation: BundlerUserOperation; readonly hash: Hex; readonly signing: UserOperationSigningPlanInput; } export interface SignedUserOperation { readonly prepared: PreparedUserOperation; readonly operation: BundlerUserOperation; readonly signature: Hex; readonly transcript: SigningTranscript; } export interface SubmittedUserOperation { readonly type: 'userop'; readonly chain: EvmChainReference; readonly hash: Hex; } export interface UserOperationStatus { readonly hash: Hex; readonly receipt?: unknown; readonly terminal: boolean; } export interface UserOperationWorkflowContext { readonly compatibilityConfig: CompatibilityConfig; readonly account: AccountRuntimePort; readonly rpc: RpcPort; readonly bundler: BundlerPort; readonly paymaster?: PaymasterPort; readonly signerInvoker: SignerInvocationPort; readonly checkpoints: SigningCheckpointPort; readonly clock: { readonly now: () => number; readonly sleep: (milliseconds: number) => Promise; readonly timeout: (promise: Promise, milliseconds: number, error: () => Error) => Promise; }; } export interface UserOperationResult { type: 'userop'; hash: Hex; chain: number; } export interface PreparedUserOperationData { userOperation: UserOperation; hash: Hex; transaction: UserOperationTransaction; } export interface SignedUserOperationData extends PreparedUserOperationData { signature: Hex; } //# sourceMappingURL=types.d.ts.map