@@ -94,62 +94,3 @@ class TransactionWitnessSet(MapCBORSerializable):
94
94
plutus_v3_script : Optional [List [PlutusV3Script ]] = field (
95
95
default = None , metadata = {"optional" : True , "key" : 7 }
96
96
)
97
-
98
- @classmethod
99
- @limit_primitive_type (dict , list )
100
- def from_primitive (
101
- cls : Type [TransactionWitnessSet ], values : Union [dict , list , tuple ]
102
- ) -> TransactionWitnessSet | None :
103
- def _get_vkey_witnesses (data : Any ):
104
- return (
105
- [VerificationKeyWitness .from_primitive (witness ) for witness in data ]
106
- if data
107
- else None
108
- )
109
-
110
- def _get_native_scripts (data : Any ):
111
- return (
112
- [NativeScript .from_primitive (script ) for script in data ]
113
- if data
114
- else None
115
- )
116
-
117
- def _get_plutus_v1_scripts (data : Any ):
118
- return [PlutusV1Script (script ) for script in data ] if data else None
119
-
120
- def _get_plutus_v2_scripts (data : Any ):
121
- return [PlutusV2Script (script ) for script in data ] if data else None
122
-
123
- def _get_redeemers (data : Any ):
124
- if not data :
125
- return None
126
- if isinstance (data , dict ):
127
- redeemer_map = RedeemerMap ()
128
- for (tag , index ), value in data .items ():
129
- key = RedeemerKey (RedeemerTag (tag ), index )
130
- redeemer_value = RedeemerValue (value [0 ], ExecutionUnits (* value [1 ]))
131
- redeemer_map [key ] = redeemer_value
132
- return redeemer_map
133
- elif isinstance (data , list ):
134
- return [Redeemer .from_primitive (redeemer ) for redeemer in data ]
135
- else :
136
- raise ValueError (f"Unexpected redeemer data format: { type (data )} " )
137
-
138
- def _get_cls (data : Any ):
139
- return cls (
140
- vkey_witnesses = _get_vkey_witnesses (data .get (0 )),
141
- native_scripts = _get_native_scripts (data .get (1 )),
142
- bootstrap_witness = data .get (2 ),
143
- plutus_v1_script = _get_plutus_v1_scripts (data .get (3 )),
144
- plutus_data = data .get (4 ),
145
- redeemer = _get_redeemers (data .get (5 )),
146
- plutus_v2_script = _get_plutus_v2_scripts (data .get (6 )),
147
- )
148
-
149
- if isinstance (values , dict ):
150
- return _get_cls (values )
151
- elif isinstance (values , list ):
152
- # TODO: May need to handle this differently
153
- values = dict (values )
154
- return _get_cls (values )
155
- return None
0 commit comments