@@ -36,9 +36,8 @@ import PlutusTx.Prelude as Tx hiding (Semigroup (..), (.), (<$>))
36
36
import Prelude as Haskell (String , (.) , (<$>) )
37
37
import PlutusTx
38
38
import qualified Data.ByteString.Short as SBS
39
- import qualified PlutusLedgerApi.V1.Scripts as V1
39
+ import qualified PlutusLedgerApi.V3.Contexts as V3
40
40
import qualified PlutusLedgerApi.V3 as V3
41
- import qualified PlutusTx.AssocMap as PlutusTx
42
41
import qualified PlutusTx.Builtins as PlutusTx
43
42
import qualified PlutusTx.Prelude as PlutusTx
44
43
@@ -53,15 +52,18 @@ script = mkPlutusBenchScript scriptName (toScriptInAnyLang (PlutusScript PlutusS
53
52
{-# INLINABLE typedValidator #-}
54
53
typedValidator :: V3. ScriptContext -> Bool
55
54
typedValidator scriptContext =
56
- PlutusTx. elem supplementalDatum datums
55
+ PlutusTx. isJust ( V3. findDatum supplementalDatumHash txInfo)
57
56
where
58
57
txInfo = V3. scriptContextTxInfo scriptContext
59
- datumMap = V3. txInfoData txInfo
60
- datums = PlutusTx. elems datumMap
61
58
62
- {-# INLINABLE supplementalDatum #-}
63
- supplementalDatum :: V1. Datum
64
- supplementalDatum = V1. Datum (PlutusTx. mkI 1 )
59
+ {- On chain we are dealing with raw bytes. You can generate the datum hash from the cli via:
60
+ > cardano-cli transaction hash-script-data --script-data-value 1
61
+ > ee155ace9c40292074cb6aff8c9ccdd273c81648ff1149ef36bcea6ebb8a3e25
62
+ However this result is hex encoded. Therefore we have to convert to decimal notation and then use `integerToByteString` to convert to bytes.
63
+ -}
64
+ {-# INLINABLE supplementalDatumHash #-}
65
+ supplementalDatumHash :: V3. DatumHash
66
+ supplementalDatumHash = V3. DatumHash $ PlutusTx. integerToByteString PlutusTx. BigEndian 0 107688188478553082748947992068553556338831975613033640413719911361848497815077
65
67
66
68
untypedValidator :: BuiltinData -> BuiltinUnit
67
69
untypedValidator ctx =
0 commit comments