Прочитать все контракты для данной стороны
DAML Ledger - это система, изначально управляемая событиями.Как таковой он не обеспечивает доступ к запросам, как традиционная база данных.Вместо этого ваше приложение подписывается на TransactionService , используя GetTransactionsRequest и указывая LEDGER_BEGIN в качестве смещения begin
.Это доставит вам все события Created
и Archived
, которые произошли с момента запуска бухгалтерской книги.В вашем приложении вы можете использовать эти события, чтобы создать представление (в памяти или постоянное хранилище) регистра, который затем можно удобно запросить.Например, вы можете заполнить словарь по типу контракта, добавив запись для каждого события Created
и удалив ее снова при получении события Archived
.
Создание контрактов или выбор вариантов исполнения
Это можно сделать двумя способами:
Отправьте команду создания или упражнения с помощью Submit
в CommandSubmissionService и дождитесьсообщение об успехе или ошибке на CommandCompletionService .Обратите внимание, что получение такого сообщения о завершении команды только подтверждает, что команда может быть успешно принята бухгалтерской книгой.Он не будет содержать никаких эффектов (создание и архивирование событий) от этой команды.Их вы снова получите на TransactionService
, упомянутом выше.
Отправьте команду создания или упражнения с помощью SubmitAndWait
на CommandService .Эта служба объединяет отправку и завершение команды в синхронном вызове на стороне сервера и поэтому будет возвращаться только после того, как команда была принята или отклонена сервером.Обычно такой способ подачи команд удобнее, поскольку он учитывает некоторую асинхронную обработку событий, требуемую в предыдущем методе.
Обратите внимание, что вы можете получить требуемый идентификатор контрактаосуществлять выбор из представлений в вашей бухгалтерской книге, используя TransactionService
, упомянутый выше.