Commit cc1707e4 authored by yann300's avatar yann300

ensure debugging same hash

parent 9f3b5f7b
...@@ -82,6 +82,7 @@ class DebuggerTab extends ViewPlugin { ...@@ -82,6 +82,7 @@ class DebuggerTab extends ViewPlugin {
} }
debug (hash) { debug (hash) {
this.debugHash = '' // so we can trigger a debug using the same hash 2 times in a row. that's needs to be improved
this.debugHash = hash this.debugHash = hash
this.renderComponent() this.renderComponent()
} }
...@@ -105,37 +106,34 @@ class DebuggerTab extends ViewPlugin { ...@@ -105,37 +106,34 @@ class DebuggerTab extends ViewPlugin {
getTrace (hash) { getTrace (hash) {
if (!hash) return if (!hash) return
return new Promise(async (resolve, reject) => { /* eslint-disable-line */ return new Promise(async (resolve, reject) => { /* eslint-disable-line */
const web3 = await this.getDebugWeb3() try {
const currentReceipt = await web3.eth.getTransactionReceipt(hash) const web3 = await this.getDebugWeb3()
const debug = new Debugger({ const currentReceipt = await web3.eth.getTransactionReceipt(hash)
web3, const debug = new Debugger({
offsetToLineColumnConverter: this.offsettolinecolumnconverter, web3,
compilationResult: async (address) => { offsetToLineColumnConverter: this.offsettolinecolumnconverter,
try { compilationResult: async (address) => {
return await this.fetchContractAndCompile(address, currentReceipt) try {
} catch (e) { return await this.fetchContractAndCompile(address, currentReceipt)
console.error(e) } catch (e) {
} console.error(e)
return null }
}, return null
debugWithGeneratedSources: false },
}) debugWithGeneratedSources: false
})
setState(prevState => {
return { ...prevState, currentReceipt } resolve(await debug.debugger.traceManager.getTrace(hash))
}) } catch (e) {
reject(e)
debug.debugger.traceManager.traceRetriever.getTrace(hash, (error, trace) => { }
if (error) return reject(error)
resolve(trace)
})
}) })
} }
fetchContractAndCompile (address, receipt) { fetchContractAndCompile (address, receipt) {
const target = (address && remixDebug.traceHelper.isContractCreation(address)) ? receipt.contractAddress : address const target = (address && remixDebug.traceHelper.isContractCreation(address)) ? receipt.contractAddress : address
return debuggerModule.call('fetchAndCompile', 'resolve', target || receipt.contractAddress || receipt.to, '.debug', debuggerModule.blockchain.web3()) return this.call('fetchAndCompile', 'resolve', target || receipt.contractAddress || receipt.to, '.debug', this.blockchain.web3())
} }
// debugger () { // debugger () {
......
...@@ -29,7 +29,9 @@ export const DebuggerUI = ({ debuggerModule }) => { ...@@ -29,7 +29,9 @@ export const DebuggerUI = ({ debuggerModule }) => {
}, []) }, [])
useEffect(() => { useEffect(() => {
debug(debuggerModule.debugHash) if (debuggerModule.debugHash) {
debug(debuggerModule.debugHash)
}
}, [debuggerModule.debugHash]) }, [debuggerModule.debugHash])
useEffect(() => { useEffect(() => {
......
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