Skip to content

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

Closed as not planned

Description

@mshakeg

Component

Delta accounting

Describe the suggested feature and problem it solves.

The PoolManager currently credits positive flash accounting deltas from ERC-6909 burns exclusively to the caller (msg.sender). This prevents routing the economic value of a burn to a designated recipient, forcing integrators to build awkward handoffs (e.g., burning claims and transferring them) when settling third-party obligations. Introducing an optional recipient parameter to PM.burn would make it possible to pay down another address’s negative delta directly, streamline settlement flows, and reduce redundant PM.take + PM.sync + ERC20.transfer(PM) + PM.settleFor(recipient) operations.

Describe the desired implementation.

Extend the IPoolManager interface with an overload burn(address from, address recipient, uint256 id, uint256 amount). The existing three-argument signature remains for backwards compatibility and simply forwards to the new overload with recipient = msg.sender. Inside PoolManager, coerce recipient to msg.sender when it is the zero address before applying _accountDelta(currency, amount.toInt128(), recipient) and _burnFrom(from, id, amount).

Describe alternatives.

Status quo requires the burner to receive the positive delta. In order for an integrator to allow a designated recipient to accrue a delta from their ERC-6909 balances we have options:

  1. integrator grants the recipient a PM ERC6909 allowance or sets it as an operator and the recipient does a PM.burn to spend from that privilege accruing a positive delta to itself(being the caller of PM.burn)
  2. integrator does a PM.burn -> PM.take -> PM.sync -> ERC20.transfer(PM) -> PM.settleFor(recipient) accruing a positive delta to the recipient

Both of which introduce coordination complexity. These workarounds increase gas costs, complicate integrations, and leave room for error compared to native support in PoolManager.burn

Additional context.

No response

Activity

  1. linear commented on Oct 6, 2025

    @linear
  2. mshakeg commented on Oct 15, 2025

    @mshakeg
    Author

    another benefit of this feature is we don't have to deal with ERC20 tokens with fee on transfers

  3. mshakeg commented on Nov 30, 2025

    @mshakeg
    Author

    It would also be nice if there was a function to transfer positive transient deltas from the caller to some recipient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions