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

Jason Win
7 min readApr 29, 2021

Сегодня я разберу заключительную, третью часть квеста Wallet Puzzle Challenge и подведу личные итоги этого соревнования!

Третий раунд был самым легким и быстрым для меня. Я думаю мне понадобилось не больше 20 минут, чтобы пройти квест целиком. Хоть я и не пытался решить это на время, но тем ни менее приятно чувствовать себя уверенно.

Начнем разбор.

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

Шаг 1. Найдите адрес контракта (0xabc…) токена CryptoSeal (SEAL) NFT в сети Avalanche C-Chain.

Найти контракт в сети Avalanche C-Chain? Что может быть проще, ведь я уже профессионал по поиску контрактов в этой сети. Переходим: https://cchain.explorer.avax.network/

Наш контракт

0x0540E4EE0C5CdBA347C2f0E011ACF8651bB70Eb9

Шаг 2. Определите token_id этого токена NFT. Это значение понадобится вам для создания URL-адреса секретной комнаты.

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

После того, как я перешел по ссылке. Я оказался на странице, которая абсолютно четко даёт понять, о том, что если хочешь получить информацию дальше, необходимо подключиться к сети C-Chain.

Что ж, выхода нет, пришлось искать инструкцию по подключению к сети C-Chain в метамаск. Синяя надпись — ссылка на твит - инструкция. Вот прямая ссылка — https://tradingtoolcrypto.medium.com/how-to-use-metamask-with-avalanche-avax-e5db94d749b

После этого у меня открылась страница с нужной информацией.

Итак, у нас есть первая часть загадки.

token_id — 2514

Согласитесь, это все довольно просто.

Шаг 3. Определите высоту блока, когда NFT с шага 2 был передан текущему владельцу.

Итак, как же найти этот блок?

Ну для начала логично, что нам нужно найти эту транзакцию, где токен был передан последнему владельцу. Соответственно нам нужно найти все транзакции для этого токена и посмотреть последнюю передачу. Я зашел в эксплорер, пытался как-то «поиграть» с поиском, но все было безуспешно.

Внезапно, до меня дошел один вариант.

У нас есть адрес контракта, который мы нашли на 1 шаге. Перейдя на страницу контракта, мы видим примерно такое.

Однако, если присмотреться повнимательнее, то снизу мы можем увидеть транзакции для определенных TokenID.

Я нажимаю на номер любого TokenID и у меня открывается окно с транзакцией для этого токена.

Допустим я выбрал TokenID 4583. Однако нам ведь нужен другой. Для этого, я меняю в браузерной строке номер 4583 на нужный нам 2514 и теперь мы видим транзакции для нужного нам токена.

Вот прямая ссылка на транзакции токена:

https://cchain.explorer.avax.network/tokens/0x0540e4ee0c5cdba347c2f0e011acf8651bb70eb9/instance/2514/token-transfers

Как видите, там всего одна транзакция на высоте блока:

#717770

Шаг 4. NFT можно продавать на рынках, при этом происходит специальное событие, запускаемое смарт-контрактом. В случае CryptoSeals событие, возникающее при размещении NFT на рынке для продажи, называется “ForSale”, которое имеет определенный Топик Хэш. Найдите количество CryptoSeal NFT, которые были размещены на рынке для продажи между высотой блока, выбранной на шаге 3, до 1 апреля 2021 года 0:00 утра по UTC. Вам понадобится это значение, nfts_for_sale, чтобы создать URL-адрес.

Начинается веселье! На этом шаге, мы снова возвращаемся к интерфейсу Covalent API, где и будут проходить главные события!

Прочитав задание несколько раз, я понял, что здесь нам вновь придется искать данные по Топик Хэшу.

Благодаря опыту прошлого раунда, сделать это было довольно просто.

В первую очередь мне необходимо найти, Топик Хэш, который соответствует транзакции «For Sale». Все это я делал в предыдущем раунде.

Здесь вы можете найти обзор на второй раунд:

Я перехожу на страницу контракта с логами: https://cchain.explorer.avax.network/address/0x0540E4EE0C5CdBA347C2f0E011ACF8651bB70Eb9/logs

И ищу нужный Топик Хэш.

Я нашел пару транзакций, убедился, что они входят в категорию «For Sale» и вижу их общий Топик Хэш:

0x454a59b1e51b1685e697faeca2a404382f4dcb9970aece78299147857e150393

Теперь у нас есть все данные, для запроса в Covalent API.

Переходим в знакомый раздел Get Log events by topic hash(es), на странице Covalent API:

https://www.covalenthq.com/docs/api/#get-/v1/{chain_id}/events/topics/{topic}/

И вводим данные.

Я не буду расписывать каждую вкладку, все это мы уже проходили в прошлых раундах. Если вы читаете об этом впервые, вернитесь к предыдущим обзорам.

Round 1: https://link.medium.com/GX7cyvT5Cfb

Round 2: https://link.medium.com/IW35MWqUIfb

