1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-15 11:08:08 +00:00

Mapping reflects latest changes in protobuf file

This commit is contained in:
slush 2013-09-01 00:00:49 +02:00
parent cc37fbaa5f
commit b01c49715e

View File

@ -1,64 +1,67 @@
import bitkey_pb2 as proto import trezor_pb2 as proto
map_type_to_class = { map_type_to_class = {
0: proto.Initialize, 0: proto.Initialize,
1: proto.Ping, 1: proto.Ping,
2: proto.Success, 2: proto.Success,
3: proto.Failure, 3: proto.Failure,
4: proto.GetUUID, 4: proto.GetUUID,
5: proto.UUID, 5: proto.UUID,
6: proto.OtpRequest, 9: proto.GetEntropy,
7: proto.OtpAck, 10: proto.Entropy,
8: proto.OtpCancel, 11: proto.GetMasterPublicKey,
9: proto.GetEntropy, 12: proto.MasterPublicKey,
10: proto.Entropy, 13: proto.LoadDevice,
11: proto.GetMasterPublicKey, 14: proto.ResetDevice,
12: proto.MasterPublicKey, 15: proto.SignTx,
13: proto.LoadDevice, # 16: proto.SignedTx,
14: proto.ResetDevice, 17: proto.Features,
15: proto.SignTx, 18: proto.PinMatrixRequest,
# 16: proto.SignedTx, 19: proto.PinMatrixAck,
17: proto.Features, 20: proto.PinMatrixCancel,
18: proto.PinRequest, 21: proto.TxRequest,
19: proto.PinAck, # 22: proto.OutputRequest,
20: proto.PinCancel, 23: proto.TxInput,
21: proto.TxRequest, 24: proto.TxOutput,
#22: proto.OutputRequest, 25: proto.SetMaxFeeKb,
23: proto.TxInput, 26: proto.ButtonRequest,
24: proto.TxOutput, 27: proto.ButtonAck,
25: proto.SetMaxFeeKb, 28: proto.ButtonCancel,
26: proto.ButtonRequest, 29: proto.GetAddress,
27: proto.ButtonAck, 30: proto.Address,
28: proto.ButtonCancel, 100: proto.DebugLinkDecision,
29: proto.GetAddress, 101: proto.DebugLinkGetState,
30: proto.Address, 102: proto.DebugLinkState,
100: proto.DebugLinkDecision, 103: proto.DebugLinkStop,
101: proto.DebugLinkGetState,
102: proto.DebugLinkState,
} }
map_class_to_type = {} map_class_to_type = {}
def get_type(msg): def get_type(msg):
return map_class_to_type[msg.__class__] return map_class_to_type[msg.__class__]
def get_class(t): def get_class(t):
return map_type_to_class[t] return map_type_to_class[t]
def build_index(): def build_index():
for k, v in map_type_to_class.items(): for k, v in map_type_to_class.items():
map_class_to_type[v] = k map_class_to_type[v] = k
def check_missing(): def check_missing():
from google.protobuf import reflection from google.protobuf import reflection
types = [ proto.__dict__[item] for item in dir(proto) types = [proto.__dict__[item] for item in dir(proto)
if issubclass(proto.__dict__[item].__class__, reflection.GeneratedProtocolMessageType) ] if issubclass(proto.__dict__[item].__class__, reflection.GeneratedProtocolMessageType)]
missing = list(set(types) - set(map_type_to_class.values())) missing = list(set(types) - set(map_type_to_class.values()))
if len(missing): if len(missing):
raise Exception("Following protobuf messages are not defined in mapping: %s" % missing) raise Exception("Following protobuf messages are not defined in mapping: %s" % missing)
check_missing() check_missing()
build_index() build_index()