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
63141ae9
Commit
63141ae9
authored
Dec 05, 2016
by
yann300
Committed by
GitHub
Dec 05, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #345 from ethereum/fixvmstorage
Extend state manager (VM)
parents
f65bd7fc
5b119359
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
0 deletions
+41
-0
execution-context.js
src/app/execution-context.js
+41
-0
No files found.
src/app/execution-context.js
View file @
63141ae9
...
@@ -5,6 +5,8 @@ var $ = require('jquery')
...
@@ -5,6 +5,8 @@ var $ = require('jquery')
var
Web3
=
require
(
'web3'
)
var
Web3
=
require
(
'web3'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EthJSVM
=
require
(
'ethereumjs-vm'
)
var
EthJSVM
=
require
(
'ethereumjs-vm'
)
var
ethUtil
=
require
(
'ethereumjs-util'
)
var
StateManager
=
require
(
'ethereumjs-vm/lib/stateManager'
)
var
injectedProvider
var
injectedProvider
...
@@ -16,10 +18,49 @@ if (typeof window.web3 !== 'undefined') {
...
@@ -16,10 +18,49 @@ if (typeof window.web3 !== 'undefined') {
web3
=
new
Web3
(
new
Web3
.
providers
.
HttpProvider
(
'http://localhost:8545'
))
web3
=
new
Web3
(
new
Web3
.
providers
.
HttpProvider
(
'http://localhost:8545'
))
}
}
/*
extend vm state manager and instanciate VM
*/
class
StateManagerCommonStorageDump
extends
StateManager
{
constructor
(
arg
)
{
super
(
arg
)
this
.
keyHashes
=
{}
}
putContractStorage
(
address
,
key
,
value
,
cb
)
{
this
.
keyHashes
[
ethUtil
.
sha3
(
key
)]
=
ethUtil
.
bufferToHex
(
key
)
super
.
putContractStorage
(
address
,
key
,
value
,
cb
)
}
dumpStorage
(
address
,
cb
)
{
var
self
=
this
this
.
_getStorageTrie
(
address
,
function
(
err
,
trie
)
{
if
(
err
)
{
return
cb
(
err
)
}
var
storage
=
{}
var
stream
=
trie
.
createReadStream
()
stream
.
on
(
'data'
,
function
(
val
)
{
storage
[
self
.
keyHashes
[
val
.
key
]]
=
val
.
value
.
toString
(
'hex'
)
})
stream
.
on
(
'end'
,
function
()
{
cb
(
storage
)
})
})
}
}
var
stateManager
=
new
StateManagerCommonStorageDump
({})
var
vm
=
new
EthJSVM
({
var
vm
=
new
EthJSVM
({
enableHomestead
:
true
,
enableHomestead
:
true
,
activatePrecompiles
:
true
activatePrecompiles
:
true
})
})
// FIXME: move state manager in EthJSVM ctr
vm
.
stateManager
=
stateManager
vm
.
blockchain
=
stateManager
.
blockchain
vm
.
trie
=
stateManager
.
trie
vm
.
stateManager
.
checkpoint
()
vm
.
stateManager
.
checkpoint
()
/*
/*
...
...
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