Skip to content

feat: Add Parmigiana testnet support for fuzz tests#95

Open
init4samwise wants to merge 4 commits intomainfrom
samwise/ENG-1861-parmigiana-fuzz-tests
Open

feat: Add Parmigiana testnet support for fuzz tests#95
init4samwise wants to merge 4 commits intomainfrom
samwise/ENG-1861-parmigiana-fuzz-tests

Conversation

@init4samwise
Copy link

@init4samwise init4samwise commented Feb 14, 2026

Summary

Migrates Solidity fuzz tests to support the Parmigiana testnet.

Changes

  • SignetStd.sol: Added ParmigianaConstants library with Parmigiana contract addresses (chain ID 88888). Updated setupStd() to auto-configure based on detected chain ID.
  • foundry.toml: Added fuzz-rollup and fuzz-host profiles for running fuzz tests against specific test directories.
  • CI workflow: Added fuzz-rollup and fuzz-host jobs using existing RPC endpoint variables.

Notes

  • Uses existing RU_RPC_URL and HOST_RPC_URL repository variables (no new config required)
  • When running on host chain (3151908), defaults to Parmigiana constants as the current testnet

Closes ENG-1861

- Add ParmigianaConstants library with Parmigiana contract addresses
- Update setupStd() to auto-configure based on chain ID
- Add fuzz-rollup and fuzz-host profiles to foundry.toml
- Add Parmigiana fuzz test jobs to CI workflow

Closes ENG-1861
Update fork-rollup and fork-host jobs to use PARMIGIANA_RU_RPC_URL and
PARMIGIANA_HOST_RPC_URL instead of deprecated pecorino endpoints.
@Evalir Evalir requested review from Evalir and prestwich March 5, 2026 15:12
Copy link
Member

@prestwich prestwich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Claude Code]

Verified that all Parmigiana and Pecorino constants in SignetStd.sol match the canonical values in the SDK (signet-constants crate):

  • Parmigiana: All 15 constants (chain IDs, contract addresses, token addresses) match crates/constants/src/chains/parmigiana.rs
  • Pecorino: All 15 constants match crates/constants/src/chains/pecorino.rs

Minor note: a few host token addresses (USDC, USDT, WBTC) have different EIP-55 checksum casing between Solidity and Rust, but the underlying hex values are identical.

@init4samwise
Copy link
Author

Re: "why is this changing?" on .github/workflows/test.yml:

The variable name changed from RU_RPC_URL to PARMIGIANA_RU_RPC_URL as part of the Pecorino → Parmigiana migration.

The old generic names (RU_RPC_URL, HOST_RPC_URL) were ambiguous about which testnet they pointed to. The new naming with chain-specific prefixes (PARMIGIANA_*, PECORINO_*) makes it explicit which network the CI is forking against.

@rswanson
Copy link
Member

rswanson commented Mar 7, 2026

don't change variable names randomly. the names are generic so they can be configured across testnets via the github environment

The existing fork-rollup and fork-host jobs should use the generic
RU_RPC_URL and HOST_RPC_URL environment variables, which are configured
per-environment via GitHub environments. The new parmigiana-fuzz-*
jobs correctly use the PARMIGIANA_ prefixed vars since they're
specifically for Parmigiana testnet fuzz testing.
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.

3 participants