Skip to content

Remove the Hardhat runtime - #3000

Open
clement-ux wants to merge 1 commit into
chore/migrate-local-node-to-anvilfrom
chore/remove-hardhat-runtime
Open

Remove the Hardhat runtime#3000
clement-ux wants to merge 1 commit into
chore/migrate-local-node-to-anvilfrom
chore/remove-hardhat-runtime

Conversation

@clement-ux

@clement-ux clement-ux commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Plain-English summary

The previous layers have replaced both active reasons for keeping Hardhat:

  1. Introduce standalone ops CLI #2998 replaces the Hardhat command launcher with pnpm ops;
  2. Migrate local forks to Anvil #2999 replaces the Hardhat local/forked node with Anvil.

This PR removes the now-unused Hardhat packages, configuration, wrappers, and compatibility code. It is intentionally the last step: replacement behavior is introduced and tested before the old runtime is deleted.

Before and after

Before this stack:
  ops commands → Hardhat
  local forks  → Hardhat node

After this PR:
  ops commands → standalone TypeScript CLI
  local forks  → Anvil
  contracts    → Foundry (unchanged by this stack)

What changes in this PR

  • remove Hardhat packages, configuration, node wrapper, and runtime helpers;
  • replace the temporary registration shim with a small local task / subtask registry;
  • remove fallback Hardhat RPC namespaces; Anvil is now the only local-node API;
  • rename signer and descriptor tooling to runtime-neutral names;
  • update active documentation, runlogs, fixtures, skills, and comments;
  • remove the stale Slither finding for the deleted dependency console.

What must remain true

  • all 75 public ops commands remain in the catalogue;
  • all 74 registry-backed commands have live handlers; accounts remains a direct standalone command;
  • mainnet forks remain distinguishable from live mainnet through FORK=true;
  • the active runtime has no Hardhat dependency;
  • no tracked content or filename contains hardhat.

Stack and merge order

Base: #2999 (chore/migrate-local-node-to-anvil)

  1. Remove obsolete historical scripts and artifacts #2997 — remove obsolete historical scripts and artifacts
  2. Introduce standalone ops CLI #2998 — introduce standalone ops CLI
  3. Migrate local forks to Anvil #2999 — migrate local forks to Anvil
  4. Remove the Hardhat runtime #3000 — remove the Hardhat runtime (this PR)

Merge in cascade: #3000#2999#2998#2997master. Do not merge this PR directly into master.

What to review

Please focus on completeness rather than replacement behavior, which is introduced in the parent layers:

  • is every active Hardhat entry point now replaced before being removed?
  • are any package, config, helper, filename, or documentation references left behind?
  • do command registration, signer handling, and network detection still preserve the stated invariants?

Validation

  • pnpm install --frozen-lockfile
  • pnpm test:tasks — 39 passing
  • pnpm test:anvil — 3 passing
  • pnpm test:brownie — 4 passing
  • pnpm test:scripts — 66 passing
  • pnpm test:layouts — 11 passing
  • pnpm typecheck
  • pnpm lint:js, pnpm lint:ts, pnpm prettier:check
  • forge build contracts/ -j 1
  • full GitHub CI passes
  • verified that the full stack produces exactly the same final tree as the previous Remove stale Hardhat tooling and scripts #2993Remove Hardhat completely #2995 stack on current master

@clement-ux
clement-ux force-pushed the chore/remove-hardhat-runtime branch from 7060c25 to bd5133f Compare September 1, 2026 08:04
@clement-ux
clement-ux force-pushed the chore/remove-hardhat-runtime branch from bd5133f to 97a06f0 Compare September 1, 2026 08:25
@clement-ux clement-ux self-assigned this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant