UNPKG

cp-app

Version:

Easily bootstrap a new permissionless app based on permissionless.js and your favourite tooling!

37 lines (32 loc) 1.25 kB
import { pimlicoPaymaster } from "@/config/pimlicoConfig" import { createSmartAccountClient } from "permissionless" import { type SmartAccountClient } from "permissionless" import { type SafeSmartAccount, privateKeyToSafeSmartAccount } from "permissionless/accounts" import { http, type Address } from "viem" import { type PublicClient } from "viem" import { sepolia } from "viem/chains" export const createSafeAccount = async (publicClient: PublicClient) => { const safeAccount: SafeSmartAccount = await privateKeyToSafeSmartAccount( publicClient, { privateKey: "0xPRIVATE_KEY", safeVersion: "1.4.1", entryPoint: process.env.NEXT_PUBLIC_ENTRYPOINT as Address, saltNonce: 0n // optional } ) return safeAccount } export const createSafeAccountClient = async (publicClient: PublicClient) => { const safeAccount = await createSafeAccount(publicClient) const smartAccountClient: SmartAccountClient = createSmartAccountClient({ account: safeAccount, chain: sepolia, transport: http(process.env.NEXT_PUBLIC_BUNDLER_RPC_HOST), sponsorUserOperation: pimlicoPaymaster.sponsorUserOperation }) return smartAccountClient }