File tree Expand file tree Collapse file tree 4 files changed +24
-4
lines changed Expand file tree Collapse file tree 4 files changed +24
-4
lines changed Original file line number Diff line number Diff line change @@ -1204,14 +1204,16 @@ def build_witness_set(
12041204                        f"Unsupported script type: { type (script )}  " 
12051205                    )
12061206
1207-         return  TransactionWitnessSet (
1207+         witness_set   =  TransactionWitnessSet (
12081208            native_scripts = native_scripts  if  native_scripts  else  None ,
12091209            plutus_v1_script = plutus_v1_scripts  if  plutus_v1_scripts  else  None ,
12101210            plutus_v2_script = plutus_v2_scripts  if  plutus_v2_scripts  else  None ,
12111211            plutus_v3_script = plutus_v3_scripts  if  plutus_v3_scripts  else  None ,
12121212            redeemer = self .redeemers () if  self ._redeemer_list  else  None ,
12131213            plutus_data = plutus_data  if  plutus_data  else  None ,
12141214        )
1215+         witness_set .convert_to_latest_spec ()
1216+         return  witness_set 
12151217
12161218    def  _ensure_no_input_exclusion_conflict (self ):
12171219        intersection  =  set (self .inputs ).intersection (set (self .excluded_inputs ))
Original file line number Diff line number Diff line change @@ -108,7 +108,7 @@ class TransactionWitnessSet(MapCBORSerializable):
108108        },
109109    )
110110
111-     plutus_data : Optional [Union [IndefiniteList ,  List [Any ], NonEmptyOrderedSet [Any ]]] =  (
111+     plutus_data : Optional [Union [List [Any ],  IndefiniteList , NonEmptyOrderedSet [Any ]]] =  (
112112        field (
113113            default = None ,
114114            metadata = {"optional" : True , "key" : 4 },
@@ -140,7 +140,7 @@ class TransactionWitnessSet(MapCBORSerializable):
140140        },
141141    )
142142
143-     def  __post_init__ (self ):
143+     def  convert_to_latest_spec (self ):
144144        # Convert lists to NonEmptyOrderedSet for fields that should use NonEmptyOrderedSet 
145145        if  isinstance (self .vkey_witnesses , list ):
146146            self .vkey_witnesses  =  NonEmptyOrderedSet (self .vkey_witnesses )
Original file line number Diff line number Diff line change @@ -761,6 +761,7 @@ def test_transaction_witness_set_with_ordered_sets():
761761
762762    # Test conversion from list to NonEmptyOrderedSet 
763763    witness_set  =  TransactionWitnessSet (vkey_witnesses = [witness ])
764+     witness_set .convert_to_latest_spec ()
764765    assert  isinstance (witness_set .vkey_witnesses , NonEmptyOrderedSet )
765766    assert  witness  in  witness_set .vkey_witnesses 
766767
@@ -772,11 +773,13 @@ def test_transaction_witness_set_with_ordered_sets():
772773
773774    # Test empty list conversion 
774775    witness_set  =  TransactionWitnessSet (vkey_witnesses = [])
776+     witness_set .convert_to_latest_spec ()
775777    with  pytest .raises (ValueError , match = "NonEmptyOrderedSet cannot be empty" ):
776778        witness_set .to_validated_primitive ()
777779
778780    # Test None value 
779781    witness_set  =  TransactionWitnessSet (vkey_witnesses = None )
782+     witness_set .convert_to_latest_spec ()
780783    primitive  =  witness_set .to_primitive ()
781784    restored  =  TransactionWitnessSet .from_primitive (primitive )
782785    assert  restored .vkey_witnesses  is  None 
Original file line number Diff line number Diff line change 1+ import  json 
12import  tempfile 
23
3- from  pycardano  import  PaymentSigningKey , PaymentVerificationKey , VerificationKeyWitness 
4+ from  pycardano  import  (
5+     PaymentSigningKey ,
6+     PaymentVerificationKey ,
7+     Transaction ,
8+     TransactionWitnessSet ,
9+     Unit ,
10+     VerificationKeyWitness ,
11+ )
412
513
614def  test_witness_save_load ():
@@ -17,3 +25,10 @@ def test_witness_save_load():
1725        assert  witness  ==  loaded_witness 
1826
1927        assert  witness  !=  vk 
28+ 
29+ 
30+ def  test_redeemer_decode ():
31+     witness  =  TransactionWitnessSet (plutus_data = [Unit ()])
32+     encoded  =  witness .to_cbor ()
33+     decoded  =  TransactionWitnessSet .from_cbor (encoded )
34+     assert  isinstance (decoded .plutus_data , list )
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments