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
c8e5d53a
Commit
c8e5d53a
authored
Apr 01, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #618 from tgerring/issue613
Issue #613
parents
4a4da9a2
dbf17105
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
28 deletions
+27
-28
api.go
rpc/api.go
+12
-17
responses.go
rpc/responses.go
+14
-10
responses_test.go
rpc/responses_test.go
+1
-1
No files found.
rpc/api.go
View file @
c8e5d53a
...
@@ -113,7 +113,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -113,7 +113,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return
err
return
err
}
}
block
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
args
.
BlockHash
))
block
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
args
.
BlockHash
)
,
false
)
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
block
.
Transactions
)))
.
Bytes
())
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
block
.
Transactions
)))
.
Bytes
())
case
"eth_getBlockTransactionCountByNumber"
:
case
"eth_getBlockTransactionCountByNumber"
:
args
:=
new
(
GetBlockByNumberArgs
)
args
:=
new
(
GetBlockByNumberArgs
)
...
@@ -121,7 +121,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -121,7 +121,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return
err
return
err
}
}
block
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
))
block
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
,
false
)
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
block
.
Transactions
)))
.
Bytes
())
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
block
.
Transactions
)))
.
Bytes
())
case
"eth_getUncleCountByBlockHash"
:
case
"eth_getUncleCountByBlockHash"
:
args
:=
new
(
GetBlockByHashArgs
)
args
:=
new
(
GetBlockByHashArgs
)
...
@@ -130,7 +130,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -130,7 +130,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByHash
(
args
.
BlockHash
)
block
:=
api
.
xeth
()
.
EthBlockByHash
(
args
.
BlockHash
)
br
:=
NewBlockRes
(
block
)
br
:=
NewBlockRes
(
block
,
false
)
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
br
.
Uncles
)))
.
Bytes
())
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
br
.
Uncles
)))
.
Bytes
())
case
"eth_getUncleCountByBlockNumber"
:
case
"eth_getUncleCountByBlockNumber"
:
args
:=
new
(
GetBlockByNumberArgs
)
args
:=
new
(
GetBlockByNumberArgs
)
...
@@ -139,7 +139,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -139,7 +139,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
br
:=
NewBlockRes
(
block
)
br
:=
NewBlockRes
(
block
,
false
)
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
br
.
Uncles
)))
.
Bytes
())
*
reply
=
common
.
ToHex
(
big
.
NewInt
(
int64
(
len
(
br
.
Uncles
)))
.
Bytes
())
case
"eth_getData"
,
"eth_getCode"
:
case
"eth_getData"
,
"eth_getCode"
:
args
:=
new
(
GetDataArgs
)
args
:=
new
(
GetDataArgs
)
...
@@ -179,8 +179,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -179,8 +179,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByHash
(
args
.
BlockHash
)
block
:=
api
.
xeth
()
.
EthBlockByHash
(
args
.
BlockHash
)
br
:=
NewBlockRes
(
block
)
br
:=
NewBlockRes
(
block
,
true
)
br
.
fullTx
=
args
.
IncludeTxs
*
reply
=
br
*
reply
=
br
case
"eth_getBlockByNumber"
:
case
"eth_getBlockByNumber"
:
...
@@ -190,8 +189,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -190,8 +189,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
br
:=
NewBlockRes
(
block
)
br
:=
NewBlockRes
(
block
,
true
)
br
.
fullTx
=
args
.
IncludeTxs
*
reply
=
br
*
reply
=
br
case
"eth_getTransactionByHash"
:
case
"eth_getTransactionByHash"
:
...
@@ -214,8 +212,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -214,8 +212,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByHash
(
args
.
Hash
)
block
:=
api
.
xeth
()
.
EthBlockByHash
(
args
.
Hash
)
br
:=
NewBlockRes
(
block
)
br
:=
NewBlockRes
(
block
,
true
)
br
.
fullTx
=
true
if
args
.
Index
>=
int64
(
len
(
br
.
Transactions
))
||
args
.
Index
<
0
{
if
args
.
Index
>=
int64
(
len
(
br
.
Transactions
))
||
args
.
Index
<
0
{
return
NewValidationError
(
"Index"
,
"does not exist"
)
return
NewValidationError
(
"Index"
,
"does not exist"
)
...
@@ -228,8 +225,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -228,8 +225,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
v
:=
NewBlockRes
(
block
)
v
:=
NewBlockRes
(
block
,
true
)
v
.
fullTx
=
true
if
args
.
Index
>=
int64
(
len
(
v
.
Transactions
))
||
args
.
Index
<
0
{
if
args
.
Index
>=
int64
(
len
(
v
.
Transactions
))
||
args
.
Index
<
0
{
return
NewValidationError
(
"Index"
,
"does not exist"
)
return
NewValidationError
(
"Index"
,
"does not exist"
)
...
@@ -241,14 +237,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -241,14 +237,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return
err
return
err
}
}
br
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
args
.
Hash
))
br
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
args
.
Hash
)
,
false
)
if
args
.
Index
>=
int64
(
len
(
br
.
Uncles
))
||
args
.
Index
<
0
{
if
args
.
Index
>=
int64
(
len
(
br
.
Uncles
))
||
args
.
Index
<
0
{
return
NewValidationError
(
"Index"
,
"does not exist"
)
return
NewValidationError
(
"Index"
,
"does not exist"
)
}
}
uhash
:=
br
.
Uncles
[
args
.
Index
]
uhash
:=
br
.
Uncles
[
args
.
Index
]
uncle
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
uhash
.
String
()))
uncle
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
uhash
.
String
())
,
false
)
*
reply
=
uncle
*
reply
=
uncle
case
"eth_getUncleByBlockNumberAndIndex"
:
case
"eth_getUncleByBlockNumberAndIndex"
:
...
@@ -258,15 +254,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
...
@@ -258,15 +254,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
}
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
v
:=
NewBlockRes
(
block
)
v
:=
NewBlockRes
(
block
,
true
)
v
.
fullTx
=
true
if
args
.
Index
>=
int64
(
len
(
v
.
Uncles
))
||
args
.
Index
<
0
{
if
args
.
Index
>=
int64
(
len
(
v
.
Uncles
))
||
args
.
Index
<
0
{
return
NewValidationError
(
"Index"
,
"does not exist"
)
return
NewValidationError
(
"Index"
,
"does not exist"
)
}
}
uhash
:=
v
.
Uncles
[
args
.
Index
]
uhash
:=
v
.
Uncles
[
args
.
Index
]
uncle
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
uhash
.
String
()))
uncle
:=
NewBlockRes
(
api
.
xeth
()
.
EthBlockByHash
(
uhash
.
String
())
,
false
)
*
reply
=
uncle
*
reply
=
uncle
case
"eth_getCompilers"
:
case
"eth_getCompilers"
:
...
...
rpc/responses.go
View file @
c8e5d53a
...
@@ -29,12 +29,15 @@ type BlockRes struct {
...
@@ -29,12 +29,15 @@ type BlockRes struct {
Uncles
[]
*
hexdata
`json:"uncles"`
Uncles
[]
*
hexdata
`json:"uncles"`
}
}
func
NewBlockRes
(
block
*
types
.
Block
)
*
BlockRes
{
func
NewBlockRes
(
block
*
types
.
Block
,
fullTx
bool
)
*
BlockRes
{
// TODO respect fullTx flag
if
block
==
nil
{
if
block
==
nil
{
return
&
BlockRes
{}
return
&
BlockRes
{}
}
}
res
:=
new
(
BlockRes
)
res
:=
new
(
BlockRes
)
res
.
fullTx
=
fullTx
res
.
BlockNumber
=
newHexNum
(
block
.
Number
())
res
.
BlockNumber
=
newHexNum
(
block
.
Number
())
res
.
BlockHash
=
newHexData
(
block
.
Hash
())
res
.
BlockHash
=
newHexData
(
block
.
Hash
())
res
.
ParentHash
=
newHexData
(
block
.
ParentHash
())
res
.
ParentHash
=
newHexData
(
block
.
ParentHash
())
...
@@ -52,11 +55,20 @@ func NewBlockRes(block *types.Block) *BlockRes {
...
@@ -52,11 +55,20 @@ func NewBlockRes(block *types.Block) *BlockRes {
// res.MinGasPrice =
// res.MinGasPrice =
res
.
GasUsed
=
newHexNum
(
block
.
GasUsed
())
res
.
GasUsed
=
newHexNum
(
block
.
GasUsed
())
res
.
UnixTimestamp
=
newHexNum
(
block
.
Time
())
res
.
UnixTimestamp
=
newHexNum
(
block
.
Time
())
res
.
Transactions
=
NewTransactionsRes
(
block
.
Transactions
())
res
.
Transactions
=
make
([]
*
TransactionRes
,
len
(
block
.
Transactions
()))
for
i
,
tx
:=
range
block
.
Transactions
()
{
res
.
Transactions
[
i
]
=
NewTransactionRes
(
tx
)
res
.
Transactions
[
i
]
.
BlockHash
=
res
.
BlockHash
res
.
Transactions
[
i
]
.
BlockNumber
=
res
.
BlockNumber
res
.
Transactions
[
i
]
.
TxIndex
=
newHexNum
(
i
)
}
res
.
Uncles
=
make
([]
*
hexdata
,
len
(
block
.
Uncles
()))
res
.
Uncles
=
make
([]
*
hexdata
,
len
(
block
.
Uncles
()))
for
i
,
uncle
:=
range
block
.
Uncles
()
{
for
i
,
uncle
:=
range
block
.
Uncles
()
{
res
.
Uncles
[
i
]
=
newHexData
(
uncle
.
Hash
())
res
.
Uncles
[
i
]
=
newHexData
(
uncle
.
Hash
())
}
}
return
res
return
res
}
}
...
@@ -91,14 +103,6 @@ func NewTransactionRes(tx *types.Transaction) *TransactionRes {
...
@@ -91,14 +103,6 @@ func NewTransactionRes(tx *types.Transaction) *TransactionRes {
return
v
return
v
}
}
func
NewTransactionsRes
(
txs
[]
*
types
.
Transaction
)
[]
*
TransactionRes
{
v
:=
make
([]
*
TransactionRes
,
len
(
txs
))
for
i
,
tx
:=
range
txs
{
v
[
i
]
=
NewTransactionRes
(
tx
)
}
return
v
}
// type FilterLogRes struct {
// type FilterLogRes struct {
// Hash string `json:"hash"`
// Hash string `json:"hash"`
// Address string `json:"address"`
// Address string `json:"address"`
...
...
rpc/responses_test.go
View file @
c8e5d53a
...
@@ -49,7 +49,7 @@ func TestNewBlockRes(t *testing.T) {
...
@@ -49,7 +49,7 @@ func TestNewBlockRes(t *testing.T) {
"timestamp"
:
reNum
,
"timestamp"
:
reNum
,
}
}
v
:=
NewBlockRes
(
block
)
v
:=
NewBlockRes
(
block
,
false
)
j
,
_
:=
json
.
Marshal
(
v
)
j
,
_
:=
json
.
Marshal
(
v
)
for
k
,
re
:=
range
tests
{
for
k
,
re
:=
range
tests
{
...
...
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