Skip to content

feat: merge-train/spartan#24528

Merged
AztecBot merged 7 commits into
nextfrom
merge-train/spartan
Jul 6, 2026
Merged

feat: merge-train/spartan#24528
AztecBot merged 7 commits into
nextfrom
merge-train/spartan

Conversation

@AztecBot

@AztecBot AztecBot commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

BEGIN_COMMIT_OVERRIDE
refactor: move L1 network defaults source of truth to l1-contracts (#24434)
feat: expose prover node RPC (#24531)
chore: update staging api keys (#24533)
chore: roll pods only when necessary (#24540)
fix: cors (#24544)
END_COMMIT_OVERRIDE

…24434)

## Summary

Prep for the foundation / node / fairies repo split: make `l1-contracts`
own the canonical L1 contract configuration defaults instead of deriving
them from `spartan/environments/network-defaults.yml`. The new source of
truth is `l1-contracts/scripts/network-defaults.json`, published via
`@aztec/l1-artifacts` and consumed directly by both the Solidity deploy
scripts and `@aztec/ethereum`. This breaks the dependency to `spartan <-
l1-contracts`.

Worth noting
- The defaults in `@aztec/ethereum` read from the JSON in
`@aztec/l1-artifacts` and NOT from the yml files.
- The yml files are for kubernetes deployment and are separately
maintained.
- The local network config stays the same. The ultimate fallback is to
the defaults in `@aztec/ethereum` which as mentioned before now come
from the JSON.

## Changes

- Add `l1-contracts/scripts/network-defaults.json` as the committed,
canonical set of L1 contract defaults. This replaces the gitignored
`l1-contracts/generated/default.json` that used to be generated from the
yaml at bootstrap. It also adds the parameters `RollupConfiguration.sol`
reads that were previously only defaulted in Solidity
(`AZTEC_SLASHING_QUORUM`, `AZTEC_ENTRY_QUEUE_*`).
- Publish the JSON through `@aztec/l1-artifacts` (new package export +
copied into the bundled foundry subtree by `copy-foundry-artifacts.sh`).
- `@aztec/ethereum`'s config now imports the JSON from
`@aztec/l1-artifacts` directly (`import … with { type: 'json' }`).
Deleted the generated `l1-contracts-defaults.ts` and its generator
(`scripts/generate.sh`), and dropped `ethereum` from the yarn-project
bootstrap generate step.
- `l1-contracts/scripts/load_network_defaults.sh` now reads the JSON —
network-agnostic, no network argument, no yaml. `spartan`'s
`deploy_rollup_upgrade.sh` switches to spartan's own network-aware yaml
loader for its per-network needs.
- `foundry.toml` fs_permissions and the deploy `.t.sol` scripts read
from `scripts/network-defaults.json`.
- The `l1-contracts` section of `network-defaults.yml` is now a
hand-synced mirror of the JSON (it still feeds the `slasher` / `cli`
generators and the `networks` presets). Docs updated:
`spartan/CLAUDE.md`, the yaml header, and the governance rollup-upgrade
tutorial.
- `RollupConfiguration.sol` now reads parameters via
`vm.envUint/envBool` (required) instead of `vm.envOr` (silent Solidity
fallback). Consequently the deploy-script tests
(`DeployAztecL1Contracts.t.sol`, `DeployRollupForUpgrade.t.sol`) now
forward those env vars from the JSON in `setUp()`.

## Behaviour change in l1-contracts tests

The tests now use the values in the network-agnostic JSON and therefore
do NOT use the same values as before (devnet).

## Testing

- `l1-contracts`: `forge test` passes for both deploy suites —
`DeployAztecL1ContractsTest::test_SmokeTest` and
`DeployRollupForUpgradeTest::test_DeployThenUpgrade`.
- `@aztec/ethereum`: builds cleanly; `DefaultL1ContractsConfig` loads
from the JSON at runtime with exact `bigint` threshold values (no
precision loss).

Closes
https://linear.app/aztec-labs/issue/A-1358/decouple-spartan-network-configuration-and-l1-contracts

@ludamad ludamad left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Auto-approved

@AztecBot
AztecBot added this pull request to the merge queue Jul 6, 2026
@AztecBot

AztecBot commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

Merged via the queue into next with commit c86bc85 Jul 6, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants