Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
7f36661
Support `transient` in `StorageLocation` (#269)
wtdcode May 21, 2025
507cd41
chore: release 0.16.2
mattsse May 21, 2025
61ef8a3
fix: update Tera documentation link in cliff.toml (#270)
VolodymyrBg May 21, 2025
2c90332
Some fields are optional during `"stopAfter":"parsing"` (#271)
wtdcode May 23, 2025
64cf128
chore: clean up error! calls (#273)
DaniPopes May 27, 2025
628b40d
chore: switch to `Prague` hardfork by default (#272)
zerosnacks May 28, 2025
e6cb956
chore: release 0.16.3
mattsse May 28, 2025
7269044
chore: bump solar v0.1.4 (#275)
0xrusowsky May 29, 2025
dda285e
chore: release 0.16.4
klkvr May 29, 2025
4226be4
chore: release 0.17.0
klkvr May 29, 2025
8352a62
chore: release 0.17.0
klkvr May 29, 2025
283899f
chore: release 0.17.0
klkvr May 29, 2025
3e04a0e
chore: add language matcher on `MultiCompilerLanguage` (#276)
zerosnacks Jun 2, 2025
e035bbc
chore: update MSRV policy, bump to `1.87` in `clippy.toml` in line wi…
zerosnacks Jun 2, 2025
9cadfd2
bump to latest version in README
zerosnacks Jun 2, 2025
dabbb0a
chore: release 0.17.1
zerosnacks Jun 2, 2025
33ff5ea
chore: release 0.17.1
zerosnacks Jun 2, 2025
e4a9b04
debt: remove EOF version field (#279)
zerosnacks Jun 5, 2025
22662dd
Add missing node types (#282)
ferranbt Jun 10, 2025
9920c74
fix: implement proper serde handling for unknown AST node types (#280)
mattsse Jun 10, 2025
d4dde10
chore: release 0.17.2
mattsse Jun 10, 2025
daa3ce1
Revert "fix: implement proper serde handling for unknown AST node typ…
mattsse Jun 14, 2025
a15a469
chore: release 0.17.3
mattsse Jun 14, 2025
24dfb58
chore: upstreamed `strip_bytecode_placeholders` from foundry (#287)
Soubhik-10 Jun 26, 2025
6b44ff8
Fix typos in comments and variable names across solc-related modules …
GarmashAlex Jun 26, 2025
98ede42
chore: bump vyper to 0.4.3 which adds support for `prague` (#285)
zerosnacks Jun 30, 2025
5846d3c
chore: release 0.17.4
mattsse Jun 30, 2025
ca26835
chore: bump solar + MSRV (#289)
0xrusowsky Jul 14, 2025
df39e4c
chore: update deps (#290)
zerosnacks Jul 14, 2025
a58445c
bump to 0.18.0
zerosnacks Jul 14, 2025
50b9f0f
chore: release 0.18.0
zerosnacks Jul 14, 2025
5fc80c9
chore: release 0.18.0
zerosnacks Jul 14, 2025
e8a2e02
Remove duplicate assembly check in is_dirty (#292)
Galoretka Jul 23, 2025
4e454b4
chore: add more instrumentation (#293)
DaniPopes Jul 30, 2025
8552ca9
fix: consistent handle of unresolved imports (#294)
grandizzy Jul 31, 2025
910af38
chore: release 0.18.1
DaniPopes Jul 31, 2025
f6e4e6a
fix: allow single sol file remappings (#295)
grandizzy Aug 1, 2025
fea2430
chore: release 0.18.2
mattsse Aug 1, 2025
076c333
chore: update `CODEOWNERS` to improve visibility (#298)
zerosnacks Aug 19, 2025
ab573a0
chore: add @0xrusowsky to `CODEOWNERS` (#299)
zerosnacks Aug 19, 2025
5af6f8a
chore: update deps + fix clippy (#297)
zerosnacks Aug 19, 2025
a30af45
chore: use svm instead of manual svm dir logic (#301)
DaniPopes Aug 25, 2025
a4cec2c
fix(flatten): sort by loc path and loc start (#302)
grandizzy Aug 25, 2025
87ad8eb
chore(deps): bump to 0.18.3 (#303)
zerosnacks Aug 25, 2025
55bb2b2
fix: remove superfluous assertion (#304)
DaniPopes Aug 25, 2025
c3ec28c
chore: release 0.18.4 (#305)
DaniPopes Aug 25, 2025
4d5e52c
feat: add `SourceParser` (#300)
DaniPopes Aug 25, 2025
b28f2f3
chore: release 0.19.0 (#306)
DaniPopes Aug 25, 2025
7638a8d
chore(deps): switch to solar meta crate (#307)
DaniPopes Aug 26, 2025
bd9b7c9
fix: sanitize `stopAfter` (#309)
DaniPopes Aug 29, 2025
e07c391
chore: use FnMut instead of FnOnce + Copy (#310)
DaniPopes Aug 29, 2025
0073f15
refactor: cache/is_dirty impls (#311)
DaniPopes Aug 29, 2025
353e85a
fix: make sources' paths absolute (#312)
DaniPopes Aug 29, 2025
0a1c495
chore: release 0.19.1 (#313)
DaniPopes Aug 29, 2025
51ca0d2
upstream merge through commit 0a1c495 (0.19.1)
cdrappi Sep 12, 2025
ed3a17a
codeowners
cdrappi Sep 12, 2025
067a38b
rustfmt
cdrappi Sep 12, 2025
f699299
accept all of our changes
cdrappi Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @sfyll
* @cdrappi
16 changes: 8 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
rust: ["stable", "1.86"]
rust: ["stable", "1.88"]
flags: ["", "--all-features"]
exclude:
# Skip because some features have higher MSRV.
- rust: "1.86" # MSRV
- rust: "1.88" # MSRV
flags: "--all-features"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
Expand All @@ -49,7 +49,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
Expand All @@ -60,7 +60,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
Expand All @@ -73,7 +73,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
Expand All @@ -88,7 +88,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
with:
Expand All @@ -101,7 +101,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
Expand Down
171 changes: 171 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,183 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.19.1](https://github.com/foundry-rs/compilers/releases/tag/v0.19.1) - 2025-08-29

### Bug Fixes

- Make sources' paths absolute ([#312](https://github.com/foundry-rs/compilers/issues/312))
- Sanitize `stopAfter` ([#309](https://github.com/foundry-rs/compilers/issues/309))
- Remove superfluous assertion ([#304](https://github.com/foundry-rs/compilers/issues/304))
- [flatten] Sort by loc path and loc start ([#302](https://github.com/foundry-rs/compilers/issues/302))

### Dependencies

- [deps] Switch to solar meta crate ([#307](https://github.com/foundry-rs/compilers/issues/307))
- [deps] Bump to 0.18.3 ([#303](https://github.com/foundry-rs/compilers/issues/303))
- Update deps + fix clippy ([#297](https://github.com/foundry-rs/compilers/issues/297))

### Features

- Add `SourceParser` ([#300](https://github.com/foundry-rs/compilers/issues/300))

### Miscellaneous Tasks

- Use FnMut instead of FnOnce + Copy ([#310](https://github.com/foundry-rs/compilers/issues/310))
- Release 0.19.0 ([#306](https://github.com/foundry-rs/compilers/issues/306))
- Release 0.18.4 ([#305](https://github.com/foundry-rs/compilers/issues/305))
- Use svm instead of manual svm dir logic ([#301](https://github.com/foundry-rs/compilers/issues/301))
- Add @0xrusowsky to `CODEOWNERS` ([#299](https://github.com/foundry-rs/compilers/issues/299))
- Update `CODEOWNERS` to improve visibility ([#298](https://github.com/foundry-rs/compilers/issues/298))

### Refactor

- Cache/is_dirty impls ([#311](https://github.com/foundry-rs/compilers/issues/311))

## [0.18.2](https://github.com/foundry-rs/compilers/releases/tag/v0.18.2) - 2025-08-01

### Bug Fixes

- Allow single sol file remappings ([#295](https://github.com/foundry-rs/compilers/issues/295))

### Miscellaneous Tasks

- Release 0.18.2

## [0.18.1](https://github.com/foundry-rs/compilers/releases/tag/v0.18.1) - 2025-07-31

### Bug Fixes

- Consistent handle of unresolved imports ([#294](https://github.com/foundry-rs/compilers/issues/294))

### Miscellaneous Tasks

- Release 0.18.1
- Add more instrumentation ([#293](https://github.com/foundry-rs/compilers/issues/293))

### Other

- Remove duplicate assembly check in is_dirty ([#292](https://github.com/foundry-rs/compilers/issues/292))

## [0.18.0](https://github.com/foundry-rs/compilers/releases/tag/v0.18.0) - 2025-07-14

### Dependencies

- Bump to 0.18.0
- Update deps ([#290](https://github.com/foundry-rs/compilers/issues/290))
- Bump solar + MSRV ([#289](https://github.com/foundry-rs/compilers/issues/289))

### Miscellaneous Tasks

- Release 0.18.0
- Release 0.18.0

## [0.17.4](https://github.com/foundry-rs/compilers/releases/tag/v0.17.4) - 2025-06-30

### Bug Fixes

- Fix typos in comments and variable names across solc-related modules ([#286](https://github.com/foundry-rs/compilers/issues/286))

### Dependencies

- Bump vyper to 0.4.3 which adds support for `prague` ([#285](https://github.com/foundry-rs/compilers/issues/285))

### Miscellaneous Tasks

- Release 0.17.4
- Upstreamed `strip_bytecode_placeholders` from foundry ([#287](https://github.com/foundry-rs/compilers/issues/287))

## [0.17.3](https://github.com/foundry-rs/compilers/releases/tag/v0.17.3) - 2025-06-14

### Miscellaneous Tasks

- Release 0.17.3

### Other

- Revert "fix: implement proper serde handling for unknown AST node typ… ([#284](https://github.com/foundry-rs/compilers/issues/284))

## [0.17.2](https://github.com/foundry-rs/compilers/releases/tag/v0.17.2) - 2025-06-10

### Bug Fixes

- Implement proper serde handling for unknown AST node types ([#280](https://github.com/foundry-rs/compilers/issues/280))

### Miscellaneous Tasks

- Release 0.17.2

### Other

- Add missing node types ([#282](https://github.com/foundry-rs/compilers/issues/282))
- Remove EOF version field ([#279](https://github.com/foundry-rs/compilers/issues/279))

## [0.17.1](https://github.com/foundry-rs/compilers/releases/tag/v0.17.1) - 2025-06-02

### Dependencies

- Bump to latest version in README
- Update MSRV policy, bump to `1.87` in `clippy.toml` in line with `CI` and `Cargo.toml` ([#277](https://github.com/foundry-rs/compilers/issues/277))

### Miscellaneous Tasks

- Release 0.17.1
- Release 0.17.1
- Add language matcher on `MultiCompilerLanguage` ([#276](https://github.com/foundry-rs/compilers/issues/276))

## [0.17.0](https://github.com/foundry-rs/compilers/releases/tag/v0.17.0) - 2025-05-29

### Miscellaneous Tasks

- Release 0.17.0
- Release 0.17.0
- Release 0.17.0

## [0.16.4](https://github.com/foundry-rs/compilers/releases/tag/v0.16.4) - 2025-05-29

### Dependencies

- Bump solar v0.1.4 ([#275](https://github.com/foundry-rs/compilers/issues/275))

### Miscellaneous Tasks

- Release 0.16.4

## [0.16.3](https://github.com/foundry-rs/compilers/releases/tag/v0.16.3) - 2025-05-28

### Bug Fixes

- Update Tera documentation link in cliff.toml ([#270](https://github.com/foundry-rs/compilers/issues/270))

### Miscellaneous Tasks

- Release 0.16.3
- Switch to `Prague` hardfork by default ([#272](https://github.com/foundry-rs/compilers/issues/272))
- Clean up error! calls ([#273](https://github.com/foundry-rs/compilers/issues/273))

### Other

- Some fields are optional during `"stopAfter":"parsing"` ([#271](https://github.com/foundry-rs/compilers/issues/271))

## [0.16.2](https://github.com/foundry-rs/compilers/releases/tag/v0.16.2) - 2025-05-21

### Miscellaneous Tasks

- Release 0.16.2

### Other

- Support `transient` in `StorageLocation` ([#269](https://github.com/foundry-rs/compilers/issues/269))

## [0.16.1](https://github.com/foundry-rs/compilers/releases/tag/v0.16.1) - 2025-05-16

### Bug Fixes

- Is_dirty to use additional_files ([#268](https://github.com/foundry-rs/compilers/issues/268))

### Miscellaneous Tasks

- Release 0.16.1

## [0.16.0](https://github.com/foundry-rs/compilers/releases/tag/v0.16.0) - 2025-05-12

### Dependencies
Expand Down
39 changes: 16 additions & 23 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ resolver = "2"

[workspace.package]
authors = ["Foundry Maintainers", "Seismic Systems"]
version = "0.16.1"
rust-version = "1.86"
version = "0.19.1"
rust-version = "1.88"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/SeismicSystems/seismic-compilers"
Expand Down Expand Up @@ -36,44 +36,37 @@ redundant-lifetimes = "warn"
all = "warn"

[workspace.dependencies]
foundry-compilers = { path = "crates/compilers", version = "0.16.1" }
foundry-compilers-artifacts = { path = "crates/artifacts/artifacts", version = "0.16.1" }
foundry-compilers-artifacts-solc = { path = "crates/artifacts/solc", version = "0.16.1" }
foundry-compilers-artifacts-vyper = { path = "crates/artifacts/vyper", version = "0.16.1" }
foundry-compilers-core = { path = "crates/core", version = "0.16.1" }
foundry-compilers = { path = "crates/compilers", version = "0.19.1" }
foundry-compilers-artifacts = { path = "crates/artifacts/artifacts", version = "0.19.1" }
foundry-compilers-artifacts-solc = { path = "crates/artifacts/solc", version = "0.19.1" }
foundry-compilers-artifacts-vyper = { path = "crates/artifacts/vyper", version = "0.19.1" }
foundry-compilers-core = { path = "crates/core", version = "0.19.1" }

alloy-json-abi = { version = "1.0", features = ["serde_json"] }
alloy-primitives = { version = "1.0", features = ["serde", "rand"] }
alloy-json-abi = { version = "1.3", features = ["serde_json"] }
alloy-primitives = { version = "1.3", features = ["serde", "rand"] }
cfg-if = "1.0"
dunce = "1.0"
memmap2 = "0.9"
path-slash = "0.2"
rayon = "1.8"
regex = "1.10"
rayon = "1.11"
regex = "1.11"
semver = { version = "1.0", features = ["serde"] }
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1.0"
similar-asserts = "1"
solar-parse = { version = "=0.1.3", default-features = false }
solar-sema = { version = "=0.1.3", default-features = false }
solar = { package = "solar-compiler", version = "=0.1.6", default-features = false }
svm = { package = "svm-rs", version = "0.5", default-features = false }
tempfile = "3.9"
tempfile = "3.20"
thiserror = "2"
tracing = "0.1"
walkdir = "2.5"
yansi = "1.0"

# async
futures-util = "0.3"
tokio = { version = "1.35", features = ["rt-multi-thread"] }
tokio = { version = "1.47", features = ["rt-multi-thread"] }

snapbox = "0.6.9"
snapbox = "0.6.21"

[patch.crates-io]
solar-sema = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
solar-parse = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
solar-ast = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
solar-data-structures = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
solar-interface = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
solar-config = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
solar-macros = { git = "https://github.com/paradigmxyz/solar.git", rev = "1887ab5" }
# solar = { package = "solar-compiler", git = "https://github.com/paradigmxyz/solar", branch = "main" }
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ Seismic's forks of the [reth](https://github.com/paradigmxyz/reth) stack all hav
- `main` or `master`: this branch only consists of commits from the upstream repository. However it will rarely be up-to-date with upstream. The latest commit from this branch reflects how recently Seismic has merged in upstream commits to the seismic branch
- `seismic`: the default and production branch for these repositories. This includes all Seismic-specific code essential to make our network run

## Overview

# Foundry Compilers

| [Docs](https://docs.rs/foundry-compilers/latest/foundry_compilers/) |

Expand All @@ -43,9 +44,7 @@ When updating this, also update:
- .github/workflows/ci.yml
-->

Foundry Compilers will keep a rolling MSRV (minimum supported rust version) policy of **at
least** 6 months. When increasing the MSRV, the new Rust version must have been
released at least six months ago. The current MSRV is 1.86.0.
The current MSRV (minimum supported rust version) is 1.88.

Note that the MSRV is not increased automatically, and only as part of a minor
release.
Expand All @@ -65,7 +64,7 @@ To install, simply add `foundry-compilers` to your cargo dependencies.

```toml
[dependencies]
foundry-compilers = "0.10.1"
foundry-compilers = "0.18.3"
```

Example usage:
Expand Down
4 changes: 2 additions & 2 deletions benches/read_all.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ fn prepare_contracts(root: &Path, num: usize) -> Vec<PathBuf> {
let f = File::create(&path).unwrap();
let mut writer = BufWriter::new(f);

let mut rng = rand::thread_rng();
let mut rng = rand::rng();

// let's assume a solidity file is between 2kb and 16kb
let n: usize = rng.gen_range(4..17);
let n: usize = rng.random_range(4..17);
let s: String = rng.sample_iter(&Alphanumeric).take(n * 1024).map(char::from).collect();
writer.write_all(s.as_bytes()).unwrap();
writer.flush().unwrap();
Expand Down
2 changes: 1 addition & 1 deletion cliff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n
"""
# https://tera.netlify.app/docs/#introduction
# https://keats.github.io/tera/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}](https://github.com/foundry-rs/compilers/releases/tag/v{{ version | trim_start_matches(pat="v") }}) - {{ timestamp | date(format="%Y-%m-%d") }}
Expand Down
2 changes: 1 addition & 1 deletion clippy.toml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
msrv = "1.86"
msrv = "1.88"
2 changes: 1 addition & 1 deletion crates/artifacts/solc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ alloy-json-abi.workspace = true
alloy-primitives.workspace = true
semver.workspace = true
serde_json.workspace = true
serde_repr = "0.1"
serde.workspace = true
thiserror.workspace = true
tracing.workspace = true
yansi.workspace = true
regex.workspace = true

# async
tokio = { workspace = true, optional = true, features = ["fs"] }
Expand Down
3 changes: 3 additions & 0 deletions crates/artifacts/solc/src/ast/lowfidelity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,9 @@ pub enum NodeType {
ParameterList,
TryCatchClause,
ModifierInvocation,
UserDefinedTypeName,
ArrayTypeName,
Mapping,

/// An unknown AST node type.
Other(String),
Expand Down
Loading
Loading