Решил таки вопрос с автоматическим мониторингом процента по кредиту SNX (и любых других токенов, если потребуется) на DeFi платформе Sonne. Оказалось, всё не так сложно и есть простое решение. Итак, по порядку:
Сначала находим адрес контракта Sonne, отвечающего за операции с SNX на этой платформе: 0xd7daabd899d1fabbc3a9ac162568939cec0393cc. Адрес легко найти через блок эксплорер, если вы хоть раз взаимодействовали с этой платформой.
Далее считываем (кнопка Read Contract в эксплорере) адрес контракта, отвечающего за актуальную модель расчёта ставки по кредиту, interestRateModel: 0x7320bd5fa56f8a7ea959a425f0c0b8cac56f741e.
И уже в этом контракте есть функция getBorrowRate, вызов которой даст нам интересующее, всегда актуальное, значение ставки кредита SNX на платформе Sonne.
Это правильный и самый точный путь. К сожалению, я не настолько опытен в написании программ для взаимодействия с блокчейнами и не имею под рукой знакомой среды разработки и набросков программ, чтобы всё быстро сделать.
Поэтому пошёл по более грубому, но простому пути. У эксплорера Optimism есть API доступ. Через него запрашиваем текущий баланс SNX на контракте Sonne простым GET запросом, например вот так:
curl https://api-optimistic.etherscan.io/api?module=account&action=tokenbalance&contractaddress=0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4&address=0xD7dAabd899D1fAbbC3A9ac162568939CEc0393Cc&tag=latest&apikey=[APIKEY]
Получаем ответ:
{"status":"1","message":"OK","result":"15548093992722235271165"}
Размерность токена SNX - 18 знаков, значит на балансе контракта сейчас есть 15548 доступных SNX.
Осталось настроить уведомления, когда количество доступных SNX падает ниже заданного порога. Этот порог легко можно выбрать экспериментально, исходя из ваших задач. Например, 1548 SNX соответствуют ставке кредита в 51%.

Всё, теперь можно спокойно заниматься своими делами - уведомления придут автоматически и кредитную позицию можно оперативно скорректировать.
Подпишись на мой Телеграм - там информации больше и быстрее + обратная связь