Skip to content

chore: introduced check for emitting event correctly#404

Merged
iamsahu merged 12 commits intomainfrom
fix/wlseth-middle-ground
Apr 9, 2026
Merged

chore: introduced check for emitting event correctly#404
iamsahu merged 12 commits intomainfrom
fix/wlseth-middle-ground

Conversation

@iamsahu
Copy link
Copy Markdown
Contributor

@iamsahu iamsahu commented Apr 8, 2026

Description

This pull request introduces important fixes and improvements to the WLSETHV1 contract and its tests, primarily focusing on correct event emission and allowance handling during transfers, especially in the context of rebasing and edge cases where the underlying value does not map to shares.

Core contract fixes and improvements:

  • Transfer and Allowance Handling:

    • The transfer and transferFrom functions now properly return true on success, and transferFrom is protected against reentrancy. Allowance checks and spending are corrected to ensure atomicity and proper error handling.
    • The internal _spendAllowance method now requires the current allowance to be passed in, reducing redundant storage reads and improving clarity.
  • Event Emission and Edge Case Handling:

    • The _transfer function now emits a Transfer event with the correct underlying value. If the value to shares conversion yields zero (i.e., the transfer amount is too small), a Transfer event with value 0 is emitted, and balances remain unchanged.

Testing enhancements:

  • Comprehensive Event Tests:
    • Added a suite of tests to ensure that Transfer events always emit the correct underlying value after rebasing, for mint, burn, transfer, and transferFrom operations.
    • Added tests to verify that when the transfer amount is too small to convert to shares, a Transfer event with value 0 is emitted and no balances or allowances are changed.

These changes improve the correctness, safety, and transparency of the contract, especially in scenarios involving rebasing and small-value transfers.

Notice

  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • Have you assigned this PR to yourself?
  • Have you added at least 1 reviewer?
  • Have you updated the official documentation?
  • Have you added sufficient documentation in your code?
  • Have you added relevant tests to the official test suite?

Pull Request Type

  • 💫 New Feature (Breaking Change)
  • 💫 New Feature (Non-breaking Change)
  • 🛠️ Bug fix (Non-breaking Change: Fixes an issue)
  • 🕹️ Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)

Testing

  • Have you tested this code with the official test suite?
  • Have you tested this code manually?

Summary by CodeRabbit

  • Bug Fixes

    • Transfer events now report underlying token amounts after rebases; when conversion yields zero shares a zero-value Transfer is emitted and balances/allowances remain unchanged.
    • Allowances are only consumed when a transfer actually moves non-zero shares; no-op transfers no longer modify state.
  • Tests

    • Added tests verifying Transfer events for mint, burn, transfer, and transferFrom reflect underlying amounts and cover rounding-to-zero edge cases.

@iamsahu iamsahu self-assigned this Apr 8, 2026
@iamsahu iamsahu requested a review from juliaaschmidt as a code owner April 8, 2026 12:24
Copilot AI review requested due to automatic review settings April 8, 2026 12:24
@iamsahu iamsahu requested a review from mischat as a code owner April 8, 2026 12:24
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 8, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

WLSETH transfer logic now skips balance updates and returns false when converted shares equal zero; transfer/transferFrom invoke _transfer (with transferFrom spending allowance only if _transfer succeeded) and both externally return true. Tests added for emitted Transfer values under rebases and zero-share rounding.

Changes

Cohort / File(s) Summary
Core Implementation
contracts/src/WLSETH.1.sol
_transfer only mutates balances when valueToShares > 0; if valueToShares == 0 it emits Transfer(..., 0) and returns false. transfer calls _transfer then returns true. transferFrom calls _transfer, spends allowance only when _transfer returned true, then returns true.
Tests
contracts/test/WLSETH.1.t.sol
Added six external tests in WLSETHV1Tests asserting Transfer event emits underlying (post-rebase) values for mint, burn, transfer, transferFrom, and edge cases where underlying-to-shares rounds to zero resulting in Transfer(..., 0) with no balance change.

Sequence Diagram(s)

