Я пытаюсь использовать Uniswap SDK, чтобы получить исторические курсы между двумя монетами в пуле. Я считаю, что скорость равна всего лишь xy = k, где k — константа. Если кто-то покупает n монеты x, стоимость, выраженная в y монетах, будет равна той m стоимости, при которой уравнение (x - n)(y + m) = k остается верным.
Я просмотрел всю страницу Uniswap SDK и не могу найти, где можно найти исторические данные об этой xy = k кривой. Я думаю, что это должно быть возможно, но я не совсем уверен, где это найти.
Я также ищу текущую ставку свопа (это текущие значения x и y).
Я думаю, что это можно сделать через GraphQL, но я ищу решение с помощью SDK. Кто-нибудь может помочь?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


с uniswap SDK вы можете получить только текущую скорость обмена. Вам нужно будет объединить это с GraphQL API, чтобы получить исторические данные.
Надеюсь это поможет!
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , добавив дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
Два варианта
Вы можете скачать исторические курсы с веб-сайтов торговых стратегий в виде файла Parquet (предварительно обработанного).
Вы можете запросить запрос из узла архива с помощью JSON-RPC и установить block_number для прошлого блока для вашего eth_call метода RPC, который вызывает смарт-контракт Uniswap для получения соотношения token0/token1.
Здесь вы найдете исторический учебник по ценам на Uniswap v3.
Спасибо. Знаете ли вы, как это можно сделать с помощью ethers.js или web3.js вместо библиотеки Python eth_defi?
Да, это может быть сделано. Это просто вопрос перевода кода с одного языка программирования/фреймворка на другой. Ethereum и его API-интерфейсы JSON-RPC одинаковы для всех языков программирования.