Этап 3. GitHub
Изучение GitHub проекта
Если вы обнаружили, что у подграфа есть ссылка на GitHub, переходим в репозиторий, и видим следующее:
schema.graphql
Схема для вашего подграфа находится в этом файле
Ознакомиться с тем, что такое схема GraphQL подробнее, можно по этой сылке
Под цифрами 1,2,3,4 распологаются основные блоки типов объектов (данных) схемы, из которых мы можем понять структуру данных, которые в дальнейшем запрашиваются через ноду Graph. Каждый тип должен быть объектом и представлен @entity директивой.
2. subgraph.yaml
Манифест подграфа
Манифест подграфа находится в этом файле, он определяет смарт-контракты, которые индексирует ваш подграф, на какие события из этих контрактов следует обращать внимание.
3. Автор проекта, при желании можно связаться с ним и попросить ответить на некоторые вопросы связанные с подграфом, если вам тяжело разобраться с технической точки зрения. Например, какие именно мы получаем данные с помощью этого подграфа.
Разберем файл subgraph.yaml
Этот файл так называемый манифест подграфа. Манифест подграфа определяет смарт-контракт который индексирует подграф, на какие события из этого контракта следует обращать внимание и их отслеживать, как сопоставлять данные событий с объектами
"entities"
, которые нода Graph хранит и позволяет запрашивать.
Расположение файла
schema.graphql
, находится в корневом каталоге.Имя контракта Ethereum: Solo Margin по названию можно сделать вывод, что контракт нужен для создания одиночной (индивидуальной) маржинальной торговли, так как dYdX это проект децентрализованной торговой площадки для торговли с плечами (маржинальной торговли).
Mainnet в какой сети развернут данный контракт, в нашем случае в основной сети Ethereum.
Адрес смарт контракта
address: "0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e"
События (event) Это события которые подграф "слушает" со смарт контракта, те данные которые разработчик хочет получить по средством подграфа в свое конечное приложение, а именно в нашем случае:
a - количество депозита (полученых средств)
b - количество выводов (выведенных средств)
с - переводы
d - покупки
e - продажи
f - торговля
g - ликвидации
Найдем этот контракт на etherscan.io, открываем вкладкуContract
Далее можно увидеть код смарт-контракта который имеет большие размеры: 5698 строк! Сразу можно сделать вывод, что проект солидный. Конечно прочитать этот код это задача, доступная немногим, и для ее решения требуются навыки владения языком программирования Solidity. Но, Вам это и не зачем , если вы конечно не проводите его аудит. Да и найти в нем события events
которые мы бы хотели посмотреть, скажем слегка трудновато, однако, мы можем воспользоваться поиском внутри контракта и найти по ключевым словам нужный нам раздел с событиями "Events". Это строка 4037.
Исходя из этих данных можно сделать вывод, что подграф собирает информацию о совершенных торговых сделках для определенного аккаунта.
6. Application Binary Interface name: dYdX.
Last updated