Conversation
eaeed88 to
90a83e7
Compare
4f72b76 to
67711a7
Compare
4b9588c to
6a07ec6
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 73e58ee102
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let base = sanitize_filename(contract_name); | ||
| let deploy_path = out_dir.join(format!("{base}.bin")); | ||
| let runtime_path = out_dir.join(format!("{base}.runtime.bin")); | ||
| fs::write(deploy_path.as_std_path(), format!("{bytecode}\n")) |
There was a problem hiding this comment.
Detect local artifact filename collisions before writing
write_artifacts derives output filenames from sanitize_filename(contract_name) and writes immediately, but non-workspace builds never preflight for collisions. This can silently overwrite artifacts when two contracts map to the same filename (for example Foo vs foo on case-insensitive filesystems like default macOS, or different names that sanitize identically), while still printing successful Wrote ... lines, leaving users with incomplete/corrupted build outputs.
Useful? React with 👍 / 👎.
This change introduces a
fe buildcommand for compiling Fe contracts to EVM bytecode. It supports two backends: Sonatina (default, no solc needed) and a Yul backend that invokes solc. You can target a standalone .fe file, an ingot directory, a workspace root, or a workspace member by name; optionally filter to a single contract; choose optimization level; and control the output directory.Here is a comprehensive writeup on the current CLI behavior: https://github.com/g-r-a-n-t/fe/blob/73e58ee102a18d25bd2d65aca25e4ce31ed7435a/CLI.md