Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
7a2a63f3
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,发现更多精彩内容 >>
提交
7a2a63f3
编写于
7月 01, 2014
作者:
O
obscuren
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added utility wrapper for Ethereum Config contract
Note, this utility function has to move elsewhere
上级
28ef7d22
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
44 addition
and
7 deletion
+44
-7
ethpub/pub.go
ethpub/pub.go
+44
-7
未找到文件。
ethpub/pub.go
浏览文件 @
7a2a63f3
...
...
@@ -14,6 +14,31 @@ import (
var
logger
=
ethlog
.
NewLogger
(
"PUB"
)
// TODO this has to move elsewhere
var
cnfCtr
=
ethutil
.
Hex2Bytes
(
"661005d2720d855f1d9976f88bb10c1a3398c77f"
)
type
helper
struct
{
sm
*
ethchain
.
StateManager
}
func
EthereumConfig
(
stateManager
*
ethchain
.
StateManager
)
helper
{
return
helper
{
stateManager
}
}
func
(
self
helper
)
obj
()
*
ethchain
.
StateObject
{
return
self
.
sm
.
CurrentState
()
.
GetStateObject
(
cnfCtr
)
}
func
(
self
helper
)
NameReg
()
*
ethchain
.
StateObject
{
if
self
.
obj
()
!=
nil
{
addr
:=
self
.
obj
()
.
GetStorage
(
big
.
NewInt
(
0
))
if
len
(
addr
.
Bytes
())
>
0
{
return
self
.
sm
.
CurrentState
()
.
GetStateObject
(
addr
.
Bytes
())
}
}
return
nil
}
type
PEthereum
struct
{
manager
ethchain
.
EthManager
stateManager
*
ethchain
.
StateManager
...
...
@@ -141,19 +166,31 @@ func (lib *PEthereum) Create(key, valueStr, gasStr, gasPriceStr, script string)
return
lib
.
createTx
(
key
,
""
,
valueStr
,
gasStr
,
gasPriceStr
,
script
)
}
var
namereg
=
ethutil
.
Hex2Bytes
(
"bb5f186604d057c1c5240ca2ae0f6430138ac010"
)
func
GetAddressFromNameReg
(
stateManager
*
ethchain
.
StateManager
,
name
string
)
[]
byte
{
recp
:=
new
(
big
.
Int
)
.
SetBytes
([]
byte
(
name
))
object
:=
stateManager
.
CurrentState
()
.
GetStateObject
(
namereg
)
if
object
!=
nil
{
reg
:=
object
.
GetStorage
(
recp
)
nameReg
:=
EthereumConfig
(
stateManager
)
.
NameReg
()
if
nameReg
!=
nil
{
addr
:=
ethutil
.
RightPadBytes
([]
byte
(
name
),
32
)
reg
:=
nameReg
.
GetStorage
(
ethutil
.
BigD
(
addr
))
return
reg
.
Bytes
()
}
return
nil
/*
recp := new(big.Int).SetBytes([]byte(name))
object := stateManager.CurrentState().GetStateObject(namereg)
if object != nil {
reg := object.GetStorage(recp)
return reg.Bytes()
}
return nil
*/
}
func
(
lib
*
PEthereum
)
createTx
(
key
,
recipient
,
valueStr
,
gasStr
,
gasPriceStr
,
scriptStr
string
)
(
*
PReceipt
,
error
)
{
var
hash
[]
byte
var
contractCreation
bool
...
...
@@ -171,7 +208,7 @@ func (lib *PEthereum) createTx(key, recipient, valueStr, gasStr, gasPriceStr, sc
var
keyPair
*
ethcrypto
.
KeyPair
var
err
error
if
key
[
0
:
2
]
==
"0x"
{
if
ethutil
.
IsHex
(
key
)
{
keyPair
,
err
=
ethcrypto
.
NewKeyPairFromSec
([]
byte
(
ethutil
.
Hex2Bytes
(
key
[
2
:
])))
}
else
{
keyPair
,
err
=
ethcrypto
.
NewKeyPairFromSec
([]
byte
(
ethutil
.
Hex2Bytes
(
key
)))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录