Latest Posts

Sassoft API: Интеграция Tron. Автоматизация приема и выплат USDT

Sassoft API: Интеграция Tron. Автоматизация приема и выплат USDT

В общий пул API был интегрирован новый API для работы с Tron (TRX) и проведение операций c USDT.

Основные операции, которые мы поддерживаем:

  • Создание нового адреса TRX
  • Активация адреса TRX
  • Прием TRX, USDT-TRC-20
  • Выплата TRX, USDT-TRC-20

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

Read more

Скрипт бекапов через Telegram API

Скрипт бекапов через Telegram API

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

В итоге нам нужно указать:

VOLUME_DIR — папку, которую хотим отправлять в наш Telegram канал

MAX_FILE_SIZE — т.к у Telegram имеются лимиты на отправку одного файла, то не более 50 мегабайт.

Read more

Полезные команды по grep

Полезные команды по grep

Набор сниппетов для поиска, фильтрации через утилиту grep.

Рекурсивный поиск внутри директории (плюс замена пробелов)

grep -R 'project_id' . > file.txt
grep -o '"name-[a-zA-Z-]*"' file.txt | tr \" "\b" > file-total.txt

Поиск строки в директории

grep -s 'export GITHUB_TOKEN' * .*

Поиск измененных yml, yaml файлов внутри ci/

if [[ $(git status -s | grep ci | grep -E "y(a)?ml") ]]; then
   echo "CI configurations have changed"
fi

Статья будет дополняться…

Read more

GitHub Actions: отправка POST запросов с webrequest-action

GitHub Actions: отправка POST запросов с webrequest-action

name: POST example

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  send:
    name: Send POST request from GitHub Actions
    runs-on: ubuntu-latest
    steps:
      - name: Send post request
        uses: satak/[email protected]
        with:
          url: https://some-url/handle-post
          method: POST
          payload: '{"foo": "bar", ""pipeline_name": "${{ github.event.repository.name }}"}'

При помощи webrequest-action можно делать множество различных запросов (как POST так и GET) самой разной сложности. Больше примеров можно найти в README автора.

Read more

Sassoft API: Wallets API — Bitcoind, Litecoind, Rippled

Sassoft API: Wallets API — Bitcoind, Litecoind, Rippled

Описание API

Для работы с данным API требуется загрузить платежные данные через личный кабинет cloud.sassoft.ru

Данный API сервис предназначен для управления криптовалютными кошельками:

  • Bitcoin (Bitcoind)
  • Litecoin (Litecoind)
  • Ripple

Спецификация

  • POST /bitcoind/address | /litecoind/address
    • label * — label адреса

Пример запроса:

curl -X POST -H "Token: api-token" https://api.sassoft.ru/bitcoind/address -d '{"label":"my-label"}'

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

Read more

CLI interactive integration tests с expect и Go — часть 2

CLI interactive integration tests с expect и Go — часть 2

В прошлой части мы сделали exp файл, который бы запускал наше интерактивное консольное приложение и взаимодействовал с ним.

В этой части мы напишем Go test, который будет при помощи cmd.Exec запускать exp файл, ждать ответа и делать какие-либо assertions.

Пример простого теста, который бы запускал наш expect файл и делал проверки ниже:

Read more

CLI interactive integration tests с expect и Go — часть 1

CLI interactive integration tests с expect и Go — часть 1

Тестирование интерактивных консольных приложение получилось довольно интересной задачей.

Как пример напишем простейшие консольное приложение при помощи библиотеки survey:

package main

import (
	"fmt"

        "github.com/AlecAivazis/survey/v2"
)

// the questions to ask
var qs = []*survey.Question{
	{
		Name:      "name",
		Prompt:    &survey.Input{Message: "What is your name?"},
		Validate:  survey.Required,
		Transform: survey.Title,
	},
	{
		Name: "color",
		Prompt: &survey.Select{
			Message: "Choose a color:",
			Options: []string{"red", "blue", "green"},
			Default: "red",
		},
	},
	{
		Name:   "age",
		Prompt: &survey.Input{Message: "How old are you?"},
	},
}

func main() {
	// the answers will be written to this struct
	answers := struct {
		Name          string // survey will match the question and field names
		FavoriteColor string `survey:"color"` // or you can tag fields to match a specific name
		Age           int    // if the types don't match, survey will convert it
	}{}

	// perform the questions
	err := survey.Ask(qs, &answers)
	if err != nil {
		fmt.Println(err.Error())
		return
	}

	fmt.Printf("%s chose %s.", answers.Name, answers.FavoriteColor)
}

Приложение взаимодействует с пользователе спрашивая различне вопросы и ожидает от пользовательского ввода.

Read more

Sassoft API: Coincallback API

Sassoft API: Coincallback API

Описание API

Данный API сервис предназначен для получения уведомлений прихода средств на различные криптоадреса:

  • Bitcoin
  • Litecoin
  • Ethereum
  • Ripple
  • Dogecoin
  • Zcash

Идея простая: вы генерируете новый адрес для приёма криптовалюты и посылаете запрос на Coincallback API для отслеживания приёма средств. Как только средства поступают на адрес, сервис делает POST запрос на ваш адрес, указанный в адресе.

Read more

Nginx — настройка load balancer

Nginx — настройка load balancer

Простейшая настройка nginx в качестве load balancer может выглядеть следующим образом. Открываем nginx.conf, добавляем секцию серверов upstream и даём ей имя (например loadbalancer). Серверы могут слушать на разных портах. Кроме того, можно одновременно использовать серверы, слушающие на TCP- и UNIX-сокетах.

В нашем случае:

...
upstream loadbalancer {
    server 172.17.0.1:5000;
    server 172.17.0.1:5001;
}
...

Далее в секции server указываем nginx что нам нужно проксировать запросы с определенных роутов на наш loadbalancer:

Read more

Curl — набор на все случаи жизни

Curl — набор на все случаи жизни

В данной статье собраны некоторые полезные сниппеты для работы с curl. Curl — это кросс-платформенная служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.

Для справки: curl поддерживает не только протокол HTTP, но и десяток других — DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Вообщем большой комбайн с различными интересными фичами. Я покажу лишь примеры, которые использовал сам за последнее время.

Read more