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
a7e14ad1
Commit
a7e14ad1
authored
Sep 05, 2017
by
yann300
Committed by
GitHub
Sep 05, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #757 from ethereum/fixTxListener
Fix tx listener issues
parents
1248a800
cc872a7f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
9 deletions
+37
-9
txListener.js
src/app/execution/txListener.js
+21
-7
txLogger.js
src/app/execution/txLogger.js
+15
-1
txRunner.js
src/app/execution/txRunner.js
+1
-1
No files found.
src/app/execution/txListener.js
View file @
a7e14ad1
...
@@ -62,20 +62,34 @@ class TxListener {
...
@@ -62,20 +62,34 @@ class TxListener {
this
.
loopId
=
'vm-listener'
this
.
loopId
=
'vm-listener'
}
else
{
}
else
{
this
.
loopId
=
setInterval
(()
=>
{
this
.
loopId
=
setInterval
(()
=>
{
var
currentLoopId
=
this
.
loopId
executionContext
.
web3
().
eth
.
getBlockNumber
((
error
,
blockNumber
)
=>
{
executionContext
.
web3
().
eth
.
getBlockNumber
((
error
,
blockNumber
)
=>
{
if
(
this
.
loopId
===
null
||
this
.
loopId
===
'vm-listener'
)
return
if
(
this
.
loopId
===
null
||
this
.
loopId
===
'vm-listener'
)
return
if
(
error
)
return
console
.
log
(
error
)
if
(
error
)
return
console
.
log
(
error
)
if
(
!
this
.
lastBlock
||
blockNumber
>
this
.
lastBlock
)
{
if
(
currentLoopId
===
this
.
loopId
&&
(
!
this
.
lastBlock
||
blockNumber
>
this
.
lastBlock
))
{
if
(
!
this
.
lastBlock
)
this
.
lastBlock
=
blockNumber
-
1
var
current
=
this
.
lastBlock
+
1
this
.
lastBlock
=
blockNumber
this
.
lastBlock
=
blockNumber
executionContext
.
web3
().
eth
.
getBlock
(
this
.
lastBlock
,
true
,
(
error
,
result
)
=>
{
while
(
blockNumber
>=
current
)
{
if
(
!
error
)
{
try
{
this
.
_newBlock
(
Object
.
assign
({
type
:
'web3'
},
result
))
this
.
_manageBlock
(
current
)
}
catch
(
e
)
{
console
.
log
(
e
)
}
current
++
}
}
})
}
}
})
})
},
2
)
},
2000
)
}
}
_manageBlock
(
blockNumber
)
{
executionContext
.
web3
().
eth
.
getBlock
(
blockNumber
,
true
,
(
error
,
result
)
=>
{
if
(
!
error
)
{
this
.
_newBlock
(
Object
.
assign
({
type
:
'web3'
},
result
))
}
}
})
}
}
/**
/**
...
@@ -194,7 +208,7 @@ class TxListener {
...
@@ -194,7 +208,7 @@ class TxListener {
fn
:
fn
,
fn
:
fn
,
params
:
this
.
_decodeInputParams
(
inputData
.
substring
(
8
),
getFunction
(
abi
,
fn
))
params
:
this
.
_decodeInputParams
(
inputData
.
substring
(
8
),
getFunction
(
abi
,
fn
))
}
}
return
return
this
.
_resolvedTransactions
[
tx
.
hash
]
}
}
}
}
// fallback function
// fallback function
...
...
src/app/execution/txLogger.js
View file @
a7e14ad1
...
@@ -22,6 +22,16 @@ class TxLogger {
...
@@ -22,6 +22,16 @@ class TxLogger {
opts
.
api
.
editorpanel
.
registerLogType
(
'unknownTransaction'
,
(
data
)
=>
{
opts
.
api
.
editorpanel
.
registerLogType
(
'unknownTransaction'
,
(
data
)
=>
{
return
renderUnknownTransaction
(
this
,
data
)
return
renderUnknownTransaction
(
this
,
data
)
})
})
opts
.
api
.
editorpanel
.
registerLogType
(
'emptyBlock'
,
(
data
)
=>
{
return
renderEmptyBlock
(
this
,
data
)
})
opts
.
events
.
txListener
.
register
(
'newBlock'
,
(
block
)
=>
{
if
(
!
block
.
transactions
.
length
)
{
opts
.
api
.
editorpanel
.
log
({
type
:
'emptyBlock'
,
value
:
{
block
:
block
}})
}
})
opts
.
events
.
txListener
.
register
(
'newTransaction'
,
(
tx
)
=>
{
opts
.
events
.
txListener
.
register
(
'newTransaction'
,
(
tx
)
=>
{
log
(
this
,
tx
,
opts
.
api
)
log
(
this
,
tx
,
opts
.
api
)
})
})
...
@@ -66,11 +76,15 @@ function renderUnknownTransaction (self, data) {
...
@@ -66,11 +76,15 @@ function renderUnknownTransaction (self, data) {
return
yo
`<span id="tx
${
data
.
tx
.
hash
}
">
${
context
(
self
,
data
.
tx
)}
: from:
${
helper
.
shortenAddress
(
data
.
tx
.
from
)}
, to:
${
to
}
, value:
${
value
(
data
.
tx
.
value
)}
wei, data:
${
helper
.
shortenHexData
((
data
.
tx
.
input
))}
, hash:
${
helper
.
shortenHexData
((
data
.
tx
.
hash
))}
, <button onclick=
${
detail
}
>Details</button> <button onclick=
${
debug
}
>Debug</button></span>`
return
yo
`<span id="tx
${
data
.
tx
.
hash
}
">
${
context
(
self
,
data
.
tx
)}
: from:
${
helper
.
shortenAddress
(
data
.
tx
.
from
)}
, to:
${
to
}
, value:
${
value
(
data
.
tx
.
value
)}
wei, data:
${
helper
.
shortenHexData
((
data
.
tx
.
input
))}
, hash:
${
helper
.
shortenHexData
((
data
.
tx
.
hash
))}
, <button onclick=
${
detail
}
>Details</button> <button onclick=
${
debug
}
>Debug</button></span>`
}
}
function
renderEmptyBlock
(
self
,
data
)
{
return
yo
`<span>block
${
data
.
block
.
number
}
- O transactions</span>`
}
function
context
(
self
,
tx
)
{
function
context
(
self
,
tx
)
{
if
(
executionContext
.
getProvider
()
===
'vm'
)
{
if
(
executionContext
.
getProvider
()
===
'vm'
)
{
return
yo
`<span>(vm)</span>`
return
yo
`<span>(vm)</span>`
}
else
{
}
else
{
return
yo
`<span>block:
${
tx
.
blockNumber
}
, txIndex:
${
tx
.
transactionIndex
}
`
return
yo
`<span>block:
${
tx
.
blockNumber
}
, txIndex:
${
tx
.
transactionIndex
}
</span>
`
}
}
}
}
...
...
src/app/execution/txRunner.js
View file @
a7e14ad1
...
@@ -69,7 +69,7 @@ TxRunner.prototype.execute = function (args, callback) {
...
@@ -69,7 +69,7 @@ TxRunner.prototype.execute = function (args, callback) {
return
callback
(
err
,
resp
)
return
callback
(
err
,
resp
)
}
}
tryTillResponse
(
self
.
web3
,
resp
,
callback
)
tryTillResponse
(
resp
,
callback
)
})
})
})
})
}
}
...
...
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