Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
b419e263
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b419e263
编写于
5月 26, 2015
作者:
O
obscuren
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
core/vm: Cleanups & SUB output fix. Closes #1096
上级
f7415c0b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
15 deletion
+3
-15
core/vm/vm.go
core/vm/vm.go
+3
-15
未找到文件。
core/vm/vm.go
浏览文件 @
b419e263
...
...
@@ -128,7 +128,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
mem
.
Resize
(
newMemSize
.
Uint64
())
switch
op
{
// 0x20 range
case
ADD
:
x
,
y
:=
stack
.
pop
(),
stack
.
pop
()
self
.
Printf
(
" %v + %v"
,
y
,
x
)
...
...
@@ -142,7 +141,7 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
base
)
case
SUB
:
x
,
y
:=
stack
.
pop
(),
stack
.
pop
()
self
.
Printf
(
" %v - %v"
,
y
,
x
)
self
.
Printf
(
" %v - %v"
,
x
,
y
)
base
.
Sub
(
x
,
y
)
...
...
@@ -268,9 +267,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
}
case
NOT
:
stack
.
push
(
U256
(
new
(
big
.
Int
)
.
Not
(
stack
.
pop
())))
//base.Sub(Pow256, stack.pop()).Sub(base, common.Big1)
//base = U256(base)
//stack.push(base)
case
LT
:
x
,
y
:=
stack
.
pop
(),
stack
.
pop
()
self
.
Printf
(
" %v < %v"
,
x
,
y
)
...
...
@@ -329,7 +325,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
common
.
BigTrue
)
}
// 0x10 range
case
AND
:
x
,
y
:=
stack
.
pop
(),
stack
.
pop
()
self
.
Printf
(
" %v & %v"
,
y
,
x
)
...
...
@@ -390,7 +385,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
base
)
// 0x20 range
case
SHA3
:
offset
,
size
:=
stack
.
pop
(),
stack
.
pop
()
data
:=
crypto
.
Sha3
(
mem
.
Get
(
offset
.
Int64
(),
size
.
Int64
()))
...
...
@@ -398,7 +392,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
common
.
BigD
(
data
))
self
.
Printf
(
" => (%v) %x"
,
size
,
data
)
// 0x30 range
case
ADDRESS
:
stack
.
push
(
common
.
Bytes2Big
(
context
.
Address
()
.
Bytes
()))
...
...
@@ -486,7 +479,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
self
.
Printf
(
" => %x"
,
context
.
Price
)
// 0x40 range
case
BLOCKHASH
:
num
:=
stack
.
pop
()
...
...
@@ -527,7 +519,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
self
.
env
.
GasLimit
())
// 0x50 range
case
PUSH1
,
PUSH2
,
PUSH3
,
PUSH4
,
PUSH5
,
PUSH6
,
PUSH7
,
PUSH8
,
PUSH9
,
PUSH10
,
PUSH11
,
PUSH12
,
PUSH13
,
PUSH14
,
PUSH15
,
PUSH16
,
PUSH17
,
PUSH18
,
PUSH19
,
PUSH20
,
PUSH21
,
PUSH22
,
PUSH23
,
PUSH24
,
PUSH25
,
PUSH26
,
PUSH27
,
PUSH28
,
PUSH29
,
PUSH30
,
PUSH31
,
PUSH32
:
a
:=
big
.
NewInt
(
int64
(
op
-
PUSH1
+
1
))
byts
:=
getData
(
code
,
new
(
big
.
Int
)
.
Add
(
pc
,
big
.
NewInt
(
1
)),
a
)
...
...
@@ -553,12 +544,11 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
topics
:=
make
([]
common
.
Hash
,
n
)
mStart
,
mSize
:=
stack
.
pop
(),
stack
.
pop
()
for
i
:=
0
;
i
<
n
;
i
++
{
topics
[
i
]
=
common
.
BigToHash
(
stack
.
pop
())
//common.LeftPadBytes(stack.pop().Bytes(), 32)
topics
[
i
]
=
common
.
BigToHash
(
stack
.
pop
())
}
data
:=
mem
.
Get
(
mStart
.
Int64
(),
mSize
.
Int64
())
log
:=
state
.
NewLog
(
context
.
Address
(),
topics
,
data
,
self
.
env
.
BlockNumber
()
.
Uint64
())
//log := &Log{context.Address(), topics, data, self.env.BlockNumber().Uint64()}
self
.
env
.
AddLog
(
log
)
self
.
Printf
(
" => %v"
,
log
)
...
...
@@ -568,7 +558,7 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
val
)
self
.
Printf
(
" => 0x%x"
,
val
.
Bytes
())
case
MSTORE
:
// Store the value at stack top-1 in to memory at location stack top
case
MSTORE
:
// pop value of the stack
mStart
,
val
:=
stack
.
pop
(),
stack
.
pop
()
mem
.
Set
(
mStart
.
Uint64
(),
32
,
common
.
BigToBytes
(
val
,
256
))
...
...
@@ -614,7 +604,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
case
JUMPDEST
:
case
PC
:
//stack.push(big.NewInt(int64(pc)))
stack
.
push
(
pc
)
case
MSIZE
:
stack
.
push
(
big
.
NewInt
(
int64
(
mem
.
Len
())))
...
...
@@ -622,7 +611,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
stack
.
push
(
context
.
Gas
)
self
.
Printf
(
" => %x"
,
context
.
Gas
)
// 0x60 range
case
CREATE
:
var
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录