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
andMarloweTransactionError
, 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
)
- At contract creation (
- 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 theTransactionInput
used during transaction validation, providing the correctTimeInterval
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.