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

REST API: информация о смарт-контрактах

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

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

GET /contracts

Метод возвращает информацию по всем смарт-контрактам, загруженным в сеть. Для каждого смарт-контракта в ответе возвращаются следующие параметры:

  • contractId – идентификатор смарт-контракта;

  • image – имя Docker-образа смарт-контракта, либо его абсолютный путь в репозитории;

  • imageHash – хэш-сумма смарт-контракта;

  • version – версия смарт-контракта;

  • active – статус смарт-контракта на момент отправки запроса:

    • true – запущен;

    • false – не запущен.

Пример ответа для одного смарт-контракта:

POST /contracts

Метод возвращает набор полей «ключ:значение», записанных в стейт одного или нескольких смарт-контрактов. ID запрашиваемых смарт-контрактов указываются в поле contracts запроса.

Пример ответа для одного смарт-контракта:

GET /contracts/status/{id}

Метод возвращает статус исполняемой транзакции 103 (создания смарт-контракта) или другой транзакции вызова контракта (Call, Update) по идентификатору транзакции {id}. Однако если после отправки транзакции в блокчейн нода перезапускается, метод не вернет корректное состояние этой транзакции.

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

  • sender – адрес отправителя транзакции;

  • senderPublicKey – публичный ключ отправителя транзакции;

  • txId – ID транзакции;

  • status – статус транзакции: успешно попала в блок, подтверждена, отклонена;

  • code – код ошибки (при наличии);

  • message – сообщение о статусе транзакции;

  • timestamp – временная метка в формате Unix Timestamp, в миллисекундах;

  • signature – подпись транзакции.

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

GET /contracts/{contractId}

Метод возвращает результат исполнения смарт-контракта по его идентификатору {contractId}.

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

POST /contracts/{contractId}

Метод возвращает значения ключей из стейта смарт-контракта {contractId}. В запросе указываются следующие данные:

  • contractId – идентификатор смарт-контракта;

  • limit – ограничение количества выводимых блоков данных;

  • offset – количество блоков данных для пропуска в выводе;

  • matches – опциональный параметр для составления регулярного выражения, по которому фильтруются ключи.

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

GET /contracts/executed-tx-for/{id}

Метод возвращает результат исполнения смарт-контракта по идентификатору транзакции 105.

В ответе метода возвращаются данные транзакции 105, а также результаты исполнения в поле results.

Пример ответа, смарт-контракт не исполнялся:

GET /contracts/{contractId}/{key}

Возвращает значение ключа {key} исполненного смарт-контракта по его идентификатору.

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