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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found by the second review of #683, outside its scope.
Where
The swap decoder,
decode()insrc/shared/uniswap.js, aPERMIT2_TRANSFER_FROMwhose token is the zero address.What happens
It reads
Token moved: ETH, with an ETH figure onMoved from the senderorPaid 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 onnext; not run on a chain.What should happen
A
PERMIT2_TRANSFER_FROMof 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
PERMIT2_TRANSFER_FROMof the zero address does not read as ETH.next.Model: opus-5-5
Plan: one PR to
next, indecode()insrc/shared/uniswap.js. APERMIT2_TRANSFER_FROMof 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 onnext.Model: opus-5-5