0xMiden / 0xMiden/compiler

Schema for user-defined types in the contracts (note inputs, etc.)

Abierto
#814 9 comentarios 0 reacciones 1 asignado Reclamado por @greenhat Ver en GitHub
rust
Lenguaje dominante
Rust
Estrellas
115
Forks
84
Merge medio
1 d 8 h
PR fusionados (30 d)
15

Descripción

### Why

When a user defines a custom type as part of the note inputs, they have to define it both in the on-chain code (note script) for deserialization and in the off-chain code for serialization when passing note inputs using `miden-client` API.
We would like to avoid the duplicate type definition and define the type only once. With the on-chain definition being the source of truth.

### How

We could generate the WIT representation for the type defined in Rust (note script) by the user with a macro. Given our previous experience of generating a WIT interface for the account (in the `#[component]` macro), I would say it is easy and should not take more than a day. We could store it in the Miden package as a custom section.
Then, in the off-chain code we would generate the Rust type from the WIT from the note script's Miden package using `wit-bindgen` machinery. This task seems like it could be done in a couple of days tops.

EDIT: #870 is the prerequisite for this task

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.