Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/backmerge-14-10-26.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"create-eth": patch
---

- fix: check both bytecode prefixes in decodeTxData for contract creation (https://github.com/scaffold-eth/scaffold-eth-2/pull/1316)
- Deps update: hardhat 3.18, rocketh 0.23, TypeScript 6, ESLint 10, nextjs minors, yarn 4.18.1 (https://github.com/scaffold-eth/scaffold-eth-2/pull/1326)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ CLI to create decentralized applications (dapps) using Scaffold-ETH 2.

Before you begin, you need to install the following tools:

- [Node (>= v22.10.0)](https://nodejs.org/en/download/)
- [Node (>= v22.13.0)](https://nodejs.org/en/download/)
- Yarn ([v1](https://classic.yarnpkg.com/en/docs/install/) or [v2+](https://yarnpkg.com/getting-started/install))
- [Git](https://git-scm.com/downloads)

Expand Down
940 changes: 0 additions & 940 deletions templates/base/.yarn/releases/yarn-4.13.0.cjs

This file was deleted.

1,000 changes: 1,000 additions & 0 deletions templates/base/.yarn/releases/yarn-4.18.1.cjs

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion templates/base/.yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ enableColors: true

enableGlobalCache: true

enableScripts: true

nmHoistingLimits: workspaces

nodeLinker: node-modules
Expand All @@ -16,4 +18,4 @@ npmPreapprovedPackages:
- "@scaffold-ui/hooks"
- burner-connector

yarnPath: .yarn/releases/yarn-4.13.0.cjs
yarnPath: .yarn/releases/yarn-4.18.1.cjs
6 changes: 3 additions & 3 deletions templates/base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
"vercel:login": "yarn workspace @se-2/nextjs vercel:login",
"ipfs": "yarn workspace @se-2/nextjs ipfs"
},
"packageManager": "yarn@4.13.0",
"packageManager": "yarn@4.18.1",
"devDependencies": {
"husky": "~9.1.6",
"lint-staged": "~13.2.2"
"husky": "~9.1.7",
"lint-staged": "~16.4.0"
},
"resolutions": {
"@coinbase/cdp-sdk": "1.52.0"
Expand Down
2 changes: 2 additions & 0 deletions templates/base/packages/nextjs/.gitignore.template.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ yarn-error.log*

# typescript
*.tsbuildinfo
next-env.d.ts

ipfs-upload.config.json
${postContent[0] || ''}`;

Expand Down
9 changes: 9 additions & 0 deletions templates/base/packages/nextjs/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.

This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.

<!-- END:nextjs-agent-rules -->
1 change: 1 addition & 0 deletions templates/base/packages/nextjs/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ const fetchPageItems = async (
const pageItems: { block: Block; tx: Transaction }[] = [];
let skipped = 0;

for (let blockNum = latestBlock; blockNum >= 0n; ) {
for (let blockNum = latestBlock; blockNum >= 0n;) {
const batchEnd = blockNum - BigInt(BLOCK_BATCH_SIZE - 1);
const batchStart = batchEnd < 0n ? 0n : batchEnd;

Expand Down
6 changes: 0 additions & 6 deletions templates/base/packages/nextjs/next-env.d.ts

This file was deleted.

49 changes: 24 additions & 25 deletions templates/base/packages/nextjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,40 +22,39 @@
"@scaffold-ui/components": "^0.1.12",
"@scaffold-ui/debug-contracts": "^0.1.11",
"@scaffold-ui/hooks": "^0.1.8",
"@tanstack/react-query": "~5.100.5",
"@tanstack/react-query": "~5.104.1",
"blo": "~2.0.0",
"burner-connector": "0.0.21",
"daisyui": "5.5.19",
"kubo-rpc-client": "~6.1.0",
"next": "~16.2.4",
"burner-connector": "0.0.22",
"daisyui": "5.7.47",
"next": "~16.3.8",
"next-nprogress-bar": "~2.4.7",
"next-themes": "~0.4.6",
"qrcode.react": "~4.2.0",
"react": "~19.2.5",
"react-dom": "~19.2.5",
"react-hot-toast": "~2.6.0",
"react": "~19.3.0",
"react-dom": "~19.3.0",
"react-hot-toast": "~2.6.1",
"usehooks-ts": "~3.1.1",
"viem": "2.53.1",
"viem": "2.57.3",
"wagmi": "2.19.5",
"zustand": "~5.0.12"
"zustand": "~5.0.15"
},
"devDependencies": {
"@tailwindcss/postcss": "4.2.4",
"@tailwindcss/postcss": "4.3.3",
"@trivago/prettier-plugin-sort-imports": "~6.0.2",
"@types/node": "~18.19.130",
"@types/react": "~19.2.14",
"abitype": "1.2.4",
"bgipfs": "~0.0.18",
"eslint": "~9.39.0",
"eslint-config-next": "~16.2.4",
"@types/node": "~22.20.5",
"@types/react": "~19.3.0",
"abitype": "1.3.0",
"bgipfs": "~0.1.0",
"eslint": "~9.39.4",
"eslint-config-next": "~16.3.8",
"eslint-config-prettier": "~10.1.8",
"eslint-plugin-prettier": "~5.5.5",
"postcss": "~8.5.10",
"prettier": "~3.8.3",
"tailwindcss": "4.2.4",
"type-fest": "~5.6.0",
"typescript": "~5.8.2",
"vercel": "~52.0.0"
"eslint-plugin-prettier": "~5.5.6",
"postcss": "~8.5.28",
"prettier": "~3.9.9",
"tailwindcss": "4.3.3",
"type-fest": "~5.10.0",
"typescript": "~6.0.3",
"vercel": "~62.2.0"
},
"packageManager": "yarn@4.13.0"
"packageManager": "yarn@4.18.1"
}
12 changes: 2 additions & 10 deletions templates/base/packages/nextjs/tsconfig.json.template.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,8 @@ const defaultTsConfig = {
},
],
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules"
]
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts"],
"exclude": ["node_modules"]
}

const contents = ({ configOverrides }) => {
Expand Down
13 changes: 6 additions & 7 deletions templates/base/packages/nextjs/utils/scaffold-eth/contract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,9 @@ export type AbiEventInputs<TAbi extends Abi, TEventName extends ExtractAbiEventN
>["inputs"];

export enum ContractCodeStatus {
"LOADING",
"DEPLOYED",
"NOT_FOUND",
LOADING,
DEPLOYED,
NOT_FOUND,
}

type AbiStateMutability = "pure" | "view" | "nonpayable" | "payable";
Expand Down Expand Up @@ -277,10 +277,9 @@ export type EventFilters<
IndexedEventInputs<TContractName, TEventName> extends never
? never
: {
[Key in IsContractDeclarationMissing<
any,
IndexedEventInputs<TContractName, TEventName>["name"]
>]?: AbiParameterToPrimitiveType<Extract<IndexedEventInputs<TContractName, TEventName>, { name: Key }>>;
[
Key in IsContractDeclarationMissing<any, IndexedEventInputs<TContractName, TEventName>["name"]>
]?: AbiParameterToPrimitiveType<Extract<IndexedEventInputs<TContractName, TEventName>, { name: Key }>>;
}
>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const interfaces = chainMetaData
: {};

export const decodeTransactionData = (tx: TransactionWithFunction) => {
if (tx.input.length >= 10 && !tx.input.startsWith("0x60e06040")) {
if (tx.input.length >= 10 && !tx.input.startsWith("0x60806040") && !tx.input.startsWith("0x60e06040")) {
let foundInterface = false;
for (const [, contractAbi] of Object.entries(interfaces)) {
try {
Expand Down
2 changes: 1 addition & 1 deletion templates/solidity-frameworks/hardhat/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@
"hardhat-verify": "yarn hardhat:hardhat-verify"
},
"engines": {
"node": ">=22.10.0"
"node": ">=22.13.0"
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,9 @@
import { defineConfig, globalIgnores } from "eslint/config";
import globals from "globals";
import tsParser from "@typescript-eslint/parser";
import tseslint from "typescript-eslint";
import prettierConfig from "eslint-config-prettier";
import prettierPlugin from "eslint-plugin-prettier";

import path from "node:path";
import { fileURLToPath } from "node:url";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
});

export default defineConfig([
globalIgnores([
"**/artifacts",
Expand All @@ -24,18 +15,16 @@ export default defineConfig([
"**/generated",
"**/*.json",
]),
tseslint.configs.recommended,
prettierConfig,
{
extends: compat.extends("plugin:@typescript-eslint/recommended", "prettier"),

plugins: {
prettier: prettierPlugin,
},
languageOptions: {
globals: {
...globals.node,
},

parser: tsParser,
},

rules: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const defaultConfig = {
hardhat: {
type: "edr-simulated",
forking: {
url: `https://eth-mainnet.alchemyapi.io/v2/\${providerApiKey}`,
url: `https://eth-mainnet.g.alchemy.com/v2/\${providerApiKey}`,
enabled: '$$process.env.MAINNET_FORKING_ENABLED === "true"$$',
},
},
Expand Down
73 changes: 36 additions & 37 deletions templates/solidity-frameworks/hardhat/packages/hardhat/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,46 +23,45 @@
"verify": "tsx scripts/runVerify.ts"
},
"devDependencies": {
"@nomicfoundation/hardhat-ethers": "^4",
"@nomicfoundation/hardhat-ethers-chai-matchers": "^3",
"@nomicfoundation/hardhat-ignition": "^3",
"@nomicfoundation/hardhat-ignition-ethers": "^3",
"@nomicfoundation/hardhat-keystore": "^3",
"@nomicfoundation/hardhat-mocha": "^3",
"@nomicfoundation/hardhat-network-helpers": "^3",
"@nomicfoundation/hardhat-toolbox-mocha-ethers": "^3.0.4",
"@nomicfoundation/hardhat-typechain": "^3",
"@nomicfoundation/hardhat-verify": "^3",
"@nomicfoundation/ignition-core": "^3",
"@rocketh/deploy": "^0.19.7",
"@rocketh/node": "^0.19.7",
"@rocketh/read-execute": "^0.19.3",
"@rocketh/signer": "^0.19",
"@rocketh/verifier": "^0.19.4",
"@types/eslint": "^9.6.1",
"@nomicfoundation/hardhat-ethers": "^4.2.0",
"@nomicfoundation/hardhat-ethers-chai-matchers": "^3.0.11",
"@nomicfoundation/hardhat-ignition": "^3.1.8",
"@nomicfoundation/hardhat-ignition-ethers": "^3.1.6",
"@nomicfoundation/hardhat-keystore": "^3.1.1",
"@nomicfoundation/hardhat-mocha": "^4.0.0",
"@nomicfoundation/hardhat-network-helpers": "^3.0.11",
"@nomicfoundation/hardhat-toolbox-mocha-ethers": "^4.0.0",
"@nomicfoundation/hardhat-typechain": "^3.1.1",
"@nomicfoundation/hardhat-verify": "^3.1.2",
"@nomicfoundation/ignition-core": "^3.1.10",
"@rocketh/deploy": "^0.20.1",
"@rocketh/node": "^0.21.4",
"@rocketh/read-execute": "^0.21.1",
"@rocketh/signer": "^0.19.19",
"@rocketh/verifier": "^0.19.28",
"@types/mocha": "^10.0.10",
"@types/prettier": "^3.0.0",
"@types/qrcode": "^1.5.5",
"@typescript-eslint/eslint-plugin": "^8.27.0",
"@typescript-eslint/parser": "^8.27.0",
"chai": "^5",
"eslint": "^9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-prettier": "^5.2.4",
"ethers": "^6.13.2",
"hardhat": "^3.4.5",
"hardhat-deploy": "^2.0.6",
"mocha": "^11",
"prettier": "^3.5.3",
"prettier-plugin-solidity": "^1.4.1",
"rocketh": "^0.19.7",
"tsx": "^4.21.0",
"typescript": "^5.8.2"
"@types/node": "^22.20.5",
"@types/qrcode": "^1.5.6",
"chai": "^6.3.0",
"eslint": "^10.12.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.6",
"ethers": "^6.17.0",
"globals": "^17.13.0",
"hardhat": "^3.18.1",
"hardhat-deploy": "^2.0.30",
"mocha": "^12.0.3",
"prettier": "^3.9.9",
"prettier-plugin-solidity": "^2.4.1",
"rocketh": "^0.23.1",
"tsx": "^4.23.15",
"typescript": "^6.0.3",
"typescript-eslint": "^8.71.0"
},
"dependencies": {
"@inquirer/password": "^4.0.2",
"@openzeppelin/contracts": "^5.0.2",
"dotenv": "^16.4.5",
"@inquirer/password": "^5.2.3",
"@openzeppelin/contracts": "^5.6.1",
"dotenv": "^18.0.5",
"envfile": "^7.1.0",
"qrcode": "^1.5.4"
}
Expand Down
Loading