diff --git a/components/toolbox/components/genesis/ChainConfigStep.tsx b/components/toolbox/components/genesis/ChainConfigStep.tsx index 33bb5660824..8a2dea86456 100644 --- a/components/toolbox/components/genesis/ChainConfigStep.tsx +++ b/components/toolbox/components/genesis/ChainConfigStep.tsx @@ -53,21 +53,21 @@ export function ChainConfigStep({ chainName, onChainNameChange, vmId, onVmIdChan }; return ( -
+
{/* Chain Name */}
-
-
)} diff --git a/components/toolbox/components/genesis/FeeConfig.tsx b/components/toolbox/components/genesis/FeeConfig.tsx index e4acaf762f3..aff167f10fb 100644 --- a/components/toolbox/components/genesis/FeeConfig.tsx +++ b/components/toolbox/components/genesis/FeeConfig.tsx @@ -1,6 +1,5 @@ import { useCallback, useEffect, useState } from "react"; import { RawInput } from "../Input"; -import { Info } from "lucide-react"; import { ValidationMessages } from "./types"; import { useGenesisHighlight } from "./GenesisHighlightContext"; @@ -203,10 +202,9 @@ function FeeConfigBase({ }, [gasLimitInput, gasLimit, minBaseFeeInput, feeConfig, baseFeeChangeDenominatorInput, minBlockGasCostInput, maxBlockGasCostInput, blockGasCostStepInput, targetGasInput]); return ( -
+
{/* Advanced Mode with All Fields */} -
-

Fee Configuration

+
{/* Static Gas Price Info */} -
-
- -
-
Tip: Static Gas Price
-
- For static gas pricing (no congestion-based adjustments), set Target Gas > (Gas Limit × 10 ÷ Block Time). - Current threshold: >{Math.ceil((gasLimit * 10) / targetBlockRate)} gas (~{Math.ceil((gasLimit * 10) / targetBlockRate / 1000000)}M). - Useful for permissioned chains where congestion pricing isn't needed. -
-
-
-
+

+ For static gas pricing, set Target Gas > {Math.ceil((gasLimit * 10) / targetBlockRate).toLocaleString()}. +

{/* Dynamic fee/reward sections removed; these are now configured under Precompiles. */}
diff --git a/components/toolbox/components/genesis/GenesisWizard.tsx b/components/toolbox/components/genesis/GenesisWizard.tsx index 985f1be49d1..7fd35cfe64a 100644 --- a/components/toolbox/components/genesis/GenesisWizard.tsx +++ b/components/toolbox/components/genesis/GenesisWizard.tsx @@ -34,15 +34,15 @@ function GenesisWizardContent({ children, genesisData, onGenesisDataChange, foot // Mobile/Embedded layout - stacked view with always-visible JSON preview and scroll-to-highlight return (
-
+
{children}
{genesisData && genesisData.length > 0 && !genesisData.startsWith("Error:") && ( -
-
- Genesis JSON Preview - +
+
+ Genesis JSON + {(new Blob([genesisData]).size / 1024).toFixed(2)} KiB
@@ -61,15 +61,15 @@ function GenesisWizardContent({ children, genesisData, onGenesisDataChange, foot // Desktop layout - split view with global footer return ( -
-
+
+
{/* Left Panel - Configuration */} -
+
{children}
{/* Right Panel - JSON Preview */} -
+
{footer && ( -
+
{footer}
diff --git a/components/toolbox/components/genesis/JsonPreviewPanel.tsx b/components/toolbox/components/genesis/JsonPreviewPanel.tsx index 60ced3b0a2c..01fd59ac80a 100644 --- a/components/toolbox/components/genesis/JsonPreviewPanel.tsx +++ b/components/toolbox/components/genesis/JsonPreviewPanel.tsx @@ -313,55 +313,37 @@ export function JsonPreviewPanel({ const barClass = percent >= 90 ? 'bg-red-500' : percent >= 75 ? 'bg-yellow-500' : 'bg-green-500'; return ( -
+
{/* Header */} -
-
-
-

{title}

-

- {isValidJson ? `${jsonSizeKiB.toFixed(2)} KiB / ${maxSizeKiB} KiB • ${statusText}` : 'Awaiting configuration'} -

+
+
+
+ genesis.json + {isValidJson && ( + + {jsonSizeKiB.toFixed(1)} / {maxSizeKiB} KiB + + )}
-
- - + + +
- {isValidJson && ( -
-
-
-
-
- )}
{/* JSON Content */} diff --git a/components/toolbox/components/genesis/SubnetStep.tsx b/components/toolbox/components/genesis/SubnetStep.tsx index 4a2530b3e0b..7e87763bf26 100644 --- a/components/toolbox/components/genesis/SubnetStep.tsx +++ b/components/toolbox/components/genesis/SubnetStep.tsx @@ -2,7 +2,6 @@ import { useState } from "react"; import { Button } from "@/components/toolbox/components/Button"; -import { Input } from "@/components/toolbox/components/Input"; import InputSubnetId from "@/components/toolbox/components/InputSubnetId"; import { useWalletStore } from "@/components/toolbox/stores/walletStore"; import { useConnectedWallet } from "@/components/toolbox/contexts/ConnectedWalletContext"; @@ -37,54 +36,40 @@ export function SubnetStep({ subnetId, onSubnetIdChange }: SubnetStepProps) { } return ( -
+
-

Create or Select a Subnet

-

- Create a new Subnet or enter an existing Subnet ID. +

Subnet

+

+ Create a new Subnet or use an existing one.

- {/* Create New Subnet Option */} -
-

Create New Subnet

- - -
+ -
+
- or + or
- {/* Use Existing Subnet Option */} -
-

Use Existing Subnet

- -
+
); diff --git a/components/toolbox/console/layer-1/create/CreateChain.tsx b/components/toolbox/console/layer-1/create/CreateChain.tsx index a55aae3a56d..4fb3b94b2ba 100644 --- a/components/toolbox/console/layer-1/create/CreateChain.tsx +++ b/components/toolbox/console/layer-1/create/CreateChain.tsx @@ -87,7 +87,7 @@ function CreateChain({ onSuccess, embedded = false }: CreateChainProps) { const canCreateChain = canProceedToStep4; return ( -
+
{/* Step 1: Create Subnet */} @@ -100,19 +100,16 @@ function CreateChain({ onSuccess, embedded = false }: CreateChainProps) { {/* Step 2: Chain Configuration */}
-

Chain Configuration

-

+

Chain Configuration

+

Configure your chain name and virtual machine.

{!canProceedToStep2 ? ( -
+
-

- Create or Select a Subnet First -

- Please complete the subnet selection in Step 1 before proceeding. + Complete Step 1 to continue.

@@ -129,21 +126,18 @@ function CreateChain({ onSuccess, embedded = false }: CreateChainProps) { {/* Step 3: Genesis Configuration */}
-

Genesis Configuration

-

+

Genesis Configuration

+

{vmId === SUBNET_EVM_VM_ID ? "Configure the genesis parameters for your chain." : "Provide the genesis JSON for your custom virtual machine."}

{!canProceedToStep3 ? ( -
+
-

- Configure Chain First -

- Please configure your chain name and VM in Step 2 before proceeding. + Complete Step 2 to continue.

@@ -163,26 +157,16 @@ function CreateChain({ onSuccess, embedded = false }: CreateChainProps) { ) : ( // For custom VMs, provide a simple JSON input
-
-
- - - -
-

Custom Virtual Machine

-

- You're using a custom VM. Please provide your own genesis JSON configuration. -

-
-
-
+

+ Custom VM selected. Provide your genesis JSON below. +

-