Как получить цены на токены с помощью UNISWAP API

#python #ethereum #etherscan

#python #ethereum #etherscan

Вопрос:

Я использую uniswap python api для получения текущих цен на токены. Я использую все варианты встроенных функций. Однако это не дает мне правильного значения.

ВОТ МОЙ КОД

 address = "0x0000000000000000000000000000000000000000"
private_key =  None
uniswap_wrapper = Uniswap(address, private_key,infura_url,version=2)  
dai = "0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359"


print(uniswap_wrapper.get_eth_token_input_price(dai, 5*10**18))
print(uniswap_wrapper.get_token_eth_input_price(dai, 5*10**18))
print(uniswap_wrapper.get_eth_token_output_price(dai, 5*10**18))
print(uniswap_wrapper.get_token_eth_output_price(dai, 5*10**18))
 

И это мои результаты соответственно,

 609629848330146249678
24997277527023953
25306950626771242
2676124437498249933489
 

Я не хочу использовать API coingecko или coinmarketcaps, поскольку они не сразу отображают недавно выпущенные цены на токены.

Я попробовал etherscan, чтобы получить цены на токены, но у него нет встроенной функции для этого. Есть ли у кого-нибудь какие-либо предложения о том, как это исправить, или вы знаете какие-либо альтернативы?

Комментарии:

1. Какое значение infura_url вы использовали? У меня возникли проблемы с запросами.

2. вам нужно использовать свой

3. Теперь я понимаю. Спасибо. Я также получаю аналогичные значения. Не уверен, как преобразовать их в цены в долларах США.

4. Эй, @Coni ты когда-нибудь задумывался, как преобразовать полученные результаты во что-то значимое? Я играю с той же библиотекой.

Ответ №1:

У меня нет времени или возможностей протестировать это прямо сейчас, но я верю, что вы хотите чего-то подобного:

 print(uniswap_wrapper.get_eth_token_input_price(dai, 5*10**18)/5*10**18)
print(uniswap_wrapper.get_token_eth_input_price(dai, 5*10**18)/5*10**18)
print(uniswap_wrapper.get_eth_token_output_price(dai, 5*10**18)/5*10**18)
print(uniswap_wrapper.get_token_eth_output_price(dai, 5*10**18)/5*10**18)