Skip to content

Product requirements for Miden rollup developer playground #200

@Dominik1999

Description

@Dominik1999

Goal

We want a second playground for Miden rollup developers to quickly test note scripts and account code. The current playground is about the Miden Virtual Machine.

Start simple and iterate

Initially, we only want to execute a note script against an account and see its result. Gradually, we will iterate on the developer playground and add more features.

The layout

The layout is super simple. We need four boxes and one button.

image

  • Upper left box: The box is a code editor. Users will write their note scripts, add inputs and their transaction script in it. There are three tabs (Notes | Inputs | Tx). The code is in Miden assembly - only for Inputs will it be simple JSON. It will look similar to what we have in the VM playground. We need two dropdowns, one for the font size and one to select examples. There should be syntax highlighting. An illustrative example from the VM playground:
    Screenshot 2024-09-13 at 17 05 55

  • Lower left box: The box is a second code editor. Users will write their account code in it. The code is in Miden assembly. It will look similar to what we have in the VM playground. We need two dropdowns, one for the font size and one to select examples. There should be syntax highlighting.

  • Upper right box: This box is used for the program info. We will show the number of cycles, the proving time and the proof size. An illustrative example from the VM playground:
    Screenshot 2024-09-13 at 17 10 10

  • Lower right box: This box will show the account info. Here the user can check how the account changed after the note script was executed against it. Here we will show this information, but more beautiful. One idea to save space is not to show the full hashes / commitments but make them collapsable.
    Screenshot 2024-09-13 at 17 13 03

  • The button: The button will be a simple "Execute". I will provide the Rust code that you can call with this button. The inputs will be the note script and the account code. The output will be a now account state and the program info.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions