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
9b825e27
Commit
9b825e27
authored
May 19, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1036 from tgerring/issue884
JSON RPC null field updates
parents
7d9a13e0
748263d2
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
8 deletions
+21
-8
api.go
rpc/api.go
+16
-6
xeth.go
xeth/xeth.go
+5
-2
No files found.
rpc/api.go
View file @
9b825e27
package
rpc
import
(
"bytes"
"encoding/json"
"math/big"
// "sync"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
...
...
@@ -230,7 +230,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
block
:=
api
.
xeth
()
.
EthBlockByNumber
(
args
.
BlockNumber
)
br
:=
NewBlockRes
(
block
,
args
.
IncludeTxs
)
// If request was for "pending", nil nonsensical fields
if
args
.
BlockNumber
==
-
2
{
br
.
BlockHash
=
nil
br
.
BlockNumber
=
nil
br
.
Miner
=
nil
br
.
Nonce
=
nil
br
.
LogsBloom
=
nil
}
*
reply
=
br
case
"eth_getTransactionByHash"
:
args
:=
new
(
HashArgs
)
...
...
@@ -240,9 +247,12 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
tx
,
bhash
,
bnum
,
txi
:=
api
.
xeth
()
.
EthTransactionByHash
(
args
.
Hash
)
if
tx
!=
nil
{
v
:=
NewTransactionRes
(
tx
)
// if the blockhash is 0, assume this is a pending transaction
if
bytes
.
Compare
(
bhash
.
Bytes
(),
bytes
.
Repeat
([]
byte
{
0
},
32
))
!=
0
{
v
.
BlockHash
=
newHexData
(
bhash
)
v
.
BlockNumber
=
newHexNum
(
bnum
)
v
.
TxIndex
=
newHexNum
(
txi
)
}
*
reply
=
v
}
case
"eth_getTransactionByBlockHashAndIndex"
:
...
...
@@ -577,7 +587,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return
NewNotImplementedError
(
req
.
Method
)
}
glog
.
V
(
logger
.
Detail
)
.
Infof
(
"Reply: %T %s
\n
"
,
reply
,
reply
)
// glog.V(logger.Detail).Infof("Reply: %v\n"
, reply)
return
nil
}
...
...
xeth/xeth.go
View file @
9b825e27
...
...
@@ -304,6 +304,8 @@ func (self *XEth) EthBlockByHash(strHash string) *types.Block {
}
func
(
self
*
XEth
)
EthTransactionByHash
(
hash
string
)
(
tx
*
types
.
Transaction
,
blhash
common
.
Hash
,
blnum
*
big
.
Int
,
txi
uint64
)
{
// Due to increasing return params and need to determine if this is from transaction pool or
// some chain, this probably needs to be refactored for more expressiveness
data
,
_
:=
self
.
backend
.
ExtraDb
()
.
Get
(
common
.
FromHex
(
hash
))
if
len
(
data
)
!=
0
{
tx
=
types
.
NewTransactionFromBytes
(
data
)
...
...
@@ -357,7 +359,7 @@ func (self *XEth) Block(v interface{}) *Block {
return
self
.
BlockByNumber
(
int64
(
n
))
}
else
if
str
,
ok
:=
v
.
(
string
);
ok
{
return
self
.
BlockByHash
(
str
)
}
else
if
f
,
ok
:=
v
.
(
float64
);
ok
{
//
Don't ask ...
}
else
if
f
,
ok
:=
v
.
(
float64
);
ok
{
//
JSON numbers are represented as float64
return
self
.
BlockByNumber
(
int64
(
f
))
}
...
...
@@ -778,7 +780,7 @@ func (self *XEth) PushTx(encodedTx string) (string, error) {
}
func
(
self
*
XEth
)
Call
(
fromStr
,
toStr
,
valueStr
,
gasStr
,
gasPriceStr
,
dataStr
string
)
(
string
,
string
,
error
)
{
statedb
:=
self
.
State
()
.
State
()
.
Copy
()
//self.eth.ChainManager().TransState()
statedb
:=
self
.
State
()
.
State
()
.
Copy
()
var
from
*
state
.
StateObject
if
len
(
fromStr
)
==
0
{
accounts
,
err
:=
self
.
backend
.
AccountManager
()
.
Accounts
()
...
...
@@ -869,6 +871,7 @@ func (self *XEth) Transact(fromStr, toStr, nonceStr, valueStr, gasStr, gasPriceS
contractCreation
bool
)
// 2015-05-18 Is this still needed?
// TODO if no_private_key then
//if _, exists := p.register[args.From]; exists {
// p.register[args.From] = append(p.register[args.From], args)
...
...
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