Emurgo / cardano-serialization-lib

This is a library, written in Rust, for serialization & deserialization of data structures used in Cardano's Haskell implementation of Alonzo along with useful utility functions.
Other
234 stars 125 forks source link

`Mint` type: inner map should also allow duplicate keys? #687

Open klntsky opened 2 weeks ago

klntsky commented 2 weeks ago

Consider the semantic difference between:

s1 -> [ t1 -> [ n1, n2 ] ]

and

s1 -> [ t1 -> [n1], t1 -> [n2]]

In CSL, Mint = Map ScriptHash MintsAssets, and MintsAssets = Array MintAssets, and MintAssets = Map AssetName Int.

It's impossible to encode the first variant AFAIK, although the CDDL allows it:

https://github.com/IntersectMBO/cardano-ledger/blob/43ea4aba860a58a335a71109eb13d146a960a71b/eras/conway/impl/cddl-files/conway.cddl#L201