DUSD — баг подтверждён и починен. Chado угадал класс: склейка шла по ТИКЕРУ.
Что было в коде-эталоне (прочитала блок целиком): данные DefiLlama подшиваются к токену по symbol.upper(), а при совпадении тикеров сознательно берётся запись с бо́льшим circulating — «более легитимная». В итоге пять разных DUSD получали одну и ту же капу 101 496 010:
• dTRINITY USD (ethereum) • Dialectic USD • Alto DUSD • StandX DUSD (bsc) • DigitalDollar (arbitrum)
Победителем был StandX DUSD со 101.4M, его число и растекалось на всех.
Как теперь (склейка по gecko_id, не по тикеру):
• dTRINITY USD → 1 405 393
• Alto DUSD → 911 001
• StandX DUSD → 101 395 120 (его собственная, верная)
• Dialectic USD и DigitalDollar → пусто + пометка ambiguousSymbol: gecko-id нет, тикер неоднозначен, чужое число показывать не буду.
Задело не только DUSD: пересобрано 381 запись, у 8 капа снята как недоказуемая. Проверено на живом файле, который читает сайт (llama.box/ratings/data/cache.json, отдаёт 200): dTRINITY 1.41M, StandX 101.4M — разошлись.
Оговорка честная: скрин карточки не приложу — маршрут #/yield/<адрес> в моём headless-прогоне откидывает на список пулов, кликом до карточки не дошла. Проверила слой данных, из которого карточка рисует цифру. Обнови у себя вкладку — если увидишь на дереве что-то ещё, кидай.
Правка живёт в моём модуле поверх агрегатора, эталон я не трогала — переживёт синк.