forked from cerc-io/plugeth
New UncleRes type
This commit is contained in:
parent
9bdf0b655d
commit
1d74086b42
@ -256,9 +256,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
|
|||||||
// return NewValidationError("Index", "does not exist")
|
// return NewValidationError("Index", "does not exist")
|
||||||
*reply = nil
|
*reply = nil
|
||||||
} else {
|
} else {
|
||||||
uhash := br.Uncles[args.Index]
|
*reply = br.Uncles[args.Index]
|
||||||
uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash.String()), true)
|
|
||||||
*reply = uncle
|
|
||||||
}
|
}
|
||||||
case "eth_getUncleByBlockNumberAndIndex":
|
case "eth_getUncleByBlockNumberAndIndex":
|
||||||
args := new(BlockNumIndexArgs)
|
args := new(BlockNumIndexArgs)
|
||||||
@ -278,9 +276,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
|
|||||||
// return NewValidationError("Index", "does not exist")
|
// return NewValidationError("Index", "does not exist")
|
||||||
*reply = nil
|
*reply = nil
|
||||||
} else {
|
} else {
|
||||||
uhash := v.Uncles[args.Index]
|
*reply = v.Uncles[args.Index]
|
||||||
uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash.String()), false)
|
|
||||||
*reply = uncle
|
|
||||||
}
|
}
|
||||||
case "eth_getCompilers":
|
case "eth_getCompilers":
|
||||||
c := []string{""}
|
c := []string{""}
|
||||||
|
@ -28,7 +28,7 @@ type BlockRes struct {
|
|||||||
GasUsed *hexnum `json:"gasUsed"`
|
GasUsed *hexnum `json:"gasUsed"`
|
||||||
UnixTimestamp *hexnum `json:"timestamp"`
|
UnixTimestamp *hexnum `json:"timestamp"`
|
||||||
Transactions []*TransactionRes `json:"transactions"`
|
Transactions []*TransactionRes `json:"transactions"`
|
||||||
Uncles []*hexdata `json:"uncles"`
|
Uncles []*UncleRes `json:"uncles"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BlockRes) MarshalJSON() ([]byte, error) {
|
func (b *BlockRes) MarshalJSON() ([]byte, error) {
|
||||||
@ -73,7 +73,10 @@ func (b *BlockRes) MarshalJSON() ([]byte, error) {
|
|||||||
ext.GasUsed = b.GasUsed
|
ext.GasUsed = b.GasUsed
|
||||||
ext.UnixTimestamp = b.UnixTimestamp
|
ext.UnixTimestamp = b.UnixTimestamp
|
||||||
ext.Transactions = b.Transactions
|
ext.Transactions = b.Transactions
|
||||||
ext.Uncles = b.Uncles
|
ext.Uncles = make([]*hexdata, len(b.Uncles))
|
||||||
|
for i, u := range b.Uncles {
|
||||||
|
ext.Uncles[i] = u.BlockHash
|
||||||
|
}
|
||||||
return json.Marshal(ext)
|
return json.Marshal(ext)
|
||||||
} else {
|
} else {
|
||||||
var ext struct {
|
var ext struct {
|
||||||
@ -119,7 +122,10 @@ func (b *BlockRes) MarshalJSON() ([]byte, error) {
|
|||||||
for i, tx := range b.Transactions {
|
for i, tx := range b.Transactions {
|
||||||
ext.Transactions[i] = tx.Hash
|
ext.Transactions[i] = tx.Hash
|
||||||
}
|
}
|
||||||
ext.Uncles = b.Uncles
|
ext.Uncles = make([]*hexdata, len(b.Uncles))
|
||||||
|
for i, u := range b.Uncles {
|
||||||
|
ext.Uncles[i] = u.BlockHash
|
||||||
|
}
|
||||||
return json.Marshal(ext)
|
return json.Marshal(ext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -157,9 +163,9 @@ func NewBlockRes(block *types.Block, fullTx bool) *BlockRes {
|
|||||||
res.Transactions[i].TxIndex = newHexNum(i)
|
res.Transactions[i].TxIndex = newHexNum(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
res.Uncles = make([]*hexdata, len(block.Uncles()))
|
res.Uncles = make([]*UncleRes, len(block.Uncles()))
|
||||||
for i, uncle := range block.Uncles() {
|
for i, uncle := range block.Uncles() {
|
||||||
res.Uncles[i] = newHexData(uncle.Hash())
|
res.Uncles[i] = NewUncleRes(uncle)
|
||||||
}
|
}
|
||||||
|
|
||||||
return res
|
return res
|
||||||
@ -200,6 +206,49 @@ func NewTransactionRes(tx *types.Transaction) *TransactionRes {
|
|||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UncleRes struct {
|
||||||
|
BlockNumber *hexnum `json:"number"`
|
||||||
|
BlockHash *hexdata `json:"hash"`
|
||||||
|
ParentHash *hexdata `json:"parentHash"`
|
||||||
|
Nonce *hexdata `json:"nonce"`
|
||||||
|
Sha3Uncles *hexdata `json:"sha3Uncles"`
|
||||||
|
ReceiptHash *hexdata `json:"receiptHash"`
|
||||||
|
LogsBloom *hexdata `json:"logsBloom"`
|
||||||
|
TransactionRoot *hexdata `json:"transactionsRoot"`
|
||||||
|
StateRoot *hexdata `json:"stateRoot"`
|
||||||
|
Miner *hexdata `json:"miner"`
|
||||||
|
Difficulty *hexnum `json:"difficulty"`
|
||||||
|
ExtraData *hexdata `json:"extraData"`
|
||||||
|
GasLimit *hexnum `json:"gasLimit"`
|
||||||
|
GasUsed *hexnum `json:"gasUsed"`
|
||||||
|
UnixTimestamp *hexnum `json:"timestamp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewUncleRes(h *types.Header) *UncleRes {
|
||||||
|
if h == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var v = new(UncleRes)
|
||||||
|
v.BlockNumber = newHexNum(h.Number)
|
||||||
|
v.BlockHash = newHexData(h.Hash())
|
||||||
|
v.ParentHash = newHexData(h.ParentHash)
|
||||||
|
v.Sha3Uncles = newHexData(h.UncleHash)
|
||||||
|
v.Nonce = newHexData(h.Nonce[:])
|
||||||
|
v.LogsBloom = newHexData(h.Bloom)
|
||||||
|
v.TransactionRoot = newHexData(h.TxHash)
|
||||||
|
v.StateRoot = newHexData(h.Root)
|
||||||
|
v.Miner = newHexData(h.Coinbase)
|
||||||
|
v.Difficulty = newHexNum(h.Difficulty)
|
||||||
|
v.ExtraData = newHexData(h.Extra)
|
||||||
|
v.GasLimit = newHexNum(h.GasLimit)
|
||||||
|
v.GasUsed = newHexNum(h.GasUsed)
|
||||||
|
v.UnixTimestamp = newHexNum(h.Time)
|
||||||
|
v.ReceiptHash = newHexData(h.ReceiptHash)
|
||||||
|
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// type FilterLogRes struct {
|
// type FilterLogRes struct {
|
||||||
// Hash string `json:"hash"`
|
// Hash string `json:"hash"`
|
||||||
// Address string `json:"address"`
|
// Address string `json:"address"`
|
||||||
|
Loading…
Reference in New Issue
Block a user