feat: replace view-key monitor with TX proof verification

Remove v2 view-key payment monitor (privacy concern — nobody should
enter their private view key on a website). Replace with TX proof
verification where the sender provides TX Hash + TX Key from their
wallet. The proof is cryptographically verified client-side and
stored with the invoice for persistent "Paid" status.

- Remove monitor.js and all view-key monitoring UI/logic
- Add TX proof section: sender enters TX Hash + TX Key
- Client-side verification via check_tx_key equivalent (noble-curves)
- api/verify.php stores/retrieves payment proofs per invoice
- Short URL redirect now includes invoice code for status lookup
- Invoice link shows "Paid" badge once proof is verified
- Deadline badges (7/14/30 days) for payment terms
This commit is contained in:
Alexander Schmidt
2026-03-25 09:37:09 +01:00
parent 1acf990943
commit 32245fccdf
9 changed files with 318 additions and 696 deletions

View File

@@ -67,15 +67,14 @@ Die App ist eine einzige HTML-Datei, die von überall gehostet werden kann.
- [x] Offline-fähig via Service Worker
- [x] CoinGecko-Fallback mit Auto-Retry
### v2 — View-Key Zahlungsbestätigung (Browser-basiert)
### v2 — TX Proof Zahlungsbestätigung ✅
- [x] Private View-Key eingeben (validiert gegen Adresse, verlässt nie den Browser)
- [x] Browser pollt Remote Node via PHP-Proxy mit Failover (4 Nodes)
- [x] Live-Anzeige: "Warte auf Zahlung..." → "Zahlung eingegangen (X/10 Bestätigungen)"
- [x] Fortschrittsbalken für Bestätigungen
- [x] Unterzahlungs-Erkennung
- [x] Sender gibt TX Hash + TX Key ein (aus Wallet kopiert)
- [x] Kryptografische Verifizierung im Browser (30KB noble-curves Bundle)
- [x] Zahlungsstatus wird dauerhaft mit Rechnung gespeichert
- [x] Rechnungs-Link zeigt "Bezahlt" Badge nach Verifizierung
- [x] Standard- und Subaddress-Unterstützung
- [x] Leichtgewichtige Krypto (30KB noble-curves Bundle, kein 5MB WASM)
- [x] Kein Private View Key nötig — kein Privacy-Risiko
### v3 — Professionelle Features