Обзор возможностей Covalent на примере Avalanche в совместном квесте — Wallet Puzzle Challenge. Часть 1.

Jason Win
6 min readApr 21, 2021

Очень напряженный рынок сейчас, много новых проектов заслуживающих внимание. Однако для меня — рядового пользователя без навыков программирования, важен лишь реальный пользовательский опыт.

С недавних пор, я заинтересовался проектом Covalent, который разрабатывается уже не первый год и по сути уже работает в полной мере. Но давайте обо всем по порядку!

Covalent — это единый API, который позволяет извлекать подробные, детализированные данные транзакций из нескольких блокчейнов, без кода.

В действительности, если говорить совсем просто, благодаря Covalent каждый человек, разрабатывая свой проект или приложение, или просто страничку в сети, может использовать данные из разных блокчейнов, без знаний кода, просто вставив необходимый кусочек кода API, который Covalent создаст автоматически, исходя из вашего запроса.

Covalent индексирует абсолютно все: блокчейны, отдельные контракты, каждую транзакцию, каждый адрес кошелька и многое другое. Это огромный объем информации, который Covalent анализирует и обновляет, внимание!

КАЖДЫЕ 30 СЕКУНД!

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

Сложно?

Если вы не разработчик или не технически подкованный пользователь, вам может показаться все это сложной системой, в которую нужно вникать!

Поверьте, мне тоже так показалось, пока я не поучаствовал в интереснейшем челлендже от Covalent, который они провели совместно, с не менее крутым проектом — Avalanche, в рамках большого хакатона под названием #OneMillionWallets.

В этой серии статей, я расскажу вам о трех этапах, в которых мне удалось поучаствовать и которые я успешно решил.

Wallet Puzzle Challenge Round 1

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

Задание:1. Найдите адрес контракта (0xABC …) токена Wrapped AVAX (WAVAX) в C-Chain Avalanche. Примечание. Существует несколько токенов с одинаковой меткой, поэтому найдите контрактный адрес токена с большим количеством держателей токенов и объемом транзакции.2. Найдите количество новых ненулевых держателей токенов WAVAX с 1 марта 2021 года с 0:00 по Гринвичу (03:00 по МСК) до настоящего времени (высота блока — 973950). Преобразуйте это число в двоичное.3. Ваша секретная комната со следующим заданием будет разблокирована на веб-сайте: www.onemillionwallets.com/{contract_address}-{binary_number} , - Используйте адрес вашего контракта из шага 1 и двоичное число из шага 2.- Подсказка: вам может помочь документация Covalent API о конечных точках класса A: https://www.covalenthq.com/docs/api

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

  1. В первом шаге, мне необходимо найти верный адрес контракта WAVAX в сети Avalanche C-Chain. Это делается довольно просто. Переходим в эксплорер сети https://cchain.explorer.avax.network/ и забиваем нужный токен. В задании, предупреждают, что мы можем увидеть два адреса и нам нужен адрес с большей активностью. Открыв, по очереди оба адреса, легко понять, что мне нужен вот этот: 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7

2. Начинается самое интересное! Но как нам найти новых холдеров WAVAX, да к тому же в определенный промежуток времени? Вот здесь нам и пригодится использовать API Covalent. В подсказке говорится, что нам нужен этот документ www.covalenthq.com/docs/api, переходим туда. Находим Class A, который также нам был дан в подсказке и пытаемся понять, какой именно интерфейс будем использовать для нашей ситуации. Прочитав всевозможные сценарии для класса А, не сложно догадаться, что нам нужен этот вариант «Get changes in token holders between two block heights».

Если внимательно изучить данную страницу, все становится предельно ясно.

  • chain_id — адрес сети, в которой будет идти поиск информации. Нам дают варианты прямо в интерфейсе.
  • address string — это адрес нашего контракта.
  • starting-block — начальная точка отсчета. То есть по условиям, это блок от 1 марта 2021, 0:00:00 UTC.
  • ending-block — конечная точка, которая дана в условии.
  • page-number — номер страницы, который я хочу вывести. Если оставить пустым, он выдаст по умолчанию нулевую страницу.
  • page-size — количество результатов на одной странице. Можно ввести огромное число и получить весь результат сразу на одной странице.
  • format — если прописать формат csv, то результат можно будет скопировать в Excel, что очень удобно, для последующего анализа.

Итак, из всех данных у меня нет только starting-block, однако я знаю дату, на которую мне нужно ориентироваться. Блокчейн, тем и хорош, что все есть в открытом доступе. Поскольку все происходит в Avalanche C-Chain, мне снова нужна эта сеть, чтобы найти нужный блок. Переходим https://avascan.info/blockchain/c/blocks

К сожалению, в интерфейсе нет возможности, указывать нужную страницу, поэтому это нужно сделать в браузерной строке.

После нескольких попыток найти необходимую страницу я нашел нужный номер.

Теперь у нас есть все данные, чтобы сделать запрос.

Небольшой лайфхак. Как видите, в строке page-size, я указал большое число, потому что хочу получить весь результат сразу на одной странице. Если бы это был объёмный запрос, слабый компьютер может очень долго обрабатывать его или вообще зависнуть. Если ваш ПК не очень мощный, лучше поставить какое-то оптимальное число вроде 1000 и искать результат постранично.

После того, как я нажал «TRY», мой компьютер получил ответ, который я собираюсь скопировать в Excel.

Я получил 1338 результатов (1139–1, потому что первая строка была занята описанием).

Вот на этом шаге, я допустил ошибку из-за чего два часа не мог понять, почему мне не удается перейти к следующему шагу. Все дело в том, что я невнимательно прочитал условие. Мне нужно было найти именно НОВЫХ холдеров WAVAX, то есть тех, чей баланс был сначала нулевым, а потом стал больше. Выборку нужно было сделать, именно по этому показателю. Благодаря подсказкам в дискорде, я все-таки смог понять правильную логику подсчета и после нехитрых манипуляций в Excel, я получил нужное число.

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

Получаем 1010100010

Наконец-то правильно!

https://www.onemillionwallets.com/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7-1010100010

Перейдя по секретной ссылке, мы наконец-то попадаем в тайную комнату! Ууууу!!!!

На втором этапе, меня ждал кроссворд на знание проектов Covalent и Avalanche.

Для меня это было не сложно, и я справился быстро. Хоть челлендж уже закончился, но кроссворд все еще доступен по ссылке. Вы можете пройти его, чтобы проверить себя.

В заключении, я написал твит об этом классном событии!

https://twitter.com/Raptor2799/status/1379528301027471363

Если вам понравился этот обзор — лайк и ретвит :)

Благодаря этому квесту, я научился основам работы с Covalent API, мне кажется это самый классный формат обучения.

В следующей статье, я поделюсь с вами кое-какими мыслями об этом и покажу, что меня ждало во втором раунде этого квеста!

Маленький спойлер. Это был самый сложный раунд.

Увидимся!

--

--