Установка и использование платформы
REST API: информация о смарт-контрактах¶
Для получения информации о смарт-контрактах, загруженных в сеть, предусмотрен набор методов группы 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
– статус транзакции: успешно попала в блок, подтверждена, отклонена;0
– контракт успешно исполнен (SUCCESS);1
– бизнес ошибка, контракт не исполнен, вызов отклонён (ERROR);2
– системная ошибка в ходе исполнения смарт-контракта (FAILURE).
code
– код ошибки (при наличии);message
– сообщение о статусе транзакции; содержит дополнительную информацию о статусе, указанном в полеstatus
, например,"message": "Smart contract transaction successfully mined";
timestamp
– временная метка в формате Unix Timestamp, в миллисекундах;signature
– подпись транзакции.
Пример ответа:
GET /contracts/{contractId}¶
Метод возвращает результат исполнения смарт-контракта по его идентификатору {contractId}
.
Пример ответа:
Методы GET /contracts/{contractId} и POST /contracts/{contractId} возвращают одинаковый ответ.
POST /contracts/{contractId}¶
Метод возвращает значения ключей из стейта смарт-контракта {contractId}
.
В запросе указываются следующие данные:
contractId
– идентификатор смарт-контракта;limit
– ограничение количества выводимых блоков данных;offset
– количество блоков данных для пропуска в выводе;matches
– опциональный параметр для составления регулярного выражения, по которому фильтруются ключи.
Пример ответа:
Методы POST /contracts/{contractId} и GET /contracts/{contractId} возвращают одинаковый ответ.
GET /contracts/executed-tx-for/{id}¶
Метод возвращает результат исполнения смарт-контракта по идентификатору транзакции 105.
В ответе метода возвращаются данные транзакции 105, а также результаты исполнения в поле results
.
Пример ответа, смарт-контракт не исполнялся:
GET /contracts/{contractId}/{key}¶
Возвращает значение ключа {key} исполненного смарт-контракта по его идентификатору.
Пример ответа: