toSimpleSmartAccount
Creates a SimpleAccount instance controlled by a owner.
Usage
import { toSimpleSmartAccount } from "permissionless/accounts"
import { publicClient } from "./publicClient"
import { owner } from "./owner"
const simpleSmartAccount = await toSimpleSmartAccount({
owner,
client: publicClient,
entryPoint: {
address: entryPoint07Address,
version: "0.7"
}
})import { createPublicClient, http } from "viem"
import { sepolia } from "viem/chains"
export const publicClient = createPublicClient({
chain: sepolia,
transport: http("https://sepolia.rpc.thirdweb.com"),
})import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"
const privateKey = generatePrivateKey()
export const owner = privateKeyToAccount(privateKey)Returns
- Type:
SmartAccount<SimpleSmartAccountImplementation>
The smart account instance.
Parameters
client
- Type:
Client
A public client as smart account needs access to the Network to query for information about its state (e.g. nonce, address, etc).
owner
- Type:
LocalAccount | EIP1193Provider | WalletClient
The owner that will be used to sign messages and user operations.
factoryAddress (optional)
- Type:
Address
The address of the simple account factory that will be used to deploy the smart account.
entryPoint (optional)
- Type:
{ address: Address, version: "0.6" | "0.7" }
The address and the version of the EntryPoint contract. If not provided, entryPoint 0.7 will be used.
index (optional)
- Type:
bigint
It represents salt nonce that will be used to deploy the smart account. If not provided, 0 will be used.
address (optional)
- Type:
Address
The address of the smart account. If not provided, the determinstic smart account address will be used.