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
bff5999e
Commit
bff5999e
authored
Dec 04, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sort tests for evm
parent
f298ffdb
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
11 additions
and
9 deletions
+11
-9
code.txt
cmd/evm/code.txt
+1
-0
input.txt
cmd/evm/input.txt
+1
-0
main.go
cmd/evm/main.go
+7
-6
block_manager.go
core/block_manager.go
+0
-1
vm_debug.go
vm/vm_debug.go
+2
-2
No files found.
cmd/evm/code.txt
0 → 100644
View file @
bff5999e
60006102ff5360003560001a60008114156103395760013560405260216040516020025990590160009052606052604051602002816060513760405160200281019050506002604051121561005957604051602002606051f35b604051602002599059016000905260a052600060c052604051602002599059016000905260e0526000610100526001610120525b604051610120511215610109576060515161012051602002606051015112156100d8576101205160200260605101516101005160200260e051015260016101005101610100526100f9565b61012051602002606051015160c05160200260a0510152600160c0510160c0525b600161012051016101205261008d565b60216020599059016000905260c051808252806020028301925050602082015990590160009052600081538151600182015260218101825160200260a0518260005b8381101561016657808301518186015260208101905061014b565b50505050825160200281019050604059905901600090526102405281610240515283602061024051015261024051905090509050905060c05160200280599059016000905281816020850151855160003060195a03f1508090509050905060a05260216020599059016000905261010051808252806020028301925050602082015990590160009052600081538151600182015260218101825160200260e0518260005b8381101561022557808301518186015260208101905061020a565b50505050825160200281019050604059905901600090526102c052816102c051528360206102c05101526102c05190509050905090506101005160200280599059016000905281816020850151855160003060195a03f1508090509050905060e05260405160200259905901600090526102e0526000610120525b610100516101205112156102d7576101205160200260e0510151610120516020026102e051015260016101205101610120526102a0565b60605151610100516020026102e05101526000610120525b60c05161012051121561032d576101205160200260a05101516101205160016101005101016020026102e051015260016101205101610120526102ef565b6040516020026102e051f35b50
cmd/evm/input.txt
0 → 100644
View file @
bff5999e
This diff is collapsed.
Click to expand it.
cmd/evm/main.go
View file @
bff5999e
...
@@ -45,7 +45,7 @@ import (
...
@@ -45,7 +45,7 @@ import (
var
(
var
(
code
=
flag
.
String
(
"code"
,
""
,
"evm code"
)
code
=
flag
.
String
(
"code"
,
""
,
"evm code"
)
loglevel
=
flag
.
Int
(
"log"
,
4
,
"log level"
)
loglevel
=
flag
.
Int
(
"log"
,
4
,
"log level"
)
gas
=
flag
.
String
(
"gas"
,
"1000000"
,
"gas amount"
)
gas
=
flag
.
String
(
"gas"
,
"1000000
000
"
,
"gas amount"
)
price
=
flag
.
String
(
"price"
,
"0"
,
"gas price"
)
price
=
flag
.
String
(
"price"
,
"0"
,
"gas price"
)
value
=
flag
.
String
(
"value"
,
"0"
,
"tx value"
)
value
=
flag
.
String
(
"value"
,
"0"
,
"tx value"
)
dump
=
flag
.
Bool
(
"dump"
,
false
,
"dump state after run"
)
dump
=
flag
.
Bool
(
"dump"
,
false
,
"dump state after run"
)
...
@@ -68,7 +68,8 @@ func main() {
...
@@ -68,7 +68,8 @@ func main() {
statedb
:=
state
.
New
(
trie
.
New
(
db
,
""
))
statedb
:=
state
.
New
(
trie
.
New
(
db
,
""
))
sender
:=
statedb
.
NewStateObject
([]
byte
(
"sender"
))
sender
:=
statedb
.
NewStateObject
([]
byte
(
"sender"
))
receiver
:=
statedb
.
NewStateObject
([]
byte
(
"receiver"
))
receiver
:=
statedb
.
NewStateObject
([]
byte
(
"receiver"
))
receiver
.
SetCode
([]
byte
(
*
code
))
//receiver.SetCode([]byte(*code))
receiver
.
SetCode
(
ethutil
.
Hex2Bytes
(
*
code
))
vmenv
:=
NewEnv
(
statedb
,
[]
byte
(
"evmuser"
),
ethutil
.
Big
(
*
value
))
vmenv
:=
NewEnv
(
statedb
,
[]
byte
(
"evmuser"
),
ethutil
.
Big
(
*
value
))
...
@@ -100,7 +101,7 @@ num gc: %d
...
@@ -100,7 +101,7 @@ num gc: %d
}
}
type
VMEnv
struct
{
type
VMEnv
struct
{
state
*
state
.
State
state
*
state
.
State
DB
block
*
types
.
Block
block
*
types
.
Block
transactor
[]
byte
transactor
[]
byte
...
@@ -111,7 +112,7 @@ type VMEnv struct {
...
@@ -111,7 +112,7 @@ type VMEnv struct {
time
int64
time
int64
}
}
func
NewEnv
(
state
*
state
.
State
,
transactor
[]
byte
,
value
*
big
.
Int
)
*
VMEnv
{
func
NewEnv
(
state
*
state
.
State
DB
,
transactor
[]
byte
,
value
*
big
.
Int
)
*
VMEnv
{
return
&
VMEnv
{
return
&
VMEnv
{
state
:
state
,
state
:
state
,
transactor
:
transactor
,
transactor
:
transactor
,
...
@@ -120,7 +121,7 @@ func NewEnv(state *state.State, transactor []byte, value *big.Int) *VMEnv {
...
@@ -120,7 +121,7 @@ func NewEnv(state *state.State, transactor []byte, value *big.Int) *VMEnv {
}
}
}
}
func
(
self
*
VMEnv
)
State
()
*
state
.
State
{
return
self
.
state
}
func
(
self
*
VMEnv
)
State
()
*
state
.
State
DB
{
return
self
.
state
}
func
(
self
*
VMEnv
)
Origin
()
[]
byte
{
return
self
.
transactor
}
func
(
self
*
VMEnv
)
Origin
()
[]
byte
{
return
self
.
transactor
}
func
(
self
*
VMEnv
)
BlockNumber
()
*
big
.
Int
{
return
ethutil
.
Big0
}
func
(
self
*
VMEnv
)
BlockNumber
()
*
big
.
Int
{
return
ethutil
.
Big0
}
func
(
self
*
VMEnv
)
PrevHash
()
[]
byte
{
return
make
([]
byte
,
32
)
}
func
(
self
*
VMEnv
)
PrevHash
()
[]
byte
{
return
make
([]
byte
,
32
)
}
...
@@ -130,7 +131,7 @@ func (self *VMEnv) Difficulty() *big.Int { return ethutil.Big1 }
...
@@ -130,7 +131,7 @@ func (self *VMEnv) Difficulty() *big.Int { return ethutil.Big1 }
func
(
self
*
VMEnv
)
BlockHash
()
[]
byte
{
return
make
([]
byte
,
32
)
}
func
(
self
*
VMEnv
)
BlockHash
()
[]
byte
{
return
make
([]
byte
,
32
)
}
func
(
self
*
VMEnv
)
Value
()
*
big
.
Int
{
return
self
.
value
}
func
(
self
*
VMEnv
)
Value
()
*
big
.
Int
{
return
self
.
value
}
func
(
self
*
VMEnv
)
GasLimit
()
*
big
.
Int
{
return
big
.
NewInt
(
1000000000
)
}
func
(
self
*
VMEnv
)
GasLimit
()
*
big
.
Int
{
return
big
.
NewInt
(
1000000000
)
}
func
(
self
*
VMEnv
)
Depth
()
int
{
return
self
.
depth
}
func
(
self
*
VMEnv
)
Depth
()
int
{
return
0
}
func
(
self
*
VMEnv
)
SetDepth
(
i
int
)
{
self
.
depth
=
i
}
func
(
self
*
VMEnv
)
SetDepth
(
i
int
)
{
self
.
depth
=
i
}
func
(
self
*
VMEnv
)
AddLog
(
log
*
state
.
Log
)
{
func
(
self
*
VMEnv
)
AddLog
(
log
*
state
.
Log
)
{
self
.
state
.
AddLog
(
log
)
self
.
state
.
AddLog
(
log
)
...
...
core/block_manager.go
View file @
bff5999e
...
@@ -152,7 +152,6 @@ done:
...
@@ -152,7 +152,6 @@ done:
st
:=
NewStateTransition
(
cb
,
tx
,
state
,
block
)
st
:=
NewStateTransition
(
cb
,
tx
,
state
,
block
)
err
=
st
.
TransitionState
()
err
=
st
.
TransitionState
()
if
err
!=
nil
{
if
err
!=
nil
{
statelogger
.
Infoln
(
err
)
switch
{
switch
{
case
IsNonceErr
(
err
)
:
case
IsNonceErr
(
err
)
:
err
=
nil
// ignore error
err
=
nil
// ignore error
...
...
vm/vm_debug.go
View file @
bff5999e
...
@@ -35,7 +35,7 @@ func NewDebugVm(env Environment) *DebugVm {
...
@@ -35,7 +35,7 @@ func NewDebugVm(env Environment) *DebugVm {
lt
=
LogTyDiff
lt
=
LogTyDiff
}
}
return
&
DebugVm
{
env
:
env
,
logTy
:
lt
,
Recoverable
:
tru
e
}
return
&
DebugVm
{
env
:
env
,
logTy
:
lt
,
Recoverable
:
fals
e
}
}
}
func
(
self
*
DebugVm
)
Run
(
me
,
caller
ClosureRef
,
code
[]
byte
,
value
,
gas
,
price
*
big
.
Int
,
callData
[]
byte
)
(
ret
[]
byte
,
err
error
)
{
func
(
self
*
DebugVm
)
Run
(
me
,
caller
ClosureRef
,
code
[]
byte
,
value
,
gas
,
price
*
big
.
Int
,
callData
[]
byte
)
(
ret
[]
byte
,
err
error
)
{
...
@@ -631,7 +631,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
...
@@ -631,7 +631,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
mem
.
Set
(
mOff
,
l
,
code
)
mem
.
Set
(
mOff
,
l
,
code
)
self
.
Printf
(
" => [%v, %v, %v] %x"
,
mOff
,
cOff
,
l
,
c
ode
[
cOff
:
cOff
+
l
])
self
.
Printf
(
" => [%v, %v, %v] %x"
,
mOff
,
cOff
,
l
,
c
allData
[
cOff
:
cOff
+
l
])
case
CODESIZE
,
EXTCODESIZE
:
case
CODESIZE
,
EXTCODESIZE
:
var
code
[]
byte
var
code
[]
byte
if
op
==
EXTCODESIZE
{
if
op
==
EXTCODESIZE
{
...
...
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