chore(ci): upgrade forge to 1.7.1 - #290
Conversation
Assisted-by: Claude:claude-sonnet-4-6
|
@wjmelements there's also |
| [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 |
There was a problem hiding this comment.
apparently 1.7.1 supports inline suppression now so we can remove this? forge-lint: disable-next-line(...)
| "mixed-case-function", | ||
| "asm-keccak256" # flagging on a view function; revisit when forge supports inline suppression | ||
| "multi-contract-file", | ||
| "unsafe-typecast", |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
Opposed to fixing anything in these PRs because I don't want to downgrade to 1.3.5 to work on other tasks.
There was a problem hiding this comment.
github.com/foundry-rs/foundry/issues/13255
rvagg
left a comment
There was a problem hiding this comment.
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
Updated forge from 1.3.5 to 1.7.1. Pulls
fvm-soliditydep which also did this (filecoin-project/fvm-solidity#20). Ranforge fmtwhich had a behavioral change. Excluded newly failing lints exceptunwrapped-modifier-logic, which was easy to fix.