diff --git a/bundled-addons/aegis/addon.json b/bundled-addons/aegis/addon.json index 7a96b815..84f46b6d 100644 --- a/bundled-addons/aegis/addon.json +++ b/bundled-addons/aegis/addon.json @@ -1,7 +1,7 @@ { "id": "aegis", "name": "Aegis Wallet", - "version": "0.9.3", + "version": "0.9.4", "category": "plugin", "description": "Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault. Dapps get window.bitcoincash on .x sites; window.tronWeb / window.tronLink / window.ethereum / window.solana on any https page.", "author": "Silent Mode", diff --git a/bundled-addons/aegis/panel.html b/bundled-addons/aegis/panel.html index 4a7901fd..f4be4724 100644 --- a/bundled-addons/aegis/panel.html +++ b/bundled-addons/aegis/panel.html @@ -453,9 +453,6 @@ .wstrip .warow .wact { background: transparent; border: 0; color: var(--dim); cursor: pointer; padding: 2px 5px; border-radius: 4px; font-size: 12.5px; line-height: 1; } .wstrip .warow .wact:hover { color: var(--acid, #d6ff3d); background: rgba(255,255,255,.06); } - /* Destructive strip action (remove wallet). Stays quiet until hovered so - a row of icons doesn't read as a row of warnings. */ - .wstrip .wact.wactdel:hover { color: var(--danger, #f6768a); background: rgb(from var(--danger, #f6768a) r g b / .12); } /* Per-address asset list (0.8.8). The count chip expands the row into a nested list of what that ONE address holds beyond the native coin. */ .wstrip .waassets { background: rgba(255,255,255,.06); border: 0; color: var(--dim); cursor: pointer; diff --git a/bundled-addons/aegis/panel.js b/bundled-addons/aegis/panel.js index b839239b..ce8b70cb 100644 --- a/bundled-addons/aegis/panel.js +++ b/bundled-addons/aegis/panel.js @@ -895,29 +895,6 @@ function aegisAlert(message, opts) { }); } -// Shared remove-wallet flow, used by the strip's ๐Ÿ—‘ buttons and the coin -// drilldown. Confirms first, then unlinks. On-chain funds are untouched โ€” -// this only drops Aegis's record of the wallet. -async function removeWalletWithConfirm(id) { - const w = (state?.wallets || []).find((x) => x.id === id); - if (!w) return false; - if (w.isDefault || w.isLegacy) { - await aegisAlert("This is the default wallet โ€” it holds legacy funds and can't be removed.", { title: "Can't remove", icon: "๐Ÿ”’" }); - return false; - } - const ok = await aegisConfirm({ - title: `Remove "${w.label}"?`, - danger: true, - confirmLabel: "Remove wallet", - body: `On-chain funds stay exactly where they are โ€” this only unlinks the wallet from Aegis.

You can add it back later on the same coin + network to derive the same addresses ${w.kind === "imported" ? "(or re-import it, since this one was imported)" : "from your vault seed"}.`, - }); - if (!ok) return false; - state = await S.invoke("removeWallet", { id }); - settingsFilled = false; - render(); - return true; -} - // Import modal โ€” M.1 UX. Paste mnemonic + path OR WIF, choose network + label // + category. Backend derives cashaddr and stores signer material in // wallet-imports.enc (design ยง3.2). Modal is a plain overlay div injected @@ -2230,12 +2207,15 @@ function renderWalletStrip() { // and opened the global Settings tab โ€” the same destination for every // coin, so it read as a per-coin control that wasn't one. Removing a // wallet is the action people actually wanted there. - const editAttr = `data-wedit="${esc(walletId)}"`; + // Same single-โ‹ฏ shape as the drilldown row: one control for "change + // this wallet", opening the manage modal that already holds rename, + // derivation path and remove. 0.9.3 merged the drilldown but left + // this row with the old โœŽ + ๐Ÿ—‘ pair, so the two views disagreed. const activeW = gw.find((w) => w.id === walletId); const canRemove = !(activeW?.isDefault || activeW?.isLegacy); - const removeBtn = canRemove - ? `` - : `๐Ÿ”’`; + const rowMenu = canRemove + ? `` + : `๐Ÿ”’`; rows.push(`
@@ -2254,8 +2234,7 @@ function renderWalletStrip() { ${totalFiat ? `${esc(totalFiat)}` : ""} - - ${removeBtn} + ${rowMenu}
`); } @@ -2314,12 +2293,6 @@ function renderWalletStrip() { const w = (state?.wallets || []).find((x) => x.id === b.dataset.wedit); if (w) openWalletManageModal(w); })); - el.querySelectorAll(".wact[data-wremove]").forEach((b) => b.addEventListener("click", async (e) => { - e.stopPropagation(); - const id = b.dataset.wremove; - try { await removeWalletWithConfirm(id); } - catch (er) { showErr(cleanErr(er)); } - })); el.querySelectorAll(".wact[data-openlist]").forEach((b) => b.addEventListener("click", (e) => { e.stopPropagation(); stripView = { mode: "addresses", groupKey: b.dataset.openlist };