diff --git a/launcher/public/img/icon/one-click-icons/preset-icons/vconly.png b/launcher/public/img/icon/one-click-icons/preset-icons/vconly.png
new file mode 100644
index 0000000000..3ae50a701c
Binary files /dev/null and b/launcher/public/img/icon/one-click-icons/preset-icons/vconly.png differ
diff --git a/launcher/public/img/icon/stereumplus-icons/stereumplus-icon.png b/launcher/public/img/icon/stereumplus-icons/stereumplus-icon.png
new file mode 100644
index 0000000000..cd4c667dc0
Binary files /dev/null and b/launcher/public/img/icon/stereumplus-icons/stereumplus-icon.png differ
diff --git a/launcher/public/output.css b/launcher/public/output.css
index 187d9c36dd..0f3446fd17 100755
--- a/launcher/public/output.css
+++ b/launcher/public/output.css
@@ -1,7 +1,7 @@
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100;200;300;400;500;600;700;800;900&display=swap");
/*
-! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com
+! tailwindcss v3.4.6 | MIT License | https://tailwindcss.com
*/
/*
@@ -807,10 +807,6 @@ video {
top: -90px;
}
-.bottom-0{
- bottom: 0px;
-}
-
.bottom-0\.5{
bottom: 0.125rem;
}
@@ -847,10 +843,6 @@ video {
inset-inline-end: 0.25rem;
}
-.end-2{
- inset-inline-end: 0.5rem;
-}
-
.left-0{
left: 0px;
}
@@ -2206,6 +2198,10 @@ video {
width: 15rem;
}
+.w-64{
+ width: 16rem;
+}
+
.w-7{
width: 1.75rem;
}
@@ -2410,11 +2406,6 @@ video {
flex: none;
}
-.flex-shrink{
- -ms-flex-negative: 1;
- flex-shrink: 1;
-}
-
.flex-shrink-0{
-ms-flex-negative: 0;
flex-shrink: 0;
@@ -2736,11 +2727,6 @@ video {
flex-direction: column;
}
-.flex-wrap{
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
-}
-
.place-content-center{
place-content: center;
}
@@ -2949,6 +2935,11 @@ video {
border-color: rgb(156 163 175 / var(--tw-divide-opacity));
}
+.divide-gray-500 > :not([hidden]) ~ :not([hidden]){
+ --tw-divide-opacity: 1;
+ border-color: rgb(107 114 128 / var(--tw-divide-opacity));
+}
+
.divide-gray-600 > :not([hidden]) ~ :not([hidden]){
--tw-divide-opacity: 1;
border-color: rgb(75 85 99 / var(--tw-divide-opacity));
@@ -4510,11 +4501,6 @@ video {
line-height: 1.25rem;
}
-.text-sm\/none{
- font-size: 0.875rem;
- line-height: 1;
-}
-
.text-xl{
font-size: 1.25rem;
line-height: 1.75rem;
@@ -5386,11 +5372,6 @@ html body {
left: 2px;
}
-.after\:top-0::after{
- content: var(--tw-content);
- top: 0px;
-}
-
.after\:top-0\.5::after{
content: var(--tw-content);
top: 0.125rem;
diff --git a/launcher/src/components/UI/edit-page/EditScreen.vue b/launcher/src/components/UI/edit-page/EditScreen.vue
index 6afc4ce562..50dc40ef5b 100644
--- a/launcher/src/components/UI/edit-page/EditScreen.vue
+++ b/launcher/src/components/UI/edit-page/EditScreen.vue
@@ -17,6 +17,7 @@
@delete-setup="deleteSetup"
@confirm-consensus="confirmConsensusConnection"
@info-modal="openInfoModal"
+ @external-modify="openExternalModifyingModal"
/>
@@ -82,6 +83,15 @@
@confirm-modify="confirmModifyingService"
/>
+
+
+
+
{
};
// Clients Modifying methods
+const confirmExternalModifying = (client, properties) => {
+ isExternalModifyOpen.value = false;
+ console.log("External Confirm", client);
+ console.log("External Confirm", properties);
+};
+
const confirmModifyingService = (item) => {
isModifyModalOpen.value = false;
if (item.client.service === "FlashbotsMevBoostService") {
@@ -918,6 +936,20 @@ const confirmImportSingleSetup = async (data) => {
setupStore.isImportAnimeActive = true;
};
+const openExternalModifyingModal = (item) => {
+ console.log("item", item);
+
+ clientToModify.value = item;
+ console.log("clientToModify", clientToModify.value);
+
+ isExternalModifyOpen.value = true;
+};
+
+const hideExternalModify = () => {
+ manageStore.isLineHidden = false;
+ isExternalModifyOpen.value = false;
+};
+
const closeNetworkModal = () => {
manageStore.displayNetworkList = false;
manageStore.isLineHidden = false;
diff --git a/launcher/src/components/UI/edit-page/components/edit/ConfigBody.vue b/launcher/src/components/UI/edit-page/components/edit/ConfigBody.vue
index a21523442f..4004f98614 100644
--- a/launcher/src/components/UI/edit-page/components/edit/ConfigBody.vue
+++ b/launcher/src/components/UI/edit-page/components/edit/ConfigBody.vue
@@ -38,6 +38,7 @@
@switch-client="switchClient"
@confirm-consensus="confirmConsensus"
@info-modal="infoModal"
+ @external-modify="externalModify"
@mouse-over="lineDraw"
@mouse-leave="removeLines"
/>
@@ -49,6 +50,7 @@
@switch-client="switchClient"
@modify-service="modifyService"
@info-modal="infoModal"
+ @external-modify="externalModify"
@mouse-over="lineDraw"
@mouse-leave="removeLines"
/>
@@ -82,6 +84,7 @@ const emit = defineEmits([
"deleteService",
"confirmConsensus",
"infoModal",
+ "externalModify",
"modifyService",
"removeLines",
"lineDraw",
@@ -151,4 +154,8 @@ const infoModal = (service) => {
const modifyService = (service) => {
emit("modifyService", service);
};
+
+const externalModify = (service) => {
+ emit("externalModify", service);
+};
diff --git a/launcher/src/components/UI/edit-page/components/edit/EditBody.vue b/launcher/src/components/UI/edit-page/components/edit/EditBody.vue
index e183b90f29..9a2e06fa98 100644
--- a/launcher/src/components/UI/edit-page/components/edit/EditBody.vue
+++ b/launcher/src/components/UI/edit-page/components/edit/EditBody.vue
@@ -10,6 +10,7 @@
@confirm-consensus="confirmConsensus"
@info-modal="infoModal"
@modify-service="modifyService"
+ @external-modify="externalModify"
@remove-lines="removeConnectionLines"
/>
@@ -37,7 +38,7 @@ const emit = defineEmits([
"confirmConsensus",
"infoModal",
"modifyService",
-
+ "externalModify",
"openConfigs",
"deleteSetup",
]);
@@ -115,6 +116,11 @@ const infoModal = (item) => {
emit("infoModal", item);
};
+const externalModify = (item) => {
+ manageStore.isLineHidden = true;
+ emit("externalModify", item);
+};
+
const selectRename = async (setup) => {
setupStore.setupToRename = setup.setupName;
setupStore.isRenameSetupActive = true;
diff --git a/launcher/src/components/UI/edit-page/components/edit/clients/ConsensusClients.vue b/launcher/src/components/UI/edit-page/components/edit/clients/ConsensusClients.vue
index e3c3a7adac..94a8886b6e 100755
--- a/launcher/src/components/UI/edit-page/components/edit/clients/ConsensusClients.vue
+++ b/launcher/src/components/UI/edit-page/components/edit/clients/ConsensusClients.vue
@@ -23,6 +23,7 @@
@modify-service="modifyService"
@delete-service="deleteService"
@info-modal="infoModal"
+ @external-modify="externalModify"
/>
@@ -38,7 +39,7 @@ import { computed } from "vue";
import { useSetups } from "../../../../../../store/setups";
//Props & Emits
-const emit = defineEmits(["deleteService", "switchClient", "modifyService", "infoModal", "mouseOver", "mouseLeave"]);
+const emit = defineEmits(["deleteService", "switchClient", "modifyService", "externalModify", "infoModal", "mouseOver", "mouseLeave"]);
//Refs
@@ -114,6 +115,10 @@ const modifyService = (item) => {
const infoModal = (item) => {
emit("infoModal", item);
};
+
+const externalModify = (item) => {
+ emit("externalModify", item);
+};
diff --git a/launcher/src/components/UI/node-page/NodeScreen.vue b/launcher/src/components/UI/node-page/NodeScreen.vue
index 6097434155..4ab22f3be4 100755
--- a/launcher/src/components/UI/node-page/NodeScreen.vue
+++ b/launcher/src/components/UI/node-page/NodeScreen.vue
@@ -6,7 +6,12 @@
-
+
@@ -28,6 +33,12 @@
+
{
expertModeClient.value.expertOptionsModal = true;
isExpertModeOpen.value = true;
};
+const closeExternalModal = () => {
+ isExternalModifyingActive.value = false;
+};
+
+const confirmExternalModifying = async (client, properties) => {
+ console.log("confirmExternalModifying", properties);
+
+ isExternalModifyingActive.value = false;
+};
const updateNodeStats = async () => {
await useRefreshNodeStats();
@@ -263,6 +286,11 @@ const exportLogs = async (client) => {
saveAs(blob, fileName);
};
+const openExternalModifying = (item) => {
+ externalService.value = item;
+ isExternalModifyingActive.value = true;
+};
+
const openLogPage = (item) => {
nodeStore.clientToLogs = item;
isLogsPageActive.value = true;
diff --git a/launcher/src/components/UI/node-page/components/modals/CustomModal.vue b/launcher/src/components/UI/node-page/components/modals/CustomModal.vue
index fd8f8ad186..0a7ac05cf0 100644
--- a/launcher/src/components/UI/node-page/components/modals/CustomModal.vue
+++ b/launcher/src/components/UI/node-page/components/modals/CustomModal.vue
@@ -25,7 +25,7 @@
{
const copyJwt = (jwt) => {
emit("copyJwt", jwt);
};
+
+const externalModify = (service) => {
+ emit("externalModify", service);
+};
diff --git a/launcher/src/components/UI/node-page/components/node/NodeBody.vue b/launcher/src/components/UI/node-page/components/node/NodeBody.vue
index 579ac60344..7fa135585b 100755
--- a/launcher/src/components/UI/node-page/components/node/NodeBody.vue
+++ b/launcher/src/components/UI/node-page/components/node/NodeBody.vue
@@ -6,6 +6,7 @@
@open-docs="openDocs"
@open-log="openLog"
@copy-jwt="copyJwt"
+ @external-modify="externalModify"
@click-outside="clickOutside"
@line-draw="lineDrawHandler"
@remove-lines="removeConnectionLines"
@@ -28,7 +29,7 @@ import ControlService from "@/store/ControlService";
import LeaderLine from "leader-line-new";
import { useSetups } from "@/store/setups";
-const emit = defineEmits(["openExpert", "openLog", "setupState", "exportSetup"]);
+const emit = defineEmits(["openExpert", "openLog", "setupState", "exportSetup", "externalModify"]);
// Refs
const isPluginLogPageActive = ref(false);
@@ -205,6 +206,10 @@ const exportSetup = (setup) => {
emit("exportSetup", setup);
};
+const externalModify = (item) => {
+ emit("externalModify", item);
+};
+
const copyJwt = async (item) => {
let volume = "";
item.config?.volumes.forEach((vol) => {
diff --git a/launcher/src/components/UI/node-page/components/node/clients/ClientButtons.vue b/launcher/src/components/UI/node-page/components/node/clients/ClientButtons.vue
index fa6baef13e..3a67917879 100755
--- a/launcher/src/components/UI/node-page/components/node/clients/ClientButtons.vue
+++ b/launcher/src/components/UI/node-page/components/node/clients/ClientButtons.vue
@@ -43,9 +43,18 @@ import { useNodeStore } from '@/store/theNode';
>
+
+
@@ -138,7 +148,17 @@ const props = defineProps({
client: Object,
});
-const emit = defineEmits(["openExpert", "openLog", "openDoc", "stateHandler", "restartHandler", "openResync", "openPruning", "copyJwt"]);
+const emit = defineEmits([
+ "openExpert",
+ "openLog",
+ "openDoc",
+ "stateHandler",
+ "restartHandler",
+ "openResync",
+ "openPruning",
+ "copyJwt",
+ "externalModify",
+]);
const nodeStore = useNodeStore();
@@ -192,4 +212,10 @@ const copyJwt = () => {
emit("copyJwt", props.client);
footerStore.cursorLocation = "";
};
+
+const externalModify = () => {
+ nodeStore.isLineHidden = true;
+ emit("externalModify", props.client);
+ footerStore.cursorLocation = "";
+};
diff --git a/launcher/src/components/UI/node-page/components/node/clients/ConsensusClients.vue b/launcher/src/components/UI/node-page/components/node/clients/ConsensusClients.vue
index 73ed42ffdb..11f541fa18 100755
--- a/launcher/src/components/UI/node-page/components/node/clients/ConsensusClients.vue
+++ b/launcher/src/components/UI/node-page/components/node/clients/ConsensusClients.vue
@@ -21,6 +21,7 @@
@restart-handler="restartHandler"
@open-doc="openDoc"
@open-resync="openResync(item)"
+ @external-modify="externalModify"
/>
@@ -38,7 +39,16 @@ import ClientLayout from "./ClientLayout.vue";
import ClientButtons from "./ClientButtons.vue";
import { useSetups } from "../../../../../../store/setups";
-const emit = defineEmits(["openExpert", "openLog", "openDoc", "stateHandler", "restartHandler", "mouseOver", "mouseLeave"]);
+const emit = defineEmits([
+ "openExpert",
+ "openLog",
+ "openDoc",
+ "stateHandler",
+ "restartHandler",
+ "mouseOver",
+ "mouseLeave",
+ "externalModify",
+]);
//Refs
const nodeStore = useNodeStore();
@@ -97,6 +107,10 @@ const stateHandler = (item) => {
const restartHandler = (item) => {
emit("restartHandler", item);
};
+
+const externalModify = (item) => {
+ emit("externalModify", item);
+};