Этап 3. GitHub

Изучение GitHub проекта

Если вы обнаружили, что у подграфа есть ссылка на GitHub, переходим в репозиторий, и видим следующее:

  1. schema.graphql Схема для вашего подграфа находится в этом файле

Ознакомиться с тем, что такое схема GraphQL подробнее, можно по этой сылке

Под цифрами 1,2,3,4 распологаются основные блоки типов объектов (данных) схемы, из которых мы можем понять структуру данных, которые в дальнейшем запрашиваются через ноду Graph. Каждый тип должен быть объектом и представлен @entity директивой.

2. subgraph.yaml Манифест подграфа

Манифест подграфа находится в этом файле, он определяет смарт-контракты, которые индексирует ваш подграф, на какие события из этих контрактов следует обращать внимание.

3. Автор проекта, при желании можно связаться с ним и попросить ответить на некоторые вопросы связанные с подграфом, если вам тяжело разобраться с технической точки зрения. Например, какие именно мы получаем данные с помощью этого подграфа.

Разберем файл subgraph.yaml

Этот файл так называемый манифест подграфа. Манифест подграфа определяет смарт-контракт который индексирует подграф, на какие события из этого контракта следует обращать внимание и их отслеживать, как сопоставлять данные событий с объектами "entities", которые нода Graph хранит и позволяет запрашивать.

  1. Расположение файла schema.graphql, находится в корневом каталоге.

  2. Имя контракта Ethereum: Solo Margin по названию можно сделать вывод, что контракт нужен для создания одиночной (индивидуальной) маржинальной торговли, так как dYdX это проект децентрализованной торговой площадки для торговли с плечами (маржинальной торговли).

  3. Mainnet в какой сети развернут данный контракт, в нашем случае в основной сети Ethereum.

  4. Адрес смарт контракта address: "0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e"

  5. События (event) Это события которые подграф "слушает" со смарт контракта, те данные которые разработчик хочет получить по средством подграфа в свое конечное приложение, а именно в нашем случае:

  • a - количество депозита (полученых средств)

  • b - количество выводов (выведенных средств)

  • с - переводы

  • d - покупки

  • e - продажи

  • f - торговля

  • g - ликвидации

Найдем этот контракт на etherscan.io, открываем вкладкуContract

Далее можно увидеть код смарт-контракта который имеет большие размеры: 5698 строк! Сразу можно сделать вывод, что проект солидный. Конечно прочитать этот код это задача, доступная немногим, и для ее решения требуются навыки владения языком программирования Solidity. Но, Вам это и не зачем , если вы конечно не проводите его аудит. Да и найти в нем события events которые мы бы хотели посмотреть, скажем слегка трудновато, однако, мы можем воспользоваться поиском внутри контракта и найти по ключевым словам нужный нам раздел с событиями "Events". Это строка 4037.

Исходя из этих данных можно сделать вывод, что подграф собирает информацию о совершенных торговых сделках для определенного аккаунта.

6. Application Binary Interface name: dYdX.

Last updated