sequenceDiagram
    participant Caller
    participant WLSETH
    participant Allowance
    participant Balances
    participant Events

    Caller->>WLSETH: transferFrom(_from, _to, _value)
    WLSETH->>WLSETH: compute valueToShares (underlying↔shares conversion)
    alt valueToShares > 0
        WLSETH->>Balances: decrement _from shares
        WLSETH->>Balances: increment _to shares
        WLSETH->>Allowance: if caller != _from, spend allowance
        WLSETH->>Events: emit Transfer(_from, _to, underlyingAmount)
        WLSETH-->>Caller: return true
    else valueToShares == 0
        WLSETH->>Events: emit Transfer(_from, _to, 0)
        WLSETH-->>Caller: return true
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • juliaaschmidt
  • mischat

Poem

🐰 I hopped through ledgers, soft and spry,
When tiny underlyings made shares fly by;
If a whisper-sized amount could not be shared,
I stamped a zero and gently cared.
Hop on, the totals stay just right.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is vague and generic, using non-descriptive phrasing like 'introduced check for emitting event correctly' that does not clearly convey the specific changes made. Use a more specific title that clearly describes the main change, such as 'Fix Transfer event emission for zero-share conversions and add comprehensive event tests'.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description provides comprehensive details about contract changes, improvements, and testing enhancements related to event emission and allowance handling.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/wlseth-middle-ground

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
contracts/test/WLSETH.1.t.sol (1)

956-982: Strengthen zero-share assertions to pin full no-op semantics

These tests should also assert sender balance is unchanged, and transferFrom should explicitly assert intended allowance behavior (unchanged vs decremented). Right now only recipient invariants are pinned.

Also applies to: 984-1015

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@contracts/test/WLSETH.1.t.sol` around lines 956 - 982, In
testTransferEmitsZeroWhenValueTooSmallForShares (and the similar transferFrom
tests at 984-1015) capture and assert the sender's pre-operation balance and
allowance and then assert they remain unchanged after the call: record uint256
beforeSenderBalance = wlseth.balanceOf(_guy) (and uint256 beforeAllowance =
wlseth.allowance(_guy, spender) for transferFrom tests), perform the
transfer/transferFrom that converts to 0 shares, then assert
wlseth.balanceOf(_guy) == beforeSenderBalance and (for transferFrom) assert
wlseth.allowance(_guy, spender) == beforeAllowance (or if the intended behavior
is to decrement allowance even when 0 shares are moved, assert the expected
decremented value instead); add these explicit assertions to both the transfer
and transferFrom test cases to pin no-op semantics.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@contracts/src/WLSETH.1.sol`:
- Around line 214-221: The transferFrom flow reduces spender allowance before
checking transfer amount (valueToShares) causing zero-value no-op transfers to
still consume allowance; update transferFrom (the code that adjusts allowance)
so allowance is only decremented when valueToShares > 0 (or restore the
allowance if valueToShares == 0) — i.e., perform the valueToShares check before
mutating allowance or conditionally apply the allowance reduction, leaving
BalanceOf, emit Transfer, and the valueToShares branch logic intact.

---

Nitpick comments:
In `@contracts/test/WLSETH.1.t.sol`:
- Around line 956-982: In testTransferEmitsZeroWhenValueTooSmallForShares (and
the similar transferFrom tests at 984-1015) capture and assert the sender's
pre-operation balance and allowance and then assert they remain unchanged after
the call: record uint256 beforeSenderBalance = wlseth.balanceOf(_guy) (and
uint256 beforeAllowance = wlseth.allowance(_guy, spender) for transferFrom
tests), perform the transfer/transferFrom that converts to 0 shares, then assert
wlseth.balanceOf(_guy) == beforeSenderBalance and (for transferFrom) assert
wlseth.allowance(_guy, spender) == beforeAllowance (or if the intended behavior
is to decrement allowance even when 0 shares are moved, assert the expected
decremented value instead); add these explicit assertions to both the transfer
and transferFrom test cases to pin no-op semantics.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 70c6516c-248e-4e1f-8904-44ac6281285b

📥 Commits

Reviewing files that changed from the base of the PR and between fb8b665 and 2ea3afb.

