Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
99199335
Commit
99199335
authored
Mar 14, 2015
by
Maran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DRY up the use of fromHex and put it in ethutil
parent
b927c294
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
75 additions
and
90 deletions
+75
-90
common.go
ethutil/common.go
+13
-0
common_test.go
ethutil/common_test.go
+21
-0
api.go
rpc/api.go
+7
-7
util.go
rpc/util.go
+0
-13
util_test.go
rpc/util_test.go
+0
-25
whisper.go
ui/qt/qwhisper/whisper.go
+6
-12
state.go
xeth/state.go
+7
-4
types.go
xeth/types.go
+1
-10
whisper.go
xeth/whisper.go
+7
-6
xeth.go
xeth/xeth.go
+13
-13
No files found.
ethutil/common.go
View file @
99199335
...
...
@@ -64,6 +64,19 @@ func DefaultDataDir() string {
return
path
.
Join
(
usr
.
HomeDir
,
".ethereum"
)
}
}
func
FromHex
(
s
string
)
[]
byte
{
if
len
(
s
)
>
1
{
if
s
[
0
:
2
]
==
"0x"
{
s
=
s
[
2
:
]
}
if
len
(
s
)
%
2
==
1
{
s
=
"0"
+
s
}
return
Hex2Bytes
(
s
)
}
return
nil
}
func
IsWindows
()
bool
{
return
runtime
.
GOOS
==
"windows"
}
...
...
ethutil/common_test.go
View file @
99199335
package
ethutil
import
(
"bytes"
"math/big"
"os"
"testing"
checker
"gopkg.in/check.v1"
)
...
...
@@ -66,3 +68,22 @@ func (s *CommonSuite) TestLarge(c *checker.C) {
c
.
Assert
(
adalarge
,
checker
.
Equals
,
"10000E7 Einstein"
)
c
.
Assert
(
weilarge
,
checker
.
Equals
,
"100 Babbage"
)
}
//fromHex
func
TestFromHex
(
t
*
testing
.
T
)
{
input
:=
"0x01"
expected
:=
[]
byte
{
1
}
result
:=
FromHex
(
input
)
if
bytes
.
Compare
(
expected
,
result
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
result
)
}
}
func
TestFromHexOddLength
(
t
*
testing
.
T
)
{
input
:=
"0x1"
expected
:=
[]
byte
{
1
}
result
:=
FromHex
(
input
)
if
bytes
.
Compare
(
expected
,
result
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
result
)
}
}
rpc/api.go
View file @
99199335
...
...
@@ -241,7 +241,7 @@ func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) (err error)
// p.register[args.From] = append(p.register[args.From], args)
//} else {
/*
account := accounts.Get(
f
romHex(args.From))
account := accounts.Get(
ethutil.F
romHex(args.From))
if account != nil {
if account.Unlocked() {
if !unlockAccount(account) {
...
...
@@ -249,7 +249,7 @@ func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) (err error)
}
}
result, _ := account.Transact(
fromHex(args.To), fromHex(args.Value), fromHex(args.Gas), fromHex(args.GasPrice), f
romHex(args.Data))
result, _ := account.Transact(
ethutil.FromHex(args.To), ethutil.FromHex(args.Value), ethutil.FromHex(args.Gas), ethutil.FromHex(args.GasPrice), ethutil.F
romHex(args.Data))
if len(result) > 0 {
*reply = toHex(result)
}
...
...
@@ -480,7 +480,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
if
err
:=
json
.
Unmarshal
(
req
.
Params
,
&
args
);
err
!=
nil
{
return
err
}
*
reply
=
toHex
(
crypto
.
Sha3
(
f
romHex
(
args
.
Data
)))
*
reply
=
toHex
(
crypto
.
Sha3
(
ethutil
.
F
romHex
(
args
.
Data
)))
case
"web3_clientVersion"
:
*
reply
=
p
.
xeth
()
.
Backend
()
.
Version
()
case
"net_version"
:
...
...
@@ -815,12 +815,12 @@ func toFilterOptions(options *FilterOptions) core.FilterOptions {
// Convert optional address slice/string to byte slice
if
str
,
ok
:=
options
.
Address
.
(
string
);
ok
{
opts
.
Address
=
[][]
byte
{
f
romHex
(
str
)}
opts
.
Address
=
[][]
byte
{
ethutil
.
F
romHex
(
str
)}
}
else
if
slice
,
ok
:=
options
.
Address
.
([]
interface
{});
ok
{
bslice
:=
make
([][]
byte
,
len
(
slice
))
for
i
,
addr
:=
range
slice
{
if
saddr
,
ok
:=
addr
.
(
string
);
ok
{
bslice
[
i
]
=
f
romHex
(
saddr
)
bslice
[
i
]
=
ethutil
.
F
romHex
(
saddr
)
}
}
opts
.
Address
=
bslice
...
...
@@ -834,11 +834,11 @@ func toFilterOptions(options *FilterOptions) core.FilterOptions {
if
slice
,
ok
:=
topicDat
.
([]
interface
{});
ok
{
topics
[
i
]
=
make
([][]
byte
,
len
(
slice
))
for
j
,
topic
:=
range
slice
{
topics
[
i
][
j
]
=
f
romHex
(
topic
.
(
string
))
topics
[
i
][
j
]
=
ethutil
.
F
romHex
(
topic
.
(
string
))
}
}
else
if
str
,
ok
:=
topicDat
.
(
string
);
ok
{
topics
[
i
]
=
make
([][]
byte
,
1
)
topics
[
i
][
0
]
=
f
romHex
(
str
)
topics
[
i
][
0
]
=
ethutil
.
F
romHex
(
str
)
}
}
opts
.
Topics
=
topics
...
...
rpc/util.go
View file @
99199335
...
...
@@ -128,19 +128,6 @@ func toHex(b []byte) string {
return
"0x"
+
hex
}
func
fromHex
(
s
string
)
[]
byte
{
if
len
(
s
)
>
1
{
if
s
[
0
:
2
]
==
"0x"
{
s
=
s
[
2
:
]
}
if
len
(
s
)
%
2
==
1
{
s
=
"0"
+
s
}
return
ethutil
.
Hex2Bytes
(
s
)
}
return
nil
}
func
i2hex
(
n
int
)
string
{
return
toHex
(
big
.
NewInt
(
int64
(
n
))
.
Bytes
())
}
...
...
rpc/util_test.go
deleted
100644 → 0
View file @
b927c294
package
rpc
import
(
"bytes"
"testing"
)
//fromHex
func
TestFromHex
(
t
*
testing
.
T
)
{
input
:=
"0x01"
expected
:=
[]
byte
{
1
}
result
:=
fromHex
(
input
)
if
bytes
.
Compare
(
expected
,
result
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
result
)
}
}
func
TestFromHexOddLength
(
t
*
testing
.
T
)
{
input
:=
"0x1"
expected
:=
[]
byte
{
1
}
result
:=
fromHex
(
input
)
if
bytes
.
Compare
(
expected
,
result
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
result
)
}
}
ui/qt/qwhisper/whisper.go
View file @
99199335
...
...
@@ -13,12 +13,6 @@ import (
var
qlogger
=
logger
.
NewLogger
(
"QSHH"
)
func
fromHex
(
s
string
)
[]
byte
{
if
len
(
s
)
>
1
{
return
ethutil
.
Hex2Bytes
(
s
[
2
:
])
}
return
nil
}
func
toHex
(
b
[]
byte
)
string
{
return
"0x"
+
ethutil
.
Bytes2Hex
(
b
)
}
type
Whisper
struct
{
...
...
@@ -39,15 +33,15 @@ func (self *Whisper) SetView(view qml.Object) {
func
(
self
*
Whisper
)
Post
(
payload
[]
string
,
to
,
from
string
,
topics
[]
string
,
priority
,
ttl
uint32
)
{
var
data
[]
byte
for
_
,
d
:=
range
payload
{
data
=
append
(
data
,
f
romHex
(
d
)
...
)
data
=
append
(
data
,
ethutil
.
F
romHex
(
d
)
...
)
}
pk
:=
crypto
.
ToECDSAPub
(
f
romHex
(
from
))
pk
:=
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
from
))
if
key
:=
self
.
Whisper
.
GetIdentity
(
pk
);
key
!=
nil
{
msg
:=
whisper
.
NewMessage
(
data
)
envelope
,
err
:=
msg
.
Seal
(
time
.
Duration
(
priority
*
100000
),
whisper
.
Opts
{
Ttl
:
time
.
Duration
(
ttl
)
*
time
.
Second
,
To
:
crypto
.
ToECDSAPub
(
f
romHex
(
to
)),
To
:
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
to
)),
From
:
key
,
Topics
:
whisper
.
TopicsFromString
(
topics
...
),
})
...
...
@@ -76,7 +70,7 @@ func (self *Whisper) NewIdentity() string {
}
func
(
self
*
Whisper
)
HasIdentity
(
key
string
)
bool
{
return
self
.
Whisper
.
HasIdentity
(
crypto
.
ToECDSAPub
(
f
romHex
(
key
)))
return
self
.
Whisper
.
HasIdentity
(
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
key
)))
}
func
(
self
*
Whisper
)
Watch
(
opts
map
[
string
]
interface
{},
view
*
qml
.
Common
)
int
{
...
...
@@ -106,10 +100,10 @@ func (self *Whisper) Messages(id int) (messages *ethutil.List) {
func
filterFromMap
(
opts
map
[
string
]
interface
{})
(
f
whisper
.
Filter
)
{
if
to
,
ok
:=
opts
[
"to"
]
.
(
string
);
ok
{
f
.
To
=
crypto
.
ToECDSAPub
(
f
romHex
(
to
))
f
.
To
=
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
to
))
}
if
from
,
ok
:=
opts
[
"from"
]
.
(
string
);
ok
{
f
.
From
=
crypto
.
ToECDSAPub
(
f
romHex
(
from
))
f
.
From
=
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
from
))
}
if
topicList
,
ok
:=
opts
[
"topics"
]
.
(
*
qml
.
List
);
ok
{
var
topics
[]
string
...
...
xeth/state.go
View file @
99199335
package
xeth
import
"github.com/ethereum/go-ethereum/state"
import
(
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/state"
)
type
State
struct
{
xeth
*
XEth
...
...
@@ -16,7 +19,7 @@ func (self *State) State() *state.StateDB {
}
func
(
self
*
State
)
Get
(
addr
string
)
*
Object
{
return
&
Object
{
self
.
state
.
GetStateObject
(
f
romHex
(
addr
))}
return
&
Object
{
self
.
state
.
GetStateObject
(
ethutil
.
F
romHex
(
addr
))}
}
func
(
self
*
State
)
SafeGet
(
addr
string
)
*
Object
{
...
...
@@ -24,9 +27,9 @@ func (self *State) SafeGet(addr string) *Object {
}
func
(
self
*
State
)
safeGet
(
addr
string
)
*
state
.
StateObject
{
object
:=
self
.
state
.
GetStateObject
(
f
romHex
(
addr
))
object
:=
self
.
state
.
GetStateObject
(
ethutil
.
F
romHex
(
addr
))
if
object
==
nil
{
object
=
state
.
NewStateObject
(
f
romHex
(
addr
),
self
.
xeth
.
eth
.
StateDb
())
object
=
state
.
NewStateObject
(
ethutil
.
F
romHex
(
addr
),
self
.
xeth
.
eth
.
StateDb
())
}
return
object
...
...
xeth/types.go
View file @
99199335
...
...
@@ -17,15 +17,6 @@ import (
func
toHex
(
b
[]
byte
)
string
{
return
"0x"
+
ethutil
.
Bytes2Hex
(
b
)
}
func
fromHex
(
s
string
)
[]
byte
{
if
len
(
s
)
>
1
{
if
s
[
0
:
2
]
==
"0x"
{
s
=
s
[
2
:
]
}
return
ethutil
.
Hex2Bytes
(
s
)
}
return
nil
}
type
Object
struct
{
*
state
.
StateObject
...
...
@@ -123,7 +114,7 @@ func (self *Block) ToString() string {
}
func
(
self
*
Block
)
GetTransaction
(
hash
string
)
*
Transaction
{
tx
:=
self
.
ref
.
Transaction
(
f
romHex
(
hash
))
tx
:=
self
.
ref
.
Transaction
(
ethutil
.
F
romHex
(
hash
))
if
tx
==
nil
{
return
nil
}
...
...
xeth/whisper.go
View file @
99199335
...
...
@@ -5,6 +5,7 @@ import (
"time"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/whisper"
)
...
...
@@ -28,12 +29,12 @@ func (self *Whisper) Post(payload string, to, from string, topics []string, prio
ttl
=
100
}
pk
:=
crypto
.
ToECDSAPub
(
f
romHex
(
from
))
pk
:=
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
from
))
if
key
:=
self
.
Whisper
.
GetIdentity
(
pk
);
key
!=
nil
||
len
(
from
)
==
0
{
msg
:=
whisper
.
NewMessage
(
f
romHex
(
payload
))
msg
:=
whisper
.
NewMessage
(
ethutil
.
F
romHex
(
payload
))
envelope
,
err
:=
msg
.
Seal
(
time
.
Duration
(
priority
*
100000
),
whisper
.
Opts
{
Ttl
:
time
.
Duration
(
ttl
)
*
time
.
Second
,
To
:
crypto
.
ToECDSAPub
(
f
romHex
(
to
)),
To
:
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
to
)),
From
:
key
,
Topics
:
whisper
.
TopicsFromString
(
topics
...
),
})
...
...
@@ -59,13 +60,13 @@ func (self *Whisper) NewIdentity() string {
}
func
(
self
*
Whisper
)
HasIdentity
(
key
string
)
bool
{
return
self
.
Whisper
.
HasIdentity
(
crypto
.
ToECDSAPub
(
f
romHex
(
key
)))
return
self
.
Whisper
.
HasIdentity
(
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
key
)))
}
func
(
self
*
Whisper
)
Watch
(
opts
*
Options
)
int
{
filter
:=
whisper
.
Filter
{
To
:
crypto
.
ToECDSAPub
(
f
romHex
(
opts
.
To
)),
From
:
crypto
.
ToECDSAPub
(
f
romHex
(
opts
.
From
)),
To
:
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
opts
.
To
)),
From
:
crypto
.
ToECDSAPub
(
ethutil
.
F
romHex
(
opts
.
From
)),
Topics
:
whisper
.
TopicsFromString
(
opts
.
Topics
...
),
}
...
...
xeth/xeth.go
View file @
99199335
...
...
@@ -116,21 +116,21 @@ func (self *XEth) State() *State { return self.state }
func
(
self
*
XEth
)
Whisper
()
*
Whisper
{
return
self
.
whisper
}
func
(
self
*
XEth
)
BlockByHash
(
strHash
string
)
*
Block
{
hash
:=
f
romHex
(
strHash
)
hash
:=
ethutil
.
F
romHex
(
strHash
)
block
:=
self
.
chainManager
.
GetBlock
(
hash
)
return
NewBlock
(
block
)
}
func
(
self
*
XEth
)
EthBlockByHash
(
strHash
string
)
*
types
.
Block
{
hash
:=
f
romHex
(
strHash
)
hash
:=
ethutil
.
F
romHex
(
strHash
)
block
:=
self
.
chainManager
.
GetBlock
(
hash
)
return
block
}
func
(
self
*
XEth
)
EthTransactionByHash
(
hash
string
)
*
types
.
Transaction
{
data
,
_
:=
self
.
eth
.
ExtraDb
()
.
Get
(
f
romHex
(
hash
))
data
,
_
:=
self
.
eth
.
ExtraDb
()
.
Get
(
ethutil
.
F
romHex
(
hash
))
if
len
(
data
)
!=
0
{
return
types
.
NewTransactionFromBytes
(
data
)
}
...
...
@@ -233,7 +233,7 @@ func (self *XEth) IsContract(address string) bool {
}
func
(
self
*
XEth
)
SecretToAddress
(
key
string
)
string
{
pair
,
err
:=
crypto
.
NewKeyPairFromSec
(
f
romHex
(
key
))
pair
,
err
:=
crypto
.
NewKeyPairFromSec
(
ethutil
.
F
romHex
(
key
))
if
err
!=
nil
{
return
""
}
...
...
@@ -273,7 +273,7 @@ func (self *XEth) FromAscii(str string) string {
str
=
str
[
2
:
]
}
return
string
(
bytes
.
Trim
(
f
romHex
(
str
),
"
\x00
"
))
return
string
(
bytes
.
Trim
(
ethutil
.
F
romHex
(
str
),
"
\x00
"
))
}
func
(
self
*
XEth
)
FromNumber
(
str
string
)
string
{
...
...
@@ -281,11 +281,11 @@ func (self *XEth) FromNumber(str string) string {
str
=
str
[
2
:
]
}
return
ethutil
.
BigD
(
f
romHex
(
str
))
.
String
()
return
ethutil
.
BigD
(
ethutil
.
F
romHex
(
str
))
.
String
()
}
func
(
self
*
XEth
)
PushTx
(
encodedTx
string
)
(
string
,
error
)
{
tx
:=
types
.
NewTransactionFromBytes
(
f
romHex
(
encodedTx
))
tx
:=
types
.
NewTransactionFromBytes
(
ethutil
.
F
romHex
(
encodedTx
))
err
:=
self
.
eth
.
TxPool
()
.
Add
(
tx
)
if
err
!=
nil
{
return
""
,
err
...
...
@@ -306,12 +306,12 @@ var (
func
(
self
*
XEth
)
Call
(
fromStr
,
toStr
,
valueStr
,
gasStr
,
gasPriceStr
,
dataStr
string
)
(
string
,
error
)
{
statedb
:=
self
.
State
()
.
State
()
//self.chainManager.TransState()
msg
:=
callmsg
{
from
:
statedb
.
GetOrNewStateObject
(
f
romHex
(
fromStr
)),
to
:
f
romHex
(
toStr
),
from
:
statedb
.
GetOrNewStateObject
(
ethutil
.
F
romHex
(
fromStr
)),
to
:
ethutil
.
F
romHex
(
toStr
),
gas
:
ethutil
.
Big
(
gasStr
),
gasPrice
:
ethutil
.
Big
(
gasPriceStr
),
value
:
ethutil
.
Big
(
valueStr
),
data
:
f
romHex
(
dataStr
),
data
:
ethutil
.
F
romHex
(
dataStr
),
}
if
msg
.
gas
.
Cmp
(
big
.
NewInt
(
0
))
==
0
{
msg
.
gas
=
defaultGas
...
...
@@ -339,9 +339,9 @@ func (self *XEth) Transact(fromStr, toStr, valueStr, gasStr, gasPriceStr, codeSt
contractCreation
bool
)
from
=
f
romHex
(
fromStr
)
data
=
f
romHex
(
codeStr
)
to
=
f
romHex
(
toStr
)
from
=
ethutil
.
F
romHex
(
fromStr
)
data
=
ethutil
.
F
romHex
(
codeStr
)
to
=
ethutil
.
F
romHex
(
toStr
)
if
len
(
to
)
==
0
{
contractCreation
=
true
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment