Cardano EUTxO contracts manipulate Value transfers between addresses.
newtype Value = Value { getValue :: Map.Map CurrencySymbol (Map.Map TokenName Integer) }
This datatype gets translated to [(ByteString, [(ByteString, Integer)])], which is a little too permissive for most of our TLA+ models. I can imagine that many contracts will not require this degree of generality, in fact, I think we could be better off translating it to [PlutusToken -> Integer] where PlutusToken is a set of model values.
Cardano EUTxO contracts manipulate
Value
transfers between addresses.This datatype gets translated to
[(ByteString, [(ByteString, Integer)])]
, which is a little too permissive for most of our TLA+ models. I can imagine that many contracts will not require this degree of generality, in fact, I think we could be better off translating it to[PlutusToken -> Integer]
wherePlutusToken
is a set of model values.