1
This commit is contained in:
parent
823609db9f
commit
1923ea5927
@ -833,13 +833,26 @@ def fetch_nodereal_events(limit=60):
|
||||
return {"metrics": [], "events": [], "errors": ["nodereal_api_key_missing"]}
|
||||
client = _nodereal_client(cfg)
|
||||
enabled_chains = set(cfg.get("nodereal_chains") or DEFAULT_CHAINS)
|
||||
mappings = [
|
||||
m for m in get_token_mappings(min_confidence=MIN_MAPPING_CONFIDENCE)
|
||||
if str(m.get("chain") or "").lower() in enabled_chains and client.supports_chain(str(m.get("chain") or "").lower())
|
||||
]
|
||||
all_mappings = get_token_mappings(min_confidence=MIN_MAPPING_CONFIDENCE)
|
||||
chain_mappings = [m for m in all_mappings if str(m.get("chain") or "").lower() in enabled_chains]
|
||||
mappings = []
|
||||
unsupported_chains = set()
|
||||
for mapping in chain_mappings:
|
||||
chain = str(mapping.get("chain") or "").lower()
|
||||
if client.supports_chain(chain):
|
||||
mappings.append(mapping)
|
||||
else:
|
||||
unsupported_chains.add(chain)
|
||||
metrics = []
|
||||
events = []
|
||||
errors = []
|
||||
diagnostics = {
|
||||
"mapping_total": len(all_mappings),
|
||||
"chain_mapping_total": len(chain_mappings),
|
||||
"supported_mapping_total": len(mappings),
|
||||
"enabled_chains": sorted(enabled_chains),
|
||||
"unsupported_chains": sorted(unsupported_chains),
|
||||
}
|
||||
lookback = max(1, int(cfg.get("nodereal_log_block_lookback") or 120))
|
||||
max_logs = max(1, int(cfg.get("nodereal_max_logs_per_token") or 25))
|
||||
for mapping in mappings[: int(limit or 60)]:
|
||||
@ -881,9 +894,13 @@ def fetch_nodereal_events(limit=60):
|
||||
events.append(event)
|
||||
except Exception as exc:
|
||||
errors.append(f"{mapping.get('symbol')}:nodereal_logs:{str(exc)[:160]}")
|
||||
if not mappings:
|
||||
errors.append("nodereal_no_supported_mappings")
|
||||
return {"metrics": metrics, "events": events, "errors": errors}
|
||||
if not all_mappings:
|
||||
errors.append("nodereal_no_mappings")
|
||||
elif not chain_mappings:
|
||||
errors.append("nodereal_no_enabled_chain_mappings:" + json.dumps(diagnostics, ensure_ascii=False, sort_keys=True))
|
||||
elif not mappings:
|
||||
errors.append("nodereal_no_supported_mappings:" + json.dumps(diagnostics, ensure_ascii=False, sort_keys=True))
|
||||
return {"metrics": metrics, "events": events, "errors": errors, "diagnostics": diagnostics}
|
||||
|
||||
|
||||
def fetch_etherscan_events(limit=60):
|
||||
|
||||
@ -345,6 +345,21 @@ def test_nodereal_events_generate_metrics_and_normalized_event(monkeypatch, tmp_
|
||||
assert events["items"][0]["signal_code"] == "whale_accumulation"
|
||||
|
||||
|
||||
def test_nodereal_no_supported_mapping_error_has_diagnostics(monkeypatch, tmp_path):
|
||||
_temp_db(monkeypatch, tmp_path)
|
||||
monkeypatch.setenv("ALPHAX_NODEREAL_API_KEY", "test-key")
|
||||
monkeypatch.setenv("ALPHAX_NODEREAL_CHAINS", "ethereum,bsc")
|
||||
onchain_db.upsert_token_mapping("SOLX", "solana", "Mint111", source="manual", confidence=95)
|
||||
|
||||
result = onchain_monitor.fetch_nodereal_events(limit=10)
|
||||
|
||||
assert result["metrics"] == []
|
||||
assert result["events"] == []
|
||||
assert result["diagnostics"]["mapping_total"] == 1
|
||||
assert result["diagnostics"]["chain_mapping_total"] == 0
|
||||
assert result["errors"][0].startswith("nodereal_no_enabled_chain_mappings:")
|
||||
|
||||
|
||||
def test_legacy_helius_is_disabled_by_default(monkeypatch, tmp_path):
|
||||
_temp_db(monkeypatch, tmp_path)
|
||||
monkeypatch.setenv("ALPHAX_HELIUS_API_KEY", "test-key")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user