Skip to content

Cicero v0.11.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@jeromesimeon jeromesimeon released this 20 Mar 08:32

This is a major release! Some of the highlights include: support for handling and maintaining timezones in Date/Time operations, a new way to write tests for your legal contracts and clauses which does not require you to write code, and the ability to indicate semantic tags with your templates.

Also this release includes a completely redesigned API and execution engine, and Corda as a new target for the Cicero model generator.

Note that as of this release, Ergo is the only source language for contract logic in Accord Project templates. You can still compile templates to JavaScript for execution on NodeJs or other JavaScript-based platforms.

Cicero Core

  • 🏷️ You can use the keyword field in your package.json and the new getKeywords() call gives you access to keywords as part of the template metadata. (contribution by @irmerk)

Cicero Execute

  • ⚙️Completely redesigned execution API, Ergo and Cicero now share the same execution engine
  • ⌛Execution API now takes a current time (ISO 8691 UTC format) as a parameter
  • ⌛Using moment-mini for a smaller footprint of the execution engine

Cicero Generate

  • ⚗️New Corda format, lets you generate Corda-ready Java classes from your templates.

Template testing

  • 🥒New Format for tests uses Cucumber syntax, so you do not need to learn JavaScript for testing Accord Project templates!

Ergo

  • 📲 New dispatch semantics: dispatch picks the clause with the most specific request type first, and the compiler rejects programs with two clauses with the same request type (accordproject/ergo#550)
  • ⌛ DateTime operations maintain and take into account timezone information (accordproject/ergo#515)
  • 🧮 New operator % for remainder, integerModulo returns the modulo. integerMod is removed.
  • 🚅 Various performance improvements

Bug fixes