Sassoft API: Интеграция Tron. Автоматизация приема и выплат USDT
Sassoft API: Интеграция Tron. Автоматизация приема и выплат USDT
В общий пул API был интегрирован новый API для работы с Tron (TRX) и проведение операций c USDT.
Основные операции, которые мы поддерживаем:
- Создание нового адреса TRX
- Активация адреса TRX
- Прием TRX, USDT-TRC-20
- Выплата TRX, USDT-TRC-20
Для проведения операций необходимо получение сессионного пароля, который будет шифровать приватные ключи сгенерированных или импортированных адресов.
Скрипт бекапов через Telegram API
Скрипт бекапов через Telegram API
Данный скрипт можно запускать через cron ежедневно, компресировать нужную папку и отправлять через своего Telegram бота к себе в чат для сохранения бекапов.
В итоге нам нужно указать:
VOLUME_DIR — папку, которую хотим отправлять в наш Telegram канал
MAX_FILE_SIZE — т.к у Telegram имеются лимиты на отправку одного файла, то не более 50 мегабайт.
Полезные команды по 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
Статья будет дополняться…
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 автора.
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"}'
Пример ответа:
CLI interactive integration tests с expect и Go — часть 2
CLI interactive integration tests с expect и Go — часть 2
В прошлой части мы сделали exp файл, который бы запускал наше интерактивное консольное приложение и взаимодействовал с ним.
В этой части мы напишем Go test, который будет при помощи cmd.Exec запускать exp файл, ждать ответа и делать какие-либо assertions.
Пример простого теста, который бы запускал наш expect файл и делал проверки ниже:
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)
}
Приложение взаимодействует с пользователе спрашивая различне вопросы и ожидает от пользовательского ввода.
Sassoft API: Coincallback API
Sassoft API: Coincallback API
Описание API
Данный API сервис предназначен для получения уведомлений прихода средств на различные криптоадреса:
- Bitcoin
- Litecoin
- Ethereum
- Ripple
- Dogecoin
- Zcash
Идея простая: вы генерируете новый адрес для приёма криптовалюты и посылаете запрос на Coincallback API для отслеживания приёма средств. Как только средства поступают на адрес, сервис делает POST запрос на ваш адрес, указанный в адресе.
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:
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. Вообщем большой комбайн с различными интересными фичами. Я покажу лишь примеры, которые использовал сам за последнее время.