Skip to content
Merged
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
be64493
scaffold react lib
ioedeveloper Aug 23, 2020
1d48a9e
Refactor slider into react lib
ioedeveloper Aug 24, 2020
e55149f
Refactored slider, button-navigator, step-manager into react components.
ioedeveloper Aug 26, 2020
91d982c
Dropdown panel refactor
ioedeveloper Aug 28, 2020
b399888
VMDebugger components refactor
ioedeveloper Sep 1, 2020
4b667fa
FullStoragesChanges component
ioedeveloper Sep 1, 2020
234869f
New folder structure for remix UI
ioedeveloper Sep 1, 2020
f5e189f
Restore debugger UI code
ioedeveloper Sep 2, 2020
734d67a
Custom hook
ioedeveloper Sep 3, 2020
2ac2af1
Treeview lib
ioedeveloper Sep 4, 2020
0a1363f
Put vm debugger components together
ioedeveloper Sep 7, 2020
2b90449
vm debugger component
ioedeveloper Sep 9, 2020
30cf641
Debugger UI functions
ioedeveloper Sep 9, 2020
79852f1
Generated utils component
ioedeveloper Sep 10, 2020
46a6a7c
completed move to react
ioedeveloper Sep 11, 2020
1217ade
Fixed tx-browser bugs
ioedeveloper Sep 14, 2020
7113011
Resolved bugs in step manager
ioedeveloper Sep 15, 2020
0b5c5d5
Added copy to clipboard component
ioedeveloper Sep 16, 2020
e83eafc
Display assembly items
ioedeveloper Sep 21, 2020
750f065
Fixed step details bug
ioedeveloper Sep 21, 2020
cf26224
Call vmDebuggerLogic d start after event registration
ioedeveloper Sep 21, 2020
101f359
Added missing panels
ioedeveloper Sep 21, 2020
e4d4d51
Fixed copy to clipboard
ioedeveloper Sep 22, 2020
fd22c57
Unload debugger
ioedeveloper Sep 23, 2020
06e7e3f
Refactor dropdown panel component
ioedeveloper Sep 24, 2020
9cdbea2
Collapse empty panels and display no data available message
ioedeveloper Sep 24, 2020
c4e5597
Added tooltip for copy to clipboard
ioedeveloper Sep 25, 2020
948bb7e
Fix failing debugger tests
ioedeveloper Sep 28, 2020
19289bd
Fixed failing ballot tests
ioedeveloper Sep 29, 2020
c8cdb1f
Undo vm trace step change
ioedeveloper Sep 29, 2020
6da257b
Added delay to terminal test
ioedeveloper Oct 13, 2020
580d652
Revert "Added delay to terminal test"
ioedeveloper Oct 13, 2020
ada1de1
Log performance checks
ioedeveloper Oct 14, 2020
1b0e15a
Refactor debugger-ui props
ioedeveloper Oct 16, 2020
6b03b4b
Make slider dependencies independent
ioedeveloper Oct 19, 2020
7e671cb
Extract button navigator dependencies
ioedeveloper Oct 19, 2020
645d101
pass lightweight props
ioedeveloper Oct 20, 2020
4212cae
Fixed wrong formatting
ioedeveloper Oct 21, 2020
be4f7b1
Show expanded details
ioedeveloper Oct 21, 2020
863eae9
Detect scroll up and scroll down
ioedeveloper Oct 23, 2020
2473458
Experiment with load more
ioedeveloper Oct 25, 2020
8acff22
Include registerEvent for vmDebugger
ioedeveloper Oct 25, 2020
dc94506
Experiment with loading locals in chunks
ioedeveloper Oct 26, 2020
cfb1185
sync nx with workspace
ioedeveloper Oct 26, 2020
f1e597d
Fix stepOverForward bug
ioedeveloper Oct 26, 2020
d71ac84
Removed unused comments
ioedeveloper Oct 27, 2020
d635f91
Include debug generated sources
ioedeveloper Oct 27, 2020
7d55886
Updated generated sources
ioedeveloper Oct 27, 2020
a45f79b
Load more
ioedeveloper Oct 28, 2020
1284594
Fixed typo
ioedeveloper Oct 28, 2020
5711f04
Implemented loadmore using reducer
ioedeveloper Oct 29, 2020
82caa50
Fixed jumpToNextBreakPoint
ioedeveloper Oct 29, 2020
3909eb2
Add hidden element for e2e test assertion
ioedeveloper Oct 29, 2020
74b7ffb
Fixed failing solidity load more tests
ioedeveloper Oct 29, 2020
1f782cd
Include more assertions
ioedeveloper Oct 29, 2020
d50be2c
Add delay for load more
ioedeveloper Oct 29, 2020
bd4a7b0
Fix debug generated sources
ioedeveloper Oct 29, 2020
ca01d59
Correct name typo
ioedeveloper Oct 29, 2020
c5c0832
Increase delay for load more
ioedeveloper Oct 30, 2020
0cf33d9
Change data-id selector
ioedeveloper Oct 30, 2020
05c5e4c
Update e2e
ioedeveloper Oct 30, 2020
86b61a4
Scroll and click
ioedeveloper Oct 30, 2020
a300791
Revert "Scroll and click"
ioedeveloper Oct 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/remix-ide-e2e/src/commands/goToVMTraceStep.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { NightwatchBrowser } from 'nightwatch'
import EventEmitter from "events"
class GoToVmTraceStep extends EventEmitter {
command (this: NightwatchBrowser, step: number, incr?: number): NightwatchBrowser {
goToVMtraceStep(this.api, step, incr, () => {
goToVMtraceStep(this.api, step, incr, () => {
this.emit('complete')
})
return this
Expand Down
1 change: 1 addition & 0 deletions apps/remix-ide-e2e/src/commands/selectContract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class SelectContract extends EventEmitter {
function selectContract (browser: NightwatchBrowser, contractName: string, callback: VoidFunction) {
browser.clickLaunchIcon('settings').clickLaunchIcon('udapp')
.setValue('#runTabView select[class^="contractNames"]', contractName).perform(() => {
console.log('Done!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
callback()
})
}
Expand Down
2 changes: 1 addition & 1 deletion apps/remix-ide-e2e/src/commands/testContracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function testContracts (browser: NightwatchBrowser, fileName: string, contractCo
browser
.clickLaunchIcon('solidity')
.addFile(fileName, contractCode)
.pause(1000)
.pause(25000)
.verifyContracts(compiledContractNames)
.perform(() => {
callback()
Expand Down
4 changes: 3 additions & 1 deletion apps/remix-ide-e2e/src/tests/debugger.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ module.exports = {
.waitForElementVisible('*[data-id="slider"]')
.click('*[data-id="slider"]')
.setValue('*[data-id="slider"]', '50')
.pause(2000)
.click('*[data-id="dropdownPanelSolidityLocals"]')
.assert.containsText('*[data-id="solidityLocals"]', 'no locals')
.assert.containsText('*[data-id="stepdetail"]', 'vm trace step:\n92')
},
Expand Down Expand Up @@ -188,7 +190,7 @@ const sources = [
'browser/blah.sol': {
content: `
pragma solidity >=0.7.0 <0.8.0;

contract Kickstarter {

enum State { Started, Completed }
Expand Down
1 change: 0 additions & 1 deletion apps/remix-ide-e2e/src/tests/terminal.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ module.exports = {
'Call web3.eth.getAccounts() using JavaScript VM': function (browser: NightwatchBrowser) {
browser
.executeScript(`web3.eth.getAccounts()`)
.pause(2000)
.journalLastChildIncludes(`[ "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4", "0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2", "0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db", "0x78731D3Ca6b7E34aC0F824c42a7cC18A495cabaB", "0x617F2E2fD72FD9D5503197092aC168c91465E7f2", "0x17F6AD8Ef982297579C203069C1DbfFE4348c372", "0x5c6B0f7Bf3E7ce046039Bd8FABdfD3f9F5021678", "0x03C6FcED478cBbC9a4FAB34eF9f40767739D1Ff7", "0x1aE0EA34a72D944a8C7603FfB3eC30a6669E454C", "0x0A098Eda01Ce92ff4A4CCb7A4fFFb5A43EBC70DC", "0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c", "0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C", "0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB", "0x583031D1113aD414F02576BD6afaBfb302140225", "0xdD870fA1b7C4700F2BD7f44238821C26f7392148" ]`)
.end()
},
Expand Down
2 changes: 1 addition & 1 deletion apps/remix-ide/.babelrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"presets": ["@babel/preset-env"]
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
39 changes: 23 additions & 16 deletions apps/remix-ide/src/app/tabs/debugger-tab.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
const yo = require('yo-yo')
const remixDebug = require('@remix-project/remix-debug')
const css = require('./styles/debugger-tab-styles')
import toaster from '../ui/tooltip'
const DebuggerUI = require('./debugger/debuggerUI')
import { DebuggerUI } from '@remix-ui/debugger-ui'
// const DebuggerUI = require('./debugger/debuggerUI')
import { ViewPlugin } from '@remixproject/engine'
import * as packageJson from '../../../../../package.json'
import React from 'react'
import ReactDOM from 'react-dom'

const profile = {
name: 'debugger',
Expand All @@ -25,6 +27,9 @@ class DebuggerTab extends ViewPlugin {
super(profile)
this.el = null
this.blockchain = blockchain
this.debugHash = null
this.getTraceHash = null
this.removeHighlights = false
}

render () {
Expand Down Expand Up @@ -55,37 +60,39 @@ 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>`)
})

this.debuggerUI = new DebuggerUI(
this,
this.el.querySelector('#debugger'),
(address, receipt) => {
const target = (address && remixDebug.traceHelper.isContractCreation(address)) ? receipt.contractAddress : address
return this.call('fetchAndCompile', 'resolve', target || receipt.contractAddress || receipt.to, '.debug', this.blockchain.web3())
}
)
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(
<DebuggerUI debuggerModule={this} />
, this.el)
}

deactivate () {
this.debuggerUI.deleteHighlights()
this.removeHighlights = true
this.renderComponent()
super.deactivate()
}

debug (hash) {
if (this.debuggerUI) this.debuggerUI.debug(hash)
this.debugHash = hash
this.renderComponent()
}

getTrace (hash) {
return this.debuggerUI.getTrace(hash)
this.getTraceHash = hash
this.renderComponent()
}

debugger () {
return this.debuggerUI
}
// debugger () {
// return this.debuggerUI
// }
}

module.exports = DebuggerTab
1 change: 1 addition & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
module.exports = {
"presets": ["@babel/preset-react", "@babel/preset-typescript"],
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}
1 change: 1 addition & 0 deletions libs/remix-debug/src/debugger/stepManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ class DebuggerStepManager {

stepOverForward (solidityMode) {
if (!this.traceManager.isLoaded()) return
if (this.currentStepIndex >= this.traceLength - 1) return
let step = this.currentStepIndex + 1
let scope = this.debugger.callTree.findScope(step)
if (scope && scope.firstStep === step) {
Expand Down
10 changes: 5 additions & 5 deletions libs/remix-debug/src/solidity-decoder/internalCallTree.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,11 @@ async function buildTree (tree, step, scopeId, isExternalCall, isCreation) {

function includedSource (source, included) {
return (included.start !== -1 &&
included.length !== -1 &&
included.file !== -1 &&
included.start >= source.start &&
included.start + included.length <= source.start + source.length &&
included.file === source.file)
included.length !== -1 &&
included.file !== -1 &&
included.start >= source.start &&
included.start + included.length <= source.start + source.length &&
included.file === source.file)
}

let currentSourceLocation = { start: -1, length: -1, file: -1 }
Expand Down
4 changes: 2 additions & 2 deletions libs/remix-debug/src/solidity-decoder/types/ArrayType.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@ class ArrayType extends RefType {
if (isNaN(length)) {
return {
value: '<decoding failed - length is NaN>',
type: this.typeName
type: 'Error'
}
}
if (!skip) skip = 0
if (skip) offset = offset + (32 * skip)
let limit = length - skip
if (limit > 100) limit = 100
if (limit > 10) limit = 10
for (var k = 0; k < limit; k++) {
var contentOffset = offset
ret.push(this.underlyingType.decodeFromMemory(contentOffset, memory))
Expand Down
1 change: 0 additions & 1 deletion libs/remix-debug/src/source/sourceLocationTracker.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ SourceLocationTracker.prototype.getValidSourceLocationFromVMTraceIndex = async f
map = await this.getSourceLocationFromVMTraceIndex(address, vmtraceStepIndex, contracts)
vmtraceStepIndex = vmtraceStepIndex - 1
}
console.log(map, vmtraceStepIndex)
return map
}

Expand Down
4 changes: 4 additions & 0 deletions libs/remix-ui/clipboard/.babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"presets": ["@nrwl/react/babel"],
"plugins": []
}
Loading