good morning!!!!

Skip to content
Snippets Groups Projects
Commit 86ba7432 authored by Taylor Gerring's avatar Taylor Gerring
Browse files

txMeta storage as struct

parent b860b676
Branches
Tags
No related merge requests found
...@@ -235,7 +235,7 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big ...@@ -235,7 +235,7 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big
// This puts transactions in a extra db for rpc // This puts transactions in a extra db for rpc
for i, tx := range block.Transactions() { for i, tx := range block.Transactions() {
putTx(sm.extraDb, tx, block, i) putTx(sm.extraDb, tx, block, uint64(i))
} }
if uncle { if uncle {
...@@ -359,7 +359,7 @@ func (sm *BlockProcessor) GetLogs(block *types.Block) (logs state.Logs, err erro ...@@ -359,7 +359,7 @@ func (sm *BlockProcessor) GetLogs(block *types.Block) (logs state.Logs, err erro
return state.Logs(), nil return state.Logs(), nil
} }
func putTx(db common.Database, tx *types.Transaction, block *types.Block, i int) { func putTx(db common.Database, tx *types.Transaction, block *types.Block, i uint64) {
rlpEnc, err := rlp.EncodeToBytes(tx) rlpEnc, err := rlp.EncodeToBytes(tx)
if err != nil { if err != nil {
statelogger.Infoln("Failed encoding tx", err) statelogger.Infoln("Failed encoding tx", err)
...@@ -367,24 +367,18 @@ func putTx(db common.Database, tx *types.Transaction, block *types.Block, i int) ...@@ -367,24 +367,18 @@ func putTx(db common.Database, tx *types.Transaction, block *types.Block, i int)
} }
db.Put(tx.Hash().Bytes(), rlpEnc) db.Put(tx.Hash().Bytes(), rlpEnc)
rlpEnc, err = rlp.EncodeToBytes(block.Hash().Bytes()) var txExtra struct {
if err != nil { BlockHash common.Hash
statelogger.Infoln("Failed encoding meta", err) BlockIndex uint64
return Index uint64
} }
db.Put(append(tx.Hash().Bytes(), 0x0001), rlpEnc) txExtra.BlockHash = block.Hash()
txExtra.BlockIndex = block.NumberU64()
rlpEnc, err = rlp.EncodeToBytes(block.Number().Bytes()) txExtra.Index = i
if err != nil { rlpMeta, err := rlp.EncodeToBytes(txExtra)
statelogger.Infoln("Failed encoding meta", err)
return
}
db.Put(append(tx.Hash().Bytes(), 0x0002), rlpEnc)
rlpEnc, err = rlp.EncodeToBytes(i)
if err != nil { if err != nil {
statelogger.Infoln("Failed encoding meta", err) statelogger.Infoln("Failed encoding meta", err)
return return
} }
db.Put(append(tx.Hash().Bytes(), 0x0003), rlpEnc) db.Put(append(tx.Hash().Bytes(), 0x0001), rlpMeta)
} }
...@@ -19,6 +19,7 @@ import ( ...@@ -19,6 +19,7 @@ import (
"github.com/ethereum/go-ethereum/event/filter" "github.com/ethereum/go-ethereum/event/filter"
"github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/miner" "github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/rlp"
) )
var ( var (
...@@ -191,20 +192,20 @@ func (self *XEth) EthTransactionByHash(hash string) (tx *types.Transaction, blha ...@@ -191,20 +192,20 @@ func (self *XEth) EthTransactionByHash(hash string) (tx *types.Transaction, blha
tx = types.NewTransactionFromBytes(data) tx = types.NewTransactionFromBytes(data)
} }
// blockhash // meta
data, _ = self.backend.ExtraDb().Get(append(common.FromHex(hash), 0x0001)) var txExtra struct {
if len(data) != 0 { BlockHash common.Hash
blhash = common.BytesToHash(data) BlockIndex int64
} Index uint64
// blocknum
data, _ = self.backend.ExtraDb().Get(append(common.FromHex(hash), 0x0002))
if len(data) != 0 {
blnum = common.Bytes2Big(data)
} }
// txindex
data, _ = self.backend.ExtraDb().Get(append(common.FromHex(hash), 0x0003)) v, _ := self.backend.ExtraDb().Get(append(common.FromHex(hash), 0x0001))
if len(data) != 0 { r := bytes.NewReader(v)
txi = common.BytesToNumber(data) err := rlp.Decode(r, &txExtra)
if err == nil {
blhash = txExtra.BlockHash
blnum = big.NewInt(txExtra.BlockIndex)
txi = txExtra.Index
} }
return return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment