SubQuery Module 2
Выполнение 2 модуля для получения статуса Спартанца в проекте SubQuery
Все необходимые инструменты для выполнения данного задания можете взять отсюда https://teletype.in/@leader2869/Modul1 , если вы уже выполнили 1 модуль идем дальше)
Возвращаемся в корневую папку, командой
после того как вставим команду "sudo subql init --starter AccountBalances" нас попросят ввести информацию :
Git repository - жмем просто Enter
RPC endpoint - жмем Enter и ждем секунд 5-10
Authors - вводим Ваше имя (к примеру я ввожу ник дискорда leader2869)
Description - жмем просто Enter
Version - жмем Enter
License - жмем Enter
Заходим в наш проект, командой:
ТЕПЕРЬ СНОВА ОЧЕНЬ ВАЖНАЯ ЧАСТЬ ПРОЕКТА!!!! НЕОБХОДИМО ЗАМЕНИТЬ СОДЕРЖИМОЕ 3 ФАЙЛОВ В ПРОЕКТЕ, делаем по аналогии первого модуля
Для этого нам понадобиться программа которую мы скачали вот тут - https://winscp.net/eng/download.php.
устанавливаем себе на компа, подключаемся к арендованному серверу по аналогии с первым модулем, находим и полностью меняем содержимое 3 файлов. путь к файла AccountBalances -> src ->mappings ->
import {SubstrateExtrinsic,SubstrateEvent,SubstrateBlock} from "@subql/types";
import {Account} from "../types";
import {Balance} from "@polkadot/types/interfaces";
export async function handleEvent(event: SubstrateEvent): Promise<void> {
const {event: {data: [account, balance]}} = event;
//Create a new Account entity with ID using block hash
let record = new
Account(event.extrinsic.block.block.header.hash.toString());
//Assign the Polkadot address to the account field
record.account = account.toString();
//Assigh the balance to the balance field "type cast as Balance"
record.balance = (balance as Balance).toBigInt();
await record.save();
}
specVersion: 0.0.1
description: AccountBalances
repository: ''
schema: ./schema.graphql
network:
endpoint: wss://polkadot.api.onfinality.io/public-ws
dictionary: https://api.subquery.network/sq/subquery/dictionary-polkadot
dataSources:
- name: main
kind: substrate/Runtime
startBlock: 1
mapping:
handlers:
- handler: handleEvent
kind: substrate/EventHandler
filter:
module: balances
method: Deposit
id: ID! #id is a required field
account: String #This is a Polkadot address
balance: BigInt #This is the amount of DOT
Закончили с редактированием файлов, возвращаемся в MobaXterm и пишем следующие команды:
далее открываем браузер на вашем компьютере и вписываем следующее:
http:\\ IP адрес вашего арендованного VPS сервера:3000
пример: http:\\65.108.59.163:3000
должно открыться следующее окно :
и вставляем в левую часть следующий код:
query {
accounts(first:10 orderBy:BALANCE_DESC){
nodes{
account
balance
}
}
}
Жмем на кнопку по центру и в правой колонке увидим похожий текст как на картинке
Возвращаемся в MobaXterm и нажимаем Ctrl+C - тем самым останавливаем нашу ноду
Теперь снова необходимо наш проект залить на GitHub.
Переходим в GitHub и создаем новый репозиторий, точно также, как мы это делали для HelloWorld, только теперь указываем новое имя проекта, к примеру Modul2
Затем переходим в консоль и пишем:
git remote add origin https://github.com/ник_гитхаб/название_репозитория.git
в моем случае git remote add origin https://github.com/leader2869/modul2.git вы же указываете свои данные
далее вас попросит ввести свой ник на GitHub, в моем случае leader2869 и жмем Enter
Если видите эту строку, значит вы всё правильно подключили
* [new branch] master -> master.
Снова нажимаем Create Project и заполняем все также, как мы делали для HelloWorld. указываем только новое имя репозитория, к примеру Modul2
Дальше будут два таких поля, жмем Deploy и внутри еще одна кнопка Deploy update%
Все ссылки на репозитории копируем себе в блокнот, они нам будут необходимы когда будем отправлять форму для получения статуса спартанца , ссылка на форму:
Гайд подготовил Виталий Литвинюк
За помощь в подготовке данного гайда выражаю @chernyaka