Open
Description
Stages
was removed in M4 for number of reasons.
API wise:
- Turns out timing constraints can depend on state, so
Stages
cannot be used to implement for example vesting - They complicate CEMScript class and in conversations it seem to be an issue for understanding API
Implementation wise:
- Plutus has problems with nested type families, needs hacks to work with that
- Without
Stages
now user can completely remove Plutus compilation step (if they want to). - Probably would increase script size and in general bring different compilation path/API from all other constraints
Proposed solution:
- Create new
CheckInterval
constraint. Enforce single such constraint per transition. - One could add
String
names to them, to discover "Stage
ofTransition
"-like labels on state graph , if one wants to.