📒 Files selected for processing (2)
  • contracts/src/WLSETH.1.sol
  • contracts/test/WLSETH.1.t.sol

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates WLSETHV1 transfer event emission behavior for cases where an underlying-value transfer rounds down to zero shares, and adds tests to validate Transfer event values across mint/burn/transfer/transferFrom under rebasing and rounding conditions.

Changes:

  • Update _transfer to emit Transfer(..., 0) when the requested underlying amount converts to 0 shares (no balance changes).
  • Add new tests asserting Transfer event values for mint/burn/transfer/transferFrom after a rebase and for “too-small-to-convert” transfers.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.

File Description
contracts/src/WLSETH.1.sol Adjusts _transfer event emission behavior for zero-share conversions.
contracts/test/WLSETH.1.t.sol Adds tests for Transfer event correctness under rebasing/rounding edge cases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/test/WLSETH.1.t.sol
Comment thread contracts/test/WLSETH.1.t.sol Outdated
Comment thread contracts/test/WLSETH.1.t.sol
Comment thread contracts/test/WLSETH.1.t.sol
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 8, 2026

Changes to gas cost

Generated at commit: 8720484331422acd646115dc46fb665fb9320288, compared to commit: fb8b66596c07500979c7a2954f2ae3351b650c21

🧾 Summary (99% most significant diffs)

Contract Method Avg (+/-) %
WLSETHV1 burn
mint
transfer
transferFrom
+543 ❌
+1,134 ❌
+5,915 ❌
+3,389 ❌
+0.78%
+1.03%
+11.45%
+6.21%
RiverTokenMock approve
sudoSetBalance
+8 ❌
+150 ❌
+0.02%
+0.23%
RiverV1ForceCommittable setMetadataURI +1 ❌ +0.00%
OperatorsRegistryInitializableV1 addOperator +8 ❌ +0.01%

Full diff report 👇
Contract Deployment Cost (+/-) Method Min (+/-) % Avg (+/-) % Median (+/-) % Max (+/-) % # Calls (+/-)
WLSETHV1 1,249,445 (+27,671) approve
burn
initWLSETHV1
mint
transfer
transferFrom
22,010 (0)
40,220 (0)
24,315 (0)
40,154 (0)
39,393 (+5,053)
39,834 (+5,053)
0.00%
0.00%
0.00%
0.00%
+14.71%
+14.53%
44,267 (+505)
69,882 (+543)
90,285 (+210)
110,950 (+1,134)
57,582 (+5,915)
57,985 (+3,389)
+1.15%
+0.78%
+0.23%
+1.03%
+11.45%
+6.21%
46,471 (0)
69,304 (0)
91,605 (0)
116,662 (0)
51,601 (+6,862)
54,174 (+2,723)
0.00%
0.00%
0.00%
0.00%
+15.34%
+5.29%
46,771 (0)
86,404 (+12)
91,605 (0)
116,722 (+12)
77,795 (+7,213)
81,232 (+7,244)
0.00%
+0.01%
0.00%
+0.01%
+10.22%
+9.79%
2,716 (+514)
8,083 (+257)
51 (+7)
10,951 (+1,799)
2,490 (+514)
3,214 (+771)
AllowlistMock 128,299 (-12) isDenied 537 (0) 0.00% 1,731 (+23) +1.35% 2,537 (0) 0.00% 2,537 (0) 0.00% 44,784 (+6,168)
RiverTokenMock 440,942 (0) approve
sudoSetBalance
sudoSetUnderlyingTotal
transfer
44,153 (0)
26,899 (0)
26,530 (0)
28,901 (0)
0.00%
0.00%
0.00%
0.00%
44,182 (+8)
65,990 (+150)
26,851 (-356)
46,728 (+2)
+0.02%
+0.23%
-1.31%
+0.00%
44,177 (+12)
66,735 (+12)
26,530 (0)
46,885 (0)
+0.03%
+0.02%
0.00%
0.00%
44,225 (+12)
67,083 (0)
43,630 (0)
47,185 (0)
+0.03%
0.00%
0.00%
0.00%
10,951 (+1,799)
11,308 (+1,799)
2,609 (+1,549)
257 (0)
RiverV1ForceCommittable 5,644,474 (0) depositToConsensusLayerWithDepositRoot
getMetadataURI
setMetadataURI
158,985 (0)
3,195 (0)
24,438 (0)
0.00%
0.00%
0.00%
1,136,407 (-12)
4,443 (+1)
49,439 (+1)
-0.00%
+0.02%
+0.00%
834,691 (0)
3,284 (0)
25,798 (0)
0.00%
0.00%
0.00%
10,575,990 (0)
9,752 (0)
117,215 (+60)
0.00%
0.00%
+0.05%
3,604 (0)
514 (0)
515 (0)
UserFactory 217,984 (0) _new 71,066 (0) 0.00% 79,685 (-15) -0.02% 71,450 (0) 0.00% 88,550 (0) 0.00% 130,253 (+3,855)
OperatorsRegistryInitializableV1 4,586,548 (0) addOperator 24,972 (0) 0.00% 124,073 (+8) +0.01% 123,168 (+84) +0.07% 145,423 (0) 0.00% 93,249 (0)
OperatorsRegistryWithOverridesV1 4,576,833 (0) addValidators 176,568 (0) 0.00% 924,217 (-9) -0.00% 314,946 (0) 0.00% 93,719,120 (0) 0.00% 14,855 (0)
TUPProxy 709,034 (-49,431)

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.62%. Comparing base (fb8b665) to head (c5c621b).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #404   +/-   ##
=======================================
  Coverage   97.61%   97.62%           
