@abstraxn/account
Version:
@abstraxn/account: Empower ERC-4337 smart accounts with seamless APIs for enhanced decentralized finance experiences.
65 lines (64 loc) • 3.81 kB
TypeScript
import { BigNumber, Contract, ethers, BytesLike, BigNumberish } from "ethers";
import { Transaction, UserOperation } from "@abstraxn/core-types";
import { AbstraxnSmartAccountConfig } from "../utils/Interfaces";
import { AbstraxnTokenPaymasterRequest, BuildUserOpOptions, EstimateUserOpGasParams } from "../utils/Types";
import { ModuleInfo, SendUserOpParams } from "@abstraxn/modules";
import { UserOpResponse } from "@abstraxn/bundler";
import { IPaymaster } from "@abstraxn/paymaster";
type UserOperationKey = keyof UserOperation;
export declare class AbstraxnSmartAccount {
private bundler?;
private chainId;
private provider;
private activeValidationModule;
private defaultValidationModule;
protected signer: ethers.Signer | undefined;
private entryPointAddress;
private implementationAddress;
private smartFactoryAddress;
private proxyCreationCode;
private fallbackHandlerAddress;
paymaster?: IPaymaster;
private index?;
constructor(_config: AbstraxnSmartAccountConfig);
static create(abstraxnSmartAccountConfig: AbstraxnSmartAccountConfig): Promise<AbstraxnSmartAccount>;
getAccountAddress(): Promise<string>;
isProviderDefined(): boolean;
private isContractDeployedCache;
isAccountDeployed(address: string): Promise<boolean>;
getInitCode(): Promise<string>;
getAccountInitCode(): Promise<string>;
private getCounterFactualAddress;
_getAccountContract(): Promise<Contract>;
getNonce(nonceKey?: number): Promise<BigNumber>;
private getBuildUserOpNonce;
isActiveValidationModuleDefined(): boolean;
getDummySignature(params?: ModuleInfo): Promise<string>;
private getGasFeeValues;
encodeExecute(to: string, value: BigNumberish, data: BytesLike): Promise<string>;
encodeExecuteBatch(to: Array<string>, value: Array<BigNumberish>, data: Array<BytesLike>): Promise<string>;
validateUserOp(userOp: Partial<UserOperation>, requiredFields: UserOperationKey[]): boolean;
getVerificationGasLimit(initCode: BytesLike): Promise<BigNumber>;
getCallGasLimit(userOp: Partial<UserOperation>): Promise<BigNumber>;
estimateCreationGas(initCode?: string): Promise<BigNumberish>;
getPreVerificationGas(userOp: Partial<UserOperation>): Promise<BigNumber>;
calculateUserOpGasValues(userOp: Partial<UserOperation>): Promise<Partial<UserOperation>>;
estimateUserOpGas(params: EstimateUserOpGasParams): Promise<Partial<UserOperation>>;
buildUserOp(transactions: Transaction[], buildUseropDto?: BuildUserOpOptions): Promise<Partial<UserOperation>>;
sendUserOp(userOp: Partial<UserOperation>, params?: SendUserOpParams): Promise<UserOpResponse>;
signUserOp(userOp: Partial<UserOperation>, params?: SendUserOpParams): Promise<UserOperation>;
sendSignedUserOp(userOp: UserOperation, params?: SendUserOpParams): Promise<UserOpResponse>;
getUserOpHash(userOp: Partial<UserOperation>): Promise<string>;
private validateUserOpAndPaymasterRequest;
buildTokenPaymasterUserOp(userOp: Partial<UserOperation>, tokenPaymasterRequest: AbstraxnTokenPaymasterRequest): Promise<Partial<UserOperation>>;
enableModule(moduleAddress: string): Promise<UserOpResponse>;
getEnableModuleData(moduleAddress: string): Promise<Transaction>;
getSetupAndEnableModuleData(moduleAddress: string, moduleSetupData: string): Promise<Transaction>;
disableModule(prevModule: string, moduleAddress: string): Promise<UserOpResponse>;
getDisableModuleData(prevModule: string, moduleAddress: string): Promise<Transaction>;
isModuleEnabled(moduleName: string): Promise<boolean>;
private validThru;
getSignForMultiSigWallet(signer: ethers.Wallet, userOp: Partial<UserOperation>): Promise<string>;
buildSignatureBytes(signs: string[]): Promise<string>;
}
export {};