@@ -203,7 +203,7 @@ def encode(self, value: dict) -> JamBytes:
203203 if name not in value :
204204 raise ScaleEncodeException (f'Argument "{ name } " of Struct is missing in given value' )
205205
206- data += scale_obj .new (). encode (value [name ])
206+ data += scale_obj .encode (value [name ])
207207
208208 if value [name ] and issubclass (value [name ].__class__ , JamCodecType ):
209209 value [name ] = value [name ].serialize ()
@@ -280,7 +280,7 @@ def encode(self, value: tuple) -> JamBytes:
280280 data = JamBytes (bytearray ())
281281 for idx , scale_obj in enumerate (self .values ):
282282
283- data += scale_obj .new (). encode (value [idx ])
283+ data += scale_obj .encode (value [idx ])
284284 return data
285285
286286 def decode (self , data : JamBytes ) -> tuple :
@@ -377,7 +377,7 @@ def encode(self, value: Union[str, dict]) -> JamBytes:
377377
378378 if variant_obj is not None :
379379
380- data += variant_obj .new (). encode (enum_value )
380+ data += variant_obj .encode (enum_value )
381381
382382 return data
383383
@@ -603,9 +603,12 @@ def encode(self, value: list) -> JamBytes:
603603 data = VarInt64 .encode (len (value ))
604604
605605 for idx , item in enumerate (value ):
606- data += self .type_def .new ().encode (item )
607- if item and issubclass (item .__class__ , JamCodecType ):
608- value [idx ] = item .serialize ()
606+ if type (item ) is JamBytes :
607+ data += item
608+ else :
609+ data += self .type_def .encode (item )
610+ if item and issubclass (item .__class__ , JamCodecType ):
611+ value [idx ] = item .serialize ()
609612
610613 return data
611614
0 commit comments