=======================================
  Files          79       79           
  Lines        2309     2315    +6     
  Branches      261      263    +2     
=======================================
+ Hits         2254     2260    +6     
  Misses         54       54           
  Partials        1        1           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@iamsahu iamsahu mentioned this pull request Apr 8, 2026
12 tasks
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@contracts/src/WLSETH.1.sol`:
- Around line 218-227: The Transfer event in _transfer currently emits the
requested `_value` even though the actual moved amount is computed via
`valueToShares` and stored in `BalanceOf`; change the event to emit the actual
underlying value by converting `valueToShares` back using
`river.underlyingBalanceFromShares(valueToShares)` (same approach as in
`mint`/`burn`) so the emitted amount reflects the true underlying moved value;
update the success branch in `_transfer` to call `emit Transfer(_from, _to,
river.underlyingBalanceFromShares(valueToShares))` and keep the failure branch
emitting 0.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ab20bc1a-7ae1-494b-ab53-e8148aaff73a

📥 Commits

Reviewing files that changed from the base of the PR and between 2ea3afb and 405bff6.

📒 Files selected for processing (1)
  • contracts/src/WLSETH.1.sol

Comment thread contracts/src/WLSETH.1.sol
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/src/WLSETH.1.sol Outdated
Comment thread contracts/test/WLSETH.1.t.sol
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/test/WLSETH.1.t.sol
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
contracts/test/WLSETH.1.t.sol (1)

986-1020: Add an allowance assertion for the zero-share transferFrom branch.

At Line 1012 you already assert Transfer(..., 0) and unchanged balances. Please also assert allowance remains unchanged to fully lock down this edge case.

Suggested test hardening
         vm.startPrank(_approved);
         vm.expectEmit(true, true, true, true);
         emit Transfer(_from, _recipient, 0);
         wlseth.transferFrom(_from, _recipient, 1);
         vm.stopPrank();

+        assert(wlseth.allowance(_from, _approved) == 1);
         // Balances unchanged since 0 shares transferred
         assert(wlseth.balanceOf(_recipient) == 0);
         assert(wlseth.sharesOf(_recipient) == 0);
         assert(wlseth.sharesOf(_from) == 100 ether);
         assert(wlseth.balanceOf(_from) == 1000 ether);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@contracts/test/WLSETH.1.t.sol` around lines 986 - 1020, The test
