function buildUserOperationFromTx<
TChain,
TAccount,
TChainOverride,
TContext,
TEntryPointVersion,
>(
client_,
args,
overrides?,
context?,
): Promise<UserOperationStruct<TEntryPointVersion>>;Defined in: aa-sdk/core/src/actions/smartAccount/buildUserOperationFromTx.ts:62
Performs buildUserOperationFromTx in batch and builds into a single, yet to be signed UserOperation (UO) struct. The output user operation struct will be filled with all gas fields (and paymaster data if a paymaster is used) based on the transactions data (to, data, value, maxFeePerGas, maxPriorityFeePerGas) computed using the configured ClientMiddlewares on the SmartAccountClient
import type { RpcTransactionRequest } from "viem";
import { smartAccountClient } from "./smartAccountClient";
// [!code focus:99]
// buildUserOperationFromTx converts a traditional Ethereum transaction and returns
// the unsigned user operation struct after constructing the user operation struct
// through the middleware pipeline
const tx: RpcTransactionRequest = {
from, // ignored
to,
data: encodeFunctionData({
abi: ContractABI.abi,
functionName: "func",
args: [arg1, arg2, ...],
}),
};
const uoStruct = await smartAccountClient.buildUserOperationFromTx(tx);
// signUserOperation signs the above unsigned user operation struct built
// using the account connected to the smart account client
const request = await smartAccountClient.signUserOperation({ uoStruct });
// You can use the BundlerAction `sendRawUserOperation` (packages/core/src/actions/bundler/sendRawUserOperation.ts)
// to send the signed user operation request to the bundler, requesting the bundler to send the signed uo to the
// EntryPoint contract pointed at by the entryPoint address parameter
const entryPointAddress = client.account.getEntryPoint().address;
const uoHash = await smartAccountClient.sendRawUserOperation({ request, entryPoint: entryPointAddress });| Type Parameter | Default type |
|---|---|
|
|
| | |
|
|
| | |
|
|
| Parameter | Type | Description |
|---|---|---|
| the smart account client to use for RPC requests | |
|
| the send tx parameters |
|
| optional overrides to use for any of the fields |
|
| if the smart account client requires additinoal context for building UOs |
Promise<UserOperationStruct<TEntryPointVersion>>
a Promise containing the built user operation