Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
asuleymanov
7 лет назад

Библиотека на языке GO

Приветствую.
Я очень старался и все таки сделал.
И так начну маленькое описание библиотеки.

Исходный код библиотеки можно получить по адресу.

Библиотека построена по принципу установил и используй. В первоначальном виде была не правильная реализация библиотеки. На данный момент (я думаю) большинство проблем устранено.

Установка

Для установки есть 2 варианта:

  1. Копирование.
  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()

Дальнейшее использование возможно в двух вариантах.

  1. Информационный вариант (Только получение информации о БЧ)
  2. Активный вариант. Использование готовых и создание новых функций отправки данных в БЧ. Для этого варианта необходима еще одна подготовка. А именно необходимо предусмотреть инициализацию ключей. Без этого ни одна операция записи данных в БЧ не отработает.
    Момент инициализации:
    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 за то что помогли разобраться с системой сериализации.

46
2501.489 GOLOS
На Golos с May 2017
Комментарии (1)
Сортировать по:
Сначала старые