mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-30 11:28:21 +00:00
9fc5bb546b
Changes many fields to required -- as far as we were able to figure out, signing would fail if these fields aren't provided anyway, so this should not pose a compatibility problem. Co-authored-by: matejcik <ja@matejcik.cz>
35 lines
939 B
Python
35 lines
939 B
Python
from typing import *
|
|
from trezor.protobuf import MessageType
|
|
T = TypeVar("T", bound=MessageType)
|
|
|
|
|
|
# extmod/rustmods/modtrezorproto.c
|
|
def type_for_name(name: str) -> type[T]:
|
|
"""Find the message definition for the given protobuf name."""
|
|
|
|
|
|
# extmod/rustmods/modtrezorproto.c
|
|
def type_for_wire(wire_type: int) -> type[T]:
|
|
"""Find the message definition for the given wire type (numeric
|
|
identifier)."""
|
|
|
|
|
|
# extmod/rustmods/modtrezorproto.c
|
|
def decode(
|
|
buffer: bytes,
|
|
msg_type: Type[T],
|
|
enable_experimental: bool,
|
|
) -> T:
|
|
"""Decode data in the buffer into the specified message type."""
|
|
|
|
|
|
# extmod/rustmods/modtrezorproto.c
|
|
def encoded_length(msg: MessageType) -> int:
|
|
"""Calculate length of encoding of the specified message."""
|
|
|
|
|
|
# extmod/rustmods/modtrezorproto.c
|
|
def encode(buffer: bytearray, msg: MessageType) -> int:
|
|
"""Encode the message into the specified buffer. Return length of
|
|
encoding."""
|