Приветствую.
Я очень старался и все таки сделал.
И так начну маленькое описание библиотеки.
Исходный код библиотеки можно получить по адресу.
Библиотека построена по принципу установил и используй. В первоначальном виде была не правильная реализация библиотеки. На данный момент (я думаю) большинство проблем устранено.
Установка
Для установки есть 2 варианта:
- Копирование.
- Установка с помощью языка GO
go get github.com/asuleymanov/golos-go
Использование
Для использования необходимо подключить библиотеку к своему проекту import "github.com/asuleymanov/golos-go/client"
Дальше необходимо создать объект(структуру) для использования библиотеки.
cls := client.NewApi("wss://ws.golos.io", "golos")
Первый параметр адрес шлюза, второй параметр название системы (на данный момент используются только два варианта "golos" и "steem")
Примечание
Главное не забыть закрыть шлюз командой defer cls.Rpc.Close()
Дальнейшее использование возможно в двух вариантах.
- Информационный вариант (Только получение информации о БЧ)
- Активный вариант. Использование готовых и создание новых функций отправки данных в БЧ. Для этого варианта необходима еще одна подготовка. А именно необходимо предусмотреть инициализацию ключей. Без этого ни одна операция записи данных в БЧ не отработает.
Момент инициализации:
client.Key_List["<username>"] = client.Keys{
PKey: "",
AKey: "",
OKey: "",
MKey: ""}
Пояснения.
< username > - имя пользователя для которого создается список ключей
Далее непосредственно список ключей. Данная система инициализации предусматривает инициализацию определенного ключа, т.е. без указания остальных.
Пример:
client.Key_List["<username>"] = client.Keys{PKey: "<key>"}
Для указанного клиента будут доступны только те операции которые позволяют использовать posting ключ.
Если Вам необходимо узнать какой ключ для какой операции необходим можете использовать файл в библиотеке по пути:
github.com/asuleymanov/golos-go/client/ident_wif.go
В данном файле приведен полный список оперций и ключи которые необходимы для её использования.
Описание (готовых) функций
На данный момент в библиотеке реализованы функции:
func (api *Client) Vote(user_name, author_name, permlink string, weight int)
func (api *Client) Comment(user_name, author_name, ppermlink, body string)
func (api *Client) Comment_Vote(user_name, author_name, ppermlink, body string, weight_post int)
func (api *Client) DeleteComment(author_name, permlink string)
func (api *Client) Post(author_name, title, body string, tags []string)
func (api *Client) Post_Vote(author_name, title, body string, tags []string, weight_post int)
func (api *Client) Follow(follower, following string)
func (api *Client) Unfollow(follower, following string)
func (api *Client) Ignore(follower, following string)
func (api *Client) Notice(follower, following string)
func (api *Client) Reblog(user_name, author_name, permlink string)
func (api *Client) Witness_Vote(user_name, witness_name string, approv bool)
func (api *Client) Transfer(from_name, to_name, memo, ammount string)
В дальнейшем планируется расширение функциональности. Но уже на данный момент библиотеку можно использовать для написания микросервисов (для чего в большинстве своем и предназначен язык GO).
P.S. Я выражаю большую благодарность коллективу @steepshot за то что помогли разобраться с системой сериализации.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
t3ran13, niiu, zoss, investigator, vadbars, dr-boo, romapush, gryph0n, voltash, asuleymanov, gbot
Поэтому я тоже проголосовал за него!
Если Вы проголосуете за этот комментарий, то поможете сделать "Доброго Кита" сильнее!