From 72ce90a7c2e1945943fb88e23f475eea1a101f4e Mon Sep 17 00:00:00 2001 From: daoleno Date: Wed, 25 Sep 2024 21:02:52 +0800 Subject: [PATCH] feat: add more cmds to cast tool ui, keep cast state --- bun.lockb | Bin 495399 -> 497237 bytes package.json | 3 + src/components/CastTool.tsx | 219 ++++++++++++++++++++------ src/components/ChainExtractor.tsx | 4 +- src/components/RPCInput.tsx | 4 +- src/stores/castToolStore.ts | 42 +++++ src/{store => stores}/indexerStore.ts | 0 7 files changed, 223 insertions(+), 49 deletions(-) create mode 100644 src/stores/castToolStore.ts rename src/{store => stores}/indexerStore.ts (100%) diff --git a/bun.lockb b/bun.lockb index 1e60e920e2f0149aceed29282d5199de6e4d340d..d4185460afafd4d6b74c755ab8fb2b1e863a52c8 100755 GIT binary patch delta 79410 zcmeFacX(CR+U`APk_DMa5tM473jrcV&=m}3(WDpYAT@*l3laiJr~-+dA}UT~s#w4R z1VP1yU9k7w-EKu}K~b?_m-D;l7%My5m-C)|zH`3o`{QF?JnJ6!GoI0(F~)3}Y`)>d zx3-;l#mQ;EjjVqCc@1A&{>AW5zMGK#?v9qv4|@B-NA`bs^+m0BUQ+Y2E1tTlx})QU zHKUs*ZMtI3!e(ikk{ze6Z!Nl9%E*HPP<|J#gfj-EB%^)f}f5 zq>05^7URW*3yMjUGbJ8o(h0p1pPA}7M}ciD|2g6~4U|5~aq5GE$oW|CA@s6aJg>MU zXZBQQB$a9iFNn{Xs`~E3j&e)OwqmH-W@4>`S(GAt96TPp8>~}>FD6xOcnf}x0k;sZ zf=Y_><5S4^Mz~tHuq2OS9VeZ{_26^j(-x`VcEqc^-bXu5Q>Q)ML7*{;c4$>_6s`j2 z&5MUMEzT>LpI78K-}-fv8piixMGj>HDO<(73|G5%fvVOSWFemD$F^`4-v}h*G7nVl zV=$@#<`(6qcRJN^5~U_^jlU+Tp&RqdlbUwv-N>XV2UW&;ipGnywLVcYlwc=aj^AKRwwL_!=m$e%5asXcus!21oGo)c2b>gGMMGR7HOFFJTdZ+$3XSsr|t17uqIs9y*AUN zy27tptzna+yBO=KdBr6~RI;EbuDUwayZAk-W!FvaYU)^!pC8WC`}{T4nz{%59o1r` zO=G4Xa*GO!i&>T$z%}{4$TIc*5LEl(#iw^>y>i~|ZhA3ZoW7tqpQ3sg{xYa^c?BbI&N$0dB&)Z{ zD3QTH>{YRz{*LMmOP`~f>fWFG810#TO?9Re<>clSJI+0DS^oxV*a!AA@!w#tYSWzQ z`Gr%QL+EAqpl$xs1007rRJI9h23`U(=gMYS><=;?J<8Gv$ZzU`Ov18*{T=5x@B@px z!6xv{7B2(CrO_@h7x*huo0d95P4&J%+hDa}W?;X7A4Te%*^3HtN^)nM)y|aCcDTvq z#|+~hAA$0|KiZq#e*sh}WuV-t?nr|Omly~kJ5iX^rWvxaTgAz~?cau!>qQ1)}i7<>>^x>4xW4Ofme6*>=8MT$V#-$p~!ze~X;PAM(4Et@mW z^jA&r7!0z;n;JI+S$E399TfL?fz47a*$vhJPa?er$N^cG%FdZ+dhTXW@f8+3PBNQE zNl|Aep5rV$itse8C;XHRi%p!Rb0^FbxdvwR>ZXFC~WPL$OETY>uu%-neql)fBn30?xW0B3;e z>3#)_i307dVNDzH9UZKK-U8)J&w{nU#I~B)KJ$umbMkYh=H=$c=fxS4#CEqRBa^DI zr1);lhNX#>>f-sPdDUp1`tP9yrhm>{>^L3Z`GwPG#Y;*SP0d*}lNH1ncCP8qzwfzw z(95$DoAZrJOg{f*lcmkrm6p9r0uAUN6eLe!&7M7vrv3nzz96q?dLHY%S86IaEvL9- zE)^)sn^&wetxM6%5eAi+g02CT&#%jj{eQm%AHy8$X*}!SmQcT2t<

