File tree 2 files changed +14
-3
lines changed
2 files changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -288,13 +288,17 @@ def decode(self, data: ScaleBytes) -> tuple:
288
288
scale_obj = scale_def .new ()
289
289
290
290
scale_obj .decode (data )
291
+
292
+ if len (self .values ) == 1 :
293
+ return scale_obj
294
+
291
295
value += (scale_obj ,)
292
296
293
297
return value
294
298
295
- def serialize (self , value : tuple ) -> tuple :
296
- if len (value ) == 1 :
297
- return value [ 0 ] .value
299
+ def serialize (self , value : Union [ tuple , ScaleType ] ) -> tuple :
300
+ if issubclass (value . __class__ , ScaleType ) :
301
+ return value .value
298
302
299
303
return tuple ((i .value for i in value ))
300
304
Original file line number Diff line number Diff line change @@ -42,6 +42,13 @@ def test_tuple_deserialize(self):
42
42
obj .deserialize ((3 , 2 ))
43
43
self .assertEqual (obj .value , (3 , 2 ))
44
44
45
+ def test_tuple_single_value (self ):
46
+ # PolkadotJS compatilibity
47
+ obj = Tuple (U8 ).new ()
48
+ obj .decode (ScaleBytes ('0x03' ))
49
+ self .assertEqual (obj .value , 3 )
50
+ self .assertEqual (obj .value_object , U8 .new (value = 3 ))
51
+
45
52
46
53
if __name__ == '__main__' :
47
54
unittest .main ()
You can’t perform that action at this time.
0 commit comments