@@ -1397,6 +1397,54 @@ def test_tx_builder_certificates_script(chain_context):
1397
1397
assert [plutus_script ] == witness .plutus_v2_script
1398
1398
1399
1399
1400
+ def test_tx_builder_cert_redeemer_wrong_tag (chain_context ):
1401
+ tx_builder = TransactionBuilder (chain_context )
1402
+ plutus_script = PlutusV2Script (b"dummy test script" )
1403
+ redeemer = Redeemer (PlutusData (), ExecutionUnits (100000 , 1000000 ))
1404
+ redeemer .tag = RedeemerTag .MINT
1405
+ with pytest .raises (InvalidArgumentException ) as e :
1406
+ tx_builder .add_certificate_script (plutus_script , redeemer = redeemer )
1407
+
1408
+
1409
+ def test_add_cert_script_from_utxo (chain_context ):
1410
+ tx_builder = TransactionBuilder (chain_context )
1411
+ sender = "addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
1412
+ sender_address = Address .from_primitive (sender )
1413
+ plutus_script = PlutusV2Script (b"dummy test script" )
1414
+ script_hash = plutus_script_hash (plutus_script )
1415
+ script_address = Address (script_hash )
1416
+ existing_script_utxo = UTxO (
1417
+ TransactionInput .from_primitive (
1418
+ [
1419
+ "41cb004bec7051621b19b46aea28f0657a586a05ce2013152ea9b9f1a5614cc7" ,
1420
+ 1 ,
1421
+ ]
1422
+ ),
1423
+ TransactionOutput (script_address , 1234567 , script = plutus_script ),
1424
+ )
1425
+
1426
+ stake_credential = StakeCredential (script_hash )
1427
+ pool_hash = PoolKeyHash (b"1" * POOL_KEY_HASH_SIZE )
1428
+ stake_registration = StakeRegistration (stake_credential )
1429
+ stake_delegation = StakeDelegation (stake_credential , pool_hash )
1430
+ tx_builder .certificates = [stake_registration , stake_delegation ]
1431
+ tx_builder .add_input_address (sender ).add_output (
1432
+ TransactionOutput .from_primitive ([sender , 500000 ])
1433
+ )
1434
+
1435
+ redeemer = Redeemer (PlutusData (), ExecutionUnits (100000 , 1000000 ))
1436
+ tx_builder .add_certificate_script (existing_script_utxo , redeemer = redeemer )
1437
+ tx_builder .ttl = 123456
1438
+
1439
+ tx_body = tx_builder .build (change_address = sender_address )
1440
+ tx_builder .use_redeemer_map = False
1441
+ witness = tx_builder .build_witness_set ()
1442
+ assert witness .plutus_data is None
1443
+ assert [redeemer ] == witness .redeemer
1444
+ assert witness .plutus_v2_script is None
1445
+ assert [existing_script_utxo .input ] == tx_body .reference_inputs
1446
+
1447
+
1400
1448
def test_tx_builder_stake_pool_registration (chain_context , pool_params ):
1401
1449
tx_builder = TransactionBuilder (chain_context , [RandomImproveMultiAsset ([0 , 0 ])])
1402
1450
sender = "addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
0 commit comments