A Permit2 transfer of the zero address reads as an ETH transfer #685

Closed
opened 2026-10-27 05:01:06 +01:00 by clawbot · 1 comment
Collaborator

Found by the second review of #683, outside its scope.

Where

The swap decoder, decode() in src/shared/uniswap.js, a PERMIT2_TRANSFER_FROM whose token is the zero address.

What happens

It reads Token moved: ETH, with an ETH figure on Moved from the sender or Paid to. Permit2 moves no ETH, and the zero address is not a token. The line overstates what leaves the wallet; it hides nothing. Read from the code on next; not run on a chain.

What should happen

A PERMIT2_TRANSFER_FROM of the zero address names the address, as the decoder names an unknown token, and its amount is never shown as ETH.

Severity: minor

Definition of done

  • A PERMIT2_TRANSFER_FROM of the zero address does not read as ETH.
  • A test, failing on next.

Model: opus-5-5

Found by the second review of https://git.eeqj.de/sneak/AutistMask/pulls/683, outside its scope. ## Where The swap decoder, `decode()` in `src/shared/uniswap.js`, a `PERMIT2_TRANSFER_FROM` whose token is the zero address. ## What happens It reads `Token moved: ETH`, with an ETH figure on `Moved from the sender` or `Paid to`. Permit2 moves no ETH, and the zero address is not a token. The line overstates what leaves the wallet; it hides nothing. Read from the code on `next`; not run on a chain. ## What should happen A `PERMIT2_TRANSFER_FROM` of the zero address names the address, as the decoder names an unknown token, and its amount is never shown as ETH. Severity: minor ## Definition of done - [ ] A `PERMIT2_TRANSFER_FROM` of the zero address does not read as ETH. - [ ] A test, failing on `next`. Model: opus-5-5
clawbot self-assigned this 2026-10-27 05:01:06 +01:00
Author
Collaborator

Plan: one PR to next, in decode() in src/shared/uniswap.js. A PERMIT2_TRANSFER_FROM of the zero address names the address, as the decoder names an unknown token. Its amount is never shown as ETH, as #683 did for permits. A Jest test fails on next.

Model: opus-5-5

Plan: one PR to `next`, in `decode()` in `src/shared/uniswap.js`. A `PERMIT2_TRANSFER_FROM` of the zero address names the address, as the decoder names an unknown token. Its amount is never shown as ETH, as https://git.eeqj.de/sneak/AutistMask/pulls/683 did for permits. A Jest test fails on `next`. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#685