@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
50 lines (49 loc) • 3.68 kB
TypeScript
import { type Hex } from "viem";
import type { EntryPointVersion } from "../entrypoint/types";
import type { BigNumberish, Multiplier, UserOperationFeeOptionsField, UserOperationOverrides, UserOperationRequest, UserOperationStruct } from "../types";
export declare function isValidRequest<TEntryPointVersion extends EntryPointVersion = EntryPointVersion>(request: UserOperationStruct<TEntryPointVersion>): request is UserOperationRequest<TEntryPointVersion>;
export declare function isValidPaymasterAndData<TEntryPointVersion extends EntryPointVersion = EntryPointVersion>(request: UserOperationStruct<TEntryPointVersion>): boolean;
export declare function isValidFactoryAndData<TEntryPointVersion extends EntryPointVersion = EntryPointVersion>(request: UserOperationStruct<TEntryPointVersion>): boolean;
export declare function applyUserOpOverride<TValue extends BigNumberish | undefined>(value: TValue, override?: BigNumberish | Multiplier): TValue | BigNumberish;
export declare function applyUserOpFeeOption<TValue extends BigNumberish | undefined>(value: TValue, feeOption?: UserOperationFeeOptionsField): TValue | BigNumberish;
export declare function applyUserOpOverrideOrFeeOption<TValue extends BigNumberish | undefined>(value: TValue, override?: BigNumberish | Multiplier, feeOption?: UserOperationFeeOptionsField): TValue | BigNumberish;
export declare const bypassPaymasterAndData: <TEntryPointVersion extends keyof import("../entrypoint/types").EntryPointRegistryBase<unknown> = keyof import("../entrypoint/types").EntryPointRegistryBase<unknown>>(overrides: Partial<{
callGasLimit: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["callGasLimit"];
maxFeePerGas: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["maxFeePerGas"];
maxPriorityFeePerGas: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["maxPriorityFeePerGas"];
preVerificationGas: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["preVerificationGas"];
verificationGasLimit: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["verificationGasLimit"];
nonceKey: bigint;
stateOverride: import("viem").StateOverride;
} & import("../types").UserOperationPaymasterOverrides<TEntryPointVersion>> | undefined) => boolean;
export declare const bypassPaymasterAndDataEmptyHex: <TEntryPointVersion extends keyof import("../entrypoint/types").EntryPointRegistryBase<unknown> = keyof import("../entrypoint/types").EntryPointRegistryBase<unknown>>(overrides: Partial<{
callGasLimit: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["callGasLimit"];
maxFeePerGas: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["maxFeePerGas"];
maxPriorityFeePerGas: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["maxPriorityFeePerGas"];
preVerificationGas: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["preVerificationGas"];
verificationGasLimit: {
multiplier: number;
} | UserOperationStruct<TEntryPointVersion>["verificationGasLimit"];
nonceKey: bigint;
stateOverride: import("viem").StateOverride;
} & import("../types").UserOperationPaymasterOverrides<TEntryPointVersion>> | undefined) => boolean;
export declare const parsePaymasterAndData: (paymasterAndData: Hex) => Pick<UserOperationRequest<"0.7.0">, "paymaster" | "paymasterData">;
export declare const concatPaymasterAndData: ({ paymaster, paymasterData, }: Pick<UserOperationRequest<"0.7.0">, "paymaster" | "paymasterData">) => Hex;