Skip to content

Marlowe Runtime v1.0.0

Latest
Compare
Choose a tag to compare
@nhenin nhenin released this 05 May 11:45
2c0ad60

Marlowe Runtime v1.0.0

Highlights

This release focuses on upgrades required by Conway. Additionally, we have improved the coverage and stability of our integration framework, and added extra safety analyses and contract execution enhancements. With these changes, we have achieved the main goals of delivering a stable and secure release.

Conway related upgrades

These changes were required by the Conway hard fork but did not introduce any new functionality. It seems that we are nearly ready for the hard fork event.

Contract execution improvements

Accounts initialization

We have added the ability to initialize the accounts during contract creation. Usually this allows you to perform an initial deposit together with the contract creation in a single transaction. This feature is exposed on the REST API level through accounts field in the creation request.

Safety improvements

We added extra safety analytical step which is performed during input application so contracts created either outside of the system or by malicious actors can be detected and rejected.

The REST API changes

Added

  • Enhanced Error Information: Introducing detailed error categories, including CoinsSelectionError and MarloweTransactionError, to aid in debugging and development.
  • Optional Account Initialization During Contract Creation: Allows for simultaneous deposits during the contract creation process, enhancing flexibility and efficiency.
  • Accessible Safety Errors: Safety errors are now detectable during key operations:
    • At contract creation (POST /contracts)
    • When applying inputs (POST /contracts/:contractId/transactions)
  • Enhanced Transaction Semantics Information: Additional details are now included in the response from GET /contracts/:contractId/transactions/:transactionId:
    • inputState: The Marlowe state from the transaction's input datum.
    • inputContract: The Marlowe contract from the transaction's input datum.
    • reconstructedSemanticInput: Details the TransactionInput used during transaction validation, providing the correct TimeInterval for input evaluation.
    • reconstructedSemanticsOutput: Offers insights into the transaction outcome processed by the Marlowe semantics validator, including intra-state payments and warning details not available elsewhere in the response.

Changed

  • Improved REST API Error Handling: We've transitioned from a generic error encoding to a more structured and explicit error format in our REST API, enhancing clarity and user experience.