diff --git a/.changeset/rotten-timers-sit.md b/.changeset/rotten-timers-sit.md new file mode 100644 index 000000000..0ca11f9ba --- /dev/null +++ b/.changeset/rotten-timers-sit.md @@ -0,0 +1,5 @@ +--- +"create-eth": patch +--- + +add onchainkit to curated extension diff --git a/.changeset/shy-horses-type.md b/.changeset/shy-horses-type.md new file mode 100644 index 000000000..29f782fe4 --- /dev/null +++ b/.changeset/shy-horses-type.md @@ -0,0 +1,5 @@ +--- +"create-eth": patch +--- + +feat: template files update diff --git a/src/curated-extensions.ts b/src/curated-extensions.ts index 5d0b22b95..cffd4848a 100644 --- a/src/curated-extensions.ts +++ b/src/curated-extensions.ts @@ -13,6 +13,10 @@ const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = { repository: "https://github.com/scaffold-eth/create-eth-extensions", branch: "ponder", }, + onchainkit: { + repository: "https://github.com/scaffold-eth/create-eth-extensions", + branch: "onchainkit", + }, }; export { CURATED_EXTENSIONS }; diff --git a/templates/base/packages/nextjs/.env.example b/templates/base/packages/nextjs/.env.example.template.mjs similarity index 61% rename from templates/base/packages/nextjs/.env.example rename to templates/base/packages/nextjs/.env.example.template.mjs index c8d03d79d..6828d66a8 100644 --- a/templates/base/packages/nextjs/.env.example +++ b/templates/base/packages/nextjs/.env.example.template.mjs @@ -1,9 +1,12 @@ -# Template for NextJS environment variables. +import { withDefaults } from "../../../utils.js"; + +const contents = ({ additionalVars }) => { + return `# Template for NextJS environment variables. # For local development, copy this file, rename it to .env.local, and fill in the values. # When deploying live, you'll need to store the vars in Vercel/System config. -# If not set, we provide default values (check `scaffold.config.ts`) so developers can start prototyping out of the box, +# If not set, we provide default values (check \`scaffold.config.ts\`) so developers can start prototyping out of the box, # but we recommend getting your own API Keys for Production Apps. # To access the values stored in this env file you can use: process.env.VARIABLENAME @@ -11,3 +14,10 @@ # More info: https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables NEXT_PUBLIC_ALCHEMY_API_KEY= NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID= +${additionalVars.join("\n")} +` +}; + +export default withDefaults(contents, { + additionalVars: "" +}); diff --git a/templates/base/packages/nextjs/app/layout.tsx b/templates/base/packages/nextjs/app/layout.tsx.template.mjs similarity index 75% rename from templates/base/packages/nextjs/app/layout.tsx rename to templates/base/packages/nextjs/app/layout.tsx.template.mjs index be1234b59..3cba47bcd 100644 --- a/templates/base/packages/nextjs/app/layout.tsx +++ b/templates/base/packages/nextjs/app/layout.tsx.template.mjs @@ -1,3 +1,8 @@ +import { withDefaults } from "../../../../utils.js"; + +const contents = ({ imports }) => { + return ` +${imports.filter(Boolean).join("\n")} import "@rainbow-me/rainbowkit/styles.css"; import { ScaffoldEthAppWithProviders } from "~~/components/ScaffoldEthAppWithProviders"; import { ThemeProvider } from "~~/components/ThemeProvider"; @@ -21,4 +26,9 @@ const ScaffoldEthApp = ({ children }: { children: React.ReactNode }) => { ); }; -export default ScaffoldEthApp; +export default ScaffoldEthApp;`; +}; + +export default withDefaults(contents, { + imports: "" +}); diff --git a/templates/base/packages/nextjs/components/ScaffoldEthAppWithProviders.tsx.template.mjs b/templates/base/packages/nextjs/components/ScaffoldEthAppWithProviders.tsx.template.mjs index 60a19a168..8a562d577 100644 --- a/templates/base/packages/nextjs/components/ScaffoldEthAppWithProviders.tsx.template.mjs +++ b/templates/base/packages/nextjs/components/ScaffoldEthAppWithProviders.tsx.template.mjs @@ -4,7 +4,7 @@ const contents = ({ providerNames, providerSetups, providerImports, providerProp // filter out empty strings const providerOpeningTags = providerNames.filter(Boolean).map((name, index) => `<${name} ${providerProps[index]}>`); - const providerClosingTags = providerNames.filter(Boolean).map(name => ``); + const providerClosingTags = providerNames.filter(Boolean).map(name => ``).reverse(); return `"use client"; diff --git a/templates/base/packages/nextjs/scaffold.config.ts.template.mjs b/templates/base/packages/nextjs/scaffold.config.ts.template.mjs index 74a115469..22920768c 100644 --- a/templates/base/packages/nextjs/scaffold.config.ts.template.mjs +++ b/templates/base/packages/nextjs/scaffold.config.ts.template.mjs @@ -13,7 +13,7 @@ export type ScaffoldConfig = { const scaffoldConfig = { // The networks on which your DApp is live - targetNetworks: [chains.${chainName[0]}], + targetNetworks: [${chainName.map(chain => `chains.${chain}`).join(', ')}], // The interval at which your front-end polls the RPC servers for new data // it has no effect if you only target the local network (default is 4000)