From 01188e1223b543d82ba92dba6e190900bd38f180 Mon Sep 17 00:00:00 2001 From: David Meister Date: Tue, 18 Aug 2026 15:35:24 +0000 Subject: [PATCH] Move foundry's compiler settings back under [profile.default] TOML assigns a key to the header above it. `solc`, `evm_version`, `optimizer`, `optimizer_runs`, `bytecode_hash` and `cbor_metadata` sat below `[soldeer]`, so they were soldeer config and forge fell back to its own defaults for all six. All of foundry's headers now precede `[dependencies]` and `[soldeer]`, so no foundry key can be captured by a soldeer header. `[fuzz]` moves with them; it was already being read, since foundry accepts it at the root wherever it sits. Co-Authored-By: Claude Opus 5 (1M context) --- foundry.toml | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/foundry.toml b/foundry.toml index fc73de2..9884190 100644 --- a/foundry.toml +++ b/foundry.toml @@ -6,20 +6,18 @@ name = "rain-math-binary" version = "0.1.5" +# TOML assigns every key to the header above it, so all of foundry's keys sit +# under foundry's headers, ahead of the `[dependencies]` and `[soldeer]` +# sections that belong to soldeer. A key that drifts below one of those headers +# becomes soldeer config and foundry silently falls back to its own default. +# See more config options https://github.com/foundry-rs/foundry/tree/master/config [profile.default] src = 'src' out = 'out' libs = ['dependencies'] -[dependencies] -forge-std = "1.16.1" - -[soldeer] -recursive_deps = false - -# See more config options https://github.com/foundry-rs/foundry/tree/master/config - solc = "0.8.25" +evm_version = "cancun" # Try to make sure the optimizer doesn't touch the output in a way that can break # source maps for debugging. @@ -28,14 +26,19 @@ solc = "0.8.25" # optimizer_runs = 0 # optimizer_steps = 0 -# These settings should be used for snapshots +# These settings are used for every build, including snapshots. optimizer = true optimizer_runs = 1000000 +# No metadata hash in the bytecode, so a build is reproducible byte for byte. bytecode_hash = "none" cbor_metadata = false -evm_version = "cancun" - [fuzz] runs = 2048 + +[dependencies] +forge-std = "1.16.1" + +[soldeer] +recursive_deps = false