Установка и использование платформы
gRPC: получение информации о результатах исполнения вызова смарт-контракта¶
Для получения информации о результатах вызовов смарт-контрактов служит gRPC сервис ContractStatusService.
У сервиса есть два метода, описанных в protobuf-файле util_contract_status_service.proto:
ContractExecutionStatuses,
ContractsExecutionEvents.
Важно
Типы данных полей для запросов и ответов указаны в protobuf-файле.
Используйте метод ContractExecutionStatuses для получения информации о результатах исполнения вызова отдельного смарт-контракта. Метод принимает запрос ContractExecutionRequest, который требует ввода параметра tx_id
– идентификатора вызывающей транзакции смарт-контракта, информацию о cостоянии которого необходимо получить.
Используйте метод ContractsExecutionEvents для подписки на поток (стрим) с результатами исполнения вызова всех смарт-контрактов. Метод не требует ввода входных параметров.
Информация о результатах исполнения вызова смарт-контракта¶
В ответе на запрос оба метода – ContractExecutionStatuses и ContractsExecutionEvents – возвращают следующие данные смарт-контракта:
senderAddress
– адрес участника, который отправил смарт-контракт в блокчейн;senderPublicKey
– публичный ключ участника, который отправил смарт-контракт в блокчейн;tx_id
– идентификатор транзакции вызова смарт-контракта;Status
– информация об исполнении смарт-контракта:0
– успешно исполнен (SUCCESS);1
– бизнес ошибка, контракт не исполнен, вызов отклонён (ERROR);2
– системная ошибка в ходе исполнения смарт-контракта (FAILURE).
code
– код ошибки в ходе выполнения смарт-контракта (при наличии);message
– сообщение о статусе транзакции; содержит дополнительную информацию о статусе, указанном в полеstatus
, например,"message": "Smart contract transaction successfully mined";
timestamp
– временная метка в формате Unix Timestamp, в миллисекундах, отмечающая время вызова смарт-контракта;signature
– подпись транзакции.
Примечание
REST метод GET /contracts/status/{id} возвращает ту же информацию, что и gRPC метод ContractExecutionStatuses.