aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-07-04 13:00:23 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-07-04 13:00:23 +0800
commit481b221279be1673832f96e35e3fdc0f82e178bc (patch)
tree4efeb12d4685b56a9d137c3b72d6d6184dbf8b53
parent80eb8f46b7991b80dffe00e52d9fb00a90531bc0 (diff)
downloaddexon-481b221279be1673832f96e35e3fdc0f82e178bc.tar
dexon-481b221279be1673832f96e35e3fdc0f82e178bc.tar.gz
dexon-481b221279be1673832f96e35e3fdc0f82e178bc.tar.bz2
dexon-481b221279be1673832f96e35e3fdc0f82e178bc.tar.lz
dexon-481b221279be1673832f96e35e3fdc0f82e178bc.tar.xz
dexon-481b221279be1673832f96e35e3fdc0f82e178bc.tar.zst
dexon-481b221279be1673832f96e35e3fdc0f82e178bc.zip
Decode full receipt storage
-rw-r--r--core/transaction_util.go15
-rw-r--r--rpc/api/parsing.go6
-rw-r--r--xeth/xeth.go4
3 files changed, 21 insertions, 4 deletions
diff --git a/core/transaction_util.go b/core/transaction_util.go
index cb5d6c7f7..61bf023a6 100644
--- a/core/transaction_util.go
+++ b/core/transaction_util.go
@@ -55,6 +55,21 @@ func PutReceipts(db common.Database, receipts types.Receipts) error {
}
// GetReceipt returns a receipt by hash
+func GetFullReceipt(db common.Database, txHash common.Hash) *types.ReceiptForStorage {
+ data, _ := db.Get(append(receiptsPre, txHash[:]...))
+ if len(data) == 0 {
+ return nil
+ }
+
+ var receipt types.ReceiptForStorage
+ err := rlp.DecodeBytes(data, &receipt)
+ if err != nil {
+ glog.V(logger.Error).Infoln("GetReceipt err:", err)
+ }
+ return &receipt
+}
+
+// GetReceipt returns a receipt by hash
func GetReceipt(db common.Database, txHash common.Hash) *types.Receipt {
data, _ := db.Get(append(receiptsPre, txHash[:]...))
if len(data) == 0 {
diff --git a/rpc/api/parsing.go b/rpc/api/parsing.go
index d1f9ccac2..c7edf4325 100644
--- a/rpc/api/parsing.go
+++ b/rpc/api/parsing.go
@@ -413,15 +413,17 @@ type ReceiptRes struct {
Logs *[]interface{} `json:logs`
}
-func NewReceiptRes(rec *types.Receipt) *ReceiptRes {
+func NewReceiptRes(rec *types.ReceiptForStorage) *ReceiptRes {
if rec == nil {
return nil
}
var v = new(ReceiptRes)
// TODO fill out rest of object
+ // ContractAddress is all 0 when not a creation tx
+ v.ContractAddress = newHexData(rec.ContractAddress)
v.CumulativeGasUsed = newHexNum(rec.CumulativeGasUsed)
-
+ v.TransactionHash = newHexData(rec.TxHash)
return v
}
diff --git a/xeth/xeth.go b/xeth/xeth.go
index cbc8dbbde..1b7f06821 100644
--- a/xeth/xeth.go
+++ b/xeth/xeth.go
@@ -368,8 +368,8 @@ func (self *XEth) GetBlockReceipts(bhash common.Hash) types.Receipts {
return self.backend.BlockProcessor().GetBlockReceipts(bhash)
}
-func (self *XEth) GetTxReceipt(txhash common.Hash) *types.Receipt {
- return core.GetReceipt(self.backend.ExtraDb(), txhash)
+func (self *XEth) GetTxReceipt(txhash common.Hash) *types.ReceiptForStorage {
+ return core.GetFullReceipt(self.backend.ExtraDb(), txhash)
}
func (self *XEth) GasLimit() *big.Int {