@@ -78,3 +78,282 @@ describe("PlutusData Hash regression", () => {
7878 ) ;
7979 } ) ;
8080} ) ;
81+
82+ /*
83+ witnessSetFixture3Value :: TransactionWitnessSet
84+ witnessSetFixture3Value =
85+ TransactionWitnessSet
86+ { bootstraps: []
87+ , nativeScripts: []
88+ , plutusData:
89+ [ Bytes
90+ ( byteArrayFromIntArrayUnsafe
91+ [ 43 , 184 , 13 , 83 , 123 , 29 , 163 , 227 , 139 , 211 , 3 , 97 , 170 , 133 , 86 , 134 , 189 , 224 , 234 , 205 , 113 , 98 , 254 , 246 , 162 , 95 , 233 , 123 , 245 , 39 , 162 , 91 ]
92+ )
93+ ]
94+ , plutusScripts: [ plutusScriptFixture1, plutusScriptFixture2, plutusScriptFixture3 ]
95+ , redeemers: []
96+ , vkeys:
97+ [ Vkeywitness
98+ { vkey: Vkey
99+ ( unsafePartial $ fromJust $ PublicKey.fromBech32
100+ "ed25519_pk1p9sf9wz3t46u9ghht44203gerxt82kzqaqw74fqrmwjmdy8sjxmqknzq8j"
101+ )
102+ , signature:
103+ ( unsafePartial $ fromJust <<< Ed25519Signature.fromBech32 $
104+ "ed25519_sig1clmhgxx9e9t24wzgkmcsr44uq98j935evsjnrj8nn7ge08\
105+ \qrz0mgdxv5qtz8dyghs47q3lxwk4akq3u2ty8v4egeqvtl02ll0nfcqqq\
106+ \6faxl6"
107+ )
108+ }
109+ ]
110+ }
111+ */
112+
113+ describe ( "Transaction Witness Set regression" , ( ) => {
114+ let plutusScriptFixture1Hex = "4d01000033222220051200120011" ;
115+ let plutusScriptFixture2Hex = "4d010000deadbeef33222220051200120011" ;
116+ let plutusScriptFixture3Hex =
117+ "59088501000032332232323233223232323232323232323322323232323232322223232533532325335001101b13357389211d556e657870656374656420646174756d206174206f776e20696e7075740001a323253335002153335001101c2101c2101c2153335002101c21333573466ebc00800407807484074854ccd400840708407484ccd5cd19b8f00200101e01d323500122220023235001220013553353500222350022222222222223333500d2501e2501e2501e233355302d12001321233001225335002210031001002501e2350012253355335333573466e3cd400888008d4010880080b40b04ccd5cd19b873500222001350042200102d02c102c1350220031502100d21123001002162001300a0053333573466e1cd55cea80124000466442466002006004646464646464646464646464646666ae68cdc39aab9d500c480008cccccccccccc88888888888848cccccccccccc00403403002c02802402001c01801401000c008cd4054058d5d0a80619a80a80b1aba1500b33501501735742a014666aa034eb94064d5d0a804999aa80d3ae501935742a01066a02a0426ae85401cccd54068089d69aba150063232323333573466e1cd55cea801240004664424660020060046464646666ae68cdc39aab9d5002480008cc8848cc00400c008cd40b1d69aba15002302d357426ae8940088c98c80bccd5ce01901881689aab9e5001137540026ae854008c8c8c8cccd5cd19b8735573aa004900011991091980080180119a8163ad35742a004605a6ae84d5d1280111931901799ab9c03203102d135573ca00226ea8004d5d09aba2500223263202b33573805c05a05226aae7940044dd50009aba1500533501575c6ae854010ccd540680788004d5d0a801999aa80d3ae200135742a00460406ae84d5d1280111931901399ab9c02a029025135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d55cf280089baa00135742a00460206ae84d5d1280111931900c99ab9c01c01b017101a132632018335738921035054350001a135573ca00226ea800448c88c008dd6000990009aa80d111999aab9f0012501c233501b30043574200460066ae8800805c8c8c8cccd5cd19b8735573aa004900011991091980080180118069aba150023005357426ae8940088c98c8054cd5ce00c00b80989aab9e5001137540024646464646666ae68cdc39aab9d5004480008cccc888848cccc00401401000c008c8c8c8cccd5cd19b8735573aa0049000119910919800801801180b1aba1500233500e015357426ae8940088c98c8068cd5ce00e80e00c09aab9e5001137540026ae854010ccd54025d728041aba150033232323333573466e1d400520042300b357426aae79400c8cccd5cd19b875002480088c84888c004010dd71aba135573ca00846666ae68cdc3a801a400042444006464c6403866ae7007c0780680640604d55cea80089baa00135742a00466a014eb8d5d09aba2500223263201633573803203002826ae8940044d5d1280089aab9e500113754002424446004008266aa002eb9d6889119118011bab00132001355016223233335573e0044a032466a03066442466002006004600c6aae754008c014d55cf280118021aba200301413574200224464646666ae68cdc3a800a400046a00e600a6ae84d55cf280191999ab9a3370ea00490011280391931900919ab9c01501401000f135573aa00226ea800448488c00800c44880048c8c8cccd5cd19b875001480188c848888c010014c01cd5d09aab9e500323333573466e1d400920042321222230020053009357426aae7940108cccd5cd19b875003480088c848888c004014c01cd5d09aab9e500523333573466e1d40112000232122223003005375c6ae84d55cf280311931900819ab9c01301200e00d00c00b135573aa00226ea80048c8c8cccd5cd19b8735573aa004900011991091980080180118029aba15002375a6ae84d5d1280111931900619ab9c00f00e00a135573ca00226ea80048c8cccd5cd19b8735573aa002900011bae357426aae7940088c98c8028cd5ce00680600409baa001232323232323333573466e1d4005200c21222222200323333573466e1d4009200a21222222200423333573466e1d400d2008233221222222233001009008375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c4664424444444660040120106eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc8848888888cc018024020c030d5d0a8049bae357426ae8940248cccd5cd19b875006480088c848888888c01c020c034d5d09aab9e500b23333573466e1d401d2000232122222223005008300e357426aae7940308c98c804ccd5ce00b00a80880800780700680600589aab9d5004135573ca00626aae7940084d55cf280089baa0012323232323333573466e1d400520022333222122333001005004003375a6ae854010dd69aba15003375a6ae84d5d1280191999ab9a3370ea0049000119091180100198041aba135573ca00c464c6401866ae7003c0380280244d55cea80189aba25001135573ca00226ea80048c8c8cccd5cd19b875001480088c8488c00400cdd71aba135573ca00646666ae68cdc3a8012400046424460040066eb8d5d09aab9e500423263200933573801801600e00c26aae7540044dd500089119191999ab9a3370ea00290021091100091999ab9a3370ea00490011190911180180218031aba135573ca00846666ae68cdc3a801a400042444004464c6401466ae7003403002001c0184d55cea80089baa0012323333573466e1d40052002200623333573466e1d40092000200623263200633573801201000800626aae74dd5000a4c24400424400224002920103505431003200135500322112225335001135003220012213335005220023004002333553007120010050040011122002122122330010040031123230010012233003300200200101" ;
118+ let plutusDataBytes = new Uint8Array ( [
119+ 43 , 184 , 13 , 83 , 123 , 29 , 163 , 227 , 139 , 211 , 3 , 97 , 170 , 133 , 86 , 134 , 189 ,
120+ 224 , 234 , 205 , 113 , 98 , 254 , 246 , 162 , 95 , 233 , 123 , 245 , 39 , 162 , 91 ,
121+ ] ) ;
122+ let vkeyPubkeyBech32 =
123+ "ed25519_pk1p9sf9wz3t46u9ghht44203gerxt82kzqaqw74fqrmwjmdy8sjxmqknzq8j" ;
124+ let vkeySignatureBech32 =
125+ "ed25519_sig1clmhgxx9e9t24wzgkmcsr44uq98j935evsjnrj8nn7ge08qrz0mgdxv5qtz8dyghs47q3lxwk4akq3u2ty8v4egeqvtl02ll0nfcqqq6faxl6" ;
126+
127+ let plutusDataBytesFixture = ( lib : typeof CSL ) => {
128+ let x = lib . PlutusList . new ( ) ;
129+ x . add ( lib . PlutusData . new_bytes ( plutusDataBytes ) ) ;
130+ return x ;
131+ } ;
132+
133+ let vkeysFixture = ( lib : typeof CSL ) => {
134+ let vkeys = lib . Vkeywitnesses . new ( ) ;
135+ vkeys . add (
136+ lib . Vkeywitness . new (
137+ lib . Vkey . new ( lib . PublicKey . from_bech32 ( vkeyPubkeyBech32 ) ) ,
138+ lib . Ed25519Signature . from_bech32 ( vkeySignatureBech32 ) ,
139+ ) ,
140+ ) ;
141+ return vkeys ;
142+ } ;
143+
144+ let txWitnessSetFixture = ( lib : typeof CSL ) => {
145+ let txwset = lib . TransactionWitnessSet . new ( ) ;
146+ txwset . set_plutus_data ( plutusDataBytesFixture ( lib ) ) ;
147+ txwset . set_vkeys ( vkeysFixture ( lib ) ) ;
148+ return txwset ;
149+ } ;
150+
151+ let csl = txWitnessSetFixture ( CSL ) ;
152+ let cslPlutusScripts = CSL . PlutusScripts . new ( ) ;
153+ cslPlutusScripts . add (
154+ CSL . PlutusScript . from_hex_with_version (
155+ plutusScriptFixture1Hex ,
156+ CSL . Language . new_plutus_v1 ( ) ,
157+ ) ,
158+ ) ;
159+ cslPlutusScripts . add (
160+ CSL . PlutusScript . from_hex_with_version (
161+ plutusScriptFixture2Hex ,
162+ CSL . Language . new_plutus_v2 ( ) ,
163+ ) ,
164+ ) ;
165+ cslPlutusScripts . add (
166+ CSL . PlutusScript . from_hex_with_version (
167+ plutusScriptFixture3Hex ,
168+ CSL . Language . new_plutus_v3 ( ) ,
169+ ) ,
170+ ) ;
171+ csl . set_plutus_scripts ( cslPlutusScripts ) ;
172+
173+ let cdl = txWitnessSetFixture ( CDL as any ) as any as CDL . TransactionWitnessSet ;
174+ let cdlPlutusScripts1 = CDL . PlutusScripts . new ( ) ;
175+ cdlPlutusScripts1 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture1Hex ) ) ;
176+ cdl . set_plutus_scripts_v1 ( cdlPlutusScripts1 ) ;
177+ let cdlPlutusScripts2 = CDL . PlutusScripts . new ( ) ;
178+ cdlPlutusScripts2 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture2Hex ) ) ;
179+ cdl . set_plutus_scripts_v2 ( cdlPlutusScripts2 ) ;
180+ let cdlPlutusScripts3 = CDL . PlutusScripts . new ( ) ;
181+ cdlPlutusScripts3 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture3Hex ) ) ;
182+ cdl . set_plutus_scripts_v3 ( cdlPlutusScripts3 ) ;
183+
184+ test ( "serialize" , ( ) => {
185+ expect ( cdl . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
186+ } ) ;
187+
188+ test ( "deserialize" , ( ) => {
189+ let cdl2 = CDL . TransactionWitnessSet . from_hex ( csl . to_hex ( ) ) ;
190+ expect ( cdl2 . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
191+ } ) ;
192+ } ) ;
193+
194+ describe ( "Transaction Witness Set regression 2" , ( ) => {
195+ let plutusScriptFixture1Hex = "4d01000033222220051200120011" ;
196+ let plutusScriptFixture2Hex = "4d010000deadbeef33222220051200120011" ;
197+ let plutusScriptFixture3Hex =
198+ "59088501000032332232323233223232323232323232323322323232323232322223232533532325335001101b13357389211d556e657870656374656420646174756d206174206f776e20696e7075740001a323253335002153335001101c2101c2101c2153335002101c21333573466ebc00800407807484074854ccd400840708407484ccd5cd19b8f00200101e01d323500122220023235001220013553353500222350022222222222223333500d2501e2501e2501e233355302d12001321233001225335002210031001002501e2350012253355335333573466e3cd400888008d4010880080b40b04ccd5cd19b873500222001350042200102d02c102c1350220031502100d21123001002162001300a0053333573466e1cd55cea80124000466442466002006004646464646464646464646464646666ae68cdc39aab9d500c480008cccccccccccc88888888888848cccccccccccc00403403002c02802402001c01801401000c008cd4054058d5d0a80619a80a80b1aba1500b33501501735742a014666aa034eb94064d5d0a804999aa80d3ae501935742a01066a02a0426ae85401cccd54068089d69aba150063232323333573466e1cd55cea801240004664424660020060046464646666ae68cdc39aab9d5002480008cc8848cc00400c008cd40b1d69aba15002302d357426ae8940088c98c80bccd5ce01901881689aab9e5001137540026ae854008c8c8c8cccd5cd19b8735573aa004900011991091980080180119a8163ad35742a004605a6ae84d5d1280111931901799ab9c03203102d135573ca00226ea8004d5d09aba2500223263202b33573805c05a05226aae7940044dd50009aba1500533501575c6ae854010ccd540680788004d5d0a801999aa80d3ae200135742a00460406ae84d5d1280111931901399ab9c02a029025135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d55cf280089baa00135742a00460206ae84d5d1280111931900c99ab9c01c01b017101a132632018335738921035054350001a135573ca00226ea800448c88c008dd6000990009aa80d111999aab9f0012501c233501b30043574200460066ae8800805c8c8c8cccd5cd19b8735573aa004900011991091980080180118069aba150023005357426ae8940088c98c8054cd5ce00c00b80989aab9e5001137540024646464646666ae68cdc39aab9d5004480008cccc888848cccc00401401000c008c8c8c8cccd5cd19b8735573aa0049000119910919800801801180b1aba1500233500e015357426ae8940088c98c8068cd5ce00e80e00c09aab9e5001137540026ae854010ccd54025d728041aba150033232323333573466e1d400520042300b357426aae79400c8cccd5cd19b875002480088c84888c004010dd71aba135573ca00846666ae68cdc3a801a400042444006464c6403866ae7007c0780680640604d55cea80089baa00135742a00466a014eb8d5d09aba2500223263201633573803203002826ae8940044d5d1280089aab9e500113754002424446004008266aa002eb9d6889119118011bab00132001355016223233335573e0044a032466a03066442466002006004600c6aae754008c014d55cf280118021aba200301413574200224464646666ae68cdc3a800a400046a00e600a6ae84d55cf280191999ab9a3370ea00490011280391931900919ab9c01501401000f135573aa00226ea800448488c00800c44880048c8c8cccd5cd19b875001480188c848888c010014c01cd5d09aab9e500323333573466e1d400920042321222230020053009357426aae7940108cccd5cd19b875003480088c848888c004014c01cd5d09aab9e500523333573466e1d40112000232122223003005375c6ae84d55cf280311931900819ab9c01301200e00d00c00b135573aa00226ea80048c8c8cccd5cd19b8735573aa004900011991091980080180118029aba15002375a6ae84d5d1280111931900619ab9c00f00e00a135573ca00226ea80048c8cccd5cd19b8735573aa002900011bae357426aae7940088c98c8028cd5ce00680600409baa001232323232323333573466e1d4005200c21222222200323333573466e1d4009200a21222222200423333573466e1d400d2008233221222222233001009008375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c4664424444444660040120106eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc8848888888cc018024020c030d5d0a8049bae357426ae8940248cccd5cd19b875006480088c848888888c01c020c034d5d09aab9e500b23333573466e1d401d2000232122222223005008300e357426aae7940308c98c804ccd5ce00b00a80880800780700680600589aab9d5004135573ca00626aae7940084d55cf280089baa0012323232323333573466e1d400520022333222122333001005004003375a6ae854010dd69aba15003375a6ae84d5d1280191999ab9a3370ea0049000119091180100198041aba135573ca00c464c6401866ae7003c0380280244d55cea80189aba25001135573ca00226ea80048c8c8cccd5cd19b875001480088c8488c00400cdd71aba135573ca00646666ae68cdc3a8012400046424460040066eb8d5d09aab9e500423263200933573801801600e00c26aae7540044dd500089119191999ab9a3370ea00290021091100091999ab9a3370ea00490011190911180180218031aba135573ca00846666ae68cdc3a801a400042444004464c6401466ae7003403002001c0184d55cea80089baa0012323333573466e1d40052002200623333573466e1d40092000200623263200633573801201000800626aae74dd5000a4c24400424400224002920103505431003200135500322112225335001135003220012213335005220023004002333553007120010050040011122002122122330010040031123230010012233003300200200101" ;
199+
200+ let txWitnessSetFixture = ( lib : typeof CSL ) => {
201+ let txwset = lib . TransactionWitnessSet . new ( ) ;
202+ return txwset ;
203+ } ;
204+
205+ let csl = txWitnessSetFixture ( CSL ) ;
206+ let cslPlutusScripts = CSL . PlutusScripts . new ( ) ;
207+ cslPlutusScripts . add (
208+ CSL . PlutusScript . from_hex_with_version (
209+ plutusScriptFixture1Hex ,
210+ CSL . Language . new_plutus_v1 ( ) ,
211+ ) ,
212+ ) ;
213+ cslPlutusScripts . add (
214+ CSL . PlutusScript . from_hex_with_version (
215+ plutusScriptFixture2Hex ,
216+ CSL . Language . new_plutus_v2 ( ) ,
217+ ) ,
218+ ) ;
219+ cslPlutusScripts . add (
220+ CSL . PlutusScript . from_hex_with_version (
221+ plutusScriptFixture3Hex ,
222+ CSL . Language . new_plutus_v3 ( ) ,
223+ ) ,
224+ ) ;
225+ csl . set_plutus_scripts ( cslPlutusScripts ) ;
226+
227+ let cdl = txWitnessSetFixture ( CDL as any ) as any as CDL . TransactionWitnessSet ;
228+ let cdlPlutusScripts1 = CDL . PlutusScripts . new ( ) ;
229+ cdlPlutusScripts1 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture1Hex ) ) ;
230+ cdl . set_plutus_scripts_v1 ( cdlPlutusScripts1 ) ;
231+ let cdlPlutusScripts2 = CDL . PlutusScripts . new ( ) ;
232+ cdlPlutusScripts2 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture2Hex ) ) ;
233+ cdl . set_plutus_scripts_v2 ( cdlPlutusScripts2 ) ;
234+ let cdlPlutusScripts3 = CDL . PlutusScripts . new ( ) ;
235+ cdlPlutusScripts3 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture3Hex ) ) ;
236+ cdl . set_plutus_scripts_v3 ( cdlPlutusScripts3 ) ;
237+
238+ test ( "serialize" , ( ) => {
239+ expect ( cdl . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
240+ } ) ;
241+
242+ test ( "deserialize" , ( ) => {
243+ let cdl2 = CDL . TransactionWitnessSet . from_hex ( csl . to_hex ( ) ) ;
244+ expect ( cdl2 . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
245+ } ) ;
246+ } ) ;
247+
248+ describe ( "Transaction Witness Set regression 3" , ( ) => {
249+ let plutusScriptFixture1Hex = "4d01000033222220051200120011" ;
250+ let plutusScriptFixture2Hex = "4d010000deadbeef33222220051200120011" ;
251+
252+ let txWitnessSetFixture = ( lib : typeof CSL ) => {
253+ let txwset = lib . TransactionWitnessSet . new ( ) ;
254+ return txwset ;
255+ } ;
256+
257+ let csl = txWitnessSetFixture ( CSL ) ;
258+ let cslPlutusScripts = CSL . PlutusScripts . new ( ) ;
259+ cslPlutusScripts . add (
260+ CSL . PlutusScript . from_hex_with_version (
261+ plutusScriptFixture1Hex ,
262+ CSL . Language . new_plutus_v1 ( ) ,
263+ ) ,
264+ ) ;
265+ cslPlutusScripts . add (
266+ CSL . PlutusScript . from_hex_with_version (
267+ plutusScriptFixture2Hex ,
268+ CSL . Language . new_plutus_v2 ( ) ,
269+ ) ,
270+ ) ;
271+ csl . set_plutus_scripts ( cslPlutusScripts ) ;
272+
273+ let cdl = txWitnessSetFixture ( CDL as any ) as any as CDL . TransactionWitnessSet ;
274+ let cdlPlutusScripts1 = CDL . PlutusScripts . new ( ) ;
275+ cdlPlutusScripts1 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture1Hex ) ) ;
276+ cdl . set_plutus_scripts_v1 ( cdlPlutusScripts1 ) ;
277+ let cdlPlutusScripts2 = CDL . PlutusScripts . new ( ) ;
278+ cdlPlutusScripts2 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture2Hex ) ) ;
279+ cdl . set_plutus_scripts_v2 ( cdlPlutusScripts2 ) ;
280+
281+ test ( "serialize" , ( ) => {
282+ expect ( cdl . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
283+ } ) ;
284+
285+ test ( "deserialize" , ( ) => {
286+ let cdl2 = CDL . TransactionWitnessSet . from_hex ( csl . to_hex ( ) ) ;
287+ expect ( cdl2 . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
288+ } ) ;
289+ } ) ;
290+
291+ describe ( "Transaction Witness Set regression 4" , ( ) => {
292+ let plutusScriptFixture1Hex = "4d01000033222220051200120011" ;
293+ let plutusScriptFixture2Hex = "4d010000deadbeef33222220051200120011" ;
294+ let plutusDataBytes = new Uint8Array ( [
295+ 43 , 184 , 13 , 83 , 123 , 29 , 163 , 227 , 139 , 211 , 3 , 97 , 170 , 133 , 86 , 134 , 189 ,
296+ 224 , 234 , 205 , 113 , 98 , 254 , 246 , 162 , 95 , 233 , 123 , 245 , 39 , 162 , 91 ,
297+ ] ) ;
298+ let vkeyPubkeyBech32 =
299+ "ed25519_pk1p9sf9wz3t46u9ghht44203gerxt82kzqaqw74fqrmwjmdy8sjxmqknzq8j" ;
300+ let vkeySignatureBech32 =
301+ "ed25519_sig1clmhgxx9e9t24wzgkmcsr44uq98j935evsjnrj8nn7ge08qrz0mgdxv5qtz8dyghs47q3lxwk4akq3u2ty8v4egeqvtl02ll0nfcqqq6faxl6" ;
302+
303+ let plutusDataBytesFixture = ( lib : typeof CSL ) => {
304+ let x = lib . PlutusList . new ( ) ;
305+ x . add ( lib . PlutusData . new_bytes ( plutusDataBytes ) ) ;
306+ return x ;
307+ } ;
308+
309+ let vkeysFixture = ( lib : typeof CSL ) => {
310+ let vkeys = lib . Vkeywitnesses . new ( ) ;
311+ vkeys . add (
312+ lib . Vkeywitness . new (
313+ lib . Vkey . new ( lib . PublicKey . from_bech32 ( vkeyPubkeyBech32 ) ) ,
314+ lib . Ed25519Signature . from_bech32 ( vkeySignatureBech32 ) ,
315+ ) ,
316+ ) ;
317+ return vkeys ;
318+ } ;
319+
320+ let txWitnessSetFixture = ( lib : typeof CSL ) => {
321+ let txwset = lib . TransactionWitnessSet . new ( ) ;
322+ txwset . set_plutus_data ( plutusDataBytesFixture ( lib ) ) ;
323+ txwset . set_vkeys ( vkeysFixture ( lib ) ) ;
324+ return txwset ;
325+ } ;
326+
327+ let csl = txWitnessSetFixture ( CSL ) ;
328+ let cslPlutusScripts = CSL . PlutusScripts . new ( ) ;
329+ cslPlutusScripts . add (
330+ CSL . PlutusScript . from_hex_with_version (
331+ plutusScriptFixture1Hex ,
332+ CSL . Language . new_plutus_v1 ( ) ,
333+ ) ,
334+ ) ;
335+ cslPlutusScripts . add (
336+ CSL . PlutusScript . from_hex_with_version (
337+ plutusScriptFixture2Hex ,
338+ CSL . Language . new_plutus_v2 ( ) ,
339+ ) ,
340+ ) ;
341+ csl . set_plutus_scripts ( cslPlutusScripts ) ;
342+
343+ let cdl = txWitnessSetFixture ( CDL as any ) as any as CDL . TransactionWitnessSet ;
344+ let cdlPlutusScripts1 = CDL . PlutusScripts . new ( ) ;
345+ cdlPlutusScripts1 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture1Hex ) ) ;
346+ cdl . set_plutus_scripts_v1 ( cdlPlutusScripts1 ) ;
347+ let cdlPlutusScripts2 = CDL . PlutusScripts . new ( ) ;
348+ cdlPlutusScripts2 . add ( CDL . PlutusScript . from_hex ( plutusScriptFixture2Hex ) ) ;
349+ cdl . set_plutus_scripts_v2 ( cdlPlutusScripts2 ) ;
350+
351+ test ( "serialize" , ( ) => {
352+ expect ( cdl . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
353+ } ) ;
354+
355+ test ( "deserialize" , ( ) => {
356+ let cdl2 = CDL . TransactionWitnessSet . from_hex ( csl . to_hex ( ) ) ;
357+ expect ( cdl2 . to_hex ( ) ) . toStrictEqual ( csl . to_hex ( ) ) ;
358+ } ) ;
359+ } ) ;
0 commit comments