Метка: golang

Работа с API криптобиржи Yobit на golang - Получение собственного баланса

Все примеры работают с go version go1.9.2 linux/amd64

Работа с API для торгов

Получение своего баланса

Прежде всего для работы с api торгов нужно создать пару Ключ - Секрет на странице https://yobit.io/ru/api/keys/

Все будет немного сложнее, чем в предыдущем примере. Именно авторизация на бирже и подпись параметров вызвали у меня больше всего вопросов. Потому-то и хочется оставить рабочий код здесь.

Для начала каждый запрос нам нужно будет подписывать. И чтобы запросы (и подписи) отличались, биржа требует указывать каждый раз параметр nonce в виде целого числа в диапазоне 1..2147483646. При чем в каждом следующем запросе это число должно быть больше, чем в предыдущем. Для обнуления нужно создать новый ключ.

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

import (
    "io/ioutil"
    "strconv"
)

func GetNonce(key string) (nonce int, err error) {
    nonceFileName := "nonce." + key[0:8] + ".txt"
    nonceBytes, err := ioutil.ReadFile(nonceFileName)
    if err == nil {
        nonce, _ = strconv.Atoi(string(nonceBytes))
    }
    nonce++
    err = ioutil.WriteFile(nonceFileName, []byte(strconv.Itoa(nonce)), 0644)

    return
}

Для того, чтобы хранить параметр для каждого ключа отдельно, используем часть ключа как часть имени файла.

TL;DR


Создано: 18.01.2018 22:20

Работа с API криптобиржи Yobit на golang - Получение доступных пар

Все примеры работают с go version go1.9.2 linux/amd64

Работа с открытым API

Получение информации о доступных валютных парах

Посмотрим, что написано в документации:

Пример запроса: https://yobit.net/api/3/info

Пример ответа:

{
    "server_time":1418654531,
    "pairs":{
        "ltc_btc":{
            "decimal_places":8,
            "min_price":0.00000001,
            "max_price":10000,
            "min_amount":0.0001,
            "hidden":0,
            "fee":0.2
        }
        ...
    }
}

В первую очередь для работы с json-api нам потребуется создать структуры данных, в котрые мы будем разбирать полученный JSON.

TL;DR


Создано: 18.01.2018 18:57