Skip to content

denis-skripnik/viz-awards-gates

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

viz-awards-gates

NPM пакет для приложений, награждающих пользователей различных сервисов/

Установка:

  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, 'to_balance'); // выводим ему токены в баланс Viz (to_shares переведёт в долю).
}
}

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

Функционал:

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

Функции в 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" и mode: to_balance - в ликвид, to_shares - в долю. Пример: ag.withdraw('scadens', 3.168929, 'to_shares'). Сумма SHARES не должна быть больше имеющейся у пользователя в базе данных. Указанный логин в VIZ должен быть в БД. Возвращает json. Он состоит из code (1, если успех; 0, если аккаунта нет в базе данных; -1, если иная ошибка).
  4. withdrawShares (не требует вызова в приложении, без аргументов).
  5. search (поиск пользователя в базе). Единственный аргумент - логин пользователя. Пример: await vag.search('scadens');
  6. userRegistration - функция, которая позволяет регистрировать аккаунт Viz. Параметры: user, viz_login. user - логин/id/что-то ещё пользователя приложения, с которым коннектится шлюз; viz_login - Желаемый логин Viz. Возвратит приватный ключ или или объект с кодом ошибки и текстом (0 - пользователя приложения такого нет, -1 - ошибка прочие ошибки.
  7. awardMe (не требует вызова в приложении, вызывается каждые 450000 миллисекунд). Награждает аккаунт шлюза самого себя.

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

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

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

Всё ок.

Контакты:

Автор - Денис Скрипник. Telegram: https://t.me/skripnikdenis Viz аккаунт: https://viz.world/@denis-skripnik/

About

NPM package for awards services for VIZ blockchain

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published