Skip to content

[#20] Generate storage annotations from Lorentz code

Description

When compiling Lorentz, contract's storage was always without notes tree (fcStoreNotes = starNotes). However, we'd like it to have some annotations for clarity, because otherwise it's hard to understand what is stored in the storage (which field means what) when you open it in block explorer or vanilla Tezos CLI. So, this MR resolves this issue by providing an ability to generate notes tree for storage with all of its field and type annotations like from an instance:

data Storage = Storage
  { ledger      :: BigMap Address Natural
  , totalSupply :: Natural
  }

Where we expect it to be a pair with %ledger and %totalSupply as field annotations. Note that if something is wrapped into Named then it also should have its type annotations, same as its recursive counterparts.

Related issue(s)

Resolves #20 (closed)

Checklist for your Merge Request

Related changes (conditional)

  • Tests (see short guidelines)

    • If I added new functionality, I added tests covering it.
    • If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
  • Documentation

    • I checked whether I should update the docs and did so if necessary:

Stylistic guide (mandatory)

Edited by Anton Myasnikov

Merge request reports