createUnsignedUserOp
Creates an unsigned user operation from a prepared transaction.
import { createUnsignedUserOp } from "thirdweb/wallets/smart"; const transaction = prepareContractCall(...); const userOp = await createUnsignedUserOp({ transaction, factoryContract, accountContract, adminAddress, sponsorGas, overrides,});
function createUnsignedUserOp(args: { accountContract: Readonly; adminAddress: string; factoryContract: Readonly; overrides?: { accountAddress?: string; accountSalt?: string; bundlerUrl?: string; createAccount?: ( factoryContract: Readonly, admin: string, entrypointAddress?: string; execute?: ( accountContract: Readonly, transaction: SendTransactionOption, executeBatch?: ( accountContract: Readonly, transactions: Array<SendTransactionOption>, getAccountNonce?: (accountContract: Readonly) => Promise<bigint>; paymaster?: ( userOp: UserOperationV06 | UserOperationV07, predictAddress?: ( factoryContract: Readonly, admin: string, ) => Promise<string>; signMessage?: (options: { accountContract: Readonly; factoryContract: Readonly; message: SignableMessage; }) => Promise<`0x${string}`>; signTypedData?: (options: { accountContract: Readonly; factoryContract: Readonly; typedData: Definition<typedData, primaryType>; }) => Promise<`0x${string}`>; tokenPaymaster?: TokenPaymasterConfig; }; sponsorGas: boolean; waitForDeployment?: boolean;}): Promise<UserOperationV06 | UserOperationV07>;
The prepared transaction and options
let args: { accountContract: Readonly; adminAddress: string; factoryContract: Readonly; overrides?: { accountAddress?: string; accountSalt?: string; bundlerUrl?: string; createAccount?: ( factoryContract: Readonly, admin: string, entrypointAddress?: string; execute?: ( accountContract: Readonly, transaction: SendTransactionOption, executeBatch?: ( accountContract: Readonly, transactions: Array<SendTransactionOption>, getAccountNonce?: (accountContract: Readonly) => Promise<bigint>; paymaster?: ( userOp: UserOperationV06 | UserOperationV07, predictAddress?: ( factoryContract: Readonly, admin: string, ) => Promise<string>; signMessage?: (options: { accountContract: Readonly; factoryContract: Readonly; message: SignableMessage; }) => Promise<`0x${string}`>; signTypedData?: (options: { accountContract: Readonly; factoryContract: Readonly; typedData: Definition<typedData, primaryType>; }) => Promise<`0x${string}`>; tokenPaymaster?: TokenPaymasterConfig; }; sponsorGas: boolean; waitForDeployment?: boolean;};