Техническое задание:

Часть 1 - UX

Нужно сделать мини-приложение для просмотра транзакций аккаунта. Т.е. вводишь адрес аккаунта (например tz1Yz97pBfZmVvpPy9AAXHSocWM7Vb7XKRm3) и смотришь его транзакции. Транзакции нужно получать тут(пример). Каждый элемент списка (транзакция) должен по клику вести на tzkt.io/{transactionHash}. Что и как отображать - надо придумать самому. Основная цель - сделать удобный и приятный списочек с хорошим UXом.

Часть 2 - логика

Нужно усовершенствовать список транзакций из первой части путем замешивания в него "token transfers". Немного теории: транзакция в Тезосе - это базовая операция, которую пользователь может совершить/отправить в блокчейн, содержащая какие-то параметры внутри себя. В результате исполнения транзакций могут происходить разные вещи, например, простой перевод средств, вызов смарт контракта, переводы токенов, и т.п. Т.е. токен трансферы по сути являются результатом исполнения каких-то транзакций, и иерархически являются их дочерними элементами. Например, имея транзакцию

{
  "type": "transaction",
  "id": 49244666,
  "sender": ...,
  "target": ...
}

и токен трансфер

{
  "token": ...,
  "from": ...,
  "to": ...,
  "amount": ...,
  "transactionId": 49244666
}

Мы можем смерджить их в один объект по transaction.id и transfer.transactionId:

{
  "type": "transaction",
  "id": 49244666,
  "sender": ...,
  "target": ...
  "transfers": [
    {
      "token": ...,
      "from": ...,
      "to": ...,
      "amount": ...,
      "transactionId": 49244666
    }
  ]
}

Именно это и нужно сделать. Нужно использовать эту апи (пример), чтобы получить список токен трансферов нашего аккаунта, и вмерджить его в список транзакций (у каждой транзакции, у которой есть трансфер(ы), должно появиться поле "transfers": [...]). После этого, в отображаемый список нужно добавить инфу о том, что в транзакции есть токен трансфер(ы) (если они есть).

Часть 3 (если хватит сил)

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

P.S. и транзакции и трансферы надо загружать порциями (пагинировать, используя курсор типа "id"). Нельзя загружать сразу все, т.к. есть аккаунты, у которых миллионы операций и токен трансферов.

Запуск проекта

Предустановить все необходимое

npm i

Запуск проекта

npm run serve

Деплой проекта на GitHubPages

Подробно про деплой на GitHub Pages можно почитать тут

npm run deploy

Сборка проекта

npm run build