Skip to content

chore(ci): upgrade forge to 1.7.1 - #290

Open
wjmelements wants to merge 1 commit into
mainfrom
chore/forge-1.7.1-lint-ci
Open

chore(ci): upgrade forge to 1.7.1#290
wjmelements wants to merge 1 commit into
mainfrom
chore/forge-1.7.1-lint-ci

Conversation

@wjmelements

Copy link
Copy Markdown
Contributor

Updated forge from 1.3.5 to 1.7.1. Pulls fvm-solidity dep which also did this (filecoin-project/fvm-solidity#20). Ran forge fmt which had a behavioral change. Excluded newly failing lints except unwrapped-modifier-logic, which was easy to fix.

Assisted-by: Claude:claude-sonnet-4-6
@wjmelements
wjmelements requested a review from rvagg July 27, 2026 20:47
@FilOzzy FilOzzy added this to FOC Jul 27, 2026
@github-project-automation github-project-automation Bot moved this to 📌 Triage in FOC Jul 27, 2026
@rvagg

rvagg commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

@wjmelements there's also makefile.yml and publish-abis.yml which we've stuck on nightly for some reason and probably should change to be consistent.

Comment thread foundry.toml
[profile.default.lint]
severity = ["high", "med", "low", "info", "gas", "code-size"]
exclude_lints = [
"asm-keccak256", # flagging on a view function; revisit when forge supports inline suppression

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

apparently 1.7.1 supports inline suppression now so we can remove this? forge-lint: disable-next-line(...)

Comment thread foundry.toml
"mixed-case-function",
"asm-keccak256" # flagging on a view function; revisit when forge supports inline suppression
"multi-contract-file",
"unsafe-typecast",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sol tells me that this is hiding a couple of valuable things:

  • PDPVerifier.updateProofFee(uint256) silently narrows to uint96. A value above type(uint96).max gets truncated, while FeeUpdateProposed emits the original value.
  • FilecoinWarmStorageService.topUpLifecycleReserve(uint256 amount) similarly narrows caller-controlled amount to uint96.

In practice both of these are exremely unlikely to ever hit those bounds (!) but for completeness maybe we should just add some guards for these and then inline suppression wherever else it gets caught? What do you think?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Opposed to fixing anything in these PRs because I don't want to downgrade to 1.3.5 to work on other tasks.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@rvagg rvagg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

approving pending removal of the comment in foundry.toml and opening an issue to remove unsafe-typecast as a separate batch of work for someone

@github-project-automation github-project-automation Bot moved this from 📌 Triage to ✔️ Approved by reviewer in FOC Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✔️ Approved by reviewer
Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants