createUnsignedUserOp

Creates an unsigned user operation from a prepared transaction.

Example

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,
) => Promise<PaymasterResult>;
predictAddress?: (
factoryContract: Readonly,
admin: string,
) => Promise<string>;
signMessage?: (options: {
accountContract: Readonly;
adminAccount: Account;
factoryContract: Readonly;
message: SignableMessage;
}) => Promise<`0x${string}`>;
signTypedData?: (options: {
accountContract: Readonly;
adminAccount: Account;
factoryContract: Readonly;
typedData: Definition<typedData, primaryType>;
}) => Promise<`0x${string}`>;
tokenPaymaster?: TokenPaymasterConfig;
};
sponsorGas: boolean;
transaction: PreparedTransaction;
waitForDeployment?: boolean;
}): Promise<UserOperationV06 | UserOperationV07>;

Parameters

The prepared transaction and options

Type

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,
) => Promise<PaymasterResult>;
predictAddress?: (
factoryContract: Readonly,
admin: string,
) => Promise<string>;
signMessage?: (options: {
accountContract: Readonly;
adminAccount: Account;
factoryContract: Readonly;
message: SignableMessage;
}) => Promise<`0x${string}`>;
signTypedData?: (options: {
accountContract: Readonly;
adminAccount: Account;
factoryContract: Readonly;
typedData: Definition<typedData, primaryType>;
}) => Promise<`0x${string}`>;
tokenPaymaster?: TokenPaymasterConfig;
};
sponsorGas: boolean;
transaction: PreparedTransaction;
waitForDeployment?: boolean;
};

Returns

let returnType: Promise<UserOperationV06 | UserOperationV07>;
  • The unsigned user operation