🏷 Как узнать цену токена из смарт-контракта?
Если нужна цена на конкретном DEX, то можно просто дернуть их контракт. Но если хочется среднюю цену по всем норм биржам (например, для он-чейн бота-арбитражника), то можно воспользоваться контрактами Chainlink Data Feeds.
Если коротко, то эти ребята пишут в свои контракты цены для большого числа популярных активов. Дернув их view метод, можно бесплатно считать цену желаемого токена и запрогать вокруг логику в своем смарт-контракте. Вот, например, контракт для получения цены ETH/USD ончейн (метод latestRoundData).
Сразу на ум приходит арбитраж алгоритм:
1. Смотрим среднюю цену актива через Chainlink
2. Смотрим его цену на Uniswap
3. Если цена 1 больше, чем 2, то продаем часть. Если наоборот - покупаем.
4. Периодически дергаем наш контракт, который считает 1-2-3.
5. Децентрализованно дергать можно через OpenZeppelin Defender или Chinlink Keeper.
Другой вопрос, зачем это делать ончейн, когда можно не париться и на питоне все сделать? Для некоторых других бизнес процессов может быть важна прозрачность и децентрализация.
Если нужна цена на конкретном DEX, то можно просто дернуть их контракт. Но если хочется среднюю цену по всем норм биржам (например, для он-чейн бота-арбитражника), то можно воспользоваться контрактами Chainlink Data Feeds.
Если коротко, то эти ребята пишут в свои контракты цены для большого числа популярных активов. Дернув их view метод, можно бесплатно считать цену желаемого токена и запрогать вокруг логику в своем смарт-контракте. Вот, например, контракт для получения цены ETH/USD ончейн (метод latestRoundData).
Сразу на ум приходит арбитраж алгоритм:
1. Смотрим среднюю цену актива через Chainlink
2. Смотрим его цену на Uniswap
3. Если цена 1 больше, чем 2, то продаем часть. Если наоборот - покупаем.
4. Периодически дергаем наш контракт, который считает 1-2-3.
5. Децентрализованно дергать можно через OpenZeppelin Defender или Chinlink Keeper.
Другой вопрос, зачем это делать ончейн, когда можно не париться и на питоне все сделать? Для некоторых других бизнес процессов может быть важна прозрачность и децентрализация.