mlabs-haskell / mlabs-haskell/cem-script
Make time checks work again
Open
Nobody has claimed this yet.
cem-interfaces
enhancement
- Dominant language
- Haskell
- Stars
- 2
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Stages was removed in M4 for number of reasons.
API wise:
- Turns out timing constraints can depend on state, so
Stagescannot 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
Stagesnow 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
CheckIntervalconstraint. Enforce single such constraint per transition. - One could add
Stringnames to them, to discover "StageofTransition"-like labels on state graph , if one wants to.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests; start by locating the current transition-constraint and time-check handling. Review how constraints are represented and enforced, then define completion as a single CheckInterval per transition, with optional names if that remains in scope, covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- blockchain, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100