diff --git a/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx b/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx index 4730ba9c8a..ea07229c02 100644 --- a/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx +++ b/libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx @@ -28,10 +28,9 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash, }, blockNumber: null, txNumber: '', - visibility: { + ready: { vmDebugger: false, - stepManager: false, - txBrowser: false + vmDebuggerHead: false }, debugging: false }) @@ -130,20 +129,20 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash, // yo.update(this.debuggerHeadPanelsView, yo`
`) // yo.update(this.debuggerPanelsView, yo`
`) // yo.update(this.stepManagerView, yo`
`) - setState(prevState => { - const { visibility } = prevState - - return { - ...prevState, - debugger: null, - debugging: false, - visibility: { - ...visibility, - vmDebugger: false, - stepManager: false - } - } - }) + // setState(prevState => { + // const { visibility } = prevState + + // return { + // ...prevState, + // debugger: null, + // debugging: false, + // visibility: { + // ...visibility, + // vmDebugger: false, + // stepManager: false + // } + // } + // }) event.trigger('traceUnloaded', []) } @@ -222,6 +221,34 @@ const deleteHighlights = async () => { await debuggerModule.call('editor', 'discardHighlight') } +const vmDebuggerReady = () => { + setState(prevState => { + return { + ...prevState, + ready: { + ...prevState.ready, + vmDebugger: true + } + } + }) +} + +const vmDebuggerHeadReady = () => { + setState(prevState => { + return { + ...prevState, + ready: { + ...prevState.ready, + vmDebuggerHead: true + } + } + }) +} + +if (state.ready.vmDebugger && state.ready.vmDebuggerHead) { + state.debugger.vmDebuggerLogic.start() +} + // this.debuggerPanelsView = yo`
` // this.debuggerHeadPanelsView = yo`
` // this.stepManagerView = yo`
` @@ -231,10 +258,10 @@ const deleteHighlights = async () => {
- +
- {/*
{state.statusMessage}
- */} +
{ state.statusMessage }
+ ) } diff --git a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/assembly-items.tsx b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/assembly-items.tsx index 6526c489dc..c2e58b46ed 100644 --- a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/assembly-items.tsx +++ b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/assembly-items.tsx @@ -18,12 +18,10 @@ export const AssemblyItems = ({ codeView, index }) => { let currentItem = refs.current[selectedItem] ? refs.current[selectedItem] : null if (currentItem) { - if (selectedItem) { - currentItem.removeAttribute('selected') - currentItem.removeAttribute('style') - if (currentItem.firstChild) { - currentItem.firstChild.removeAttribute('style') - } + currentItem.removeAttribute('selected') + currentItem.removeAttribute('style') + if (currentItem.firstChild) { + currentItem.firstChild.removeAttribute('style') } const codeView = asmItemsRef.current diff --git a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/stack-panel.tsx b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/stack-panel.tsx index c554e747c7..396fc0eb96 100644 --- a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/stack-panel.tsx +++ b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/stack-panel.tsx @@ -2,6 +2,7 @@ import React from 'react' import DropdownPanel from './dropdown-panel' export const StackPanel = ({ calldata }) => { + console.log('calldata: ', calldata) return (
diff --git a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger-head.tsx b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger-head.tsx index 4cfab38d6d..ec510627f8 100644 --- a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger-head.tsx +++ b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger-head.tsx @@ -5,7 +5,7 @@ import StepDetail from './step-detail' import SolidityState from './solidity-state' import SolidityLocals from './solidity-locals' -export const VmDebuggerHead = ({ vmDebuggerLogic }) => { +export const VmDebuggerHead = ({ vmDebuggerLogic, ready }) => { const [panelVisibility, setPanelVisibility] = useState({ functionPanel: true, stepDetail: true, @@ -99,7 +99,7 @@ export const VmDebuggerHead = ({ vmDebuggerLogic }) => { fullStoragesChangesPanel: true }) }) - vmDebuggerLogic.start() + ready() } }, [vmDebuggerLogic]) @@ -118,4 +118,4 @@ export const VmDebuggerHead = ({ vmDebuggerLogic }) => { ) } -export default VmDebuggerHead; +export default VmDebuggerHead diff --git a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger.tsx b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger.tsx index eac667fbdc..367eadc800 100644 --- a/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger.tsx +++ b/libs/remix-ui/debugger-ui/src/lib/vm-debugger/vm-debugger.tsx @@ -5,7 +5,7 @@ import CallstackPanel from './callstack-panel' import StackPanel from './stack-panel' import StoragePanel from './storage-panel' -export const VmDebugger = ({ vmDebuggerLogic }) => { +export const VmDebugger = ({ vmDebuggerLogic, ready }) => { const [panelVisibility, setPanelVisibility] = useState({ asmCode: true, stackPanel: true, @@ -24,51 +24,53 @@ export const VmDebugger = ({ vmDebuggerLogic }) => { }) useEffect(() => { - vmDebuggerLogic.event.register('traceManagerCallDataUpdate', (calldata) => { - setCalldataPanel(calldata) - }) - vmDebuggerLogic.event.register('traceManagerMemoryUpdate', (calldata) => { - setMemoryPanel(calldata) - }) - vmDebuggerLogic.event.register('traceManagerCallStackUpdate', (calldata) => { - setCallStackPanel(calldata) - }) - vmDebuggerLogic.event.register('traceManagerStackUpdate', (calldata) => { - setStackPanel(calldata) - }) - vmDebuggerLogic.event.register('traceManagerStorageUpdate', (calldata, header) => { - setStoragePanel({ calldata, header }) - }) - vmDebuggerLogic.event.register('newTrace', () => { - setPanelVisibility({ - asmCode: true, - stackPanel: true, - storagePanel: true, - memoryPanel: true, - calldataPanel: true, - callstackPanel: true, + if (vmDebuggerLogic) { + vmDebuggerLogic.event.register('traceManagerCallDataUpdate', (calldata) => { + setCalldataPanel(calldata) }) - }) - // vmDebuggerLogic.event.register('newCallTree', () => { - // setPanelVisibility({ - // ...panelVisibility, - // solidityPanel: false - // }) - // }) - vmDebuggerLogic.start() - }, []) + vmDebuggerLogic.event.register('traceManagerMemoryUpdate', (calldata) => { + setMemoryPanel(calldata) + }) + vmDebuggerLogic.event.register('traceManagerCallStackUpdate', (calldata) => { + setCallStackPanel(calldata) + }) + vmDebuggerLogic.event.register('traceManagerStackUpdate', (calldata) => { + setStackPanel(calldata) + }) + vmDebuggerLogic.event.register('traceManagerStorageUpdate', (calldata, header) => { + setStoragePanel({ calldata, header }) + }) + vmDebuggerLogic.event.register('newTrace', () => { + setPanelVisibility({ + asmCode: true, + stackPanel: true, + storagePanel: true, + memoryPanel: true, + calldataPanel: true, + callstackPanel: true, + }) + }) + // vmDebuggerLogic.event.register('newCallTree', () => { + // setPanelVisibility({ + // ...panelVisibility, + // solidityPanel: false + // }) + // }) + ready() + } + }, [vmDebuggerLogic]) return (
- - - - - + + {/* */} + {/* */} + {/* */} + {/* */}
) } -export default VmDebugger; +export default VmDebugger