UNPKG

@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

36 lines (35 loc) 4.32 kB
import { type Address, type Chain, type Client, type Hex, type SendTransactionParameters, type Transport, type TypedData } from "viem"; import type { GetAccountParameter, GetEntryPointFromAccount, SmartContractAccount } from "../../account/smartContractAccount"; import { type SignMessageParameters } from "../../actions/smartAccount/signMessage.js"; import { type SignTypedDataParameters } from "../../actions/smartAccount/signTypedData.js"; import type { BuildTransactionParameters, BuildUserOperationFromTransactionsResult, BuildUserOperationParameters, DropAndReplaceUserOperationParameters, SendTransactionsParameters, SendUserOperationParameters, SignUserOperationParameters, UpgradeAccountParams, UserOperationContext, WaitForUserOperationTxParameters } from "../../actions/smartAccount/types"; import type { UserOperationOverrides, UserOperationRequest, UserOperationStruct } from "../../types"; import type { IsUndefined } from "../../utils"; import type { SendUserOperationResult } from "../types"; export type BaseSmartAccountClientActions<TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends UserOperationContext | undefined = UserOperationContext | undefined, TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>> = { buildUserOperation: (args: BuildUserOperationParameters<TAccount, TContext>) => Promise<UserOperationStruct<TEntryPointVersion>>; buildUserOperationFromTx: (args: SendTransactionParameters<TChain, TAccount>, overrides?: UserOperationOverrides<TEntryPointVersion>, context?: TContext) => Promise<UserOperationStruct<TEntryPointVersion>>; buildUserOperationFromTxs: (args: BuildTransactionParameters<TAccount, TContext>) => Promise<BuildUserOperationFromTransactionsResult<TEntryPointVersion>>; checkGasSponsorshipEligibility: <TContext extends UserOperationContext | undefined = UserOperationContext | undefined>(args: SendUserOperationParameters<TAccount, TContext>) => Promise<boolean>; signUserOperation: (args: SignUserOperationParameters<TAccount, TEntryPointVersion, TContext>) => Promise<UserOperationRequest<TEntryPointVersion>>; dropAndReplaceUserOperation: (args: DropAndReplaceUserOperationParameters<TAccount, TContext>) => Promise<SendUserOperationResult<TEntryPointVersion>>; sendTransaction: <TChainOverride extends Chain | undefined = undefined>(args: SendTransactionParameters<TChain, TAccount, TChainOverride>, overrides?: UserOperationOverrides<TEntryPointVersion>, context?: TContext) => Promise<Hex>; sendTransactions: (args: SendTransactionsParameters<TAccount, TContext>) => Promise<Hex>; sendUserOperation: (args: SendUserOperationParameters<TAccount, TContext, GetEntryPointFromAccount<TAccount>>) => Promise<SendUserOperationResult<TEntryPointVersion>>; waitForUserOperationTransaction: (args: WaitForUserOperationTxParameters) => Promise<Hex>; upgradeAccount: (args: UpgradeAccountParams<TAccount, TContext>) => Promise<Hex>; signMessage: (args: SignMessageParameters<TAccount>) => Promise<Hex>; signTypedData: <const TTypedData extends TypedData | { [key: string]: unknown; }, TPrimaryType extends string = string>(args: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>) => Promise<Hex>; signMessageWith6492: (args: SignMessageParameters<TAccount>) => Promise<Hex>; signTypedDataWith6492: <const TTypedData extends TypedData | { [key: string]: unknown; }, TPrimaryType extends string = string>(args: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>) => Promise<Hex>; } & (IsUndefined<TAccount> extends false ? { getAddress: () => Address; } : { getAddress: (args: GetAccountParameter<TAccount>) => Address; }); export declare const smartAccountClientActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends UserOperationContext | undefined = UserOperationContext | undefined>(client: Client<TTransport, TChain, TAccount>) => BaseSmartAccountClientActions<TChain, TAccount, TContext>; export declare const smartAccountClientMethodKeys: Set<string>;