From 5ce675f43a511faa6f007fdeabb0f38b7b254af3 Mon Sep 17 00:00:00 2001 From: hosted-fornet Date: Thu, 13 Nov 2025 16:03:24 -0800 Subject: [PATCH 1/2] register-ui: make it harder to reset other node --- .../src/components/EnterHnsName.tsx | 11 +++- .../src/register-ui/src/pages/ResetName.tsx | 61 ++++++++++++++++++- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/hyperdrive/src/register-ui/src/components/EnterHnsName.tsx b/hyperdrive/src/register-ui/src/components/EnterHnsName.tsx index 7ce5ead15..ceea70c0b 100644 --- a/hyperdrive/src/register-ui/src/components/EnterHnsName.tsx +++ b/hyperdrive/src/register-ui/src/components/EnterHnsName.tsx @@ -22,6 +22,8 @@ type EnterNameProps = { triggerNameCheck: boolean; setTba?: React.Dispatch>; isReset?: boolean; + readOnly?: boolean; + disabled?: boolean; }; function EnterHnsName({ @@ -34,6 +36,8 @@ function EnterHnsName({ triggerNameCheck, setTba, isReset = false, + readOnly = false, + disabled = false, }: EnterNameProps) { const client = usePublicClient(); const debouncer = useRef(null); @@ -118,6 +122,8 @@ function EnterHnsName({ const noSpaces = (e: any) => e.target.value.indexOf(" ") === -1 && setName(e.target.value); + const isLocked = readOnly || disabled; + return (
@@ -128,7 +134,10 @@ function EnterHnsName({ required name="hns-name" placeholder="node-name" - className="grow rounded-r-none" + className={`grow rounded-r-none ${isLocked ? "bg-gray-200 dark:bg-slate-800 cursor-not-allowed" : ""}`} + readOnly={readOnly} + disabled={disabled} + aria-readonly={readOnly || undefined} /> {fixedTlz && ([]) + const [currentNodeName, setCurrentNodeName] = useState(""); + const [resetDifferentNodeId, setResetDifferentNodeId] = useState(false); // Track initial states for checkbox help text const [initiallyDirect, setInitiallyDirect] = useState(undefined); @@ -134,6 +138,14 @@ function ResetHnsName({ res.json() )) as UnencryptedIdentity; + if (infoData?.name) { + setCurrentNodeName(infoData.name); + setName(infoData.name); + setHnsName(infoData.name); + } else { + setResetDifferentNodeId(true); + } + const allowedRouters = Array.isArray(infoData.allowed_routers) ? infoData.allowed_routers : undefined; @@ -162,6 +174,7 @@ function ResetHnsName({ } } catch (error) { console.log("Could not fetch node info:", error); + setResetDifferentNodeId(true); } })(); }, []); @@ -241,6 +254,19 @@ function ResetHnsName({ }, [isConfirmed, setReset, setDirect, direct, navigate]); + const handleResetDifferentNodeIdToggle = () => { + setResetDifferentNodeId((prev) => { + const next = !prev; + if (!next && currentNodeName) { + setName(currentNodeName); + setHnsName(currentNodeName); + } + return next; + }); + }; + + const isNameReadOnly = !resetDifferentNodeId && !!currentNodeName; + return (
@@ -253,7 +279,19 @@ function ResetHnsName({

Node ID to reset:

- +

Nodes use an onchain username in order to identify themselves to other nodes in the network.

@@ -306,6 +344,27 @@ function ResetHnsName({ )}
)} +
+ +
+ Reset different node ID. + If you are unsure, leave unchecked. +
+ +

From 50ac5a7e4f66edf16db3a944301d28aa552189da Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 00:03:51 +0000 Subject: [PATCH 2/2] Format Rust code using rustfmt --- hyperdrive/src/main.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/hyperdrive/src/main.rs b/hyperdrive/src/main.rs index 956bb2f6b..ebb5318b8 100644 --- a/hyperdrive/src/main.rs +++ b/hyperdrive/src/main.rs @@ -489,7 +489,6 @@ async fn main() { // Create the cache_sources file with test content let data_file_path = initfiles_dir.join("cache_sources"); - #[cfg(not(feature = "simulation-mode"))] { // Write cache_source_vector to cache_sources as JSON