Using ERC-4337
The Module Sandbox provides a complete abstraction of the ERC-4337 flows. This page gives an overview of the different helper utilities that enable this and how you can use them.
Creating and executing a UserOperation
To create and execute a UserOperation, you can use the useCreateUserOp
(opens in a new tab) hook. The hook can be used like a regular React hook:
const createUserOp = useCreateUserOp()
The main argument for creating a UserOperation is the actions
array. It consists of a list of ExecuteAction
objects, which have the following parameters:
type ExecuteAction = {
target: Address
value: BigInt
callData: Hex
}
The createUserOp
object has a mutateAsync
method that can be used to create a UserOperation:
userOp = await createUserOp.mutateAsync({
name: `Display Name in the UI`,
actions,
})
Optionally, you can also provide additional parameters to the mutateAsync
method:
account
: The account to use for the UserOperation. If not provided, the active account will be used. (Type:Account
(opens in a new tab))validator
: The validator to use for the UserOperation. If not provided, the active validator will be used. (Type:Validator
(opens in a new tab))callback
: A callback function that will be called when the UserOperation is executed. (Type:() => void
)