Please describe your proposed solution
Blaze will develop a lightweight package for handling the serialisation and deserialisation of plutus data to be used in transaction building. It will be easy to use, safe, and familiar to developers who have experience with Typescript. Features include:
- Completely type-safe datums/redeemers with generated classes to handle serialization (similar design patterns to cardano-js-sdk)
- Associating datums/redeemers with specific scripts so the right data is passed into each script (eliminates risk of accidentally locking funds by sending malformed datums) and deserializing UTxO datums can be handled automatically
- Integration into Blaze TX builder to enforce only the correct datum serialisation is used with particular scripts (according to blueprint interface)
- Scripts derived from blueprint including parameter application remain type-safe
- Utilities for automatically handling basic types like addresses, policy IDs which can enforce length-checks, hex-encoding, e.t.c.
- Intuitive construction of Plutus data in typescript, using idiomatic patterns such as discriminated unions