@@ -36,3 +36,43 @@ class GetClientKeyRsp(ProtoStruct):
3636 f2 : int = proto_field (2 )
3737 client_key : str = proto_field (3 )
3838 expiration : int = proto_field (4 )
39+
40+ # BQMallSvc.TabOpReq
41+ class _TabOpHeader (ProtoStruct ):
42+ f1 : int = proto_field (1 )
43+ f2 : int = proto_field (2 , default = 0 )
44+ f20 : int = proto_field (20 , default = 0 )
45+
46+
47+ class _TabOpReq (ProtoStruct ):
48+ face_id : int = proto_field (1 )
49+ face_md5 : list [str ] = proto_field (3 )
50+ f6 : int = proto_field (6 , default = 1 )
51+
52+
53+ class _TabOpRsp (ProtoStruct ):
54+ enc_keys : list [str ] = proto_field (1 )
55+
56+
57+ class TabOpReq (_TabOpHeader ):
58+ body : _TabOpReq = proto_field (5 )
59+ f6 : int = proto_field (6 , default = 1 )
60+ version : str = proto_field (7 , default = "" )
61+
62+ @classmethod
63+ def build (cls , face_id : int , face_md5 : list [str ]) -> "TabOpReq" :
64+ return cls (
65+ f1 = 3 ,
66+ f2 = 3127124559 ,
67+ version = "10.0.22631" ,
68+ body = _TabOpReq (face_id = face_id , face_md5 = face_md5 )
69+ )
70+
71+
72+ class TabOpRsp (_TabOpHeader ):
73+ body : Optional [_TabOpRsp ] = proto_field (5 , default = None )
74+
75+ def keys (self ) -> list [str ]:
76+ if not self .body :
77+ raise ValueError ("invalid arguments" )
78+ return self .body .enc_keys
0 commit comments