Commit 8acff22c authored by ioedeveloper's avatar ioedeveloper

Include registerEvent for vmDebugger

parent 2473458f
...@@ -225,7 +225,7 @@ const stepManager = { ...@@ -225,7 +225,7 @@ const stepManager = {
traceLength: state.debugger && state.debugger.step_manager ? state.debugger.step_manager.traceLength : null, traceLength: state.debugger && state.debugger.step_manager ? state.debugger.step_manager.traceLength : null,
registerEvent: state.debugger && state.debugger.step_manager ? state.debugger.step_manager.event.register.bind(state.debugger.step_manager.event) : null, registerEvent: state.debugger && state.debugger.step_manager ? state.debugger.step_manager.event.register.bind(state.debugger.step_manager.event) : null,
} }
const vmDebuggerHead = { const vmDebugger = {
registerEvent: state.debugger && state.debugger.vmDebuggerLogic ? state.debugger.vmDebuggerLogic.event.register.bind(state.debugger.vmDebuggerLogic.event) : null registerEvent: state.debugger && state.debugger.vmDebuggerLogic ? state.debugger.vmDebuggerLogic.event.register.bind(state.debugger.vmDebuggerLogic.event) : null
} }
...@@ -234,10 +234,10 @@ const vmDebuggerHead = { ...@@ -234,10 +234,10 @@ const vmDebuggerHead = {
<div className="px-2"> <div className="px-2">
<TxBrowser requestDebug={ requestDebug } unloadRequested={ unloadRequested } transactionNumber={ state.txNumber } debugging={ state.debugging } /> <TxBrowser requestDebug={ requestDebug } unloadRequested={ unloadRequested } transactionNumber={ state.txNumber } debugging={ state.debugging } />
{ state.debugging && <StepManager stepManager={ stepManager } /> } { state.debugging && <StepManager stepManager={ stepManager } /> }
{ state.debugging && <VmDebuggerHead vmDebuggerHead={ vmDebuggerHead } /> } { state.debugging && <VmDebuggerHead vmDebugger={ vmDebugger } /> }
</div> </div>
{/* { state.debugging && <div className="statusMessage">{ state.statusMessage }</div> } { state.debugging && <div className="statusMessage">{ state.statusMessage }</div> }
{ state.debugging && <VmDebugger vmDebuggerLogic={ state.debugger ? state.debugger.vmDebuggerLogic : null } ready={vmDebuggerReady} /> } */} { state.debugging && <VmDebugger vmDebugger={ vmDebugger } /> }
</div> </div>
) )
} }
......
import React, { useState, useEffect } from 'react' import React, { useState, useEffect, useReducer } from 'react'
import { TreeView, TreeViewItem } from '@remix-ui/tree-view' import { TreeView, TreeViewItem } from '@remix-ui/tree-view'
import { DropdownPanelProps, ExtractData, ExtractFunc } from '../../types' import { DropdownPanelProps, ExtractData, ExtractFunc } from '../../types'
import { CopyToClipboard } from '@remix-ui/clipboard' import { CopyToClipboard } from '@remix-ui/clipboard'
import { default as deepequal } from 'deep-equal' import { default as deepequal } from 'deep-equal'
import { initialState, reducer } from '../../reducers/calldata'
import './styles/dropdown-panel.css' import './styles/dropdown-panel.css'
export const DropdownPanel = (props: DropdownPanelProps) => { export const DropdownPanel = (props: DropdownPanelProps) => {
const [calldata, dispatch] = useReducer(reducer, initialState)
const { dropdownName, dropdownMessage, calldata, header, loading, extractFunc, formatSelfFunc } = props const { dropdownName, dropdownMessage, calldata, header, loading, extractFunc, formatSelfFunc } = props
const extractDataDefault: ExtractFunc = (item, parent?) => { const extractDataDefault: ExtractFunc = (item, parent?) => {
const ret: ExtractData = {} const ret: ExtractData = {}
......
...@@ -5,7 +5,7 @@ import StepDetail from './step-detail' ...@@ -5,7 +5,7 @@ import StepDetail from './step-detail'
import SolidityState from './solidity-state' import SolidityState from './solidity-state'
import SolidityLocals from './solidity-locals' import SolidityLocals from './solidity-locals'
export const VmDebuggerHead = ({ vmDebuggerHead: { registerEvent } }) => { export const VmDebuggerHead = ({ vmDebugger: { registerEvent } }) => {
const [asm, setAsm] = useState({ const [asm, setAsm] = useState({
code: null, code: null,
address: null, address: null,
...@@ -117,10 +117,10 @@ export const VmDebuggerHead = ({ vmDebuggerHead: { registerEvent } }) => { ...@@ -117,10 +117,10 @@ export const VmDebuggerHead = ({ vmDebuggerHead: { registerEvent } }) => {
<div className="w-100"> <div className="w-100">
<FunctionPanel data={functionPanel} /> <FunctionPanel data={functionPanel} />
<SolidityLocals data={solidityLocals.calldata} message={solidityLocals.message} /> <SolidityLocals data={solidityLocals.calldata} message={solidityLocals.message} />
{/* <SolidityState calldata={solidityState.calldata} message={solidityState.message} /> */} <SolidityState calldata={solidityState.calldata} message={solidityState.message} />
</div> </div>
<div className="w-100"><CodeListView registerEvent={registerEvent} /></div> <div className="w-100"><CodeListView registerEvent={registerEvent} /></div>
{/* <div className="w-100"><StepDetail stepDetail={stepDetail} /></div> */} <div className="w-100"><StepDetail stepDetail={stepDetail} /></div>
</div> </div>
</div> </div>
) )
......
...@@ -7,7 +7,7 @@ import StoragePanel from './storage-panel' ...@@ -7,7 +7,7 @@ import StoragePanel from './storage-panel'
import ReturnValuesPanel from './dropdown-panel' import ReturnValuesPanel from './dropdown-panel'
import FullStoragesChangesPanel from './full-storages-changes' import FullStoragesChangesPanel from './full-storages-changes'
export const VmDebugger = ({ vmDebuggerLogic, ready }) => { export const VmDebugger = ({ vmDebugger: { registerEvent } }) => {
const [calldataPanel, setCalldataPanel] = useState(null) const [calldataPanel, setCalldataPanel] = useState(null)
const [memoryPanel, setMemoryPanel] = useState(null) const [memoryPanel, setMemoryPanel] = useState(null)
const [callStackPanel, setCallStackPanel] = useState(null) const [callStackPanel, setCallStackPanel] = useState(null)
...@@ -20,39 +20,35 @@ export const VmDebugger = ({ vmDebuggerLogic, ready }) => { ...@@ -20,39 +20,35 @@ export const VmDebugger = ({ vmDebuggerLogic, ready }) => {
const [fullStoragesChangesPanel, setFullStoragesChangesPanel] = useState(null) const [fullStoragesChangesPanel, setFullStoragesChangesPanel] = useState(null)
useEffect(() => { useEffect(() => {
console.log('vmDebuggerLogic: ', vmDebuggerLogic) registerEvent && registerEvent('traceManagerCallDataUpdate', (calldata) => {
if (vmDebuggerLogic) {
vmDebuggerLogic.event.register('traceManagerCallDataUpdate', (calldata) => {
setCalldataPanel(() => calldata) setCalldataPanel(() => calldata)
}) })
vmDebuggerLogic.event.register('traceManagerMemoryUpdate', (calldata) => { registerEvent && registerEvent('traceManagerMemoryUpdate', (calldata) => {
setMemoryPanel(() => calldata) setMemoryPanel(() => calldata)
}) })
vmDebuggerLogic.event.register('traceManagerCallStackUpdate', (calldata) => { registerEvent && registerEvent('traceManagerCallStackUpdate', (calldata) => {
setCallStackPanel(() => calldata) setCallStackPanel(() => calldata)
}) })
vmDebuggerLogic.event.register('traceManagerStackUpdate', (calldata) => { registerEvent && registerEvent('traceManagerStackUpdate', (calldata) => {
setStackPanel(() => calldata) setStackPanel(() => calldata)
}) })
vmDebuggerLogic.event.register('traceManagerStorageUpdate', (calldata, header) => { registerEvent && registerEvent('traceManagerStorageUpdate', (calldata, header) => {
setStoragePanel(() => { setStoragePanel(() => {
return { calldata, header } return { calldata, header }
}) })
}) })
vmDebuggerLogic.event.register('traceReturnValueUpdate', (calldata) => { registerEvent && registerEvent('traceReturnValueUpdate', (calldata) => {
setReturnValuesPanel(() => calldata) setReturnValuesPanel(() => calldata)
}) })
vmDebuggerLogic.event.register('traceAddressesUpdate', (calldata) => { registerEvent && registerEvent('traceAddressesUpdate', (calldata) => {
setFullStoragesChangesPanel(() => { setFullStoragesChangesPanel(() => {
return {} return {}
}) })
}) })
vmDebuggerLogic.event.register('traceStorageUpdate', (calldata) => { registerEvent && registerEvent('traceStorageUpdate', (calldata) => {
setFullStoragesChangesPanel(() => calldata) setFullStoragesChangesPanel(() => calldata)
}) })
ready() }, [registerEvent])
}
}, [vmDebuggerLogic])
return ( return (
<div id="vmdebugger" className="px-2"> <div id="vmdebugger" className="px-2">
......
...@@ -21,7 +21,7 @@ export const reducer = (state = initialState, action: Action) => { ...@@ -21,7 +21,7 @@ export const reducer = (state = initialState, action: Action) => {
}; };
case 'FETCH_CALLDATA_SUCCESS': case 'FETCH_CALLDATA_SUCCESS':
return { return {
opCodes: action.payload, calldata: action.payload,
isRequesting: false, isRequesting: false,
isSuccessful: true, isSuccessful: true,
hasError: null hasError: null
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment