From 315f6ddf00114fa22dd2e220c7e07093bf5bdfc0 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 12 Jun 2026 07:56:52 +0000 Subject: [PATCH] test: Duplikat-Check + Doku-Kommentare in Watchlist (Review Task 3) Co-Authored-By: Claude Fable 5 --- src/server/signals/watchlist.test.ts | 4 ++++ src/server/signals/watchlist.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/signals/watchlist.test.ts b/src/server/signals/watchlist.test.ts index 2addd32..2511a92 100644 --- a/src/server/signals/watchlist.test.ts +++ b/src/server/signals/watchlist.test.ts @@ -8,6 +8,10 @@ describe('watchlist', () => { if (t.instrument) expect(TRUMP_PAIRS).toContain(t.instrument); } }); + test('keine doppelten Contracts', () => { + const contracts = TRACKED_TOKENS.map((t) => t.contract); + expect(new Set(contracts).size).toBe(contracts.length); + }); test('Contract-Adressen und Wallets sind lowercase (getLogs-Vergleich)', () => { for (const t of TRACKED_TOKENS) expect(t.contract).toBe(t.contract.toLowerCase()); for (const w of WATCHED_WALLETS) expect(w.address).toBe(w.address.toLowerCase()); diff --git a/src/server/signals/watchlist.ts b/src/server/signals/watchlist.ts index f301813..c7516cc 100644 --- a/src/server/signals/watchlist.ts +++ b/src/server/signals/watchlist.ts @@ -40,7 +40,7 @@ export const COIN_KEYWORDS: { symbol: string; instrument: Pair | null; names: st { symbol: 'ONDO', instrument: 'ONDO_USDT', names: ['ondo'], tickers: ['ONDO'] }, { symbol: 'ENA', instrument: 'ENA_USDT', names: ['ethena'], tickers: ['ENA'] }, { symbol: 'SUI', instrument: 'SUI_USDT', names: [], tickers: ['SUI'] }, // 'sui' lowercase zu generisch - { symbol: 'SEI', instrument: 'SEI_USDT', names: [], tickers: ['SEI'] }, + { symbol: 'SEI', instrument: 'SEI_USDT', names: [], tickers: ['SEI'] }, // 'sei' lowercase zu generisch (engl. Wort) { symbol: 'TRX', instrument: null, names: ['tron'], tickers: ['TRX'] }, // kein USDT-Paar auf Crypto.com ]; @@ -51,6 +51,7 @@ export const RPC_URLS = [ 'https://cloudflare-eth.com', ]; +/** Inoffizieller RSS-Mirror (Dritt-Archiv), kein offizielles Truth-Social-API. */ export const TRUTH_FEED_URL = 'https://trumpstruth.org/feed'; export const MIN_NOTIONAL_USD = 50_000; // Spam-/Dust-Schutz on-chain export const TRUTH_DEDUPE_MS = 72 * 3600_000; // max. 1 Truth-Event je Coin pro 72 h