смарт-контракте или ретёрны read-only функций?
Для примера - вот хочу достать датасет по состоянию переменных в какой-то паре uniswap v2
1) price0ComulativeLast, это публичная переменная
2) (сложнее) reserve0, это уже приватная переменная, её либо в слотах искать, либо вызывать через getReserves()
Приветствуются внешние аналитические сервисы, можно платные, которые позволяют доставать такие данные запросами (Bitquery? Dune?)
А разве можно получить приватную переменную вообще как-то? если сделать форк и имперсонейт аккаунт, то получится прочитать приватный слот памяти?
ну можно просто выбрать блок в прошлом который интересен например, указать его при получении данных (его можно указать при вызове функции через call через web3 - https://web3js.readthedocs.io/en/v1.5.2/web3-eth-contract.html#methods-mymethod-call) и пройтись от интересующего блока в прошлом до текущего (или какой нужен) со слотом памяти та же история, если знаешь слот то можно указывать номер блока который интересует - https://web3js.readthedocs.io/en/v1.5.2/web3-eth.html#getstorageat
интересно то есть отработает если подключусь к сети через условную инфуру? или надо чтобы у меня в пакете был доступ к архивным блокам? (вроде в alchemy бесплатно можно) (руками проверю, но мало ли сразу знаешь ответ)
да, alchemy по дефолту с архивными данными бесплатно
огонь, буду пробовать спасибо тебе большое!
можно из alchemy фул ноды доставать данные смарт контрактов на конкретный блок в прошлом
Обсуждают сегодня