feat(wallet): external tx-explorer fallback with consent + On-chain settings tab

Pruned nodes can't run the Mempool app, but tx links blindly opened it
anyway. Now: local app when running; otherwise an external explorer
(default tx1138.com) behind a one-time amber consent modal that spells
out what the other server's operator learns (tx of interest + IP) and
lets the user point at their own instance (placeholder mempool.guide).
Wallet Settings gains an On-chain tab (explorer URL + don't-warn toggle);
tabs renamed Cashu/Fedi so five fit in the row.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-07-22 17:31:48 -04:00
co-authored by Claude Fable 5
parent 5e7e928650
commit c0aef2f03e
6 changed files with 241 additions and 9 deletions
+5 -3
View File
@@ -151,7 +151,7 @@ import { ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { formatTxTime } from './utils'
import type { WalletTransaction } from './types'
import { useAppLauncherStore } from '@/stores/appLauncher'
import { useTxExplorer } from '@/composables/useTxExplorer'
const { t } = useI18n()
@@ -177,8 +177,10 @@ defineEmits<{
openReceive: []
}>()
const txExplorer = useTxExplorer()
function openInMempool(txHash: string) {
// Overlay the explorer above the current page — never navigate away.
useAppLauncherStore().openSession('mempool', { path: `/tx/${txHash}` })
// Local Mempool app when running; external explorer with consent
// otherwise (pruned nodes can't run Mempool).
txExplorer.openTx(txHash)
}
</script>