You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Plus pending cleanup work in #21 (drop `lib/forge-std`), #22 (README), #23 (CLAUDE.md).
A focused audit pass while the surface area is small and the changes are recent will catch things before downstream consumers (rain.metadata, others) bump the rev.
Test coverage — `is_revert_like`, both ERC-165 checks, the propagation paths, `xor_selectors` branches. Identify any uncovered branches and propose mutation-verifiable tests.
Code quality — leaky abstractions, naming (`is_revert_like` is fine; check for any `Helpers` / `Utils` shapes), commented-out code, build warnings.
Security / correctness — does the ERC-165 probe match the spec exactly under all branches? Are there RPC error variants we should also fold into Ok(false)? Is the wasm dep tree (Drop alloy-ethers-typecast, use upstream alloy directly #19's getrandom workaround) sound?
Hazard surface — what footguns does `Erc165Error::Call` expose? Is `alloy::contract::Error` re-exposed in our public API surface in a way that ties us to alloy's ABI?
`/audit` skill in Claude Code can drive this in passes once #23 lands and CLAUDE.md exists for the audit context.
`rain.erc` has had two non-trivial refactors land back to back:
Plus pending cleanup work in #21 (drop `lib/forge-std`), #22 (README), #23 (CLAUDE.md).
A focused audit pass while the surface area is small and the changes are recent will catch things before downstream consumers (rain.metadata, others) bump the rev.
Coverage to walk
`/audit` skill in Claude Code can drive this in passes once #23 lands and CLAUDE.md exists for the audit context.