UNPKG

create-web3-dapp-dev

Version:

<p align="center"> <br /> <a href="https://createweb3dapp.alchemy.com"> <img src=".github/images/cw3d-logo.png" width="200" alt=""/></a> <br /> </p>

64 lines (58 loc) 1.68 kB
import path from "path"; import { createEnv } from "../utils/createEnv.js"; import fse from "fs-extra"; import { DappInfo } from "../../interfaces/DappInfo.js"; import { createWriteStream, mkdirSync } from "fs"; import { generateAlchemyURL } from "../utils/generateAlchemyUrl.js"; import { execSync } from "child_process"; export const setUpHardhat = (dappInfo: DappInfo, projectPath) => { if ( !dappInfo.isTemplate || dappInfo.backendProvider != "hardhat-template" ) { mkdirSync(path.join(process.cwd(), "backend")); mkdirSync(path.join(process.cwd(), "backend", "contracts")); mkdirSync(path.join(process.cwd(), "backend", "scripts")); mkdirSync(path.join(process.cwd(), "backend", "test")); } const writeStream = createWriteStream( path.join(projectPath, "backend", "hardhat.config.js") ); writeStream.write("require('@nomicfoundation/hardhat-toolbox');\n"); writeStream.write("require('dotenv').config()\n\n"); const modules = { solidity: { version: "0.8.9", settings: { optimizer: { enabled: true, }, }, }, allowUnlimitedContractSize: true, networks: { hardhat: {}, [dappInfo.chain!]: { accounts: "[`${process.env.PRIVATE_KEY}`]", url: generateAlchemyURL(dappInfo.chain), }, [dappInfo.testnet]: { accounts: "[`${process.env.PRIVATE_KEY}`]", url: generateAlchemyURL(dappInfo.testnet), }, }, etherscan: { apiKey: "`${process.env.ETHERSCAN_API_KEY}`", }, paths: { artifacts: "'../fronted/artifacts'", }, }; writeStream.write( `module.exports = ${JSON.stringify(modules, null, "\t").replace( /"(?!\d\.\d\.\d)([^",]+)"/g, "$1" )}` ); writeStream.close(); };