Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
e5594b7c
Commit
e5594b7c
authored
Jun 17, 2016
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add eventManager.js
parent
80ee7488
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
57 additions
and
38 deletions
+57
-38
asmCode.js
src/asmCode.js
+4
-2
codeManager.js
src/codeManager.js
+20
-34
debugger.js
src/debugger.js
+2
-2
eventManager.js
src/eventManager.js
+22
-0
util.js
src/util.js
+9
-0
No files found.
src/asmCode.js
View file @
e5594b7c
...
@@ -23,8 +23,10 @@ module.exports = React.createClass({
...
@@ -23,8 +23,10 @@ module.exports = React.createClass({
},
},
componentDidMount
:
function
()
{
componentDidMount
:
function
()
{
this
.
context
.
codeManager
.
registerIndexChangedListener
(
this
,
this
.
indexChanged
)
this
.
context
.
codeManager
.
register
(
'indexChanged'
,
this
,
this
.
indexChanged
)
this
.
context
.
codeManager
.
registerCodeChangedListener
(
this
,
this
.
codeChanged
)
this
.
context
.
codeManager
.
register
(
'codeChanged'
,
this
,
this
.
codeChanged
)
this
.
context
.
codeManager
.
register
(
'loadingCode'
,
this
,
function
(
address
)
{
})
},
},
indexChanged
:
function
(
index
)
{
indexChanged
:
function
(
index
)
{
...
...
src/codeManager.js
View file @
e5594b7c
'use strict'
'use strict'
var
traceManagerUtil
=
require
(
'./traceManagerUtil'
)
var
traceManagerUtil
=
require
(
'./traceManagerUtil'
)
var
codeResolver
=
require
(
'./codeResolver'
)
var
codeResolver
=
require
(
'./codeResolver'
)
var
util
=
require
(
'./util'
)
var
eventManager
=
require
(
'./eventManager'
)
/*
resolve contract code referenced by vmtrace in order to be used by asm listview.
events:
- indexChanged: triggered when an item is selected
- codeChanged: triggered when an item (in a different context) is selected
- loadingCode: triggerred when loading new code
- resolvingStep: when CodeManager resolves code/selected instruction of a new step
*/
function
CodeManager
(
_web3
,
_traceManager
)
{
function
CodeManager
(
_web3
,
_traceManager
)
{
util
.
extend
(
this
,
eventManager
)
this
.
web3
=
_web3
this
.
web3
=
_web3
this
.
isLoading
=
false
this
.
isLoading
=
false
this
.
traceManager
=
_traceManager
this
.
traceManager
=
_traceManager
this
.
currentAddress
=
''
this
.
currentAddress
=
''
this
.
indexChangedlisteners
=
[]
this
.
codeChangedlisteners
=
[]
codeResolver
.
setWeb3
(
_web3
)
codeResolver
.
setWeb3
(
_web3
)
}
}
CodeManager
.
prototype
.
registerIndexChangedListener
=
function
(
obj
,
func
)
{
CodeManager
.
prototype
.
resolveStep
=
function
(
stepIndex
,
tx
)
{
this
.
indexChangedlisteners
.
push
({
obj
:
obj
,
func
:
func
})
}
CodeManager
.
prototype
.
registerCodeChangedListener
=
function
(
obj
,
func
)
{
this
.
codeChangedlisteners
.
push
({
obj
:
obj
,
func
:
func
})
}
CodeManager
.
prototype
.
resolveCodeFor
=
function
(
stepIndex
,
tx
)
{
if
(
stepIndex
<
0
)
return
if
(
stepIndex
<
0
)
return
this
.
trigger
(
'resolvingStep'
)
var
self
=
this
var
self
=
this
if
(
stepIndex
===
0
)
{
if
(
stepIndex
===
0
)
{
self
.
ensureCodeLoaded
(
tx
.
to
,
stepIndex
,
tx
)
self
.
ensureCodeLoaded
(
tx
.
to
,
stepIndex
,
tx
)
...
@@ -51,9 +49,10 @@ CodeManager.prototype.ensureCodeLoaded = function (address, currentStep, tx) {
...
@@ -51,9 +49,10 @@ CodeManager.prototype.ensureCodeLoaded = function (address, currentStep, tx) {
console
.
log
(
error
)
console
.
log
(
error
)
}
else
{
}
else
{
var
codes
=
codeResolver
.
cacheExecutingCode
(
address
,
hexCode
)
var
codes
=
codeResolver
.
cacheExecutingCode
(
address
,
hexCode
)
self
.
trigger
(
'loadingCode'
,
[
address
])
self
.
getInstructionIndex
(
address
,
currentStep
,
function
(
error
,
result
)
{
self
.
getInstructionIndex
(
address
,
currentStep
,
function
(
error
,
result
)
{
if
(
!
error
)
{
if
(
!
error
)
{
self
.
dispatchCodeChanged
(
codes
.
code
,
address
,
result
)
self
.
trigger
(
'codeChanged'
,
[
codes
.
code
,
address
,
result
]
)
self
.
currentAddress
=
address
self
.
currentAddress
=
address
}
else
{
}
else
{
console
.
log
(
error
)
console
.
log
(
error
)
...
@@ -64,9 +63,10 @@ CodeManager.prototype.ensureCodeLoaded = function (address, currentStep, tx) {
...
@@ -64,9 +63,10 @@ CodeManager.prototype.ensureCodeLoaded = function (address, currentStep, tx) {
}
else
{
}
else
{
codeResolver
.
resolveCode
(
address
,
currentStep
,
tx
,
function
(
address
,
code
)
{
codeResolver
.
resolveCode
(
address
,
currentStep
,
tx
,
function
(
address
,
code
)
{
// resoling code from stack
// resoling code from stack
self
.
trigger
(
'loadingCode'
,
[
address
])
self
.
getInstructionIndex
(
address
,
currentStep
,
function
(
error
,
result
)
{
self
.
getInstructionIndex
(
address
,
currentStep
,
function
(
error
,
result
)
{
if
(
!
error
)
{
if
(
!
error
)
{
self
.
dispatchCodeChanged
(
code
,
address
,
result
)
self
.
trigger
(
'codeChanged'
,
[
code
,
address
,
result
]
)
self
.
currentAddress
=
address
self
.
currentAddress
=
address
}
else
{
}
else
{
console
.
log
(
error
)
console
.
log
(
error
)
...
@@ -78,7 +78,7 @@ CodeManager.prototype.ensureCodeLoaded = function (address, currentStep, tx) {
...
@@ -78,7 +78,7 @@ CodeManager.prototype.ensureCodeLoaded = function (address, currentStep, tx) {
// only set selected item
// only set selected item
this
.
getInstructionIndex
(
this
.
currentAddress
,
currentStep
,
function
(
error
,
result
)
{
this
.
getInstructionIndex
(
this
.
currentAddress
,
currentStep
,
function
(
error
,
result
)
{
if
(
!
error
)
{
if
(
!
error
)
{
self
.
dispatchIndexChanged
(
result
)
self
.
trigger
(
'indexChanged'
,
[
result
]
)
}
}
})
})
}
}
...
@@ -96,18 +96,4 @@ CodeManager.prototype.getInstructionIndex = function (address, step, callback) {
...
@@ -96,18 +96,4 @@ CodeManager.prototype.getInstructionIndex = function (address, step, callback) {
})
})
}
}
CodeManager
.
prototype
.
dispatchIndexChanged
=
function
(
itemIndex
)
{
for
(
var
listener
in
this
.
indexChangedlisteners
)
{
var
l
=
this
.
indexChangedlisteners
[
listener
]
l
.
func
.
call
(
l
.
obj
,
itemIndex
)
}
}
CodeManager
.
prototype
.
dispatchCodeChanged
=
function
(
code
,
address
,
itemIndex
)
{
for
(
var
listener
in
this
.
codeChangedlisteners
)
{
var
l
=
this
.
codeChangedlisteners
[
listener
]
l
.
func
.
call
(
l
.
obj
,
code
,
address
,
itemIndex
)
}
}
module
.
exports
=
CodeManager
module
.
exports
=
CodeManager
src/debugger.js
View file @
e5594b7c
...
@@ -44,7 +44,7 @@ module.exports = React.createClass({
...
@@ -44,7 +44,7 @@ module.exports = React.createClass({
this
.
setState
({
this
.
setState
({
currentStepIndex
:
stepIndex
currentStepIndex
:
stepIndex
})
})
this
.
props
.
context
.
codeManager
.
resolve
CodeFor
(
stepIndex
,
this
.
state
.
tx
)
this
.
props
.
context
.
codeManager
.
resolve
Step
(
stepIndex
,
this
.
state
.
tx
)
},
},
startDebugging
:
function
(
blockNumber
,
txIndex
,
tx
)
{
startDebugging
:
function
(
blockNumber
,
txIndex
,
tx
)
{
...
@@ -62,7 +62,7 @@ module.exports = React.createClass({
...
@@ -62,7 +62,7 @@ module.exports = React.createClass({
currentStepIndex
:
0
currentStepIndex
:
0
})
})
self
.
refs
.
stepManager
.
newTraceAvailable
()
self
.
refs
.
stepManager
.
newTraceAvailable
()
self
.
props
.
context
.
codeManager
.
resolve
CodeFor
(
0
,
tx
)
self
.
props
.
context
.
codeManager
.
resolve
Step
(
0
,
tx
)
})
})
}
}
})
})
src/eventManager.js
0 → 100644
View file @
e5594b7c
'use strict'
module
.
exports
=
{
registered
:
{},
register
:
function
(
eventName
,
obj
,
func
)
{
if
(
!
this
.
registered
[
eventName
])
{
this
.
registered
[
eventName
]
=
[]
}
this
.
registered
[
eventName
].
push
({
obj
:
obj
,
func
:
func
})
},
trigger
:
function
(
eventName
,
args
)
{
for
(
var
listener
in
this
.
registered
[
eventName
])
{
var
l
=
this
.
registered
[
eventName
][
listener
]
l
.
func
.
apply
(
l
.
obj
,
args
)
}
}
}
src/util.js
0 → 100644
View file @
e5594b7c
'use strict'
module
.
exports
=
{
extend
:
function
(
destination
,
source
)
{
for
(
var
property
in
source
)
{
destination
[
property
]
=
source
[
property
]
}
// return destination
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment