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
535a9e1b
Commit
535a9e1b
authored
Mar 28, 2018
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add function executeTx & sendTransaction to instance
trigger transactionBroadcasted
parent
c6ae7908
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
19 deletions
+39
-19
execution-context.js
remix-lib/src/execution/execution-context.js
+15
-0
txRunner.js
remix-lib/src/execution/txRunner.js
+24
-19
No files found.
remix-lib/src/execution/execution-context.js
View file @
535a9e1b
...
...
@@ -235,6 +235,21 @@ function ExecutionContext () {
}
}
this
.
setProviderFromEndpoint
=
setProviderFromEndpoint
this
.
txDetailsLink
=
function
(
network
,
hash
)
{
if
(
transactionDetailsLinks
[
network
])
{
return
transactionDetailsLinks
[
network
]
+
hash
}
}
}
var
transactionDetailsLinks
=
{
'Main'
:
'https://www.etherscan.io/tx/'
,
'Rinkeby'
:
'https://rinkeby.etherscan.io/tx/'
,
'Ropsten'
:
'https://ropsten.etherscan.io//tx/'
,
'Kovan'
:
'https://kovan.etherscan.io/tx/'
}
module
.
exports
=
new
ExecutionContext
()
remix-lib/src/execution/txRunner.js
View file @
535a9e1b
...
...
@@ -4,8 +4,10 @@ var EthJSBlock = require('ethereumjs-block')
var
ethJSUtil
=
require
(
'ethereumjs-util'
)
var
BN
=
ethJSUtil
.
BN
var
executionContext
=
require
(
'./execution-context'
)
var
EventManager
=
require
(
'../eventManager'
)
function
TxRunner
(
vmaccounts
,
api
)
{
this
.
event
=
new
EventManager
()
this
.
_api
=
api
this
.
blockNumber
=
0
this
.
runAsync
=
true
...
...
@@ -22,19 +24,36 @@ TxRunner.prototype.rawRun = function (args, confirmationCb, gasEstimationForceSe
run
(
this
,
args
,
Date
.
now
(),
confirmationCb
,
gasEstimationForceSend
,
promptCb
,
cb
)
}
function
executeTx
(
tx
,
gasPrice
,
api
,
promptCb
,
callback
)
{
TxRunner
.
prototype
.
_executeTx
=
function
(
tx
,
gasPrice
,
api
,
promptCb
,
callback
)
{
if
(
gasPrice
)
tx
.
gasPrice
=
executionContext
.
web3
().
toHex
(
gasPrice
)
if
(
api
.
personalMode
())
{
promptCb
(
(
value
)
=>
{
sendTransaction
(
executionContext
.
web3
().
personal
.
sendTransaction
,
tx
,
value
,
callback
)
this
.
_
sendTransaction
(
executionContext
.
web3
().
personal
.
sendTransaction
,
tx
,
value
,
callback
)
},
()
=>
{
return
callback
(
'Canceled by user.'
)
}
)
}
else
{
sendTransaction
(
executionContext
.
web3
().
eth
.
sendTransaction
,
tx
,
null
,
callback
)
this
.
_sendTransaction
(
executionContext
.
web3
().
eth
.
sendTransaction
,
tx
,
null
,
callback
)
}
}
TxRunner
.
prototype
.
_sendTransaction
=
function
(
sendTx
,
tx
,
pass
,
callback
)
{
var
self
=
this
var
cb
=
function
(
err
,
resp
)
{
if
(
err
)
{
return
callback
(
err
,
resp
)
}
self
.
event
.
trigger
(
'transactionBroadcasted'
,
[
resp
])
tryTillResponse
(
resp
,
callback
)
}
var
args
=
pass
!==
null
?
[
tx
,
pass
,
cb
]
:
[
tx
,
cb
]
try
{
sendTx
.
apply
({},
args
)
}
catch
(
e
)
{
return
callback
(
`Send transaction failed:
${
e
.
message
}
. if you use an injected provider, please check it is properly unlocked. `
)
}
}
...
...
@@ -124,7 +143,7 @@ TxRunner.prototype.runInNode = function (from, to, data, value, gasLimit, useCal
tx
.
gas
=
!
gasEstimation
?
gasLimit
:
gasEstimation
if
(
self
.
_api
.
config
.
getUnpersistedProperty
(
'doNotShowTransactionConfirmationAgain'
))
{
return
executeTx
(
tx
,
null
,
self
.
_api
,
promptCb
,
callback
)
return
self
.
_
executeTx
(
tx
,
null
,
self
.
_api
,
promptCb
,
callback
)
}
self
.
_api
.
detectNetwork
((
err
,
network
)
=>
{
...
...
@@ -134,7 +153,7 @@ TxRunner.prototype.runInNode = function (from, to, data, value, gasLimit, useCal
}
confirmCb
(
network
,
tx
,
tx
.
gas
,
(
gasPrice
)
=>
{
return
executeTx
(
tx
,
gasPrice
,
self
.
_api
,
promptCb
,
callback
)
return
self
.
_
executeTx
(
tx
,
gasPrice
,
self
.
_api
,
promptCb
,
callback
)
},
(
error
)
=>
{
callback
(
error
)
})
...
...
@@ -172,20 +191,6 @@ function tryTillResponse (txhash, done) {
})
}
function
sendTransaction
(
sendTx
,
tx
,
pass
,
callback
)
{
var
cb
=
function
(
err
,
resp
)
{
if
(
err
)
{
return
callback
(
err
,
resp
)
}
tryTillResponse
(
resp
,
callback
)
}
var
args
=
pass
!==
null
?
[
tx
,
pass
,
cb
]
:
[
tx
,
cb
]
try
{
sendTx
.
apply
({},
args
)
}
catch
(
e
)
{
return
callback
(
`Send transaction failed:
${
e
.
message
}
. if you use an injected provider, please check it is properly unlocked. `
)
}
}
function
run
(
self
,
tx
,
stamp
,
confirmationCb
,
gasEstimationForceSend
,
promptCb
,
callback
)
{
if
(
!
self
.
runAsync
&&
Object
.
keys
(
self
.
pendingTxs
).
length
)
{
...
...
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