testTransferFromEmitsZeroWhenValueTooSmallForShares is missing an assertion that
the spender's allowance is unchanged after a transferFrom that converts to 0
shares; after calling wlseth.transferFrom(_from, _recipient, 1) (inside the
vm.startPrank(_approved) block) add an assertion that wlseth.allowance(_from,
_approved) still equals the pre-transfer allowance (which was set via
wlseth.approve(_approved, 1) earlier) to ensure allowance is not decremented
when 0 shares are transferred.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@contracts/test/WLSETH.1.t.sol`:
- Around line 986-1020: The test
testTransferFromEmitsZeroWhenValueTooSmallForShares is missing an assertion that
the spender's allowance is unchanged after a transferFrom that converts to 0
shares; after calling wlseth.transferFrom(_from, _recipient, 1) (inside the
vm.startPrank(_approved) block) add an assertion that wlseth.allowance(_from,
_approved) still equals the pre-transfer allowance (which was set via
wlseth.approve(_approved, 1) earlier) to ensure allowance is not decremented
when 0 shares are transferred.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f685ffc8-2f7c-426a-96c9-da49bf8da3b3

📥 Commits

Reviewing files that changed from the base of the PR and between 13f244e and 28e32db.

📒 Files selected for processing (2)
  • contracts/src/WLSETH.1.sol
  • contracts/test/WLSETH.1.t.sol
🚧 Files skipped from review as they are similar to previous changes (1)
  • contracts/src/WLSETH.1.sol

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/test/WLSETH.1.t.sol Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Prafful <46891804+iamsahu@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 8, 2026 15:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/test/WLSETH.1.t.sol
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/src/WLSETH.1.sol Outdated
Comment thread contracts/src/WLSETH.1.sol
Copilot AI review requested due to automatic review settings April 8, 2026 15:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings April 8, 2026 16:45
mischat
mischat previously approved these changes Apr 8, 2026
Copy link
Copy Markdown
Member

@mischat mischat left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/test/WLSETH.1.t.sol Outdated
Comment thread contracts/test/WLSETH.1.t.sol
Comment thread contracts/src/WLSETH.1.sol
Comment thread contracts/src/WLSETH.1.sol
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Prafful <46891804+iamsahu@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 8, 2026 17:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@iamsahu iamsahu requested a review from mischat April 9, 2026 09:19
Copy link
Copy Markdown

@mischat-galaxy mischat-galaxy left a comment

Choose a reason for hiding this comment

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

i am happy with this now, thanks!

Copy link
Copy Markdown
Member

@mischat mischat left a comment

Choose a reason for hiding this comment

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

🦈

@iamsahu iamsahu merged commit 964f0e3 into main Apr 9, 2026
21 checks passed
@iamsahu iamsahu deleted the fix/wlseth-middle-ground branch April 9, 2026 09:57
juliaaschmidt added a commit that referenced this pull request Apr 24, 2026
…' into bs-2754-on-pectra

* origin/chore/merge-main-post-byov-audit:
  chore: fixed tests
  Accounting Changes rebased to remove-keys (BS-2865) (#395)
  chore: introduced check for emitting event correctly (#404)
  feat: re-enable `claimRedeemRequests` during Slashing Containment Mode (#400)
  fix: revert M-06 suggested changes across WLsETH (#399)
  Bump version inline with audit (#394)
  [L-01][Certora Audit] fix: Slashing containment mode still allows fresh validator funding (#393)
  fix(BS-2927) add nonReentrant modifier to `claimRedeemRequests` (#389)
  [M-06][ProdSec] non-zero value that converts to zero shares (BS-2923) (#383)
  [M-01] fix for Direct LsETH transfers to the wrapper strand underlying and break wLsETH supply accounting (BS-2925) (#380)
  [L-05] fix: IRiver.1.sol `setKeeper` not declared in IRiverV1 interface (BS-2924) (#382)
  fix: internal review finding M-04 + add check in test (#381)
  [H-01] fix: Denylisted users can bypass freeze controls by unwrapping wLsETH via burn (BS-2885) (#378)
  [M-03] fix for Inconsistent initiator deny check allows bypass via River redeem path (BS-2926) (#379)
  [I-01] fix: ` removeValidators ` silently modifies operator limit without emitting SetOperatorLimit event, creating divergence between on-chain state and off-chain monitoring (BS-2921) (#377)
  chore: fix deploy script issues and redeploy devHoodi (#370)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants