Unload debugger

pull/453/head
ioedeveloper 4 years ago
parent e4d4d5187a
commit fd22c5795f
  1. 52
      libs/remix-ui/debugger-ui/src/lib/debugger-ui.tsx
  2. 8
      libs/remix-ui/debugger-ui/src/lib/tx-browser/tx-browser.tsx

@ -45,7 +45,7 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
}) })
editor.event.register('contentChanged', () => { editor.event.register('contentChanged', () => {
if (state.debugger) state.debugger.unload() unLoad()
}) })
} }
@ -94,12 +94,11 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
} }
const requestDebug = (blockNumber, txNumber, tx) => { const requestDebug = (blockNumber, txNumber, tx) => {
if (state.debugger) state.debugger.unload()
startDebugging(blockNumber, txNumber, tx) startDebugging(blockNumber, txNumber, tx)
} }
const unloadRequested = (blockNumber, txIndex, tx) => { const unloadRequested = (blockNumber, txIndex, tx) => {
if (state.debugger) state.debugger.unload() unLoad()
} }
const isDebuggerActive = () => { const isDebuggerActive = () => {
@ -123,29 +122,28 @@ export const DebuggerUI = ({ debuggerModule, fetchContractAndCompile, debugHash,
} }
const unLoad = () => { const unLoad = () => {
// yo.update(this.debuggerHeadPanelsView, yo`<div></div>`) if (state.debugger) state.debugger.unload()
// yo.update(this.debuggerPanelsView, yo`<div></div>`) setState(prevState => {
// yo.update(this.stepManagerView, yo`<div></div>`) return {
// setState(prevState => { ...prevState,
// const { visibility } = prevState isActive: false,
statusMessage: '',
// return { debugger: null,
// ...prevState, currentReceipt: {
// debugger: null, contractAddress: null,
// debugging: false, to: null
// visibility: { },
// ...visibility, blockNumber: null,
// vmDebugger: false, ready: {
// stepManager: false vmDebugger: false,
// } vmDebuggerHead: false
// } },
// }) debugging: false
// event.trigger('traceUnloaded', []) }
})
} }
const startDebugging = async (blockNumber, txNumber, tx) => { const startDebugging = async (blockNumber, txNumber, tx) => {
if (state.debugger) unLoad()
const web3 = await getDebugWeb3() const web3 = await getDebugWeb3()
const currentReceipt = await web3.eth.getTransactionReceipt(txNumber) const currentReceipt = await web3.eth.getTransactionReceipt(txNumber)
const debuggerInstance = new Debugger({ const debuggerInstance = new Debugger({
@ -254,11 +252,11 @@ if (state.ready.vmDebugger && state.ready.vmDebuggerHead) {
<div> <div>
<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 } />
<StepManager stepManager={ state.debugger ? state.debugger.step_manager : null } /> { state.debugging && <StepManager stepManager={ state.debugger ? state.debugger.step_manager : null } /> }
<VmDebuggerHead vmDebuggerLogic={ state.debugger ? state.debugger.vmDebuggerLogic : null } ready={vmDebuggerHeadReady} /> { state.debugging && <VmDebuggerHead vmDebuggerLogic={ state.debugger ? state.debugger.vmDebuggerLogic : null } ready={vmDebuggerHeadReady} /> }
</div> </div>
<div className="statusMessage">{ state.statusMessage }</div> { state.debugging && <div className="statusMessage">{ state.statusMessage }</div> }
<VmDebugger vmDebuggerLogic={ state.debugger ? state.debugger.vmDebuggerLogic : null } ready={vmDebuggerReady} /> { state.debugging && <VmDebugger vmDebuggerLogic={ state.debugger ? state.debugger.vmDebuggerLogic : null } ready={vmDebuggerReady} /> }
</div> </div>
) )
} }

@ -27,7 +27,7 @@ export const TxBrowser = ({ requestDebug, unloadRequested, transactionNumber, de
unloadRequested() unloadRequested()
} }
const txInputChanged = (e) => { const txInputChanged = (value) => {
// todo check validation of txnumber in the input element, use // todo check validation of txnumber in the input element, use
// required // required
// oninvalid="setCustomValidity('Please provide a valid transaction number, must start with 0x and have length of 22')" // oninvalid="setCustomValidity('Please provide a valid transaction number, must start with 0x and have length of 22')"
@ -37,7 +37,7 @@ export const TxBrowser = ({ requestDebug, unloadRequested, transactionNumber, de
setState(prevState => { setState(prevState => {
return { return {
...prevState, ...prevState,
txNumber: e.target.value txNumber: value
} }
}) })
} }
@ -51,7 +51,7 @@ export const TxBrowser = ({ requestDebug, unloadRequested, transactionNumber, de
className="form-control m-0 txinput" className="form-control m-0 txinput"
id='txinput' id='txinput'
type='text' type='text'
onChange={txInputChanged} onChange={({ target: { value } }) => txInputChanged(value)}
placeholder={'Transaction hash, should start with 0x'} placeholder={'Transaction hash, should start with 0x'}
data-id="debuggerTransactionInput" data-id="debuggerTransactionInput"
disabled={debugging} disabled={debugging}
@ -64,7 +64,7 @@ export const TxBrowser = ({ requestDebug, unloadRequested, transactionNumber, de
title={debugging ? 'Stop debugging' : 'Start debugging'} title={debugging ? 'Stop debugging' : 'Start debugging'}
onClick={handleSubmit} onClick={handleSubmit}
data-id="debuggerTransactionStartButton" data-id="debuggerTransactionStartButton"
disabled={!state.txNumber ? true : !debugging ? true : false } disabled={!state.txNumber ? true : false }
> >
{ debugging ? 'Stop' : 'Start' } debugging { debugging ? 'Stop' : 'Start' } debugging
</button> </button>

Loading…
Cancel
Save