diff --git a/src/components/PageComponents/Messages/TraceRoute.tsx b/src/components/PageComponents/Messages/TraceRoute.tsx
index 15d3bdea..e2adf30e 100644
--- a/src/components/PageComponents/Messages/TraceRoute.tsx
+++ b/src/components/PageComponents/Messages/TraceRoute.tsx
@@ -1,5 +1,6 @@
import { useDevice } from "@app/core/stores/deviceStore.js";
import type { Protobuf } from "@meshtastic/js";
+import { numberToHexUnpadded } from "@noble/curves/abstract/utils";
export interface TraceRouteProps {
from?: Protobuf.Mesh.NodeInfo;
@@ -24,7 +25,10 @@ export const TraceRoute = ({
{to?.user?.longName}↔
- {route.map((hop) => `${nodes.get(hop)?.user?.longName ?? "Unknown"}↔`)}
+ {route.map((hop) => {
+ const node = nodes.get(hop);
+ return `${node?.user?.longName ?? (node?.num ? numberToHexUnpadded(node.num) : "Unknown")}↔`;
+ })}
{from?.user?.longName}
diff --git a/src/pages/Messages.tsx b/src/pages/Messages.tsx
index c308743d..4e7fbae9 100644
--- a/src/pages/Messages.tsx
+++ b/src/pages/Messages.tsx
@@ -7,6 +7,7 @@ import { useToast } from "@core/hooks/useToast.js";
import { useDevice } from "@core/stores/deviceStore.js";
import { Hashicon } from "@emeraldpay/hashicon-react";
import { Protobuf, Types } from "@meshtastic/js";
+import { numberToHexUnpadded } from "@noble/curves/abstract/utils";
import { getChannelName } from "@pages/Channels.js";
import { HashIcon, LockIcon, LockOpenIcon, WaypointsIcon } from "lucide-react";
import { useState } from "react";
@@ -28,6 +29,8 @@ export const MessagesPage = (): JSX.Element => {
);
const currentChannel = channels.get(activeChat);
const { toast } = useToast();
+ const node = nodes.get(activeChat);
+ const nodeHex = node?.num ? numberToHexUnpadded(node.num) : "Unknown";
return (
<>
@@ -56,7 +59,7 @@ export const MessagesPage = (): JSX.Element => {
{filteredNodes.map((node) => (
{
setChatType("direct");
@@ -73,7 +76,7 @@ export const MessagesPage = (): JSX.Element => {
chatType === "broadcast" && currentChannel
? getChannelName(currentChannel)
: chatType === "direct" && nodes.get(activeChat)
- ? nodes.get(activeChat)?.user?.longName ?? "Unknown"
+ ? nodes.get(activeChat)?.user?.longName ?? nodeHex
: "Loading..."
}`}
actions={
diff --git a/src/pages/Nodes.tsx b/src/pages/Nodes.tsx
index 10c51f19..038d81a8 100644
--- a/src/pages/Nodes.tsx
+++ b/src/pages/Nodes.tsx
@@ -8,6 +8,7 @@ import { TimeAgo } from "@components/generic/Table/tmp/TimeAgo.js";
import { useDevice } from "@core/stores/deviceStore.js";
import { Hashicon } from "@emeraldpay/hashicon-react";
import { Protobuf } from "@meshtastic/js";
+import { numberToHexUnpadded } from "@noble/curves/abstract/utils";
import { LockIcon, LockOpenIcon, TrashIcon } from "lucide-react";
import { Fragment } from "react";
import { base16 } from "rfc4648";
@@ -50,7 +51,7 @@ export const NodesPage = (): JSX.Element => {
? `Meshtastic ${base16
.stringify(node.user?.macaddr.subarray(4, 6) ?? [])
.toLowerCase()}`
- : `UNK: ${node.num}`)}
+ : `!${numberToHexUnpadded(node.num)}`)}
,