Viz-awards-gates: Npm пакет для шлюзов наград, часть 1: описание

Здравствуйте. Представляю новый проект, который представляет собой NPM-пакет для разработчиков шлюзов наград.

Ссылки:

  1. NPM: https://www.npmjs.com/package/viz-awards-gates
  2. Github: https://github.com/denis-skripnik/viz-awards-gates

Установка:

  1. В папке вашего node.js приложения выполните команду:
    npm install viz-awards-gates
  2. После завершения инсталляции перейдите в node_modules/viz-awards-gates и измените файл config.json: укажите в нём название сервиса (по умолчанию youtube; можно использовать домен сайта, например, myforum.ru), а также логин и активный ключ аккаунта шлюза.
  3. Сохранив файл, подключите в коде своего приложения. Пример:
    const vag = require('viz-awards-gates');
    async function noReturn() {
    await vag.getAwards();
    }
    noReturn();
    async function getViz(user, viz_acc, amount) {
    if (user === true) { // проверяем, что в приложении авторизовался именно тот пользователь сервиса, кого награждали.
    await wag.addVizAccount(user, viz_acc); // добавляем в базу данных VIZ- аккаунт к существующему пользователю.
    await vag.withdraw(user, amount); // выводим ему токены.
    }
    }

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

  4. Дайте инструкцию пользователю шлюза или внедрите награду в интерфейс. Memo имеет вид: "сервис:логин" (без кавычек), например, youtube:scadens или myforum.ru:login@mail.ru

Функционал:

  1. Получение из блокчейна наград, адресованных аккаунту шлюза, и их фильтрация по memo (проверка, что заметка соответствует вашему сервису).
  2. Прибавление или создание баланса в базе данных.
    Под прибавлением баланса понимается увеличение суммы в базе данных для конкретного логина.
    Под созданием баланса понимается добавление нового логина в БД.
    Под логином понимается информация, которая позволяет идентифицировать пользователя: id, email, логин, первый ключ и пр.
  3. Добавление VIZ-аккаунта.
  4. Вывод – специальная функция (см. пример подключения в разделе установки), которая отправляет накопленный баланс с аккаунта шлюза на аккаунт пользователя в VIZ. При этом можно вывести как всю сумму, так и её часть. Кроме того, ваше приложение может автоматически выводить всю сумму раз в определённое время, получив баланс пользователя и указав его при выводе.
  5. Существует две базы данных: с последним блоком и со списком пользователей сервиса (в ней указываются логины и их балансы). При желании с ними можно работать.

Функции в index.js:

Экспортированы getAwards, addVizAccount, withdraw и search.

  1. getAwards - не требует аргументов.
  2. addVizAccount(user, viz_login) - функция добавления VIZ-аккаунта в базу данных пользователей. Принимает аргументы: логин в БД, логин в VIZ.
    Возвращает json, содержащий либо 1 (всё в порядке), либо 0 (аккаунта нет в базе), либо -1 (ошибка). Если значение 1, отправляется message с текстом сообщения об успехе. Если значение 0 или -1, отправляется error с текстом сообщения о несуществующем пользователе (0) или текстом ошибки (-1).
  3. withdraw: логин в сервисе (который содержится в базе данных) и сумма в SHARES без указания "SHARES".
    Пример:
    ag.withdraw('scadens', 3.168929).
    Сумма SHARES не должна быть больше имеющейся у пользователя в базе данных.
    Указанный логин в VIZ должен быть в БД.
    Возвращает json. Он состоит из code (1, если успех; 0, если аккаунта нет в базе данных; -1, если иная ошибка).
  4. withdrawShares (не требует вызова в приложении, без аргументов).
  5. search (поиск пользователя в базе). Единственный аргумент - логин пользователя.
    Пример:
    await vag.search('scadens');

Что не делает viz-awards-gates, а реализует приложение, использующее npm пакет:

  1. Отправляет уведомление о награждении. Первоначально планировал добавить эту возможность в пакет, но потом понял, что это ни к чему, т.к. в каждом приложении будет свой текст.
  2. Само определяет подлинность авторизовавшегося пользователя: через oAuth, путём отправки custom_json или memo (блокчейны) или иным способом.

Проведены тесты:

Всё ок.

Всё.

В следующем посте опишу алгоритм интеграции с библиотекой на примере форума.
Если будут вопросы, пишите в комментариях или в telegram: https://t.me/skripnikdenis
[Github](https://github.com/denis-skripnik/viz-awards-gates], NPM

С вами был незрячий программист и делегат VIZ @denis-skripnik.


2
18 Awards
208.053575 SHARES
Show comment form
Comments

01.04.2019 18:47:54
  • На github README на русском, это плохо, надо делать на английском
  • Описание "NPM пакет для приложений, награждающих пользователей различных сервисов" недостаточно, сразу не понятно что делает эта штука, какие решает задачи

По поводу того, что README на Русском: потом буду заказывать перевод. Сам я в Английском слаб.
По поводу описания: подумаю. Благодарю.