|
3 | 3 | import pytest |
4 | 4 |
|
5 | 5 | from pycardano.hash import SCRIPT_HASH_SIZE, ScriptDataHash |
6 | | -from pycardano.plutus import ExecutionUnits, PlutusData, Redeemer, RedeemerTag, Unit |
| 6 | +from pycardano.plutus import ( |
| 7 | + COST_MODELS, |
| 8 | + ExecutionUnits, |
| 9 | + PlutusData, |
| 10 | + Redeemer, |
| 11 | + RedeemerKey, |
| 12 | + RedeemerMap, |
| 13 | + RedeemerTag, |
| 14 | + RedeemerValue, |
| 15 | + Unit, |
| 16 | +) |
7 | 17 | from pycardano.transaction import Value |
8 | 18 | from pycardano.utils import ( |
9 | 19 | min_lovelace_pre_alonzo, |
@@ -156,22 +166,39 @@ def test_script_data_hash(): |
156 | 166 | redeemers = [Redeemer(unit, ExecutionUnits(1000000, 1000000))] |
157 | 167 | redeemers[0].tag = RedeemerTag.SPEND |
158 | 168 | assert ScriptDataHash.from_primitive( |
159 | | - "032d812ee0731af78fe4ec67e4d30d16313c09e6fb675af28f825797e8b5621d" |
| 169 | + "2ad155a692b0ddb6752df485de0a6bdb947757f9f998ff34a6f4b06ca0664fbe" |
160 | 170 | ) == script_data_hash(redeemers=redeemers, datums=[unit]) |
161 | 171 |
|
162 | 172 |
|
| 173 | +def test_script_data_hash_redeemer_map(): |
| 174 | + unit = Unit() |
| 175 | + redeemer = Redeemer(42, ExecutionUnits(573240, 253056459)) |
| 176 | + redeemer.tag = RedeemerTag.SPEND |
| 177 | + redeemers = RedeemerMap( |
| 178 | + { |
| 179 | + RedeemerKey(redeemer.tag, redeemer.index): RedeemerValue( |
| 180 | + redeemer.data, redeemer.ex_units |
| 181 | + ) |
| 182 | + } |
| 183 | + ) |
| 184 | + cost_models = COST_MODELS |
| 185 | + assert ScriptDataHash.from_primitive( |
| 186 | + "04ad5eb241d1ede2bbbd60c5853de7659d2ecfb1a29d6cbb6921ef7bdd46ca3c" |
| 187 | + ) == script_data_hash(redeemers=redeemers, datums=[unit], cost_models=cost_models) |
| 188 | + |
| 189 | + |
163 | 190 | def test_script_data_hash_datum_only(): |
164 | 191 | unit = Unit() |
165 | 192 | assert ScriptDataHash.from_primitive( |
166 | | - "2f50ea2546f8ce020ca45bfcf2abeb02ff18af2283466f888ae489184b3d2d39" |
| 193 | + "264ea21d9904cd72ce5038fa60e0ddd0859383f7fbf60ecec6df22e4c4e34a1f" |
167 | 194 | ) == script_data_hash(redeemers=[], datums=[unit]) |
168 | 195 |
|
169 | 196 |
|
170 | 197 | def test_script_data_hash_redeemer_only(): |
171 | 198 | unit = Unit() |
172 | 199 | redeemers = [] |
173 | 200 | assert ScriptDataHash.from_primitive( |
174 | | - "a88fe2947b8d45d1f8b798e52174202579ecf847b8f17038c7398103df2d27b0" |
| 201 | + "9eb0251b2e85b082c3706a3e79b4cf2a2e96f936e912a398591e2486c757f8c1" |
175 | 202 | ) == script_data_hash(redeemers=redeemers, datums=[]) |
176 | 203 |
|
177 | 204 |
|
|
0 commit comments