daml/language-support/scala/bindings-akka
Gerolf Seitz ecf6ece8c4
CommandService returns useful data for successful submissions (#875)
Submitting a command via the CommandService now returns either the
transaction id (SubmitAndWaitForTransactionId), the flat transaction
(SubmitAndWaitForTransactionResponse), or the transaction tree
(SubmitAndWaitForTransactionTreeResponse).

This means that users don't have to wade through the transaction stream
to retrieve the resulting transaction. This is particularly useful in
combination with #479.

Fixes #406
2019-05-03 16:01:41 +02:00
..
src CommandService returns useful data for successful submissions (#875) 2019-05-03 16:01:41 +02:00
BUILD.bazel increase ledger-api IT timeout; daml-lf, language-support/scala: remove long-deprecated symbols (#741) 2019-04-26 21:05:26 +00:00
README.md open-sourcing daml 2019-04-04 09:33:38 +01:00

Ledger Client Binding

This module contains the glue code between nanobot-framework, scala-codegen and prototype-client (Scala binding for the ledger API). The gRPC API provided by prototype-client as it is is not type-safe. The incomming Transactions from LedgerClient is routed to DomainTransactionMapper, which will:

  • convert the data in Transaction to type-safe types coming from api-refinements
  • call the EventDecoder provided by scala-codegen for created events
  • verify that the messages contain all the neccessary fields, and remove Optional wrappers

The result of this will be the Domain* classes.

In the other directions (for the commands coming out from the nanobots) the 'CompositeCommandAdapter' will be used to transform back to the gRPC interface (SubmitRequest). After the command submission, the outcoming Completion will be used to check the result, and based on that the CommandRetryFlow can decide wether the command should be retried or an error should be reported.