File tree Expand file tree Collapse file tree 3 files changed +24
-4
lines changed
Expand file tree Collapse file tree 3 files changed +24
-4
lines changed Original file line number Diff line number Diff line change @@ -730,10 +730,7 @@ def _restore_typed_primitive(
730730 if not isinstance (v , (list , IndefiniteList )):
731731 raise DeserializeException (f"Expected type list but got { type (v )} " )
732732 v_list = [_restore_typed_primitive (t_subtype , w ) for w in v ]
733- if t == IndefiniteList :
734- return IndefiniteList (v_list )
735- else :
736- return v_list
733+ return v .__class__ (v_list )
737734 elif isclass (t ) and t == ByteString :
738735 if not isinstance (v , bytes ):
739736 raise DeserializeException (f"Expected type bytes but got { type (v )} " )
Original file line number Diff line number Diff line change @@ -1120,3 +1120,22 @@ class MyTest(DictCBORSerializable):
11201120 d [a ] = 1
11211121
11221122 check_two_way_cbor (d )
1123+
1124+
1125+ def test_preserve_indefinite_list ():
1126+ @dataclass
1127+ class MyTest (ArrayCBORSerializable ):
1128+ a : Union [List [int ], IndefiniteList ]
1129+
1130+ my_list = IndefiniteList ([1 , 2 , 3 ])
1131+
1132+ a = MyTest (my_list )
1133+
1134+ assert isinstance (MyTest .from_cbor (a .to_cbor ()).a , IndefiniteList )
1135+
1136+
1137+ def test_liqwid_tx ():
1138+ with open ("test/resources/cbors/liqwid.json" ) as f :
1139+ cbor_hex = json .load (f ).get ("cborHex" )
1140+ tx = Transaction .load ("test/resources/cbors/liqwid.json" )
1141+ assert tx .to_cbor ().hex () == cbor_hex
Original file line number Diff line number Diff line change 1+ {
2+ "type" : " Signed Tx ConwayEra" ,
3+ "cborHex": "84a900838258202598e0a075055486207506b6211a972ae4c45c7e8c901a0dfda8e71cb8689a02008258202598e0a075055486207506b6211a972ae4c45c7e8c901a0dfda8e71cb8689a0203825820bdb9eb20708ad8112f3ca9f7f18463ff1840d40d0fec12e878e3567ab304ca030c0183a300581d71b575da974ec756ba2afdccdc07cbd1839acaf0a24c4f80afd81d3fb601821a004ea7c8a1581c24f51a8308b4e47b9d1438ec1e91da4ee063c38c704b530cba4adc5ba14001028201d8185901de9f9f011832ff1a04d3f6409f0a080000ff1a00e4e1c01a000493e0041a000dbba00480581c71391f18fb131f28a230fa7f3b6c6099e447602b2bd2df5d046c5e991a001e84809f9f1b000000015be6dd9b1b0008e1bc9bf04000ff9f1b0000000514690d5f1b002386f26fc10000ff9f1b0000002369aab0531b0001c6bf52634000ff9f090affff9f1903291903e8ff9f0101ff059f011904e2ff9f0101ff9f0101ff9f185b1864ff9f0101ff581c31415bb210164cf6b84d1b12537f0792d2912d156e0f1ed1d91c83ce581ca3e56ea9d2db008038ce6fb32e500faef1523dcb042e5a637d633fc8581c0e82eb5f90eec1a9ed3ecc5d0c639de82a03ca6e3417bc0d0d01637ed8799f43d87980ff581cfae6df1f28636c19f20033440e2daad8da929679ca3a5e9cda6b6dbed8799f43d87980ff9fd8799f581cf61e5cf96a45049adc9fb4092bb2909756c9fef7f501ca51a02b99ceffd8799f581cfda79c6aa9bc492a7bf1055cad9dd55c1ff0df30e0ef5202d429e24dffff1b000001739c8900381a19bfcc001a001b7740d8799f581c648520089b3d89f5aa94adc0ad0b911f97677c8700925c4be6290f5bffd8799f581c648520089b3d89f5aa94adc0ad0b911f97677c8700925c4be6290f5bffd8799f9f1314ffffd87a80ffa300581d71b575da974ec756ba2afdccdc07cbd1839acaf0a24c4f80afd81d3fb601821a002dc6c0a1581c9f61f4563c3037017d768c34c392976e6f7c5fd080d9a0b315cc9b8da14001028201d8185901449f9f011832ff1a01c9c3809f0a080000ff1a00e4e1c01a000493e0041a000dbba00480581c7bf8d17b4ea7a5abb5ed56f70cea83f2c6055180dd5dbae86a4585951a001e84809f9f1b000000039a290d2f1b0011c37937e08000ff9f1b000000150e136c311b0011c37937e08000ff9f1b000001fe2f977f3f1b0011c37937e08000ff9f090affff9f19031f1903e8ff9f0101ff069f011904e2ff9f0101ff9f0101ff9f090aff9f0101ff581c7bd80451bde142f4e9d9af436de303fb4c0aaf51d96b14a41e2e07de581cacee18e799d5b4e30046e2eaad1f75fc95997dd6ec37995f02670ccd581cedc97eac064185d20abf8cf21d2260566adeda888bc70bb68bb8201ed8799f43d87980ff581cad334d2f48985b27d52fb074f28df88ff96ca73804a3dca38f7652b7d8799f43d87980ff80000000d87a80d87a80d87a80d87a80ff82583901b50ef45658b5d47435f2b239fd3e440d8ff216296375b44c05632a5ccef16a580f5f96ab87f0f9917a15c7581036fe6d0d5011299883bcc21a09db3109021a00054f0b0b582053a16b8a2ee256c7a9e6f97c6a28364fd6370869c77409440ce6711e02463ccf0d81825820bdb9eb20708ad8112f3ca9f7f18463ff1840d40d0fec12e878e3567ab304ca030c0e85581cac9a02663c8a5736255c26d4a577e0d7653040f22e171fa7d42ad9d1581c88118010db25e07738d88bef6accd9290839695bba15f9f52c26c4ee581c92d246754763839d1482701455797ff530f783b7a8d84038053907a0581c87c1d5f14f56618c26ef9f734d572e122aee00fbd8a3531d67c265c2581cb50ef45658b5d47435f2b239fd3e440d8ff216296375b44c05632a5c1082583901b50ef45658b5d47435f2b239fd3e440d8ff216296375b44c05632a5ccef16a580f5f96ab87f0f9917a15c7581036fe6d0d5011299883bcc21a09d88983111a0007f6911283825820f656cbb687886ffcb9e7ba5ec8b68fd25f49dbfbb7be7dbcefc17729ba4f7bd901825820eb917c6cb593185c2c099ff23fb0352ebb0d61240475b108e2ac0ef171bcb8e60082582014b6b36e81b5697cf2db5e37d45e91af44aef256affa1cbedcfd28cac36cd3c000a30085825820cda8d935914b9f19a840ae6ed1c2cbc4501f2bbef92f1f1c94984703dfa0effa58402b799a8ee7c8d8c7344bd3f6f6b8502d8737db602b3c0bffc4564adbde096391714c4bc84ac5c31b913d7ab16d606798566785b9d6ae4fb651afb4ff8fe9b201825820ea70a63975c8bdf21a10d5c171c1e2d746d7d5a73a971ddd1adddb0f73d96fed58403d58e6057af51df47b70ed3a211be12395c4a3b00ba79810b227d289f833c1e66a432d18d9a1fd28e0c0834ad32721d565e13197378c8b663973c37992a48f06825820331d57605e419462db9812a7a7b4d497b58578c48eb7d1404ef805b5f1dd96ad584098c8dc8824293409561c182f75b06c9d8d637886d447d8e4883bb3b5017d098718876c6252e4c090b8ce9952e8bb792aa4578cccb470f72bec206fe2357f8903825820dc6a72dedf63fbb284f6d3bf0985019d361dcfee2839a3d2b394cca1a679ca955840683beb725c5c932c780bc44c13cd5e59b605082aea3086590f130f8fb62b2367297a250b5f04ef147f096bb439fd630deee0d4dbb98aac56a651e2642135a309825820788ed4b5ed85928464905b35d57fcea18b45639d95bf9d7780049a5363fcb4aa5840503d6af0c52dd5ff2fc0b962b2d342162cce56991aa51ed959ae087a81804fd1952d8b2834a10db9e8ab773f1259b7a8b2c7bf272c07ae92ed642186a9f9db04049fd87980ff058284000080821a000530601a07afcb8a84000180821a000530601a07afcb8af5f6"
4+ }
You can’t perform that action at this time.
0 commit comments