Blockchain connector BTC-like Service API
Обзор
Для каждого поддерживаемого блокчейна доступен набор эндпоинтов, позволяющий сформировать транзакцию, подписать ее и отправить в сеть, а также получить адрес из публичного ключа.
Параметры запросов, встроенные в url, например, идентификатор блокчейна, являются обязательными. Параметры в query string или JSON теле запроса могут быть опциональными и подробно описаны в соответствующих разделах.
Адрес сервера: https://cloud.spatium.net/blockchain-connector-btc-like/v1
Для данного адреса сервера доступно взаимодействие со следующими блокчейнами:
- btc;
- ltc;
- bch;
- doge.
Структура запросов и информации в ответах для них одинакова.
Типы данных
Network
Network - тип сети. Как правило, блокчейны поддерживают минимум два варианта: тестовая сеть для разработки (testnet) с фиктивными активами и стабильная рабочая сеть (livenet) с реальными активами. Структура данных:
AddressType
AddressType - формат адреса Legacy (p2pkh) или SegWit (p2wpkh), применим только для Bitcoin и Litecoin блокчейнов. Структура данных:
UTXO
UTXO (unspent transaction output) - неизрасходованный вывод транзакции. Структура данных:
txid
- идентификатор транзакции;vout
- идентификатор вывода в этой транзакции;value
- сумма.
API
Генерация адреса из публичного ключа
Swagger Get address
Структура запроса POST /api/get-address/{chain}
Параметры
-
publicKey
- публичный ключ, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network), -
type
- формат адреса, необязательный параметр, значение по умолчанию 'p2wpkh', для bch данный параметр игнорируется (AddressType), -
prefix
- наличие префикса в адресе, необязательный параметр, значение по умолчанию false (логическое значение).
Получение данных для формирования транзакции
Для формирования и оценки комиссии транзакции необходимо получить следующий набор данных:
- список UTXO,
- размер транзакции,
- стоимость байта.
Swagger Prepare transaction API
POST /api/prepare-transaction/estimate
GET /api/prepare-transaction/utxo-list/{chain}/{address}
POST /api/prepare-transaction/size/{chain}
GET /api/prepare-transaction/price-per-byte/{chain}
Эндпоинт estimate позволяет получить все необходимые для формирования и оценки транзакции данные одним запросом. Также есть возможность получения этих данных тремя отдельными запросами (utxo-list, size, price-per-byte).
Estimate
Эндпоинт предоставляет все необходимые для формирования и оценки комиссии транзакции данные.
Swagger Prepare transaction Estimate
Структура запроса POST api/prepare-transaction/estimate/{chain}
Параметры
-
address
- адрес отправителя, обязательный параметр (строка), -
publicKey
- публичный ключ, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network), -
type
- формат адреса, необязательный параметр, значение по умолчанию 'p2wpkh', для bch данный параметр игнорируется (AddressType), -
to
- адрес получателя, обязательный параметр (строка), -
amount
- сумма во внутреннем целочисленном формате, обязательный параметр (строка).
Список utxo по адресу
Список UTXO необходим для корректного формирования транзакции и расчета ее размера.
Swagger Prepare transaction UTXO
Структура запроса GET /api/prepare-transaction/utxo-list/{chain}?address={address}&network=livenet
Параметры
-
address
- адрес отправителя, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network).
Структура ответа
Размер транзакции
Размер транзакции необходим для корректного расчета комиссии транзакции.
Swagger Prepare transaction Size
Структура запроса POST /api/prepare-transaction/size/{chain}
Параметры
-
publicKey
- публичный ключ, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network), -
type
- формат адреса, необязательный параметр, значение по умолчанию 'p2wpkh', для bch данный параметр игнорируется (AddressType), -
utxo
- список неизрасходованных выводов транзакций, обязательный параметр (UTXO), -
to
- адрес получателя, обязательный параметр (строка), -
amount
- сумма во внутреннем целочисленном формате, обязательный параметр (строка).
Стоимость байта
Сумма сатоши за один байт размера транзакции необходима для корректного расчета комиссии. Сумма зависит от режима отправки (slow, normal, fast). Итоговая комиссия транзакции рассчитывается как произведение размера транзакции на сумму сатоши за один байт для выбранного режима отправки.
Swagger Prepare transaction Price per byte
Структура запроса GET /api/prepare-transaction/price-per-byte/{chain}?network=livenet
Параметры
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network).
Структура ответа
Транзакции
Swagger Transaction API
POST /api/transaction/get-hash/{chain}
POST /api/transaction/attach-signature/{chain}
POST /api/transaction/send/{chain}
Получение хэша транзакции
Swagger Transaction Get hash
Структура запроса POST /api/transaction/get-hash/{chain}
Параметры
-
publicKey
- публичный ключ, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network), -
type
- формат адреса, необязательный параметр, значение по умолчанию 'p2wpkh', для bch данный параметр игнорируется (AddressType), -
utxo
- список неизрасходованных выводов транзакций, обязательный параметр (UTXO), -
to
- адрес получателя, обязательный параметр (строка), -
amount
- сумма во внутреннем целочисленном формате, обязательный параметр (строка), -
fee
- комиссия транзакции, обязательный параметр (строка).
Подпись транзакции
Swagger Transaction Attach signature
Структура запроса POST /api/transaction/attach-signature/{chain}
Параметры
-
publicKey
- публичный ключ, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network), -
type
- формат адреса, необязательный параметр, значение по умолчанию 'p2wpkh', для bch данный параметр игнорируется (AddressType), -
utxo
- список неизрасходованных выводов транзакций, обязательный параметр (UTXO), -
to
- адрес получателя, обязательный параметр (строка), -
amount
- сумма во внутреннем целочисленном формате, обязательный параметр (строка), -
fee
- комиссия транзакции, обязательный параметр (строка), -
signatures
- массив объектов с данными подписи, обязательный параметр.
Отправка транзакции в сеть
Swagger Transaction Send
Структура запроса POST /api/transaction/send/{chain}
Параметры
-
txdata
- данные подписанной транзакции, обязательный параметр (строка), -
network
- тип сети, необязательный параметр, значение по умолчанию 'livenet' (Network).