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
dc7022cd
Commit
dc7022cd
authored
Mar 06, 2015
by
Taylor Gerring
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Increased args test coverage
parent
5da3d911
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
393 additions
and
56 deletions
+393
-56
types.go
javascript/types.go
+1
-1
args.go
rpc/args.go
+75
-51
args_test.go
rpc/args_test.go
+309
-0
xeth.go
xeth/xeth.go
+8
-4
No files found.
javascript/types.go
View file @
dc7022cd
...
@@ -62,7 +62,7 @@ type JSEthereum struct {
...
@@ -62,7 +62,7 @@ type JSEthereum struct {
func
(
self
*
JSEthereum
)
Block
(
v
interface
{})
otto
.
Value
{
func
(
self
*
JSEthereum
)
Block
(
v
interface
{})
otto
.
Value
{
if
number
,
ok
:=
v
.
(
int64
);
ok
{
if
number
,
ok
:=
v
.
(
int64
);
ok
{
return
self
.
toVal
(
&
JSBlock
{
self
.
XEth
.
BlockByNumber
(
uint64
(
number
)
),
self
})
return
self
.
toVal
(
&
JSBlock
{
self
.
XEth
.
BlockByNumber
(
number
),
self
})
}
else
if
hash
,
ok
:=
v
.
(
string
);
ok
{
}
else
if
hash
,
ok
:=
v
.
(
string
);
ok
{
return
self
.
toVal
(
&
JSBlock
{
self
.
XEth
.
BlockByHash
(
hash
),
self
})
return
self
.
toVal
(
&
JSBlock
{
self
.
XEth
.
BlockByHash
(
hash
),
self
})
}
}
...
...
rpc/args.go
View file @
dc7022cd
...
@@ -33,7 +33,7 @@ func (args *GetBlockByHashArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -33,7 +33,7 @@ func (args *GetBlockByHashArgs) UnmarshalJSON(b []byte) (err error) {
}
}
type
GetBlockByNumberArgs
struct
{
type
GetBlockByNumberArgs
struct
{
BlockNumber
u
int64
BlockNumber
int64
Transactions
bool
Transactions
bool
}
}
...
@@ -47,7 +47,7 @@ func (args *GetBlockByNumberArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -47,7 +47,7 @@ func (args *GetBlockByNumberArgs) UnmarshalJSON(b []byte) (err error) {
if
len
(
obj
)
<
1
{
if
len
(
obj
)
<
1
{
return
errArguments
return
errArguments
}
}
args
.
BlockNumber
=
uint64
(
ethutil
.
Big
(
obj
[
0
]
.
(
string
))
.
Int64
()
)
args
.
BlockNumber
=
ethutil
.
Big
(
obj
[
0
]
.
(
string
))
.
Int64
(
)
if
len
(
obj
)
>
1
{
if
len
(
obj
)
>
1
{
args
.
Transactions
=
obj
[
1
]
.
(
bool
)
args
.
Transactions
=
obj
[
1
]
.
(
bool
)
...
@@ -94,7 +94,7 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -94,7 +94,7 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
type
GetStorageArgs
struct
{
type
GetStorageArgs
struct
{
Address
string
Address
string
BlockNumber
u
int64
BlockNumber
int64
}
}
func
(
args
*
GetStorageArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
func
(
args
*
GetStorageArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
...
@@ -110,7 +110,11 @@ func (args *GetStorageArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -110,7 +110,11 @@ func (args *GetStorageArgs) UnmarshalJSON(b []byte) (err error) {
args
.
Address
=
obj
[
0
]
.
(
string
)
args
.
Address
=
obj
[
0
]
.
(
string
)
if
len
(
obj
)
>
1
{
if
len
(
obj
)
>
1
{
args
.
BlockNumber
=
uint64
(
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
())
if
obj
[
1
]
.
(
string
)
==
"latest"
{
args
.
BlockNumber
=
-
1
}
else
{
args
.
BlockNumber
=
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
()
}
}
}
return
nil
return
nil
...
@@ -126,7 +130,7 @@ func (args *GetStorageArgs) requirements() error {
...
@@ -126,7 +130,7 @@ func (args *GetStorageArgs) requirements() error {
type
GetStorageAtArgs
struct
{
type
GetStorageAtArgs
struct
{
Address
string
Address
string
Key
string
Key
string
BlockNumber
u
int64
BlockNumber
int64
}
}
func
(
args
*
GetStorageAtArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
func
(
args
*
GetStorageAtArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
...
@@ -143,7 +147,11 @@ func (args *GetStorageAtArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -143,7 +147,11 @@ func (args *GetStorageAtArgs) UnmarshalJSON(b []byte) (err error) {
args
.
Key
=
obj
[
1
]
.
(
string
)
args
.
Key
=
obj
[
1
]
.
(
string
)
if
len
(
obj
)
>
2
{
if
len
(
obj
)
>
2
{
args
.
BlockNumber
=
ethutil
.
BytesToNumber
(
fromHex
(
obj
[
2
]
.
(
string
)))
if
obj
[
2
]
.
(
string
)
==
"latest"
{
args
.
BlockNumber
=
-
1
}
else
{
args
.
BlockNumber
=
ethutil
.
Big
(
obj
[
2
]
.
(
string
))
.
Int64
()
}
}
}
return
nil
return
nil
...
@@ -162,7 +170,7 @@ func (args *GetStorageAtArgs) requirements() error {
...
@@ -162,7 +170,7 @@ func (args *GetStorageAtArgs) requirements() error {
type
GetTxCountArgs
struct
{
type
GetTxCountArgs
struct
{
Address
string
Address
string
BlockNumber
u
int64
BlockNumber
int64
}
}
func
(
args
*
GetTxCountArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
func
(
args
*
GetTxCountArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
...
@@ -179,7 +187,11 @@ func (args *GetTxCountArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -179,7 +187,11 @@ func (args *GetTxCountArgs) UnmarshalJSON(b []byte) (err error) {
args
.
Address
=
obj
[
0
]
.
(
string
)
args
.
Address
=
obj
[
0
]
.
(
string
)
if
len
(
obj
)
>
1
{
if
len
(
obj
)
>
1
{
args
.
BlockNumber
=
uint64
(
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
())
if
obj
[
1
]
.
(
string
)
==
"latest"
{
args
.
BlockNumber
=
-
1
}
else
{
args
.
BlockNumber
=
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
()
}
}
}
return
nil
return
nil
...
@@ -194,7 +206,7 @@ func (args *GetTxCountArgs) requirements() error {
...
@@ -194,7 +206,7 @@ func (args *GetTxCountArgs) requirements() error {
type
GetBalanceArgs
struct
{
type
GetBalanceArgs
struct
{
Address
string
Address
string
BlockNumber
u
int64
BlockNumber
int64
}
}
func
(
args
*
GetBalanceArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
func
(
args
*
GetBalanceArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
...
@@ -210,7 +222,11 @@ func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -210,7 +222,11 @@ func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
args
.
Address
=
obj
[
0
]
.
(
string
)
args
.
Address
=
obj
[
0
]
.
(
string
)
if
len
(
obj
)
>
1
{
if
len
(
obj
)
>
1
{
args
.
BlockNumber
=
uint64
(
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
())
if
obj
[
1
]
.
(
string
)
==
"latest"
{
args
.
BlockNumber
=
-
1
}
else
{
args
.
BlockNumber
=
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
()
}
}
}
return
nil
return
nil
...
@@ -225,7 +241,7 @@ func (args *GetBalanceArgs) requirements() error {
...
@@ -225,7 +241,7 @@ func (args *GetBalanceArgs) requirements() error {
type
GetDataArgs
struct
{
type
GetDataArgs
struct
{
Address
string
Address
string
BlockNumber
u
int64
BlockNumber
int64
}
}
func
(
args
*
GetDataArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
func
(
args
*
GetDataArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
...
@@ -241,7 +257,11 @@ func (args *GetDataArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -241,7 +257,11 @@ func (args *GetDataArgs) UnmarshalJSON(b []byte) (err error) {
args
.
Address
=
obj
[
0
]
.
(
string
)
args
.
Address
=
obj
[
0
]
.
(
string
)
if
len
(
obj
)
>
1
{
if
len
(
obj
)
>
1
{
args
.
BlockNumber
=
uint64
(
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
())
if
obj
[
1
]
.
(
string
)
==
"latest"
{
args
.
BlockNumber
=
-
1
}
else
{
args
.
BlockNumber
=
ethutil
.
Big
(
obj
[
1
]
.
(
string
))
.
Int64
()
}
}
}
return
nil
return
nil
...
@@ -273,41 +293,41 @@ func (args *Sha3Args) UnmarshalJSON(b []byte) (err error) {
...
@@ -273,41 +293,41 @@ func (args *Sha3Args) UnmarshalJSON(b []byte) (err error) {
return
nil
return
nil
}
}
type
FilterArgs
struct
{
// type FilterArgs struct {
FromBlock
uint64
// FromBlock uint64
ToBlock
uint64
// ToBlock uint64
Limit
uint64
// Limit uint64
Offset
uint64
// Offset uint64
Address
string
// Address string
Topics
[]
string
// Topics []string
}
// }
func
(
args
*
FilterArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
var
obj
[]
struct
{
FromBlock
string
`json:"fromBlock"`
ToBlock
string
`json:"toBlock"`
Limit
string
`json:"limit"`
Offset
string
`json:"offset"`
Address
string
`json:"address"`
Topics
[]
string
`json:"topics"`
}
if
err
=
json
.
Unmarshal
(
b
,
&
obj
);
err
!=
nil
{
return
errDecodeArgs
}
if
len
(
obj
)
<
1
{
return
errArguments
}
args
.
FromBlock
=
uint64
(
ethutil
.
Big
(
obj
[
0
]
.
FromBlock
)
.
Int64
())
args
.
ToBlock
=
uint64
(
ethutil
.
Big
(
obj
[
0
]
.
ToBlock
)
.
Int64
())
args
.
Limit
=
uint64
(
ethutil
.
Big
(
obj
[
0
]
.
Limit
)
.
Int64
())
args
.
Offset
=
uint64
(
ethutil
.
Big
(
obj
[
0
]
.
Offset
)
.
Int64
())
args
.
Address
=
obj
[
0
]
.
Address
args
.
Topics
=
obj
[
0
]
.
Topics
return
nil
// func (args *FilterArgs) UnmarshalJSON(b []byte) (err error) {
}
// var obj []struct {
// FromBlock string `json:"fromBlock"`
// ToBlock string `json:"toBlock"`
// Limit string `json:"limit"`
// Offset string `json:"offset"`
// Address string `json:"address"`
// Topics []string `json:"topics"`
// }
// if err = json.Unmarshal(b, &obj); err != nil {
// return errDecodeArgs
// }
// if len(obj) < 1 {
// return errArguments
// }
// args.FromBlock = uint64(ethutil.Big(obj[0].FromBlock).Int64())
// args.ToBlock = uint64(ethutil.Big(obj[0].ToBlock).Int64())
// args.Limit = uint64(ethutil.Big(obj[0].Limit).Int64())
// args.Offset = uint64(ethutil.Big(obj[0].Offset).Int64())
// args.Address = obj[0].Address
// args.Topics = obj[0].Topics
// return nil
// }
type
FilterOptions
struct
{
type
FilterOptions
struct
{
Earliest
int64
Earliest
int64
...
@@ -415,8 +435,8 @@ func (args *WhisperMessageArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -415,8 +435,8 @@ func (args *WhisperMessageArgs) UnmarshalJSON(b []byte) (err error) {
args
.
To
=
obj
[
0
]
.
To
args
.
To
=
obj
[
0
]
.
To
args
.
From
=
obj
[
0
]
.
From
args
.
From
=
obj
[
0
]
.
From
args
.
Topic
=
obj
[
0
]
.
Topic
args
.
Topic
=
obj
[
0
]
.
Topic
args
.
Priority
=
uint32
(
ethutil
.
B
ytesToNumber
(
fromHex
(
obj
[
0
]
.
Priority
)
))
args
.
Priority
=
uint32
(
ethutil
.
B
ig
(
obj
[
0
]
.
Priority
)
.
Int64
(
))
args
.
Ttl
=
uint32
(
ethutil
.
B
ytesToNumber
(
fromHex
(
obj
[
0
]
.
Ttl
)
))
args
.
Ttl
=
uint32
(
ethutil
.
B
ig
(
obj
[
0
]
.
Ttl
)
.
Int64
(
))
return
nil
return
nil
}
}
...
@@ -474,7 +494,7 @@ func (args *FilterIdArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -474,7 +494,7 @@ func (args *FilterIdArgs) UnmarshalJSON(b []byte) (err error) {
return
errDecodeArgs
return
errDecodeArgs
}
}
args
.
Id
=
int
(
ethutil
.
B
ytesToNumber
(
fromHex
(
obj
[
0
])
))
args
.
Id
=
int
(
ethutil
.
B
ig
(
obj
[
0
])
.
Int64
(
))
return
nil
return
nil
}
}
...
@@ -500,13 +520,17 @@ func (args *WhisperIdentityArgs) UnmarshalJSON(b []byte) (err error) {
...
@@ -500,13 +520,17 @@ func (args *WhisperIdentityArgs) UnmarshalJSON(b []byte) (err error) {
}
}
type
WhisperFilterArgs
struct
{
type
WhisperFilterArgs
struct
{
To
string
To
string
`json:"to"`
From
string
From
string
Topics
[]
string
Topics
[]
string
}
}
func
(
args
*
WhisperFilterArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
func
(
args
*
WhisperFilterArgs
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
var
obj
[]
WhisperFilterArgs
var
obj
[]
struct
{
To
string
From
string
Topics
[]
string
}
if
err
=
json
.
Unmarshal
(
b
,
&
obj
);
err
!=
nil
{
if
err
=
json
.
Unmarshal
(
b
,
&
obj
);
err
!=
nil
{
return
errDecodeArgs
return
errDecodeArgs
...
...
rpc/args_test.go
View file @
dc7022cd
...
@@ -30,6 +30,10 @@ func TestGetBalanceArgs(t *testing.T) {
...
@@ -30,6 +30,10 @@ func TestGetBalanceArgs(t *testing.T) {
t
.
Error
(
err
)
t
.
Error
(
err
)
}
}
if
err
:=
args
.
requirements
();
err
!=
nil
{
t
.
Error
(
err
)
}
if
args
.
Address
!=
expected
.
Address
{
if
args
.
Address
!=
expected
.
Address
{
t
.
Errorf
(
"Address should be %v but is %v"
,
expected
.
Address
,
args
.
Address
)
t
.
Errorf
(
"Address should be %v but is %v"
,
expected
.
Address
,
args
.
Address
)
}
}
...
@@ -123,3 +127,308 @@ func TestNewTxArgs(t *testing.T) {
...
@@ -123,3 +127,308 @@ func TestNewTxArgs(t *testing.T) {
t
.
Errorf
(
"Data shoud be %#v but is %#v"
,
expected
.
Data
,
args
.
Data
)
t
.
Errorf
(
"Data shoud be %#v but is %#v"
,
expected
.
Data
,
args
.
Data
)
}
}
}
}
func
TestGetStorageArgs
(
t
*
testing
.
T
)
{
input
:=
`["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
expected
:=
new
(
GetStorageArgs
)
expected
.
Address
=
"0x407d73d8a49eeb85d32cf465507dd71d507100c1"
expected
.
BlockNumber
=
-
1
args
:=
new
(
GetStorageArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
err
:=
args
.
requirements
();
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Address
!=
args
.
Address
{
t
.
Errorf
(
"Address shoud be %#v but is %#v"
,
expected
.
Address
,
args
.
Address
)
}
if
expected
.
BlockNumber
!=
args
.
BlockNumber
{
t
.
Errorf
(
"BlockNumber shoud be %#v but is %#v"
,
expected
.
BlockNumber
,
args
.
BlockNumber
)
}
}
func
TestGetStorageAtArgs
(
t
*
testing
.
T
)
{
input
:=
`["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "0x0", "0x2"]`
expected
:=
new
(
GetStorageAtArgs
)
expected
.
Address
=
"0x407d73d8a49eeb85d32cf465507dd71d507100c1"
expected
.
Key
=
"0x0"
expected
.
BlockNumber
=
2
args
:=
new
(
GetStorageAtArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
err
:=
args
.
requirements
();
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Address
!=
args
.
Address
{
t
.
Errorf
(
"Address shoud be %#v but is %#v"
,
expected
.
Address
,
args
.
Address
)
}
if
expected
.
Key
!=
args
.
Key
{
t
.
Errorf
(
"Address shoud be %#v but is %#v"
,
expected
.
Address
,
args
.
Address
)
}
if
expected
.
BlockNumber
!=
args
.
BlockNumber
{
t
.
Errorf
(
"BlockNumber shoud be %#v but is %#v"
,
expected
.
BlockNumber
,
args
.
BlockNumber
)
}
}
func
TestGetTxCountArgs
(
t
*
testing
.
T
)
{
input
:=
`["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
expected
:=
new
(
GetTxCountArgs
)
expected
.
Address
=
"0x407d73d8a49eeb85d32cf465507dd71d507100c1"
expected
.
BlockNumber
=
-
1
args
:=
new
(
GetTxCountArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
err
:=
args
.
requirements
();
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Address
!=
args
.
Address
{
t
.
Errorf
(
"Address shoud be %#v but is %#v"
,
expected
.
Address
,
args
.
Address
)
}
if
expected
.
BlockNumber
!=
args
.
BlockNumber
{
t
.
Errorf
(
"BlockNumber shoud be %#v but is %#v"
,
expected
.
BlockNumber
,
args
.
BlockNumber
)
}
}
func
TestGetDataArgs
(
t
*
testing
.
T
)
{
input
:=
`["0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8", "latest"]`
expected
:=
new
(
GetDataArgs
)
expected
.
Address
=
"0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8"
expected
.
BlockNumber
=
-
1
args
:=
new
(
GetDataArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
err
:=
args
.
requirements
();
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Address
!=
args
.
Address
{
t
.
Errorf
(
"Address shoud be %#v but is %#v"
,
expected
.
Address
,
args
.
Address
)
}
if
expected
.
BlockNumber
!=
args
.
BlockNumber
{
t
.
Errorf
(
"BlockNumber shoud be %#v but is %#v"
,
expected
.
BlockNumber
,
args
.
BlockNumber
)
}
}
func
TestFilterOptions
(
t
*
testing
.
T
)
{
input
:=
`[{
"fromBlock": "0x1",
"toBlock": "0x2",
"limit": "0x3",
"offset": "0x0",
"address": "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8",
"topics": ["0x12341234"]}]`
expected
:=
new
(
FilterOptions
)
expected
.
Earliest
=
1
expected
.
Latest
=
2
expected
.
Max
=
3
expected
.
Skip
=
0
expected
.
Address
=
"0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8"
expected
.
Topic
=
[]
string
{
"0x12341234"
}
args
:=
new
(
FilterOptions
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Earliest
!=
args
.
Earliest
{
t
.
Errorf
(
"Earliest shoud be %#v but is %#v"
,
expected
.
Earliest
,
args
.
Earliest
)
}
if
expected
.
Latest
!=
args
.
Latest
{
t
.
Errorf
(
"Latest shoud be %#v but is %#v"
,
expected
.
Latest
,
args
.
Latest
)
}
if
expected
.
Max
!=
args
.
Max
{
t
.
Errorf
(
"Max shoud be %#v but is %#v"
,
expected
.
Max
,
args
.
Max
)
}
if
expected
.
Skip
!=
args
.
Skip
{
t
.
Errorf
(
"Skip shoud be %#v but is %#v"
,
expected
.
Skip
,
args
.
Skip
)
}
if
expected
.
Address
!=
args
.
Address
{
t
.
Errorf
(
"Address shoud be %#v but is %#v"
,
expected
.
Address
,
args
.
Address
)
}
// if expected.Topic != args.Topic {
// t.Errorf("Topic shoud be %#v but is %#v", expected.Topic, args.Topic)
// }
}
func
TestDbArgs
(
t
*
testing
.
T
)
{
input
:=
`["0x74657374","0x6b6579","0x6d79537472696e67"]`
expected
:=
new
(
DbArgs
)
expected
.
Database
=
"0x74657374"
expected
.
Key
=
"0x6b6579"
expected
.
Value
=
"0x6d79537472696e67"
args
:=
new
(
DbArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
err
:=
args
.
requirements
();
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Database
!=
args
.
Database
{
t
.
Errorf
(
"Database shoud be %#v but is %#v"
,
expected
.
Database
,
args
.
Database
)
}
if
expected
.
Key
!=
args
.
Key
{
t
.
Errorf
(
"Key shoud be %#v but is %#v"
,
expected
.
Key
,
args
.
Key
)
}
if
expected
.
Value
!=
args
.
Value
{
t
.
Errorf
(
"Value shoud be %#v but is %#v"
,
expected
.
Value
,
args
.
Value
)
}
}
func
TestWhisperMessageArgs
(
t
*
testing
.
T
)
{
input
:=
`[{"from":"0xc931d93e97ab07fe42d923478ba2465f2",
"topics": ["0x68656c6c6f20776f726c64"],
"payload":"0x68656c6c6f20776f726c64",
"ttl": "0x64",
"priority": "0x64"}]`
expected
:=
new
(
WhisperMessageArgs
)
expected
.
From
=
"0xc931d93e97ab07fe42d923478ba2465f2"
expected
.
To
=
""
expected
.
Payload
=
"0x68656c6c6f20776f726c64"
expected
.
Priority
=
100
expected
.
Ttl
=
100
expected
.
Topic
=
[]
string
{
"0x68656c6c6f20776f726c64"
}
args
:=
new
(
WhisperMessageArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
From
!=
args
.
From
{
t
.
Errorf
(
"From shoud be %#v but is %#v"
,
expected
.
From
,
args
.
From
)
}
if
expected
.
To
!=
args
.
To
{
t
.
Errorf
(
"To shoud be %#v but is %#v"
,
expected
.
To
,
args
.
To
)
}
if
expected
.
Payload
!=
args
.
Payload
{
t
.
Errorf
(
"Value shoud be %#v but is %#v"
,
expected
.
Payload
,
args
.
Payload
)
}
if
expected
.
Ttl
!=
args
.
Ttl
{
t
.
Errorf
(
"Ttl shoud be %#v but is %#v"
,
expected
.
Ttl
,
args
.
Ttl
)
}
if
expected
.
Priority
!=
args
.
Priority
{
t
.
Errorf
(
"Priority shoud be %#v but is %#v"
,
expected
.
Priority
,
args
.
Priority
)
}
// if expected.Topic != args.Topic {
// t.Errorf("Topic shoud be %#v but is %#v", expected.Topic, args.Topic)
// }
}
func
TestFilterIdArgs
(
t
*
testing
.
T
)
{
input
:=
`["0x7"]`
expected
:=
new
(
FilterIdArgs
)
expected
.
Id
=
7
args
:=
new
(
FilterIdArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Id
!=
args
.
Id
{
t
.
Errorf
(
"Id shoud be %#v but is %#v"
,
expected
.
Id
,
args
.
Id
)
}
}
func
TestWhsiperFilterArgs
(
t
*
testing
.
T
)
{
input
:=
`[{"topics": ["0x68656c6c6f20776f726c64"], "to": "0x34ag445g3455b34"}]`
expected
:=
new
(
WhisperFilterArgs
)
expected
.
From
=
""
expected
.
To
=
"0x34ag445g3455b34"
expected
.
Topics
=
[]
string
{
"0x68656c6c6f20776f726c64"
}
args
:=
new
(
WhisperFilterArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
From
!=
args
.
From
{
t
.
Errorf
(
"From shoud be %#v but is %#v"
,
expected
.
From
,
args
.
From
)
}
if
expected
.
To
!=
args
.
To
{
t
.
Errorf
(
"To shoud be %#v but is %#v"
,
expected
.
To
,
args
.
To
)
}
// if expected.Topics != args.Topics {
// t.Errorf("Topics shoud be %#v but is %#v", expected.Topics, args.Topics)
// }
}
func
TestCompileArgs
(
t
*
testing
.
T
)
{
input
:=
`["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"]`
expected
:=
new
(
CompileArgs
)
expected
.
Source
=
`contract test { function multiply(uint a) returns(uint d) { return a * 7; } }`
args
:=
new
(
CompileArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Source
!=
args
.
Source
{
t
.
Errorf
(
"Source shoud be %#v but is %#v"
,
expected
.
Source
,
args
.
Source
)
}
}
func
TestFilterStringArgs
(
t
*
testing
.
T
)
{
input
:=
`["pending"]`
expected
:=
new
(
FilterStringArgs
)
expected
.
Word
=
"pending"
args
:=
new
(
FilterStringArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Word
!=
args
.
Word
{
t
.
Errorf
(
"Word shoud be %#v but is %#v"
,
expected
.
Word
,
args
.
Word
)
}
}
func
TestWhisperIdentityArgs
(
t
*
testing
.
T
)
{
input
:=
`["0xc931d93e97ab07fe42d923478ba2465f283"]`
expected
:=
new
(
WhisperIdentityArgs
)
expected
.
Identity
=
"0xc931d93e97ab07fe42d923478ba2465f283"
args
:=
new
(
WhisperIdentityArgs
)
if
err
:=
json
.
Unmarshal
([]
byte
(
input
),
&
args
);
err
!=
nil
{
t
.
Error
(
err
)
}
if
expected
.
Identity
!=
args
.
Identity
{
t
.
Errorf
(
"Identity shoud be %#v but is %#v"
,
expected
.
Identity
,
args
.
Identity
)
}
}
xeth/xeth.go
View file @
dc7022cd
...
@@ -86,17 +86,21 @@ func (self *XEth) BlockByHash(strHash string) *Block {
...
@@ -86,17 +86,21 @@ func (self *XEth) BlockByHash(strHash string) *Block {
return
NewBlock
(
block
)
return
NewBlock
(
block
)
}
}
func
(
self
*
XEth
)
BlockByNumber
(
num
uint64
)
*
Block
{
func
(
self
*
XEth
)
BlockByNumber
(
num
int64
)
*
Block
{
return
NewBlock
(
self
.
chainManager
.
GetBlockByNumber
(
num
))
if
num
==
-
1
{
return
NewBlock
(
self
.
chainManager
.
CurrentBlock
())
}
return
NewBlock
(
self
.
chainManager
.
GetBlockByNumber
(
uint64
(
num
)))
}
}
func
(
self
*
XEth
)
Block
(
v
interface
{})
*
Block
{
func
(
self
*
XEth
)
Block
(
v
interface
{})
*
Block
{
if
n
,
ok
:=
v
.
(
int32
);
ok
{
if
n
,
ok
:=
v
.
(
int32
);
ok
{
return
self
.
BlockByNumber
(
u
int64
(
n
))
return
self
.
BlockByNumber
(
int64
(
n
))
}
else
if
str
,
ok
:=
v
.
(
string
);
ok
{
}
else
if
str
,
ok
:=
v
.
(
string
);
ok
{
return
self
.
BlockByHash
(
str
)
return
self
.
BlockByHash
(
str
)
}
else
if
f
,
ok
:=
v
.
(
float64
);
ok
{
// Don't ask ...
}
else
if
f
,
ok
:=
v
.
(
float64
);
ok
{
// Don't ask ...
return
self
.
BlockByNumber
(
u
int64
(
f
))
return
self
.
BlockByNumber
(
int64
(
f
))
}
}
return
nil
return
nil
...
...
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