Установка и использование платформы
gRPC: передача данных конфиденциальных смарт-контрактов¶
Для передачи данных конфиденциальных смарт-контрактов служит gRPC сервис ContractPublicService.
У сервиса есть один метод, описанный в protobuf-файле confidential_contract_service.proto:
ConfidentialCall.
Важно
Типы данных полей для запросов и ответов указаны в protobuf-файле.
Важно
Вызов метода ConfidentialCall доступен только при использовании oAuth токена с ролью ConfidentialContractUser или специального api-key.
Метод ConfidentialCall принимает запрос ConfidentialCalRequest, содержащий следующие поля.
broadcast
– флаг, который отражает необходимость бродкаста сформированной транзакции CallContract; по умолчанию имеет значениеtrue
; значениеfalse
используется для формирования атомарного контейнера;commitmentVerification
– флаг, который отражает необходимость сверки коммитмента входных данных и предоставления со стороны пользователя ключа для формирования коммитмента; по умолчанию имеет значениеfalse
; при значенииfalse
нода сама формирует ключ случайным образом и рассчитывает коммитмент;sender
– адрес отправителя данных конфиденциального смарт-контракта;contractId
– идентификатор конфиденциального смарт-контракта;contractVersion
– версия конфиденциального смарт-контракта;params
– при работе с транзакцией CallContract – входные данные конфиденциального смарт-контракта, представленные как массив объектов; вносятся при помощи следующих полей:key
– ключ параметра;type
– тип данных параметра;value
– значение параметра.
timestamp
– временная метка в формате Unix Timestamp (в миллисекундах), отмечающая время вызова смарт-контракта;atomicBadge
– флаг, который отражает возможность включать транзакцию в атомарную транзакцию;fee
– комиссия за транзакцию;feeAssetId
– идентификатор токена комиссии;commitment
– коммитмент;commitmentKey
– ключ коммитмента.
Метод ConfidentialCall принимает все данные, необходимые, чтобы отправить транзакцию CallContract, отправляет её, и в ответе возвращает protobuf, в который входит транзакция CallContract версии 6 и confidentialInput конфиденциального смарт-контракта.
Примечание
REST метод POST /confidential-contracts/call аналогичен gRPC методу ConfidentialCall.