@@ -1397,6 +1397,54 @@ def test_tx_builder_certificates_script(chain_context):
13971397 assert [plutus_script ] == witness .plutus_v2_script
13981398
13991399
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+
14001448def test_tx_builder_stake_pool_registration (chain_context , pool_params ):
14011449 tx_builder = TransactionBuilder (chain_context , [RandomImproveMultiAsset ([0 , 0 ])])
14021450 sender = "addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
0 commit comments