Commit 1217ade9 authored by ioedeveloper's avatar ioedeveloper

Fixed tx-browser bugs

parent 46a6a7c4
...@@ -61,6 +61,15 @@ class DebuggerTab extends ViewPlugin { ...@@ -61,6 +61,15 @@ class DebuggerTab extends ViewPlugin {
toaster(yo`<div><b>Source verification plugin not activated or not available.</b> continuing <i>without</i> source code debugging.</div>`) toaster(yo`<div><b>Source verification plugin not activated or not available.</b> continuing <i>without</i> source code debugging.</div>`)
}) })
this.renderComponent()
this.call('manager', 'activatePlugin', 'source-verification').catch(e => console.log(e.message))
// this.call('manager', 'activatePlugin', 'udapp')
return this.el
}
renderComponent () {
ReactDOM.render( ReactDOM.render(
<DebuggerUI <DebuggerUI
debuggerModule={this} debuggerModule={this}
...@@ -73,11 +82,6 @@ class DebuggerTab extends ViewPlugin { ...@@ -73,11 +82,6 @@ class DebuggerTab extends ViewPlugin {
getTraceHash={this.getTraceHash} getTraceHash={this.getTraceHash}
/> />
, this.el) , this.el)
this.call('manager', 'activatePlugin', 'source-verification').catch(e => console.log(e.message))
// this.call('manager', 'activatePlugin', 'udapp')
return this.el
} }
deactivate () { deactivate () {
...@@ -87,10 +91,12 @@ class DebuggerTab extends ViewPlugin { ...@@ -87,10 +91,12 @@ class DebuggerTab extends ViewPlugin {
debug (hash) { debug (hash) {
this.debugHash = hash this.debugHash = hash
this.renderComponent()
} }
getTrace (hash) { getTrace (hash) {
this.getTraceHash = hash this.getTraceHash = hash
this.renderComponent()
} }
// debugger () { // debugger () {
......
...@@ -69,23 +69,18 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash, ...@@ -69,23 +69,18 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
if (removeHighlights) deleteHighlights() if (removeHighlights) deleteHighlights()
}, [removeHighlights]) }, [removeHighlights])
const listenToEvents = (debuggerInstance) => { const listenToEvents = (debuggerInstance, currentReceipt) => {
if (!debuggerInstance) return if (!debuggerInstance) return
debuggerInstance.event.register('debuggerStatus', async (isActive) => { debuggerInstance.event.register('debuggerStatus', async (isActive) => {
await debuggerModule.call('editor', 'discardHighlight') await debuggerModule.call('editor', 'discardHighlight')
setState(prevState => { setState({ ...state, isActive })
return {
...prevState,
isActive
}
})
}) })
debuggerInstance.event.register('newSourceLocation', async (lineColumnPos, rawLocation) => { debuggerInstance.event.register('newSourceLocation', async (lineColumnPos, rawLocation) => {
const contracts = await fetchContractAndCompile( const contracts = await fetchContractAndCompile(
state.currentReceipt.contractAddress || state.currentReceipt.to, currentReceipt.contractAddress || currentReceipt.to,
state.currentReceipt) currentReceipt)
if (contracts) { if (contracts) {
const path = contracts.getSourceName(rawLocation.file) const path = contracts.getSourceName(rawLocation.file)
...@@ -98,13 +93,6 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash, ...@@ -98,13 +93,6 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
}) })
debuggerInstance.event.register('debuggerUnloaded', () => unLoad()) debuggerInstance.event.register('debuggerUnloaded', () => unLoad())
setState(prevState => {
return {
...prevState,
debugger: debuggerInstance
}
})
} }
const requestDebug = (blockNumber, txNumber, tx) => { const requestDebug = (blockNumber, txNumber, tx) => {
...@@ -142,6 +130,7 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash, ...@@ -142,6 +130,7 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
// yo.update(this.stepManagerView, yo`<div></div>`) // yo.update(this.stepManagerView, yo`<div></div>`)
setState(prevState => { setState(prevState => {
const { visibility } = prevState const { visibility } = prevState
return { return {
...prevState, ...prevState,
debugger: null, debugger: null,
...@@ -176,16 +165,17 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash, ...@@ -176,16 +165,17 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
debuggerInstance.debug(blockNumber, txNumber, tx, () => { debuggerInstance.debug(blockNumber, txNumber, tx, () => {
// this.stepManager = new StepManagerUI(this.debugger.step_manager) // this.stepManager = new StepManagerUI(this.debugger.step_manager)
// this.vmDebugger = new VmDebugger(this.debugger.vmDebuggerLogic) // this.vmDebugger = new VmDebugger(this.debugger.vmDebuggerLogic)
listenToEvents(debuggerInstance, currentReceipt)
setState(prevState => { setState(prevState => {
return { return {
...prevState, ...prevState,
blockNumber, blockNumber,
txNumber, txNumber,
debugging: true, debugging: true,
currentReceipt currentReceipt,
debugger: debuggerInstance
} }
}) })
listenToEvents(debuggerInstance)
// this.renderDebugger() // this.renderDebugger()
}).catch((error) => { }).catch((error) => {
toaster(error, null, null) toaster(error, null, null)
...@@ -202,12 +192,7 @@ const getTrace = (hash) => { ...@@ -202,12 +192,7 @@ const getTrace = (hash) => {
const web3 = await getDebugWeb3() const web3 = await getDebugWeb3()
const currentReceipt = await web3.eth.getTransactionReceipt(hash) const currentReceipt = await web3.eth.getTransactionReceipt(hash)
setState(prevState => { setState({ ...state, currentReceipt })
return {
...prevState,
currentReceipt
}
})
const debug = new Debugger({ const debug = new Debugger({
web3, web3,
...@@ -239,9 +224,9 @@ const deleteHighlights = async () => { ...@@ -239,9 +224,9 @@ const deleteHighlights = async () => {
return ( return (
<div> <div>
<div className="px-2"> <div className="px-2">
<TxBrowser requestDebug={requestDebug} unloadRequested={unloadRequested} /> <TxBrowser requestDebug={requestDebug} unloadRequested={unloadRequested} transactionNumber={state.txNumber} />
{/* <StepManager stepManager={state.debugger.step_manager} /> <StepManager stepManager={state.debugger ? state.debugger.step_manager : null} />
<VmDebuggerHead vmDebuggerLogic={state.debugger.vmDebuggerLogic} /> */} {/*<VmDebuggerHead vmDebuggerLogic={state.debugger.vmDebuggerLogic} /> */}
</div> </div>
{/* <div className="statusMessage">{state.statusMessage}</div> {/* <div className="statusMessage">{state.statusMessage}</div>
<VmDebugger vmDebuggerLogic={state.debugger.vmDebuggerLogic} /> */} <VmDebugger vmDebuggerLogic={state.debugger.vmDebuggerLogic} /> */}
......
...@@ -25,12 +25,7 @@ export const Slider = ({ stepManager, sliderLength, sliderValue }) => { ...@@ -25,12 +25,7 @@ export const Slider = ({ stepManager, sliderLength, sliderValue }) => {
}, [sliderValue]) }, [sliderValue])
const setValue = (value) => { const setValue = (value) => {
setState(prevState => { setState({ ...state, currentValue: value })
return {
...prevState,
currentValue: value
}
})
} }
const handleChange = (e) => { const handleChange = (e) => {
...@@ -56,7 +51,7 @@ export const Slider = ({ stepManager, sliderLength, sliderValue }) => { ...@@ -56,7 +51,7 @@ export const Slider = ({ stepManager, sliderLength, sliderValue }) => {
type='range' type='range'
min={0} min={0}
max={state.max} max={state.max}
value={state.currentValue} defaultValue={state.currentValue}
onChange={handleChange} onChange={handleChange}
disabled={state.disabled} disabled={state.disabled}
/> />
......
import React, { useState } from 'react' import React, { useState, useEffect } from 'react'
import './tx-browser.css' import './tx-browser.css'
import EventManager from '../../../../../../apps/remix-ide/src/lib/events'
export const TxBrowser = ({ requestDebug, unloadRequested }) => { export const TxBrowser = ({ requestDebug, unloadRequested, transactionNumber }) => {
const event = new EventManager()
const [state, setState] = useState({ const [state, setState] = useState({
txNumber: undefined, txNumber: undefined,
debugging: false debugging: false
}) })
useEffect(() => {
setState(prevState => {
return {
...prevState,
txNumber: transactionNumber
}
})
}, [transactionNumber])
const handleSubmit = () => { const handleSubmit = () => {
if (state.debugging) { if (state.debugging) {
unload() unload()
......
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