2.1.8 • Published 6 months ago

cooparser-ts v2.1.8

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

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

2.1.8

6 months ago

2.1.7

7 months ago

2.1.3

8 months ago

2.1.2

9 months ago

1.0.19-alpha.1

10 months ago

1.0.19-alpha.0

10 months ago

2.0.10-alpha.0

9 months ago

2.0.2

9 months ago

2.0.9

9 months ago

2.0.8

9 months ago

2.0.2-alpha.0

9 months ago

1.0.20-alpha.0

10 months ago

1.0.20

9 months ago

2.1.0

9 months ago

2.0.1

9 months ago

2.0.2-alpha.1

9 months ago

1.0.18

10 months ago

1.0.4

12 months ago

1.0.1

1 year ago

0.0.5

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago