async def METHOD_NAME(
    msg: MsgInSignTx,
    definitions: Definitions,
) -> tuple[EthereumTokenInfo | None, bytes, bytes, int]:
    from . import tokens
    from .layout import require_confirm_unknown_token
    data_initial_chunk = msg.data_initial_chunk  # local_cache_attribute
    token = None
    address_bytes = recipient = bytes_from_address(msg.to)
    value = int.from_bytes(msg.value, "big")
    if (
        len(msg.to) in (40, 42)
        and len(msg.value) == 0
        and msg.data_length == 68
        and len(data_initial_chunk) == 68
        and data_initial_chunk[:16]
        == b"\xa9\x05\x9c\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    ):
        token = definitions.get_token(address_bytes)
        recipient = data_initial_chunk[16:36]
        value = int.from_bytes(data_initial_chunk[36:68], "big")
        if token is tokens.UNKNOWN_TOKEN:
            await require_confirm_unknown_token(address_bytes)
    return token, address_bytes, recipient, value