refactor: move the calldata decoder to src/shared/calldataDecoder.js (closes #759)
check / check (push) Successful in 10m16s
e2e / e2e-chrome (push) Successful in 16m8s
e2e / e2e-firefox (push) In progress

decodeCalldata() and tokenAmountText() move out of the TxApproval view into
src/shared/calldataDecoder.js. TxApproval, TransactionDetail and the decoder
tests import them from there.

tokenSourcesByChainId() moves from the popup view helpers to
src/shared/state.js, beside currentNetwork(), so the decoder requires nothing
under src/popup/. It reads only the state singleton and the network table.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-10 20:15:46 +00:00
1 parent c150b83322
commit 7c7d44509c
14 files changed
+219 -185

No files matched your search

+2 -2
View File
@@ -13,7 +13,7 @@
// asserted on `rawValue` alongside the displayed line.
//
// Both amount paths of that screen are covered: the ERC-20 line decoded by
// `src/popup/views/approval.js`, and the swap's `Amount` and `Min. received`
// `src/shared/calldataDecoder.js`, and the swap's `Amount` and `Min. received`
// lines decoded by `src/shared/uniswap.js`.
globalThis.chrome = {
@@ -23,7 +23,7 @@ globalThis.chrome = {
const { AbiCoder, Interface } = require("ethers");
const { ERC20_ABI } = require("../src/shared/constants");
const { state } = require("../src/shared/state");
const { decodeCalldata } = require("../src/popup/views/approval");
const { decodeCalldata } = require("../src/shared/calldataDecoder");
const uniswap = require("../src/shared/uniswap");
const {
truncateAmount,