Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
fb53a936
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,发现更多精彩内容 >>
提交
fb53a936
编写于
3月 08, 2015
作者:
F
Felix Lange
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
accounts: AccountManager -> Manager
上级
3750ec7b
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
37 addition
and
36 deletion
+37
-36
accounts/account_manager.go
accounts/account_manager.go
+13
-13
accounts/accounts_test.go
accounts/accounts_test.go
+2
-2
cmd/utils/flags.go
cmd/utils/flags.go
+2
-2
eth/backend.go
eth/backend.go
+17
-17
javascript/javascript_runtime.go
javascript/javascript_runtime.go
+1
-0
xeth/xeth.go
xeth/xeth.go
+2
-2
未找到文件。
accounts/account_manager.go
浏览文件 @
fb53a936
...
...
@@ -52,7 +52,7 @@ type Account struct {
Address
[]
byte
}
type
Account
Manager
struct
{
type
Manager
struct
{
keyStore
crypto
.
KeyStore2
unlocked
map
[
string
]
*
unlocked
unlockTime
time
.
Duration
...
...
@@ -66,8 +66,8 @@ type unlocked struct {
*
crypto
.
Key
}
func
New
AccountManager
(
keyStore
crypto
.
KeyStore2
,
unlockTime
time
.
Duration
)
*
Account
Manager
{
return
&
Account
Manager
{
func
New
Manager
(
keyStore
crypto
.
KeyStore2
,
unlockTime
time
.
Duration
)
*
Manager
{
return
&
Manager
{
keyStore
:
keyStore
,
unlocked
:
make
(
map
[
string
]
*
unlocked
),
unlockTime
:
unlockTime
,
...
...
@@ -75,19 +75,19 @@ func NewAccountManager(keyStore crypto.KeyStore2, unlockTime time.Duration) *Acc
}
// Coinbase returns the account address that mining rewards are sent to.
func
(
am
*
Account
Manager
)
Coinbase
()
(
addr
[]
byte
,
err
error
)
{
func
(
am
*
Manager
)
Coinbase
()
(
addr
[]
byte
,
err
error
)
{
// TODO: persist coinbase address on disk
return
am
.
firstAddr
()
}
// MainAccount returns the primary account used for transactions.
func
(
am
*
Account
Manager
)
Default
()
(
Account
,
error
)
{
func
(
am
*
Manager
)
Default
()
(
Account
,
error
)
{
// TODO: persist main account address on disk
addr
,
err
:=
am
.
firstAddr
()
return
Account
{
Address
:
addr
},
err
}
func
(
am
*
Account
Manager
)
firstAddr
()
([]
byte
,
error
)
{
func
(
am
*
Manager
)
firstAddr
()
([]
byte
,
error
)
{
addrs
,
err
:=
am
.
keyStore
.
GetKeyAddresses
()
if
err
!=
nil
{
return
nil
,
err
...
...
@@ -98,11 +98,11 @@ func (am *AccountManager) firstAddr() ([]byte, error) {
return
addrs
[
0
],
nil
}
func
(
am
*
Account
Manager
)
DeleteAccount
(
address
[]
byte
,
auth
string
)
error
{
func
(
am
*
Manager
)
DeleteAccount
(
address
[]
byte
,
auth
string
)
error
{
return
am
.
keyStore
.
DeleteKey
(
address
,
auth
)
}
func
(
am
*
Account
Manager
)
Sign
(
a
Account
,
toSign
[]
byte
)
(
signature
[]
byte
,
err
error
)
{
func
(
am
*
Manager
)
Sign
(
a
Account
,
toSign
[]
byte
)
(
signature
[]
byte
,
err
error
)
{
am
.
mutex
.
RLock
()
unlockedKey
,
found
:=
am
.
unlocked
[
string
(
a
.
Address
)]
am
.
mutex
.
RUnlock
()
...
...
@@ -113,7 +113,7 @@ func (am *AccountManager) Sign(a Account, toSign []byte) (signature []byte, err
return
signature
,
err
}
func
(
am
*
Account
Manager
)
SignLocked
(
a
Account
,
keyAuth
string
,
toSign
[]
byte
)
(
signature
[]
byte
,
err
error
)
{
func
(
am
*
Manager
)
SignLocked
(
a
Account
,
keyAuth
string
,
toSign
[]
byte
)
(
signature
[]
byte
,
err
error
)
{
key
,
err
:=
am
.
keyStore
.
GetKey
(
a
.
Address
,
keyAuth
)
if
err
!=
nil
{
return
nil
,
err
...
...
@@ -124,7 +124,7 @@ func (am *AccountManager) SignLocked(a Account, keyAuth string, toSign []byte) (
return
signature
,
err
}
func
(
am
*
Account
Manager
)
NewAccount
(
auth
string
)
(
Account
,
error
)
{
func
(
am
*
Manager
)
NewAccount
(
auth
string
)
(
Account
,
error
)
{
key
,
err
:=
am
.
keyStore
.
GenerateNewKey
(
crand
.
Reader
,
auth
)
if
err
!=
nil
{
return
Account
{},
err
...
...
@@ -132,7 +132,7 @@ func (am *AccountManager) NewAccount(auth string) (Account, error) {
return
Account
{
Address
:
key
.
Address
},
nil
}
func
(
am
*
Account
Manager
)
Accounts
()
([]
Account
,
error
)
{
func
(
am
*
Manager
)
Accounts
()
([]
Account
,
error
)
{
addresses
,
err
:=
am
.
keyStore
.
GetKeyAddresses
()
if
err
!=
nil
{
return
nil
,
err
...
...
@@ -148,7 +148,7 @@ func (am *AccountManager) Accounts() ([]Account, error) {
return
accounts
,
err
}
func
(
am
*
Account
Manager
)
addUnlocked
(
addr
[]
byte
,
key
*
crypto
.
Key
)
*
unlocked
{
func
(
am
*
Manager
)
addUnlocked
(
addr
[]
byte
,
key
*
crypto
.
Key
)
*
unlocked
{
u
:=
&
unlocked
{
addr
:
addr
,
abort
:
make
(
chan
struct
{}),
Key
:
key
}
am
.
mutex
.
Lock
()
prev
,
found
:=
am
.
unlocked
[
string
(
addr
)]
...
...
@@ -162,7 +162,7 @@ func (am *AccountManager) addUnlocked(addr []byte, key *crypto.Key) *unlocked {
return
u
}
func
(
am
*
Account
Manager
)
dropLater
(
u
*
unlocked
)
{
func
(
am
*
Manager
)
dropLater
(
u
*
unlocked
)
{
t
:=
time
.
NewTimer
(
am
.
unlockTime
)
defer
t
.
Stop
()
select
{
...
...
accounts/accounts_test.go
浏览文件 @
fb53a936
...
...
@@ -12,7 +12,7 @@ import (
func
TestAccountManager
(
t
*
testing
.
T
)
{
ks
:=
crypto
.
NewKeyStorePlain
(
ethutil
.
DefaultDataDir
()
+
"/testaccounts"
)
am
:=
New
Account
Manager
(
ks
,
100
*
time
.
Millisecond
)
am
:=
NewManager
(
ks
,
100
*
time
.
Millisecond
)
pass
:=
""
// not used but required by API
a1
,
err
:=
am
.
NewAccount
(
pass
)
toSign
:=
randentropy
.
GetEntropyCSPRNG
(
32
)
...
...
@@ -38,7 +38,7 @@ func TestAccountManager(t *testing.T) {
func
TestAccountManagerLocking
(
t
*
testing
.
T
)
{
ks
:=
crypto
.
NewKeyStorePassphrase
(
ethutil
.
DefaultDataDir
()
+
"/testaccounts"
)
am
:=
New
Account
Manager
(
ks
,
200
*
time
.
Millisecond
)
am
:=
NewManager
(
ks
,
200
*
time
.
Millisecond
)
pass
:=
"foo"
a1
,
err
:=
am
.
NewAccount
(
pass
)
toSign
:=
randentropy
.
GetEntropyCSPRNG
(
32
)
...
...
cmd/utils/flags.go
浏览文件 @
fb53a936
...
...
@@ -167,8 +167,8 @@ func GetChain(ctx *cli.Context) (*core.ChainManager, ethutil.Database) {
return
core
.
NewChainManager
(
db
,
new
(
event
.
TypeMux
)),
db
}
func
GetAccountManager
(
ctx
*
cli
.
Context
)
*
accounts
.
Account
Manager
{
func
GetAccountManager
(
ctx
*
cli
.
Context
)
*
accounts
.
Manager
{
dataDir
:=
ctx
.
GlobalString
(
DataDirFlag
.
Name
)
ks
:=
crypto
.
NewKeyStorePassphrase
(
path
.
Join
(
dataDir
,
"keys"
))
return
accounts
.
New
Account
Manager
(
ks
,
300
*
time
.
Second
)
return
accounts
.
NewManager
(
ks
,
300
*
time
.
Second
)
}
eth/backend.go
浏览文件 @
fb53a936
...
...
@@ -59,7 +59,7 @@ type Config struct {
Dial
bool
MinerThreads
int
AccountManager
*
accounts
.
Account
Manager
AccountManager
*
accounts
.
Manager
}
func
(
cfg
*
Config
)
parseBootNodes
()
[]
*
discover
.
Node
{
...
...
@@ -115,7 +115,7 @@ type Ethereum struct {
txPool
*
core
.
TxPool
chainManager
*
core
.
ChainManager
blockPool
*
blockpool
.
BlockPool
accountManager
*
accounts
.
Account
Manager
accountManager
*
accounts
.
Manager
whisper
*
whisper
.
Whisper
net
*
p2p
.
Server
...
...
@@ -204,21 +204,21 @@ func New(config *Config) (*Ethereum, error) {
return
eth
,
nil
}
func
(
s
*
Ethereum
)
Logger
()
logger
.
LogSystem
{
return
s
.
logger
}
func
(
s
*
Ethereum
)
Name
()
string
{
return
s
.
net
.
Name
}
func
(
s
*
Ethereum
)
AccountManager
()
*
accounts
.
AccountManager
{
return
s
.
accountManager
}
func
(
s
*
Ethereum
)
ChainManager
()
*
core
.
ChainManager
{
return
s
.
chainManager
}
func
(
s
*
Ethereum
)
BlockProcessor
()
*
core
.
BlockProcessor
{
return
s
.
blockProcessor
}
func
(
s
*
Ethereum
)
TxPool
()
*
core
.
TxPool
{
return
s
.
txPool
}
func
(
s
*
Ethereum
)
BlockPool
()
*
blockpool
.
BlockPool
{
return
s
.
blockPool
}
func
(
s
*
Ethereum
)
Whisper
()
*
whisper
.
Whisper
{
return
s
.
whisper
}
func
(
s
*
Ethereum
)
EventMux
()
*
event
.
TypeMux
{
return
s
.
eventMux
}
func
(
s
*
Ethereum
)
Db
()
ethutil
.
Database
{
return
s
.
db
}
func
(
s
*
Ethereum
)
Miner
()
*
miner
.
Miner
{
return
s
.
miner
}
func
(
s
*
Ethereum
)
IsListening
()
bool
{
return
true
}
// Always listening
func
(
s
*
Ethereum
)
PeerCount
()
int
{
return
s
.
net
.
PeerCount
()
}
func
(
s
*
Ethereum
)
Peers
()
[]
*
p2p
.
Peer
{
return
s
.
net
.
Peers
()
}
func
(
s
*
Ethereum
)
MaxPeers
()
int
{
return
s
.
net
.
MaxPeers
}
func
(
s
*
Ethereum
)
Logger
()
logger
.
LogSystem
{
return
s
.
logger
}
func
(
s
*
Ethereum
)
Name
()
string
{
return
s
.
net
.
Name
}
func
(
s
*
Ethereum
)
AccountManager
()
*
accounts
.
Manager
{
return
s
.
accountManager
}
func
(
s
*
Ethereum
)
ChainManager
()
*
core
.
ChainManager
{
return
s
.
chainManager
}
func
(
s
*
Ethereum
)
BlockProcessor
()
*
core
.
BlockProcessor
{
return
s
.
blockProcessor
}
func
(
s
*
Ethereum
)
TxPool
()
*
core
.
TxPool
{
return
s
.
txPool
}
func
(
s
*
Ethereum
)
BlockPool
()
*
blockpool
.
BlockPool
{
return
s
.
blockPool
}
func
(
s
*
Ethereum
)
Whisper
()
*
whisper
.
Whisper
{
return
s
.
whisper
}
func
(
s
*
Ethereum
)
EventMux
()
*
event
.
TypeMux
{
return
s
.
eventMux
}
func
(
s
*
Ethereum
)
Db
()
ethutil
.
Database
{
return
s
.
db
}
func
(
s
*
Ethereum
)
Miner
()
*
miner
.
Miner
{
return
s
.
miner
}
func
(
s
*
Ethereum
)
IsListening
()
bool
{
return
true
}
// Always listening
func
(
s
*
Ethereum
)
PeerCount
()
int
{
return
s
.
net
.
PeerCount
()
}
func
(
s
*
Ethereum
)
Peers
()
[]
*
p2p
.
Peer
{
return
s
.
net
.
Peers
()
}
func
(
s
*
Ethereum
)
MaxPeers
()
int
{
return
s
.
net
.
MaxPeers
}
// Start the ethereum
func
(
s
*
Ethereum
)
Start
()
error
{
...
...
javascript/javascript_runtime.go
浏览文件 @
fb53a936
...
...
@@ -6,6 +6,7 @@ import (
"os"
"path"
"path/filepath"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/xeth"
"github.com/obscuren/otto"
...
...
xeth/xeth.go
浏览文件 @
fb53a936
...
...
@@ -27,7 +27,7 @@ var pipelogger = logger.NewLogger("XETH")
type
Backend
interface
{
BlockProcessor
()
*
core
.
BlockProcessor
ChainManager
()
*
core
.
ChainManager
AccountManager
()
*
accounts
.
Account
Manager
AccountManager
()
*
accounts
.
Manager
TxPool
()
*
core
.
TxPool
PeerCount
()
int
IsListening
()
bool
...
...
@@ -42,7 +42,7 @@ type XEth struct {
eth
Backend
blockProcessor
*
core
.
BlockProcessor
chainManager
*
core
.
ChainManager
accountManager
*
accounts
.
Account
Manager
accountManager
*
accounts
.
Manager
state
*
State
whisper
*
Whisper
miner
*
miner
.
Miner
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录