Add `PlutusV4` to `AlonzoScript` decoder
This was missed by: #5111 Co-authored-by: Onyinyechi46 <[email protected]>
This was missed by: #5111 Co-authored-by: Onyinyechi46 <[email protected]>
Currently, the `B` constructor contains a `ByteString` (pinned in memory) with a max length of 64 bytes. Since the `ByteString` is small and can be instantiated frequently, it makes more sense to use an unpinned bytestring representation (`ShortByteString` which has underlying type `ByteArray`) so that we can take advantage of Haskell's garbage collection to improve memory allocation of objects in the heap.
Add withGenerator to plutus_v4_script to prevent set collisions, matching the fix for V1/V2/V3. Enable previously disabled Dijkstra tests that now pass: AuxData roundtrip, TxOut/Script/TxWits ArbitraryValidate, PParamsUpdate/ProposalProcedure/GovAction ArbitraryValidate, and TxAuxData decoder equivalence. Update xdescribe reasons for tests that remain disabled (plutus_v4_script tag 4 not yet supported by decoder, metadatum validation, empty redeemers). Co-Authored-By: Claude Opus 4.6 <[email protected]>
Implement custom `ToExpr` instance for `Mismatch` datatype.
After removing distinct_bytes, the CDDL generator could produce duplicate empty byte strings for plutus scripts in nonempty_set collections (tag 258). The Set decoder would deduplicate them, causing a length mismatch error. Fix by generating 32-byte random bytestrings which makes collisions virtually impossible. Also mark proposal_procedure antiCborSpec as pending due to unrelated protver decoder issue. Co-Authored-By: Claude Opus 4.6 <[email protected]>
This was missed by: #5111 Co-authored-by: Onyinyechi46 <[email protected]>
This was missed by: #5111 Co-authored-by: Onyinyechi46 <[email protected]>
We do should *not* provide a default implementation for 'fromPlutusData' because types should always be invertible from 'PlutusData'. Therefore, we force the user to make a conscious decision to not provide an implementation for this function.
The `Show` instance for Mismatch was modified to show type level information.
The same thing needs to be done for the `TreeDiff` instance.
Example of the `Expr`:
```
ghci> toExpr (Mismatch @RelEQ (42 :: Int) 100)
Rec "Mismatch (RelEQ)" (fromList [("supplied",App "42" []),("expected",App "100" [])])
```
Remove redundant UTXO predicate failures