★ Reinitializable implementation (no _disableInitializers)
Venus Protocol's assessment for RD-F-143 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
Isolated Pools VToken.sol: _disableInitializers() called in constructor at line 115 (confirmed). Core Pool VToken.sol (old Compound v2 delegator pattern): uses manual require(accrualBlockNumber == 0 && borrowIndex == 0) guard — not OZ _disableInitializers(). VBep20Delegate.sol: empty constructor. Yellow: partial — isolated pools use correct pattern; legacy Core Pool uses manual guard (functional but not OZ canonical).
Sources #
- GitHubIsolated Pools VToken — _disableInitializers() at constructor line 115isolated-pools/VToken.sol constructorretrieved 2026-04-28
- VBep20Delegate — empty constructor; no _disableInitializers()VBep20Delegate.sol empty constructorretrieved 2026-04-28
Methodology #
Determine whether the implementation contract does not call `_disableInitializers()` in its constructor, leaving re-initialization possible.
See the full factor methodology and distribution across all protocols →