cooparser-ts
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

COOPARSER

npm version npm downloads bundle JSDocs License

Пакет производит распаковку блоков, сохраняя действия и дельты таблиц и выдавая их по API. Состоит из двух модулей: парсера и API. Парсер считывает данные из блокчейна и помещает их в базу. API получает данные по запросу и возвращает их с пагинацией.

Установка

pnpm install

Конфигурационный файл .env

NODE_ENV=development
- Определяет среду выполнения приложения.

API=http://127.0.0.1:8888
- Определяет URL-адрес API, к которому будет осуществляться доступ.

SHIP=ws://127.0.0.1:8080
- Определяет URL-адрес WebSocket-соединения, используемого для связи с другими узлами.

MONGO_EXPLORER_URI=mongodb://127.0.0.1:27017/cooperative
- Определяет URI-адрес MongoDB, используемый для подключения к базе данных.

START_BLOCK=1
- Определяет номер блока, с которого начинается парсинг блокчейна.

FINISH_BLOCK=0xFFFFFFFF
- Определяет номер блока, на котором заканчивается парсинг блокчейна. В данном случае, установлено значение "0xFFFFFFFF", что означает, что парсинг будет продолжаться до последнего доступного блока.

PORT=4000
- Определяет порт, на котором будет запущен сервер приложения.

ACTIVATE_PARSER=0
- Определяет флаг активации парсера. Если значение равно "1", парсер будет активирован.

Конфигурация парсера

В конфиге src/config.ts находится массив таблиц и действий, на которые парсер осуществит подписку.

export const subsribedTables = [
  { code: 'registrator', table: 'users', 'scope': 'registrator' },
  { code: 'soviet', table: 'participants' },
]
  • подписка будет осуществлена на изменения таблиц указанных контрактов. Параметр scope - не обязательный. Без его указания любые scope будут попадать в базу данных.
export const subsribedActions = [
  { code: 'soviet', action: 'votefor' },
  { code: 'soviet', action: 'voteagainst' },
]
  • подписка будет осуществлена на действия указанных контрактов.

Парсер может быть расширен любыми кастомными действиями, которые будут выполняться перед добавлением записи в базу данных. Для этого, для таблиц и действий соответственно, в папках src/ActionParser/Actions и src/DeltaParser/Deltas необходимо создать файлы с методами обработки и добавить их к src/ActionParser/Actions или src/DeltaParser/DeltaFactory.

Запуск

pnpm start

API

Получение таблиц

Конечная точка предоставляет информацию о изменении (дельтах) таблиц между блоками.


let params = {
  page: 1,
  limit: 10,
  filter: {  } - любые параметры фильтрации таблицы, включая данные в полях
};

axios.get('http://localhost:4000/get-tables', { params })
  .then(response => {
    console.log(response.data);
    //  {
    //    results: array,
    //    page: number,
    //    limit: number
    //  };
  })

Получение действий

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

let params = {
  page: 1,
  limit: 10,
  filter: {  } // любые параметры фильтрации действий, включая данные в полях
};

axios.get('http://localhost:4000/get-actions', { params })
  .then(response => {
    console.log(response.data);
    //  {
    //    results: array,
    //    page: number,
    //    limit: number
    //  };
  })
  .catch(error => {
    console.error(error);
  });

Получение текущего блока

Конечная точка предоставляет информацию о текущем блоке. Эта информация используется при формировании кооперативных документов.

axios.get('http://localhost:4000/get-current-block')
  .then(response => {
    console.log(response.data);
    // number
  })
  .catch(error => {
    console.error(error);
  });

Лицензия

MIT License © 2024-PRESENT CBS VOSKHOD

Readme

Keywords

none

Package Sidebar

Install

npm i cooparser-ts

Weekly Downloads

138

Version

1.0.1

License

MIT

Unpacked Size

36 kB

Total Files

8

Last publish

Collaborators

  • sysarch