@@ -1363,6 +1363,40 @@ def test_tx_builder_certificates(chain_context):
1363
1363
assert expected == tx_body .to_primitive ()
1364
1364
1365
1365
1366
+ def test_tx_builder_certificates_script (chain_context ):
1367
+ tx_builder = TransactionBuilder (chain_context , [RandomImproveMultiAsset ([0 , 0 ])])
1368
+ sender = "addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
1369
+ sender_address = Address .from_primitive (sender )
1370
+
1371
+ plutus_script = PlutusV2Script (b"dummy test script" )
1372
+ script_hash = plutus_script_hash (plutus_script )
1373
+
1374
+ stake_credential = StakeCredential (script_hash )
1375
+
1376
+ pool_hash = PoolKeyHash (b"1" * POOL_KEY_HASH_SIZE )
1377
+
1378
+ stake_registration = StakeRegistration (stake_credential )
1379
+
1380
+ stake_delegation = StakeDelegation (stake_credential , pool_hash )
1381
+
1382
+ # Add sender address as input
1383
+ tx_builder .add_input_address (sender ).add_output (
1384
+ TransactionOutput .from_primitive ([sender , 500000 ])
1385
+ )
1386
+
1387
+ tx_builder .certificates = [stake_registration , stake_delegation ]
1388
+ redeemer = Redeemer (PlutusData (), ExecutionUnits (100000 , 1000000 ))
1389
+ tx_builder .add_certificate_script (plutus_script , redeemer = redeemer )
1390
+ tx_builder .ttl = 123456
1391
+
1392
+ tx_builder .build (change_address = sender_address )
1393
+ tx_builder .use_redeemer_map = False
1394
+ witness = tx_builder .build_witness_set ()
1395
+ assert [redeemer ] == witness .redeemer
1396
+ assert witness .redeemer [0 ].index == 1
1397
+ assert [plutus_script ] == witness .plutus_v2_script
1398
+
1399
+
1366
1400
def test_tx_builder_stake_pool_registration (chain_context , pool_params ):
1367
1401
tx_builder = TransactionBuilder (chain_context , [RandomImproveMultiAsset ([0 , 0 ])])
1368
1402
sender = "addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
0 commit comments