From 6b6560ced994820ecd9a43cd07c34726decf84dd Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Fri, 26 Sep 2025 15:36:57 +0200 Subject: [PATCH 1/2] FIX: prduced exit messages for larger amounts of keys --- .../UI/staking-page/StakingScreen.vue | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/launcher/src/components/UI/staking-page/StakingScreen.vue b/launcher/src/components/UI/staking-page/StakingScreen.vue index 4202dfa12..7e4a25ba6 100644 --- a/launcher/src/components/UI/staking-page/StakingScreen.vue +++ b/launcher/src/components/UI/staking-page/StakingScreen.vue @@ -604,6 +604,26 @@ const exportExitMessage = async () => { .filter((item) => item.validatorID === stakingStore.selectedServiceToFilter?.config?.serviceID) .map((item) => item.key); + // if there are more than 50 keys, split them into chunks of 50 + const chunkSize = 50; + if (pubkeys.length > chunkSize) { + let allResults = []; + for (let i = 0; i < pubkeys.length; i += chunkSize) { + const chunk = pubkeys.slice(i, i + chunkSize); + const results = await Promise.all( + chunk.map(async (key) => { + return ControlService.getExitValidatorMessage({ + pubkey: key, + serviceID: stakingStore.selectedServiceToFilter.config?.serviceID, + }); + }) + ); + allResults = allResults.concat(results); + } + saveExitMessage(allResults, "multiple"); + return; + } + const results = await Promise.all( pubkeys.map(async (key) => { return ControlService.getExitValidatorMessage({ @@ -625,7 +645,9 @@ const saveExitMessage = (data, type) => { const unwrap = (entry) => (entry && entry.data ? entry.data : entry); const content = - type === "single" ? JSON.stringify(unwrap(data), null, 2) : data.map((entry) => JSON.stringify(unwrap(entry), null, 2)).join("\n\n"); + type === "single" + ? JSON.stringify(unwrap(data), null, 2) + : "[" + data.map((entry) => JSON.stringify(unwrap(entry), null, 2)).join(",\n") + "]"; const fileName = type === "single" ? "single_exit_message.txt" : "multiple_exit_messages.txt"; const blob = new Blob([content], { type: "application/json;charset=utf-8" }); From 1674417d030df77ed37018007e64995b3564da51 Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Fri, 26 Sep 2025 15:50:50 +0200 Subject: [PATCH 2/2] FIX: copy instead of move files on upload --- launcher/src/backend/SSHService.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/launcher/src/backend/SSHService.js b/launcher/src/backend/SSHService.js index e7ce3e575..604427d46 100755 --- a/launcher/src/backend/SSHService.js +++ b/launcher/src/backend/SSHService.js @@ -676,14 +676,8 @@ export class SSHService { try { if (err) throw err; const readStream = fs.createReadStream(localPath); - // Handle read stream end - readStream.on("end", () => { - fs.unlinkSync(localPath); - }); - // Handle read stream errors readStream.on("error", (error) => { - fs.unlinkSync(localPath); stream.end(); reject(new Error("Failed to read local file: " + error.message)); });