Как сверить баланс aToken Aave v3 с масштабированной базой
Баланс aToken может вырасти между блоками без перевода от другого владельца. В эталонной реализации v3 отображаемый баланс объединяет масштабированное значение и нормализованный доход резерва.
Прочитайте оба множителя на одном блоке
Найдите aToken и пул резерва. Для одного блока запросите scaledBalanceOf аккаунта и getReserveNormalizedIncome базового актива. Примените умножение ray и округление реализации; один ray равен 10^27.
scaled balance = 1000000
normalized income = 1.05 × 10^27
nominal balance = 1050000 underlying base units
В примере миллион масштабированных единиц превращается в 1 050 000 номинальных минимальных единиц. Учёт только переводов ERC-20 может пропустить рост из-за индекса. Сверьте расчёт с balanceOf развёрнутого токена.
Свяжите снимок и версию реализации
Сохранённый liquidityIndex и текущий нормализованный доход между обновлениями могут различаться. Используйте нормализованное значение нужного блока. У новых версий v3 могут отличаться правила округления, поэтому сверьте код конкретного aToken. github.com AToken.sol