IntersectMBO / IntersectMBO/plutus
What guarantees do we have about about the internal structure of the things in `ScriptContext`?
- Dominant language
- Haskell
- Stars
- 1.6k
- Forks
- 508
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 22
Description
### Describe the feature you'd like
I'm specifically wondering about:
- Internal ordering of entries in maps in `ScriptContext`.
+ Both for things like `txInfoData` that don't use the `Map` constructor and also things like `Value` that do use it.
- Is it possible for there to be `0` of a token in a value?
- Is it possible for there to be an empty `CurrencySymbol` entry in a value?
- Internal ordering of entries in sets.
+ E.g. `txInfoDCert`, `txInfoSignatories`, and similar.
I already know that inputs are lexicographically ordered as noted in https://github.com/input-output-hk/plutus/issues/4296#issuecomment-1004723515.
The questions about values are e.g. to know whether a naïve equality check represents "real" equality.
If you could have `0` of a token, then a `Value` with `0` of a token would not be equal to one that is otherwise the same
but does not include the same, even though they represent the same amount.
### Describe alternatives you've considered
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.