mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-07 05:02:38 +00:00
37 lines
948 B
Python
37 lines
948 B
Python
from apps.common.writers import write_bytes_unchecked, write_uint32_be, write_uint64_be
|
|
|
|
from .helpers import public_key_from_address
|
|
|
|
write_uint32 = write_uint32_be
|
|
write_uint64 = write_uint64_be
|
|
|
|
if False:
|
|
from typing import AnyStr
|
|
|
|
|
|
def write_string(w, s: AnyStr) -> None:
|
|
"""Write XDR string padded to a multiple of 4 bytes."""
|
|
if isinstance(s, str):
|
|
buf = s.encode()
|
|
else:
|
|
buf = s
|
|
write_uint32(w, len(buf))
|
|
write_bytes_unchecked(w, buf)
|
|
# if len isn't a multiple of 4, add padding bytes
|
|
reminder = len(buf) % 4
|
|
if reminder:
|
|
write_bytes_unchecked(w, bytes([0] * (4 - reminder)))
|
|
|
|
|
|
def write_bool(w, val: bool):
|
|
if val:
|
|
write_uint32(w, 1)
|
|
else:
|
|
write_uint32(w, 0)
|
|
|
|
|
|
def write_pubkey(w, address: str):
|
|
# first 4 bytes of an address are the type, there's only one type (0)
|
|
write_uint32(w, 0)
|
|
write_bytes_unchecked(w, public_key_from_address(address))
|