Сегодня инициатива VIZPLUS представила сервис: Информация о реальных ценах спроса и предложения на токен viz на бирже.
Сервис публикует фид в сам блокчейн, а значит мы можем использовать эту информацию для собственных нужд.
У сервиса выделенный аккаунт bts.quotes.bank.viz.plus, который используется только для публикации этого фида, поэтому можно не переживать о том, что в поле custom_sequence_block_num профиля может оказаться ссылка на другой протокол. По этому номеру можно получить блок, в котором содержатся данные о последней опубликованной цене.
Давайте для примера реализуем это на javascript. Для этого нам понадобится библиотека https://github.com/VIZ-Blockchain/viz-js-lib
Создаем новую директорию, в ней нужно инициализировать npm модуль:
Затем устанавливаем библиотеку:
Создаём js-файл с любым именем, пусть будет feed.js
Импортируем библиотеку и добавляем адрес ноды, к которой будем подключаться:
Теперь можно получить информацию об аккаунте:
Здесь нас интересует свойство custom_sequence_block_num, которое содержит номер блока с последней кастомной операцией аккаунта:
По нему можно получить сам блок:
В нём много всего, нас интересует в массиве transactions массив operations, в нем операции кастомного протокола vizplus_bitshares_info, подписанные аккаунтом bts.quotes.bank.viz.plus, а уже там свойство json.
Вот что у меня получилось в итоге:
Этот код может быть загружен на AWS Lambda. Пример работы здесь: https://eiy5lsown5.execute-api.us-east-2.amazonaws.com
Код написан в ознакомительных целях. Здесь нет кэширования и обработки ошибок, поэтому нежелательно использовать его в продакшене.
Наградить автора поста