import type { Chain } from "../../../chains/types.js"; import type { ThirdwebClient } from "../../../client/client.js"; import { type ThirdwebContract } from "../../../contract/contract.js"; import type { PreparedTransaction } from "../../../transaction/prepare-transaction.js"; import type { TransactionReceipt } from "../../../transaction/types.js"; import { type Hex } from "../../../utils/encoding/hex.js"; import type { Account } from "../../interfaces/wallet.js"; import type { BundlerOptions, SmartWalletOptions, UserOperationV06, UserOperationV07 } from "../types.js"; export declare const clearAccountDeploying: (accountContract: ThirdwebContract) => void; /** * Wait for the user operation to be mined. * @param args - The options and user operation hash * @returns - The transaction receipt * * @example * ```ts * import { waitForUserOpReceipt } from "thirdweb/wallets/smart"; * * const receipt = await waitForUserOpReceipt({ * chain, * client, * userOpHash, * }); * ``` * @walletUtils */ export declare function waitForUserOpReceipt(args: BundlerOptions & { userOpHash: Hex; timeoutMs?: number; intervalMs?: number; }): Promise; /** * Creates an unsigned user operation from a prepared transaction. * @param args - The prepared transaction and options * @returns - The unsigned user operation * @example * ```ts * import { createUnsignedUserOp } from "thirdweb/wallets/smart"; * * const transaction = prepareContractCall(...); * * const userOp = await createUnsignedUserOp({ * transaction, * factoryContract, * accountContract, * adminAddress, * sponsorGas, * overrides, * }); * ``` * @walletUtils */ export declare function createUnsignedUserOp(args: { transaction: PreparedTransaction; factoryContract: ThirdwebContract; accountContract: ThirdwebContract; adminAddress: string; sponsorGas: boolean; waitForDeployment?: boolean; isDeployedOverride?: boolean; overrides?: SmartWalletOptions["overrides"]; }): Promise; /** * Sign a user operation. * @param userOp - The UserOperation to sign (with signature field ignored) * @returns - The user operation with the signature field populated * @example * ```ts * import { signUserOp } from "thirdweb/wallets/smart"; * * const userOp = await createUnsignedUserOp(...); * * const signedUserOp = await signUserOp({ * client, * userOp, * chain, * adminAccount, * }); * ``` * @walletUtils */ export declare function signUserOp(args: { client: ThirdwebClient; userOp: UserOperationV06 | UserOperationV07; chain: Chain; entrypointAddress?: string; adminAccount: Account; }): Promise; /** * Get the hash of a user operation. * @param args - The options for getting the user operation hash * @returns - The user operation hash * @example * ```ts * import { getUserOpHash } from "thirdweb/wallets/smart"; * * const userOp = await createUnsignedUserOp(...); * const userOpHash = await getUserOpHash({ * client, * userOp, * chain, * }); * ``` * @walletUtils */ export declare function getUserOpHash(args: { client: ThirdwebClient; userOp: UserOperationV06 | UserOperationV07; chain: Chain; entrypointAddress?: string; }): Promise; /** * Create and sign a user operation. * @param options - The options for creating and signing the user operation * @returns - The signed user operation * @example * ```ts * import { createAndSignUserOp } from "thirdweb/wallets/smart"; * * const userOp = await createAndSignUserOp({ * client, * adminAccount, * smartWalletOptions, * transactions, * }); * ``` * @walletUtils */ export declare function createAndSignUserOp(options: { transactions: PreparedTransaction[]; adminAccount: Account; client: ThirdwebClient; smartWalletOptions: SmartWalletOptions; waitForDeployment?: boolean; isDeployedOverride?: boolean; }): Promise; /** * Prepare a user operation for signing. * @param options - The options for preparing the user operation * @returns - The prepared user operation * @example * ```ts * import { prepareUserOp } from "thirdweb/wallets/smart"; * * const userOp = await prepareUserOp({ * transactions, * adminAccount, * client, * smartWalletOptions, * }); * ``` * * You can then sign the user operation with signUserOp(). and send it to the bundler with bundlerUserOp(). * @walletUtils */ export declare function prepareUserOp(options: { transactions: PreparedTransaction[]; adminAccount: Account; client: ThirdwebClient; smartWalletOptions: SmartWalletOptions; waitForDeployment?: boolean; isDeployedOverride?: boolean; }): Promise; //# sourceMappingURL=userop.d.ts.map