Commit Graph
203 Commits
Author SHA1 Message Date
user 868f7a6ff8 fix: show user's own address for swap transactions in tx list
check / check (push) Successful in 22s
For swap/contract interactions, display the user's own (labelled)
address instead of the contract address, so users can see which
of their addresses initiated the swap.

Fixes #55
2026-02-28 08:57:08 -08:00
sneak fb67359b3f Merge pull request 'fix: add reverse ENS lookups for all displayed addresses (closes #22)' (#25) from fix/reverse-ens-lookups into main
check / check (push) Successful in 9s
Reviewed-on: #25
2026-02-28 10:06:45 +01:00
sneak 1986704569 Merge branch 'main' into fix/reverse-ens-lookups
check / check (push) Successful in 21s
2026-02-28 10:05:16 +01:00
sneak 49c29f6bb3 Merge pull request 'fix: preserve ENS names on lookup failure, add debug logging (closes #22)' (#24) from fix/ens-reverse-lookup into main
check / check (push) Successful in 8s
Reviewed-on: #24
2026-02-28 10:05:03 +01:00
sneak cdb7f478e2 Merge branch 'main' into fix/ens-reverse-lookup
check / check (push) Successful in 22s
2026-02-28 10:04:26 +01:00
sneak cbe77d0224 Merge pull request 'fix: show wallet/address titles across all views (closes #26, closes #27, closes #28, closes #29)' (#30) from fix/address-title-consistency into main
check / check (push) Successful in 9s
Reviewed-on: #30
2026-02-28 10:03:40 +01:00
user 2abb720d54 fix: show wallet/address titles in addressDetail and addressToken tx lists (closes #29)
check / check (push) Successful in 21s
2026-02-27 14:30:09 -08:00
user bf9a483031 fix: show wallet/address titles in send, txStatus, and home tx list (closes #26, closes #27, closes #28)
check / check (push) Successful in 22s
- send.js: show addressTitle() above ENS name and address in From field
- txStatus.js: show addressTitle() in To address when it's a local wallet
- home.js: show addressTitle() for counterparties in tx list when they
  are local wallet addresses
2026-02-27 14:28:20 -08:00
clawbot 79fec8551f fix: add reverse ENS lookups for all displayed addresses (closes #22)
check / check (push) Successful in 22s
Previously, ENS reverse lookups were only performed for the single
counterparty address (from or to depending on direction). This meant
contract interaction targets and the non-counterparty side of
transactions never got ENS names resolved.

Now both from and to addresses are collected for ENS resolution,
ensuring all displayed addresses show their ENS names when available.
2026-02-27 14:26:04 -08:00
user da428a3815 fix: preserve ENS names on lookup failure, add debug logging (closes #22)
check / check (push) Successful in 22s
Two issues that could cause ENS names to disappear:

1. refreshBalances: on ENS lookup error, addr.ensName was set to null,
   wiping any previously resolved name. Now keeps the existing value
   on error — only overwrites on successful lookup.

2. ens.js cache: failed lookups were cached as null for 12 hours,
   preventing retries even after transient errors resolved. Now skips
   caching on failure so subsequent lookups retry immediately.

Added debug logging to ENS reverse lookups in refreshBalances.
2026-02-27 14:24:32 -08:00
sneak 171b21c5d8 Merge pull request 'fix: show wallet name for own addresses on approve-tx view (closes #21)' (#23) from fix/approval-address-title into main
check / check (push) Successful in 9s
Reviewed-on: #23
2026-02-27 23:20:26 +01:00
sneak e7a960c601 Merge branch 'main' into fix/approval-address-title
check / check (push) Successful in 22s
2026-02-27 23:20:14 +01:00
sneak b69eec40ef Merge pull request 'fix: low-severity security findings L3, L4, L5 (closes #6)' (#8) from fix/low-severity-security into main
check / check (push) Successful in 9s
Reviewed-on: #8
2026-02-27 23:19:08 +01:00
sneak cacf2c683c Merge branch 'main' into fix/low-severity-security
check / check (push) Successful in 22s
2026-02-27 23:18:53 +01:00
user 15e856e63f fix: show wallet name for own addresses on approve-tx view (closes #21)
check / check (push) Successful in 21s
The approve-tx view was showing raw addresses for From/To even when they
belonged to the user's wallet. Now uses addressTitle() to display the
wallet name (e.g. 'My Wallet — Address 1') consistently with other views.
2026-02-27 14:18:29 -08:00
sneak 43e10521ef Merge pull request 'fix: add fallback popup window for tx/sign approval requests (closes #4)' (#17) from fix/tx-approval-popup into main
check / check (push) Successful in 8s
Reviewed-on: #17
2026-02-27 23:15:02 +01:00
sneak 04ba926d43 Merge branch 'main' into fix/tx-approval-popup
check / check (push) Successful in 22s
2026-02-27 23:10:58 +01:00
clawbot 4fdbc5adae fmt: prettier format content/index.js
check / check (push) Successful in 21s
2026-02-27 14:10:37 -08:00
sneak 85427e1fd4 Merge branch 'main' into fix/low-severity-security
check / check (push) Failing after 13s
2026-02-27 23:08:40 +01:00
sneak 8226495994 Merge pull request 'fix: display swaps and contract calls correctly in tx history (closes #3)' (#10) from fix/swap-display into main
check / check (push) Successful in 9s
Reviewed-on: #10
2026-02-27 23:08:16 +01:00
sneak 2f57370155 Merge branch 'main' into fix/swap-display
check / check (push) Successful in 22s
2026-02-27 23:07:31 +01:00
sneak c6d5cf4e64 Merge pull request 'feat: add wallet deletion from settings (closes #13)' (#14) from feat/delete-wallet into main
check / check (push) Successful in 22s
Reviewed-on: #14
2026-02-27 23:04:45 +01:00
clawbot 34e29d7659 fix: re-render wallet list after deletion by calling showSettingsView
check / check (push) Successful in 21s
2026-02-27 14:02:44 -08:00
sneak 6d0531f1b4 Merge pull request 'fix: use grey well for contract address in address-token view (closes #9)' (#15) from fix/address-token-grey-well into main
check / check (push) Successful in 21s
Reviewed-on: #15
2026-02-27 23:00:00 +01:00
clawbot 8893f5dce7 refactor: delete-wallet-confirm as standalone full view
check / check (push) Successful in 22s
Replace the inline confirmation div at the bottom of Settings with a
proper full-screen view (view-delete-wallet-confirm). This fixes the
issue where the confirmation was offscreen on the 360x600 popup.

- New view with back button, title, warning text, password input,
  and red-text Confirm Delete button
- Dedicated flash area for password errors
- New deleteWallet.js module with init/show pattern
- Added delete-wallet-confirm to VIEWS array in helpers.js
- Removed old inline confirmation HTML and logic from settings
2026-02-27 13:58:58 -08:00
clawbot 2bffa91045 fix: reduce contract info well margins to prevent address wrapping
check / check (push) Successful in 22s
2026-02-27 13:54:19 -08:00
clawbot 2b0b889b01 fix: use wallet.encryptedSecret not wallet.encrypted for password verify
check / check (push) Successful in 22s
2026-02-27 13:52:08 -08:00
clawbot 5936199676 fix: place color dot next to address, not title, matching convention
check / check (push) Successful in 22s
2026-02-27 13:03:43 -08:00
user 8824237db6 fix: match approval view display consistency for decoded calldata
check / check (push) Successful in 21s
- Restructured calldata section to use same well layout as approval view:
  Action label + bold name + structured details
- Always show raw data section below decoded well
- Unknown contract calls show method name in well instead of inline
2026-02-27 13:01:53 -08:00
user aaeb38d7c6 fix: show Swap type label and heading on transaction detail page
check / check (push) Successful in 21s
2026-02-27 13:00:07 -08:00
clawbot f2e44ff4ab fix: use windows.create() for tx/sign approval popups instead of openPopup()
check / check (push) Successful in 22s
action.openPopup() is unreliable when called from the background script
during an async message handler — it requires a user gesture context.
tx and sign approvals are triggered programmatically by dApp RPC calls,
not by user clicking the toolbar icon, so openPopup() fails silently.

Use windows.create() directly for tx/sign approvals, matching the
standard extension pattern (used by MetaMask and others). Site-connection
approvals retain openPopup() since they can fall back to the user
clicking the toolbar icon.

Also updates popup window dimensions to 360x600 to match the standard
popup viewport specified in README.

Closes #4
2026-02-27 12:57:55 -08:00
clawbot 107c243f65 fix: use consistent [x] delete buttons, add inline rename
check / check (push) Successful in 8s
- Delete buttons now use [x] with border, matching token and site
  removal patterns in settings
- Wallet names are click-to-rename (inline input), matching the
  home view rename UX
2026-02-27 12:53:46 -08:00
clawbot 655b90c7df feat: add wallet deletion from settings (closes #13)
- Per-wallet [delete] links in settings wallet list
- Monochrome styling throughout, no red/danger colors
- Password confirmation modal with warning text
- Cleans up site permissions for deleted addresses
- Switches to first remaining wallet or shows welcome if none left
2026-02-27 12:53:46 -08:00
clawbot 34cd72be88 fix: rework wallet deletion per review feedback
- Remove all red/danger styling, use standard monochrome colors
- Add wallet picker dropdown instead of relying on selectedWallet
- Fix encryptedSecret field name (was wallet.encrypted)
- Populate dropdown when settings view opens
- Confirmation modal uses standard border styling
2026-02-27 12:53:46 -08:00
user 689bcbf171 feat: add wallet deletion from settings (closes #13) 2026-02-27 12:53:46 -08:00
sneak 4eefe4c1af Merge pull request 'fix: pass UUID approval ID as string, not parseInt (closes #4)' (#18) from fix/approval-popup-uuid into main
check / check (push) Successful in 8s
Reviewed-on: #18
2026-02-27 21:50:27 +01:00
clawbot 3b419c7517 fix: add missing TOKEN_BY_ADDRESS import in addressToken view
check / check (push) Successful in 22s
2026-02-27 12:50:26 -08:00
clawbot 8b7d73cc35 fix: pass UUID approval ID as string, not parseInt (closes #4)
check / check (push) Successful in 22s
The approval ID was changed from sequential integers to crypto.randomUUID()
strings for security, but the popup still called parseInt() on it, which
converted the UUID to NaN. This caused every approval lookup to fail,
preventing the confirmation popup from displaying pending tx/sign requests.
2026-02-27 12:34:23 -08:00
clawbot 3fd3e30f44 fix: label swap methods as "Swap" in tx lists, remove unused variable
check / check (push) Successful in 23s
- Map known DEX methods (execute, swap, multicall, etc.) to "Swap"
  label instead of raw method name like "Execute"
- Remove unused displayData variable in transactionDetail.js

Addresses review feedback on PR #10.
2026-02-27 12:31:25 -08:00
clawbot 76059c3674 fix: display swaps and contract calls correctly in tx history (closes #3)
- Preserve contract call metadata (direction, label, method) when token
  transfers merge with normal txs in fetchRecentTransactions
- Handle 'contract' direction in counterparty display for home and
  address detail list views
- Add decoded calldata display to transaction detail view, fetching
  raw input from Blockscout and using decodeCalldata from approval.js
- Show 'Unknown contract call' with raw hex for unrecognized calldata
- Export decodeCalldata from approval.js for reuse
2026-02-27 12:31:13 -08:00
clawbot 8332570758 fix: increase well horizontal margin to mx-4 per review
check / check (push) Successful in 22s
2026-02-27 12:27:23 -08:00
clawbot 7b004ddda4 fix: rework contract info well per review feedback
check / check (push) Successful in 22s
- Remove border, add rounded corners and horizontal margin
- Each attribute on its own line (key: value format)
- Move well below send/receive buttons
- Add project/token URL from tokenlist when available
- Import TOKEN_BY_ADDRESS for URL lookup
2026-02-27 12:26:24 -08:00
clawbot 91eefa1667 fix: use grey well for contract address display in address-token view
check / check (push) Successful in 22s
- Replace border-b styling with bg-hover + dashed border for visual
  distinction from wallet address
- Rename label from "Token Contract" to "Contract Address"
- Addresses feedback on #9
2026-02-27 12:15:35 -08:00
sneak 0ed7b8e61d Merge pull request 'fix: show ERC-20 contract details in address-token view (closes #9)' (#11) from fix/address-token-details into main
check / check (push) Successful in 8s
Reviewed-on: #11
2026-02-27 21:09:37 +01:00
user 560065dd77 fix: show ERC-20 contract details in address-token view (closes #9)
check / check (push) Successful in 22s
2026-02-27 12:06:22 -08:00
user 27f16191b4 fix(L4): use location.origin for postMessage, one-shot UUID listener
check / check (push) Failing after 13s
- Content script sends UUID via location.origin instead of "*"
- Inpage UUID listener removes itself after first message to prevent
  malicious pages from overriding the persisted UUID
2026-02-27 11:58:57 -08:00
clawbot 909543e943 fix(L5): truncate token name/symbol from RPC responses
Limits token name to 64 chars and symbol to 12 chars to prevent
storage of excessively long values from malicious contracts.
2026-02-27 11:58:19 -08:00
clawbot 04a34d1a5e fix(L4): generate EIP-6963 provider UUID at install time
UUID is generated once via crypto.randomUUID(), persisted in
chrome.storage.local, and sent from the content script to the
inpage script via postMessage.
2026-02-27 11:58:19 -08:00
clawbot 98f68adb11 fix(L3): isUnlocked() returns false when no accounts exposed
_metamask.isUnlocked() now checks provider.selectedAddress instead of
always returning true.
2026-02-27 11:58:19 -08:00
sneak 0413c52229 Merge pull request 'security: fix high-severity findings from audit (closes #6)' (#7) from fix/high-severity-security into main
check / check (push) Successful in 9s
Reviewed-on: #7
2026-02-27 20:56:43 +01:00