TwvOWlcrD0 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


1>>0z|hx`OsH>LCE| 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 diff --git a/package.json b/package.json index 3a9f346..7f4d370 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,9 @@ "dependencies": { "@codemirror/lang-json": "^6.0.1", "@codemirror/lang-sql": "^6.7.1", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/sortable": "^8.0.0", + "@dnd-kit/utilities": "^3.2.2", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-checkbox": "^1.1.1", "@radix-ui/react-collapsible": "^1.1.0", diff --git a/src/components/CastTool.tsx b/src/components/CastTool.tsx index d05eafd..ccdc801 100644 --- a/src/components/CastTool.tsx +++ b/src/components/CastTool.tsx @@ -1,6 +1,15 @@ import { invoke } from '@tauri-apps/api/tauri' import { HelpCircle, PlayIcon, XIcon } from 'lucide-react' +import type React from 'react' import { useState } from 'react' +import { useCastToolStore } from '../stores/castToolStore' +import RPCInput from './RPCInput' +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from './ui/accordion' import { Button } from './ui/button' import { Input } from './ui/input' import { Label } from './ui/label' @@ -8,13 +17,15 @@ import { ScrollArea } from './ui/scroll-area' import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip' interface CastCommandProps { + id: number name: string description: string args: string[] - onRemove: () => void + onRemove: (id: number) => void } const CastCommand: React.FC = ({ + id, name, description, args, @@ -24,9 +35,11 @@ const CastCommand: React.FC = ({ const [output, setOutput] = useState('') const handleInputChange = (index: number, value: string) => { - const newInputs = [...inputs] - newInputs[index] = value - setInputs(newInputs) + setInputs((prev) => { + const newInputs = [...prev] + newInputs[index] = value + return newInputs + }) } const runCommand = async () => { @@ -61,23 +74,36 @@ const CastCommand: React.FC = ({ -
{args.map((arg, index) => ( -
-
@@ -94,11 +120,14 @@ const CastCommand: React.FC = ({ } const CastTool: React.FC = () => { - const [activeCommands, setActiveCommands] = useState< - Array<{ name: string; id: number }> - >([]) - const [nextId, setNextId] = useState(0) - const [searchTerm, setSearchTerm] = useState('') + const { + activeCommands, + searchTerm, + addCommand, + removeCommand, + clearAllCommands, + setSearchTerm, + } = useCastToolStore() const castCommands = [ { @@ -434,22 +463,92 @@ const CastTool: React.FC = () => { }, ] - const filteredCommands = castCommands.filter((cmd) => - cmd.name.toLowerCase().includes(searchTerm.toLowerCase()), - ) - - const addCommand = (name: string) => { - setActiveCommands([...activeCommands, { name, id: nextId }]) - setNextId(nextId + 1) - } - - const removeCommand = (id: number) => { - setActiveCommands(activeCommands.filter((cmd) => cmd.id !== id)) - } - - const clearAllCommands = () => { - setActiveCommands([]) - } + const commandCategories = [ + { + name: 'Blockchain & RPC Queries', + commands: [ + 'age', + 'balance', + 'base-fee', + 'block', + 'block-number', + 'chain', + 'chain-id', + 'client', + 'code', + 'codesize', + 'compute-address', + 'gas-price', + 'implementation', + 'admin', + 'nonce', + 'storage', + 'proof', + 'receipt', + ], + }, + { + name: 'Constants & Conversions', + commands: [ + 'max-int', + 'min-int', + 'max-uint', + 'address-zero', + 'hash-zero', + 'from-utf8', + 'to-ascii', + 'to-utf8', + 'from-fixed-point', + 'to-fixed-point', + 'concat-hex', + 'from-bin', + 'to-hex-data', + 'to-checksum-address', + 'to-uint256', + 'to-int256', + 'to-unit', + 'from-wei', + 'to-wei', + 'from-rlp', + 'to-rlp', + 'to-hex', + 'to-dec', + 'to-base', + 'to-bytes32', + 'format-bytes32-string', + 'parse-bytes32-string', + 'parse-bytes32-address', + ], + }, + { + name: 'ABI Encoding & Decoding', + commands: [ + 'abi-decode', + 'abi-encode', + 'calldata-decode', + 'calldata-encode', + ], + }, + { + name: 'ENS', + commands: ['namehash', 'lookup-address', 'resolve-name'], + }, + { + name: 'Misc', + commands: [ + 'keccak', + 'hash-message', + 'sig-event', + 'left-shift', + 'right-shift', + 'disassemble', + 'index', + 'index-erc7201', + 'decode-transaction', + 'decode-eof', + ], + }, + ] return (
@@ -461,16 +560,43 @@ const CastTool: React.FC = () => { className="mb-4" /> - {filteredCommands.map((cmd) => ( - - ))} + + {commandCategories.map((category) => ( + + {category.name} + + {category.commands + .filter((cmd) => + cmd.toLowerCase().includes(searchTerm.toLowerCase()), + ) + .map((cmd) => { + const commandConfig = castCommands.find( + (c) => c.name === cmd, + ) + if (!commandConfig) return null + return ( + + ) + })} + + + ))} +
@@ -481,16 +607,17 @@ const CastTool: React.FC = () => {
- {activeCommands.map((cmd, index) => { + {activeCommands.map((cmd) => { const commandConfig = castCommands.find((c) => c.name === cmd.name) if (!commandConfig) return null return ( removeCommand(cmd.id)} + onRemove={removeCommand} /> ) })} diff --git a/src/components/ChainExtractor.tsx b/src/components/ChainExtractor.tsx index f9f788e..d87e819 100644 --- a/src/components/ChainExtractor.tsx +++ b/src/components/ChainExtractor.tsx @@ -9,8 +9,8 @@ import type React from 'react' import { useCallback, useEffect, useMemo } from 'react' import { toast } from 'sonner' import type { IndexerOptions } from '../config/indexerOptions' -import type { CompactFreezeSummary, IndexerState } from '../store/indexerStore' -import { useIndexerStore } from '../store/indexerStore' +import type { CompactFreezeSummary, IndexerState } from '../stores/indexerStore' +import { useIndexerStore } from '../stores/indexerStore' import AdvancedSettingsDialog, { convertOptionsToBackend, } from './AdvancedSettingsDialog' diff --git a/src/components/RPCInput.tsx b/src/components/RPCInput.tsx index 5a2f630..0ea373d 100644 --- a/src/components/RPCInput.tsx +++ b/src/components/RPCInput.tsx @@ -6,12 +6,14 @@ interface RPCInputProps { value: string onChange: (value: string) => void placeholder?: string + className?: string } const RPCInput: React.FC = ({ value, onChange, placeholder = 'Enter RPC URL', + className = '', }) => { const [showSuggestions, setShowSuggestions] = useState(false) const [inputValue, setInputValue] = useState(value) @@ -73,7 +75,7 @@ const RPCInput: React.FC = ({ value={inputValue} onChange={(e) => handleRPCChange(e.target.value)} onFocus={() => setShowSuggestions(true)} - className="w-full" + className={`w-full ${className}`} autoComplete="off" autoCapitalize="off" autoCorrect="off" diff --git a/src/stores/castToolStore.ts b/src/stores/castToolStore.ts new file mode 100644 index 0000000..f75fd61 --- /dev/null +++ b/src/stores/castToolStore.ts @@ -0,0 +1,42 @@ +import { create } from 'zustand' +import { persist } from 'zustand/middleware' + +interface CastCommand { + id: number + name: string +} + +interface CastToolState { + activeCommands: CastCommand[] + nextId: number + searchTerm: string + addCommand: (name: string) => void + removeCommand: (id: number) => void + clearAllCommands: () => void + setSearchTerm: (term: string) => void +} + +export const useCastToolStore = create()( + persist( + (set) => ({ + activeCommands: [], + nextId: 0, + searchTerm: '', + addCommand: (name) => + set((state) => ({ + activeCommands: [...state.activeCommands, { name, id: state.nextId }], + nextId: state.nextId + 1, + })), + removeCommand: (id) => + set((state) => ({ + activeCommands: state.activeCommands.filter((cmd) => cmd.id !== id), + })), + clearAllCommands: () => set({ activeCommands: [] }), + setSearchTerm: (term) => set({ searchTerm: term }), + }), + { + name: 'cast-tool-storage', + partialize: (state) => ({ activeCommands: state.activeCommands }), + } + ) +) \ No newline at end of file diff --git a/src/store/indexerStore.ts b/src/stores/indexerStore.ts similarity index 100% rename from src/store/indexerStore.ts rename to src/stores/indexerStore.ts