Skip to content

feat: add recipient param to PoolManager.burn - #1045

Open
BhariGowda wants to merge 3 commits into
Uniswap:mainfrom
BhariGowda:feat/pool-manager-burn-recipient-985
Open

BhariGowda wants to merge 3 commits into
Uniswap:mainfrom
BhariGowda:feat/pool-manager-burn-recipient-985

Conversation

@BhariGowda

Copy link
Copy Markdown

Problem

PoolManager.burn() always credits the positive delta to msg.sender.
There is no way to direct the credit to a different address without a
multi-step workaround (burn → take → transfer), costing extra gas and
adding unnecessary complexity for router/hook integrators.

Fixes #985

Solution

Add a new 4-argument overload:

function burn(address from, address recipient, uint256 id, uint256 amount) external;

The positive delta is credited to recipient instead of msg.sender.
If recipient is address(0), it defaults to msg.sender for safety.

The existing 3-argument burn() is unchanged — fully backwards compatible.

Changes

  • src/interfaces/IPoolManager.sol — new overload in interface
  • src/PoolManager.sol — new overload implementation
  • src/test/ProxyPoolManager.sol — new overload in proxy

Tests

603 tests pass. The 1 failure is a pre-existing TickMath edge case
unrelated to this change (present on main before any modifications).

@BhariGowda
BhariGowda requested a review from a team as a code owner May 20, 2026 04:36

This branch has not been deployed

No deployments
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.

[Feature Request]: Add Positive Delta Recipient Support to PoolManager.burn

1 participant