#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)