Release 0.76.0
Classes in com.deondigital.api.reified
have been deleted
Instead use the definitions in com.deondigital.syntax.reified
.
Some API types have moved to a different package and have been renamed
The Kotlin types Type
, ContractBinOp
, and RuleName
have been moved from com.deondigital.api
to com.deondigital.core.types
.
Additionally, the nested classes Type.TApply
and Type.TVar
have been renamed to Type.Apply
and Type.Var
respectively.
Pattern matching must be exhaustive
The CSL type checker now verifies that all pattern matching is exhaustive. In other words, definitions such as:
val x = \1 -> True | 0 -> False
are no longer accepted, and will yield an error message like:
Missing cases: 2, 3, 4
The checker examines each pattern-matching function in isolation. This means that examples such as:
type ABC | A | B | C
val f = \A -> 1 | \bc -> (\B -> 2 | \C -> 3) bc
will not be considered exhaustive.
A consequence of this change is that Month::fromInt
has been removed, because it does not cover invalid month numbers.
Some APIs have been updated to take Month
values directly as arguments.
Corda version upgraded to 4.8
Relevant for projects that use Corda.
Steps to migrate
Update the references to the Corda version in the project to 4.8 and Corda gradle plugin version to 5.0.12.
2. If you are upgrading from Corda version 4.5, you need to create the database schemas before you can start the Corda node. Since Corda 4.6, schema creation/migration is not done automatically, see Corda database schema harmonisation notes <https://docs.corda.net/docs/corda-os/4.6/release-notes.html#database-schema-harmonisation> for more details. For specific details on upgrading a node to Corda 4.8, see Corda node upgrade notes <https://docs.corda.net/docs/corda-enterprise/4.8/node-upgrade-notes.html>.