Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
60293820
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 搜索 >>
未验证
提交
60293820
编写于
5月 08, 2017
作者:
P
Péter Szilágyi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
core: fix processing regression during receipt import
上级
dd483d7d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
8 deletion
+5
-8
core/blockchain.go
core/blockchain.go
+4
-3
core/state_transition.go
core/state_transition.go
+1
-5
未找到文件。
core/blockchain.go
浏览文件 @
60293820
...
...
@@ -665,10 +665,11 @@ func SetReceiptsData(config *params.ChainConfig, block *types.Block, receipts ty
// The transaction hash can be retrieved from the transaction itself
receipts
[
j
]
.
TxHash
=
transactions
[
j
]
.
Hash
()
tx
,
_
:=
transactions
[
j
]
.
AsMessage
(
signer
)
// The contract address can be derived from the transaction itself
if
MessageCreatesContract
(
tx
)
{
receipts
[
j
]
.
ContractAddress
=
crypto
.
CreateAddress
(
tx
.
From
(),
tx
.
Nonce
())
if
transactions
[
j
]
.
To
()
==
nil
{
// Deriving the signer is expensive, only do if it's actually needed
from
,
_
:=
types
.
Sender
(
signer
,
transactions
[
j
])
receipts
[
j
]
.
ContractAddress
=
crypto
.
CreateAddress
(
from
,
transactions
[
j
]
.
Nonce
())
}
// The used gas can be calculated based on previous receipts
if
j
==
0
{
...
...
core/state_transition.go
浏览文件 @
60293820
...
...
@@ -78,10 +78,6 @@ type Message interface {
Data
()
[]
byte
}
func
MessageCreatesContract
(
msg
Message
)
bool
{
return
msg
.
To
()
==
nil
}
// IntrinsicGas computes the 'intrinsic gas' for a message
// with the given data.
//
...
...
@@ -220,7 +216,7 @@ func (self *StateTransition) TransitionDb() (ret []byte, requiredGas, usedGas *b
sender
:=
self
.
from
()
// err checked in preCheck
homestead
:=
self
.
evm
.
ChainConfig
()
.
IsHomestead
(
self
.
evm
.
BlockNumber
)
contractCreation
:=
MessageCreatesContract
(
msg
)
contractCreation
:=
msg
.
To
()
==
nil
// Pay intrinsic gas
// TODO convert to uint64
intrinsicGas
:=
IntrinsicGas
(
self
.
data
,
contractCreation
,
homestead
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录