Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
6c670eff
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,体验更适合开发者的 AI 搜索 >>
提交
6c670eff
编写于
3月 31, 2016
作者:
P
Péter Szilágyi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
eth: manually convert errors to strings on the trace API (json cannot)
上级
798e4fb4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
11 deletion
+11
-11
eth/api.go
eth/api.go
+11
-11
未找到文件。
eth/api.go
浏览文件 @
6c670eff
...
...
@@ -1513,9 +1513,9 @@ func NewPrivateDebugAPI(eth *Ethereum) *PrivateDebugAPI {
// BlockTraceResults is the returned value when replaying a block to check for
// consensus results and full VM trace logs for all included transactions.
type
BlockTraceResult
struct
{
Validated
bool
`json:
"validated"`
Validated
bool
`json:"validated"`
StructLogs
[]
structLogRes
`json:"structLogs"`
Error
error
`json:"error"`
Error
string
`json:"error"`
}
// TraceBlock processes the given block's RLP but does not import the block in to
...
...
@@ -1524,14 +1524,14 @@ func (api *PrivateDebugAPI) TraceBlock(blockRlp []byte, config vm.Config) BlockT
var
block
types
.
Block
err
:=
rlp
.
Decode
(
bytes
.
NewReader
(
blockRlp
),
&
block
)
if
err
!=
nil
{
return
BlockTraceResult
{
Error
:
fmt
.
Error
f
(
"could not decode block: %v"
,
err
)}
return
BlockTraceResult
{
Error
:
fmt
.
Sprint
f
(
"could not decode block: %v"
,
err
)}
}
validated
,
logs
,
err
:=
api
.
traceBlock
(
&
block
,
config
)
return
BlockTraceResult
{
Validated
:
validated
,
StructLogs
:
formatLogs
(
logs
),
Error
:
err
,
Error
:
err
.
Error
()
,
}
}
...
...
@@ -1540,7 +1540,7 @@ func (api *PrivateDebugAPI) TraceBlock(blockRlp []byte, config vm.Config) BlockT
func
(
api
*
PrivateDebugAPI
)
TraceBlockFromFile
(
file
string
,
config
vm
.
Config
)
BlockTraceResult
{
blockRlp
,
err
:=
ioutil
.
ReadFile
(
file
)
if
err
!=
nil
{
return
BlockTraceResult
{
Error
:
fmt
.
Error
f
(
"could not read file: %v"
,
err
)}
return
BlockTraceResult
{
Error
:
fmt
.
Sprint
f
(
"could not read file: %v"
,
err
)}
}
return
api
.
TraceBlock
(
blockRlp
,
config
)
}
...
...
@@ -1550,14 +1550,14 @@ func (api *PrivateDebugAPI) TraceBlockByNumber(number uint64, config vm.Config)
// Fetch the block that we aim to reprocess
block
:=
api
.
eth
.
BlockChain
()
.
GetBlockByNumber
(
number
)
if
block
==
nil
{
return
BlockTraceResult
{
Error
:
fmt
.
Error
f
(
"block #%d not found"
,
number
)}
return
BlockTraceResult
{
Error
:
fmt
.
Sprint
f
(
"block #%d not found"
,
number
)}
}
validated
,
logs
,
err
:=
api
.
traceBlock
(
block
,
config
)
return
BlockTraceResult
{
Validated
:
validated
,
StructLogs
:
formatLogs
(
logs
),
Error
:
err
,
Error
:
err
.
Error
()
,
}
}
...
...
@@ -1566,14 +1566,14 @@ func (api *PrivateDebugAPI) TraceBlockByHash(hash common.Hash, config vm.Config)
// Fetch the block that we aim to reprocess
block
:=
api
.
eth
.
BlockChain
()
.
GetBlock
(
hash
)
if
block
==
nil
{
return
BlockTraceResult
{
Error
:
fmt
.
Error
f
(
"block #%x not found"
,
hash
)}
return
BlockTraceResult
{
Error
:
fmt
.
Sprint
f
(
"block #%x not found"
,
hash
)}
}
validated
,
logs
,
err
:=
api
.
traceBlock
(
block
,
config
)
return
BlockTraceResult
{
Validated
:
validated
,
StructLogs
:
formatLogs
(
logs
),
Error
:
err
,
Error
:
err
.
Error
()
,
}
}
...
...
@@ -1641,7 +1641,7 @@ type structLogRes struct {
Gas
*
big
.
Int
`json:"gas"`
GasCost
*
big
.
Int
`json:"gasCost"`
Depth
int
`json:"depth"`
Error
error
`json:"error"`
Error
string
`json:"error"`
Stack
[]
string
`json:"stack"`
Memory
[]
string
`json:"memory"`
Storage
map
[
string
]
string
`json:"storage"`
...
...
@@ -1666,7 +1666,7 @@ func formatLogs(structLogs []vm.StructLog) []structLogRes {
Gas
:
trace
.
Gas
,
GasCost
:
trace
.
GasCost
,
Depth
:
trace
.
Depth
,
Error
:
trace
.
Err
,
Error
:
trace
.
Err
.
Error
()
,
Stack
:
make
([]
string
,
len
(
trace
.
Stack
)),
Storage
:
make
(
map
[
string
]
string
),
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录