Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
3fec7350
Commit
3fec7350
authored
Sep 20, 2018
by
Kevin
Committed by
Martin Holst Swende
Sep 20, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/evm: EVM prestate initialization (#17685)
* Bugfix #17216: evm loads prestate file properly now * code gofmted
parent
6975c729
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
9 deletions
+16
-9
runner.go
cmd/evm/runner.go
+16
-9
No files found.
cmd/evm/runner.go
View file @
3fec7350
...
@@ -80,13 +80,13 @@ func runCmd(ctx *cli.Context) error {
...
@@ -80,13 +80,13 @@ func runCmd(ctx *cli.Context) error {
}
}
var
(
var
(
tracer
vm
.
Tracer
tracer
vm
.
Tracer
debugLogger
*
vm
.
StructLogger
debugLogger
*
vm
.
StructLogger
statedb
*
state
.
StateDB
statedb
*
state
.
StateDB
chainConfig
*
params
.
ChainConfig
chainConfig
*
params
.
ChainConfig
sender
=
common
.
BytesToAddress
([]
byte
(
"sender"
))
sender
=
common
.
BytesToAddress
([]
byte
(
"sender"
))
receiver
=
common
.
BytesToAddress
([]
byte
(
"receiver"
))
receiver
=
common
.
BytesToAddress
([]
byte
(
"receiver"
))
blockNumber
uint64
genesisConfig
*
core
.
Genesis
)
)
if
ctx
.
GlobalBool
(
MachineFlag
.
Name
)
{
if
ctx
.
GlobalBool
(
MachineFlag
.
Name
)
{
tracer
=
NewJSONLogger
(
logconfig
,
os
.
Stdout
)
tracer
=
NewJSONLogger
(
logconfig
,
os
.
Stdout
)
...
@@ -98,13 +98,14 @@ func runCmd(ctx *cli.Context) error {
...
@@ -98,13 +98,14 @@ func runCmd(ctx *cli.Context) error {
}
}
if
ctx
.
GlobalString
(
GenesisFlag
.
Name
)
!=
""
{
if
ctx
.
GlobalString
(
GenesisFlag
.
Name
)
!=
""
{
gen
:=
readGenesis
(
ctx
.
GlobalString
(
GenesisFlag
.
Name
))
gen
:=
readGenesis
(
ctx
.
GlobalString
(
GenesisFlag
.
Name
))
genesisConfig
=
gen
db
:=
ethdb
.
NewMemDatabase
()
db
:=
ethdb
.
NewMemDatabase
()
genesis
:=
gen
.
ToBlock
(
db
)
genesis
:=
gen
.
ToBlock
(
db
)
statedb
,
_
=
state
.
New
(
genesis
.
Root
(),
state
.
NewDatabase
(
db
))
statedb
,
_
=
state
.
New
(
genesis
.
Root
(),
state
.
NewDatabase
(
db
))
chainConfig
=
gen
.
Config
chainConfig
=
gen
.
Config
blockNumber
=
gen
.
Number
}
else
{
}
else
{
statedb
,
_
=
state
.
New
(
common
.
Hash
{},
state
.
NewDatabase
(
ethdb
.
NewMemDatabase
()))
statedb
,
_
=
state
.
New
(
common
.
Hash
{},
state
.
NewDatabase
(
ethdb
.
NewMemDatabase
()))
genesisConfig
=
new
(
core
.
Genesis
)
}
}
if
ctx
.
GlobalString
(
SenderFlag
.
Name
)
!=
""
{
if
ctx
.
GlobalString
(
SenderFlag
.
Name
)
!=
""
{
sender
=
common
.
HexToAddress
(
ctx
.
GlobalString
(
SenderFlag
.
Name
))
sender
=
common
.
HexToAddress
(
ctx
.
GlobalString
(
SenderFlag
.
Name
))
...
@@ -156,13 +157,19 @@ func runCmd(ctx *cli.Context) error {
...
@@ -156,13 +157,19 @@ func runCmd(ctx *cli.Context) error {
}
}
initialGas
:=
ctx
.
GlobalUint64
(
GasFlag
.
Name
)
initialGas
:=
ctx
.
GlobalUint64
(
GasFlag
.
Name
)
if
genesisConfig
.
GasLimit
!=
0
{
initialGas
=
genesisConfig
.
GasLimit
}
runtimeConfig
:=
runtime
.
Config
{
runtimeConfig
:=
runtime
.
Config
{
Origin
:
sender
,
Origin
:
sender
,
State
:
statedb
,
State
:
statedb
,
GasLimit
:
initialGas
,
GasLimit
:
initialGas
,
GasPrice
:
utils
.
GlobalBig
(
ctx
,
PriceFlag
.
Name
),
GasPrice
:
utils
.
GlobalBig
(
ctx
,
PriceFlag
.
Name
),
Value
:
utils
.
GlobalBig
(
ctx
,
ValueFlag
.
Name
),
Value
:
utils
.
GlobalBig
(
ctx
,
ValueFlag
.
Name
),
BlockNumber
:
new
(
big
.
Int
)
.
SetUint64
(
blockNumber
),
Difficulty
:
genesisConfig
.
Difficulty
,
Time
:
new
(
big
.
Int
)
.
SetUint64
(
genesisConfig
.
Timestamp
),
Coinbase
:
genesisConfig
.
Coinbase
,
BlockNumber
:
new
(
big
.
Int
)
.
SetUint64
(
genesisConfig
.
Number
),
EVMConfig
:
vm
.
Config
{
EVMConfig
:
vm
.
Config
{
Tracer
:
tracer
,
Tracer
:
tracer
,
Debug
:
ctx
.
GlobalBool
(
DebugFlag
.
Name
)
||
ctx
.
GlobalBool
(
MachineFlag
.
Name
),
Debug
:
ctx
.
GlobalBool
(
DebugFlag
.
Name
)
||
ctx
.
GlobalBool
(
MachineFlag
.
Name
),
...
...
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