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
fix(audit-low): code-correctness sweep — 10 LOW findings in one pass
- #36: OracleRegistry.setOracleBulk gains MAX_BULK_LENGTH = 256 cap +
BulkLengthExceeded(length, max) error.
- #37 / #38 / #155: OracleUnifiedDeployer + MultiOracleUnifiedDeployer
gain symmetric zero-address guards on every LibProdDeploy
sub-deployer constant with typed errors (Pyth/Morpho/Passthrough on
the single-feed deployer; Morpho/Passthrough extended onto the
multi-feed deployer alongside the existing MultiPyth guard).
- #40: Deployment(...) event params indexed across all 5
*BeaconSetDeployer + both *UnifiedDeployer.
- #41 / #179 / #180: MultiPythOracleAdapter._setFeeds validates all
entries before mutating, writes feedCount last, and internalises
MAX_FEEDS / non-empty checks so initialize and setFeeds become
thin wrappers.
- #43: BasePythOracleAdapter.latestRoundData encodes
uint80(uint64(publishTime)) into roundId and answeredInRound
for Chainlink monotonic-id convention.
- #148: BasePythOracleAdapter enforces the "immutable after
initialize" invariant on CorporateActionPauseConfig with a
one-shot flag + CorporateActionConfigAlreadyInitialized error.
- #149: CorporateActionPauseConfigSet event emitted from
_setCorporateActionPauseConfig so indexers observe the install.
- #173: Deployment event param renamed `sender` → `caller` across
all 5 BeaconSetDeployer + both UnifiedDeployer (NatSpec @param
describes it as the direct on-chain caller).
All behaviour changes have a test that fails against pre-fix and
passes after. forge build / fmt / slither / REUSE green. Test count
delta: 214 → 231 (+17).
Closes#36, #37, #38, #40, #41, #43, #148, #149, #155, #173, #179, #180.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0 commit comments