Как вывести health factor Aave v3 без огромного числа при отсутствии долга
Пул возвращает суммы в базовой валюте рынка, а health factor — как отношение wad. Для нулевого долга используется специальное значение, которое не следует показывать как измеренный огромный коэффициент.
Используйте порог ликвидации в отношении
Прочитайте данные аккаунта в одном рынке на одном блоке. В ненулевом примере после применения взвешенного порога ликвидации к залогу остаётся 800 базовых единиц. Деление на долг 400 даёт два, в формате wad — около 2 умножить на 10^18.
total collateral base = 1000
weighted liquidation threshold = 80%
total debt base = 400
health factor ≈ 2.0 in 18-decimal wad units
Подстановка LTV вместо порога ликвидации даст другой результат. Для точного совпадения с пулом учтите целочисленные округления, допустимость активов и действующий режим эффективности. К итоговому wad не применяют decimals токена.
Явно обработайте нулевой долг
Эталонная GenericLogic возвращает максимальный uint256 для health factor при нулевом долге. Покажите состояние без долга или явное обозначение неограниченности вместо нанесения специального числа на график. Проверяйте общий долг вместе с сырым ответом. github.com GenericLogic.sol