Summary
When seismic = true, ssolc is resolved from PATH and any solc version specified in foundry.toml is ignored with a warning. We should support version selection so users can pin specific ssolc versions (e.g. via a version manager or multiple installed binaries).
Current behavior
If a user sets solc = "0.8.31" in foundry.toml, they get:
Warning: ssolc does not support version selection (requested 0.8.31), using `ssolc`
Code locations to change
crates/config/src/lib.rs — ensure_solc()
SolcReq::Version(_) => {
// TODO: support using different ssolc versions
// For now, ignore the version request — use ssolc from PATH
let ssolc_path = self.get_default_ssolc_path()?;
This is where version-aware resolution would go — e.g. looking up ssolc-0.8.31 in PATH or a managed install directory.
crates/config/src/lib.rs — get_default_ssolc_path()
pub fn get_default_ssolc_path(&self) -> Result<PathBuf, SolcError> {
let path = PathBuf::from("ssolc");
Would need a version parameter to resolve e.g. ssolc-0.8.31 or a versioned install path.
crates/test-utils/src/util.rs — test template config
// TODO: set to SolcReq::Version when ssolc supports version selection
solc: None,
Re-enable version pinning in the test template once supported.
Search
All relevant TODOs can be found by searching for:
grep -r "TODO.*ssolc.*version" crates/
Summary
When
seismic = true, ssolc is resolved from PATH and anysolcversion specified infoundry.tomlis ignored with a warning. We should support version selection so users can pin specific ssolc versions (e.g. via a version manager or multiple installed binaries).Current behavior
If a user sets
solc = "0.8.31"infoundry.toml, they get:Code locations to change
crates/config/src/lib.rs—ensure_solc()This is where version-aware resolution would go — e.g. looking up
ssolc-0.8.31in PATH or a managed install directory.crates/config/src/lib.rs—get_default_ssolc_path()Would need a version parameter to resolve e.g.
ssolc-0.8.31or a versioned install path.crates/test-utils/src/util.rs— test template configRe-enable version pinning in the test template once supported.
Search
All relevant TODOs can be found by searching for: