Установка и использование платформы

REST API: хэширование, работа со скриптами и отправка вспомогательных запросов

https://img.shields.io/badge/auth-required-orange.svg

Для хэширования, работы со скриптами и отправки вспомогательных запросов к ноде предусмотрена группа методов utils:

Хэширование: utils/hash

POST /utils/hash/fast

Метод возвращает хэш-сумму строки, переданной в запросе.

Важно

Метод POST /utils/hash/fast недоступен при использовании PKI, то есть когда в конфигурационном файле ноды параметру node.crypto.pki.mode присвоено значение ON. В тестовом режиме PKI (node.crypto.pki.mode = TEST) или при отключенном PKI (node.crypto.pki.mode = OFF) метод можно использовать.

Входящая строка преобразуется в байты по кодировке UTF-8, от этих байтов вычисляется хэш. Для Waves-криптографии используется алгоритм Blake2b256. Для ГОСТ-криптографии используется алгоритм ГОСТ 34.11-2012 (256). Результат преобразуется в формат Base58.

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

POST /utils/hash/fast:
{
  "message": "ridethewaves!",
  "hash": "DJ35ymschUFDmqCnDJewjcnVExVkWgX7mJDXhFy9X8oQ"
}

POST /utils/hash/secure

Метод возвращает двойную хэш-сумму строки, переданной в запросе. При этом применяется алгоритм Blake2b256, если в системе используется WAVES криптография (то есть в конфигурационном файле ноды параметру node.crypto.type присвоено значение WAVES) или ГОСТ 34.11-2012 (256), если используется ГОСТ криптография (то есть в конфигурационном файле ноды параметру node.crypto.type присвоено значение GOST).

Важно

Метод POST /utils/hash/secure недоступен при использовании PKI, то есть когда в конфигурационном файле ноды параметру node.crypto.pki.mode присвоено значение ON. В тестовом режиме PKI (node.crypto.pki.mode = TEST) или при отключенном PKI (node.crypto.pki.mode = OFF) метод можно использовать.

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

POST /utils/hash/secure:
{
  "message": "ridethewaves!",
  "hash": "H6nsiifwYKYEx6YzYD7woP1XCn72RVvx6tC1zjjLXqsu"
}

Работа со скриптами: utils/script

Данная группа методов предназначена для конвертации кода скриптов в формат base64 и их декодирования. Скрипты привязываются к аккаунтам при помощи транзакций 13 (привязка скрипта к адресу) и 15 (привязка скрипта к ассету для адреса).

POST /utils/script/compile

Метод конвертирует код скрипта в формат base64.

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

POST /utils/script/compile:
let x = 1
(x + 1) == 2

В ответе метода возвращаются следующие параметры:

  • script - тело скрипта в формате base64;

  • complexity - сложность скрипта: число от 1 до 100, отражающее количество вычислительных ресурсов, требуемое для его исполнения;

  • extraFee - комиссия за исходящие транзакции, установленные скриптом.

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

POST /utils/script/compile:
{
  "script": "3rbFDtbPwAvSp2vBvqGfGR9nRS1nBVnfuSCN3HxSZ7fVRpt3tuFG5JSmyTmvHPxYf34SocMRkRKFgzTtXXnnv7upRHXJzZrLSQo8tUW6yMtEiZ",
  "complexity": 11,
  "extraFee": 10001
}

POST /utils/script/estimate

Метод предназначен для декодирования и оценки сложности скрипта, переданного в запросе в формате base64.

В ответе метода возвращаются следующие параметры:

  • script - тело скрипта в формате base64;

  • scriptText - код скрипта;

  • complexity - сложность скрипта: число от 1 до 100, отражающее количество вычислительных ресурсов, требуемое для его исполнения;

  • extraFee - комиссия за исходящие транзакции, установленные скриптом.

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

POST /utils/script/compile:
{
  "script": "3rbFDtbPwAvSp2vBvqGfGR9nRS1nBVnfuSCN3HxSZ7fVRpt3tuFG5JSmyTmvHPxYf34SocMRkRKFgzTtXXnnv7upRHXJzZrLSQo8tUW6yMtEiZ",
  "scriptText": "FUNCTION_CALL(FunctionHeader(==,List(LONG, LONG)),List(CONST_LONG(1), CONST_LONG(2)),BOOLEAN)",
  "complexity": 11,
  "extraFee": 10001
}

Вспомогательные запросы

GET /utils/time

Метод возвращает текущее время ноды в двух форматах:

  • system - системное время на машине ноды;

  • ntp - сетевое время.

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

POST /utils/script/compile:
{
   "system": 1544715343390,
   "NTP": 1544715343390
}

POST /utils/reload-wallet

Метод перезагружает keystore ноды. Применяется в случае, если новая ключевая пара была добавлена в keystore без перезапуска ноды.

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

POST /utils/reload-wallet:
{
   "message": "Wallet reloaded successfully"
}
Смотрите также