UNPKG

cp-app

Version:

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

63 lines (52 loc) 1.4 kB
import path from "path" import { createEnv } from "./createEnv" import { scaffoldProject } from "./scaffoldProject" import { selectBoilerplate } from "./selectBolierplate" interface CreateProjectOptions { projectName: string bundler: string paymaster: string signer: string accountSystem: string pimlicoApiKey: string privyAppId: string publicRPCUrl: string } export const createProject = async ({ projectName, bundler, paymaster, signer, accountSystem, privyAppId, pimlicoApiKey, publicRPCUrl }: CreateProjectOptions) => { const projectDir = path.resolve(process.cwd(), projectName) // Bootstraps the base Permissionless application await scaffoldProject({ projectName, projectDir }) // Select the appropriate boilerplate based on options selectBoilerplate({ bundler, paymaster, signer, accountSystem, projectDir }) createEnv(projectDir, "PRIVY_APP_ID", privyAppId) createEnv(projectDir, "RPC_URL", publicRPCUrl) createEnv( projectDir, "PIMLICO_PAYMASTER_RPC_HOST", `https://api.pimlico.io/v1/sepolia/rpc?apikey=${pimlicoApiKey}` ) createEnv( projectDir, "PIMLICO_BUNDLER_RPC_HOST", `https://api.pimlico.io/v2/sepolia/rpc?apikey=${pimlicoApiKey}` ) return projectDir }