@@ -1021,8 +1021,12 @@ def __repr__(self):
1021
1021
@classmethod
1022
1022
def _from_data_v1 (cls , data ):
1023
1023
if data ["version" ] == 1 :
1024
- segs = SegmentSequence (data ['segments_bin' ]).segments
1025
- return cls (segs [0 ], segs [1 ], data ['resume_method' ], data ['tan_request_structured' ])
1024
+ if "init_tan" in data :
1025
+ segs = SegmentSequence (data ['segments_bin' ]).segments
1026
+ return cls (None , segs [0 ], data ['resume_method' ], data ['tan_request_structured' ])
1027
+ else :
1028
+ segs = SegmentSequence (data ['segments_bin' ]).segments
1029
+ return cls (segs [0 ], segs [1 ], data ['resume_method' ], data ['tan_request_structured' ])
1026
1030
1027
1031
raise Exception ("Wrong blob data version" )
1028
1032
@@ -1031,13 +1035,23 @@ def get_data(self) -> bytes:
1031
1035
1032
1036
To restore the object, use :func:`fints.client.NeedRetryResponse.from_data`.
1033
1037
"""
1034
- data = {
1035
- "_class_name" : self .__class__ .__name__ ,
1036
- "version" : 1 ,
1037
- "segments_bin" : SegmentSequence ([self .command_seg , self .tan_request ]).render_bytes (),
1038
- "resume_method" : self .resume_method ,
1039
- "tan_request_structured" : self .tan_request_structured ,
1040
- }
1038
+ if self .command_seg :
1039
+ data = {
1040
+ "_class_name" : self .__class__ .__name__ ,
1041
+ "version" : 1 ,
1042
+ "segments_bin" : SegmentSequence ([self .command_seg , self .tan_request ]).render_bytes (),
1043
+ "resume_method" : self .resume_method ,
1044
+ "tan_request_structured" : self .tan_request_structured ,
1045
+ }
1046
+ else :
1047
+ data = {
1048
+ "_class_name" : self .__class__ .__name__ ,
1049
+ "version" : 1 ,
1050
+ "init_tan" : True ,
1051
+ "segments_bin" : SegmentSequence ([self .tan_request ]).render_bytes (),
1052
+ "resume_method" : self .resume_method ,
1053
+ "tan_request_structured" : self .tan_request_structured ,
1054
+ }
1041
1055
return compress_datablob (DATA_BLOB_MAGIC_RETRY , 1 , data )
1042
1056
1043
1057
def _parse_tan_challenge (self ):
0 commit comments