@@ -9,6 +9,7 @@ Originally based on the [Antaeus repository](https://github.com/IntersectMBO/ant
99This repository provides serialized Plutus scripts compiled for ** Plutus Core 1.0.0 and 1.1.0** targeting ** PlutusV2** and ** PlutusV3** ledger APIs. The scripts are generated as ` .plutus ` envelope files consumed by the [ cardano-node-tests] ( https://github.com/IntersectMBO/cardano-node-tests ) E2E test suite.
1010
1111** Key Features:**
12+
1213- Comprehensive script library covering basic validators, bitwise operations, cryptography, and governance
1314- Plutus Core 1.0.0 and 1.1.0 support with PlutusV2 and PlutusV3 targeting
1415- Modular architecture with Common/Versioned module pattern
@@ -40,6 +41,7 @@ cabal run envelopes
4041The generated ` .plutus ` files are JSON envelopes containing the serialized Plutus scripts, ready for use in cardano-node-tests.
4142
4243** Generated Scripts** :
44+
4345- PlutusV2 scripts (bytestring/integer conversions)
4446- Basic PlutusV3 scripts (always succeed/fail, token names, time ranges, redeemers)
4547- SECP256k1 scripts (Schnorr and ECDSA signature verification)
@@ -87,12 +89,14 @@ Core testing scripts for fundamental blockchain operations:
8789Scripts demonstrating Plutus bitwise primitives (Plutus Core 1.1.0+):
8890
8991** Succeeding Tests** :
92+
9093- Logical operations: ` andByteString ` , ` orByteString ` , ` xorByteString ` , ` complementByteString `
9194- Shifts and rotates: ` shiftByteString ` , ` rotateByteString `
9295- Bit manipulation: ` readBit ` , ` writeBits ` , ` countSetBits ` , ` findFirstSetBit `
9396- Byte operations: ` replicateByte ` , conversions between integers and bytestrings
9497
9598** Failing Tests** :
99+
96100- ReadBit edge cases: empty bytestring, negative indices, out of bounds, Int64 limits
97101- WriteBits edge cases: empty bytestring, negative indices, out of bounds
98102- ReplicateByte edge cases: negative count, invalid byte values, size limits
@@ -145,17 +149,20 @@ alwaysSucceedPolicyCompiled = $$(PlutusTx.compile [||mkAlwaysSucceedPolicyV3||])
145149Scripts are compiled for both ** Plutus Core 1.0.0** (PlutusV2) and ** Plutus Core 1.1.0** (PlutusV3):
146150
147151** Plutus Core 1.0.0 scripts:**
152+
148153``` haskell
149154{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:target-version=1.0.0 #-}
150155```
151156
152157** Plutus Core 1.1.0 scripts:**
158+
153159``` haskell
154160{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:conservative-optimisation #-}
155161{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:target-version=1.1.0 #-}
156162```
157163
158164PlutusV3 (1.1.0) validators receive enhanced ` ScriptContext ` with governance support:
165+
159166- Committee actions and voting
160167- Proposal transactions
161168- Constitutional committee hot key operations
@@ -292,6 +299,7 @@ Example envelope structure:
2922995 . ** Validation** : Cardano node validates scripts during E2E tests
293300
294301The scripts enable comprehensive testing of:
302+
295303- Plutus V2 and V3 features (including governance)
296304- Bitwise operations introduced in Plutus Core 1.1.0
297305- Cryptographic primitives (BLS, SECP256k1)
@@ -302,18 +310,21 @@ The scripts enable comprehensive testing of:
302310### Adding New Scripts
303311
3043121 . ** Create validator logic** in ` PlutusScripts/<Category>/Common.hs ` :
313+
305314 ``` haskell
306315 {-# INLINEABLE myValidator #-}
307316 myValidator :: BuiltinData -> BuiltinData -> BuiltinData -> ()
308317 ```
309318
3103192 . ** Add versioned module** `PlutusScripts /< Category >/ V_1_1. hs`:
320+
311321 ```haskell
312322 myValidatorCompiled :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> () )
313323 myValidatorCompiled = $$ (PlutusTx. compile [|| myValidator|| ])
314324 ```
315325
3163263 . ** Update envelopes executable** in ` app/Main.hs ` :
327+
317328 ``` haskell
318329 writeEnvelopeV3 " myValidatorScript" MyCategory. myValidatorCompiled
319330 ```
0 commit comments