Отмечу только, то что во вкладке sender address мы впишем адрес контракта SEAL: 0x0540E4EE0C5CdBA347C2f0E011ACF8651bB70Eb9

starting-block — по условию, блок, который мы нашли на шаге 3, то есть #717770

ending-block April 1, 2021 0:00AM UTC. Этот блок также можно найти в эксплорере. И этот шаг, также описан в прошлом раунде, то есть #875518

https://avascan.info/blockchain/c/block/875518

В результате, мой запрос выглядит следующим образом:

Я скопировал данные в Excel и получил следующий результат:

Я получил 4487 строчек, однако 1 строчка — это описание позиций. Поэтому, у нас 4486 операций. Благодаря тому, что запрос сразу подразумевал поиск конечного результата, нам не нужно делать здесь дальнейшую выборку. Мы нашли верное число.

4486

Шаг 5.При покупке NFT генерируется событие “Bought”, которое имеет свой собственный Топик Хэш. На этом шаге найдите количество CryptoSeal NFT, которые были куплены между высотой блока, полученной на шаге 3, до 1 апреля 2021 года в 0:00 по UTC. Вам понадобится значение, nfts_bought, чтобы найти URL-адрес.

Думаю, вы догадались, что этот шаг идентичен предыдущему, нужно лишь поменять Топик Хэш. Находим Топик Хэш для события «Bought». Пришлось немного поискать в логах, но в итоге я нашел.

0x3ccb2ab6980b218b1dd4974b07365cd90a191e170c611da46262fecc208bd661

Теперь необходимо вновь сделать запрос к Covalent API. Все как в прошлый раз, меняем лишь Топик Хэш.

Результат копируем в Excel. Как видно ниже, у нас 543 строчки. Убираем верхнюю с описанием и получаем 542 строчки, а значит 542 транзакции, которые удовлетворяют условиям задачи.

Найденное число

542

Шаг 6. В том же диапазоне блоков, что и на последнем шаге, определите адрес кошелька последнего покупателя CryptoSeal (т. Е. NFT, купленный ближе всего к 1 апреля 2021 года в 0:00 по UTC). Вам понадобится значение, buyer_address, чтобы найти URL-адрес.

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

Как же это все удобно и быстро! Зная хэш, транзакцию найти не сложно.

Забив в поисковую строку номер хэша, мы получаем транзакцию с нужной информацией.

https://cchain.explorer.avax.network/tx/0xbd7658c64fa894e0fa00872fdecec785ab9dabb4b3b5a27a9f831cea41add0c7/token-transfers

В самом конце можно увидеть детали, а именно на какой адрес был отправлен токен.

В результате получаем нужный адрес:

0x8De3990D94691CaB1DE6EC00142D9aA2415D41EC

Шаг 7. Собрав все ваши данные вместе, ваша секретная комната со следующим заданием будет разблокирована на веб-сайте: www.onemillionwallets.com/{token_id}-{nfts_for_sale}-{nfts_bought}-{buyer_address}Например, если у вас есть:token_id с шага 2: 1 nfts_for_sale с шага 4: 100nfts_bought с шага 5: 100buyer_address с шага 6: 0xc43ee4634Aed3796971ccE43e64b696D4de4ca83Тогда ваш URL будет:www.onemillionwallets.com/1-100-100-0xc43ee4634Aed3796971ccE43e64b696D4de4ca83

По сути это просто полное описание, в какой последовательности и как, мы должны использовать найденные значения, чтобы получилась правильная ссылка тайной комнаты. Что же получилось у нас:

token_id из шага 2: 2514

nfts_for_sale из шага 4: 4486

nfts_bought из шага 5: 542

buyer_address из шага 6: 0x8de3990d94691cab1de6ec00142d9aa2415d41ec

В итоге получаем нашу ссылку:

www.onemillionwallets.com/2514-4486-542-0x8de3990d94691cab1de6ec00142d9aa2415d41ec

Дааа!

Я сделал это в третий раз!

Была особая радость, потому что в этот раунде, все получилось без подсказок и с первого раза.

В секретной комнате, меня ждал интересный паззл!

Комната, все еще доступна, и вы можете попробовать собрать его!

А вот что получилось в самом конце:

С последним паззлом закончилась, и эта удивительная, крутая и познавательная серия квестов!

Мой твит:

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

Поставьте лайк и сделайте ретвит! Ведь это было действительно классно!

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

Я принял участие, потому что люблю и знаю Avalanche. Я принял участие, потому что вижу в Covalent огромный потенциал, который сложно оценить в полной мере. Мне очень хотелось стать частью этой истории и изнутри попробовать продукт под названием Covalent API.

Хочу вас уверить, друзья, в этом нет ничего сложного. Я решил написать этот обзор, потому что хочу через несколько лет, глядя на Covalent в TOP 10 маркет кап, вспоминать с чего все начиналось!

Спасибо, если прочитали до конца!

--

--