Skip to content

Commit 40be2f9

Browse files
authored
Merge pull request #162 from vulcanize/log_processing_bug
Log processing bug fix
2 parents 9f0ef4a + 963ed83 commit 40be2f9

File tree

5 files changed

+19
-24
lines changed

5 files changed

+19
-24
lines changed

statediff/indexer/database/file/mainnet_tests/statediffing_test_file.sql

Whitespace-only changes.

statediff/indexer/ipld/eth_log_trie.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,8 @@ func (rt *logTrie) getNodeFromDB(key []byte) (*EthLogTrie, error) {
114114
if err != nil {
115115
return nil, err
116116
}
117-
118-
c, err := RawdataToCid(MEthLogTrie, rawdata, multihash.KECCAK_256)
119-
if err != nil {
120-
return nil, err
121-
}
122-
123117
tn := &TrieNode{
124-
cid: c,
118+
cid: keccak256ToCid(MEthLogTrie, key),
125119
rawdata: rawdata,
126120
}
127121
return &EthLogTrie{TrieNode: tn}, nil
@@ -134,7 +128,6 @@ func (rt *logTrie) getLeafNodes() ([]*EthLogTrie, []*nodeKey, error) {
134128
if err != nil {
135129
return nil, nil, err
136130
}
137-
138131
out := make([]*EthLogTrie, 0, len(keys))
139132
for _, k := range keys {
140133
n, err := rt.getNodeFromDB(k.dbKey)

statediff/indexer/ipld/eth_parser.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,14 +238,24 @@ func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*E
238238
return ethRctNodes, rctTrieNodes, ethLogTrieNodes, ethLogleafNodeCids, ethRctleafNodeCids, err
239239
}
240240

241+
const keccak256Length = 32
242+
241243
func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, error) {
242244
logTr := newLogTrie()
245+
shortLogCIDs := make(map[uint64]cid.Cid, len(logs))
243246
for idx, log := range logs {
244-
ethLog, err := NewLog(log)
247+
logRaw, err := rlp.EncodeToBytes(log)
245248
if err != nil {
246249
return nil, nil, common.Hash{}, err
247250
}
248-
if err = logTr.Add(idx, ethLog.RawData()); err != nil {
251+
if len(logRaw) <= keccak256Length {
252+
logNode, err := NewLog(log)
253+
if err != nil {
254+
return nil, nil, common.Hash{}, err
255+
}
256+
shortLogCIDs[uint64(idx)] = logNode.Cid()
257+
}
258+
if err = logTr.Add(idx, logRaw); err != nil {
249259
return nil, nil, common.Hash{}, err
250260
}
251261
}
@@ -259,8 +269,7 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro
259269
if err != nil {
260270
return nil, nil, common.Hash{}, err
261271
}
262-
263-
leafNodeCids := make([]cid.Cid, len(leafNodes))
272+
leafNodeCids := make([]cid.Cid, len(logs))
264273
for i, ln := range leafNodes {
265274
var idx uint
266275

@@ -271,6 +280,9 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro
271280
}
272281
leafNodeCids[idx] = ln.Cid()
273282
}
283+
for idx, lCID := range shortLogCIDs {
284+
leafNodeCids[idx] = lCID
285+
}
274286

275287
return logTrieNodes, leafNodeCids, common.BytesToHash(logTr.rootHash()), err
276288
}

statediff/indexer/ipld/eth_receipt_trie.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,8 @@ func (rt *rctTrie) getNodeFromDB(key []byte) (*EthRctTrie, error) {
166166
if err != nil {
167167
return nil, err
168168
}
169-
170-
cid, err := RawdataToCid(MEthTxReceiptTrie, rawdata, multihash.KECCAK_256)
171-
if err != nil {
172-
return nil, err
173-
}
174-
175169
tn := &TrieNode{
176-
cid: cid,
170+
cid: keccak256ToCid(MEthStateTrie, key),
177171
rawdata: rawdata,
178172
}
179173

statediff/indexer/ipld/eth_tx_trie.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,8 @@ func (tt *txTrie) getNodes() ([]*EthTxTrie, error) {
135135
if err != nil {
136136
return nil, err
137137
}
138-
c, err := RawdataToCid(MEthTxTrie, rawdata, multihash.KECCAK_256)
139-
if err != nil {
140-
return nil, err
141-
}
142138
tn := &TrieNode{
143-
cid: c,
139+
cid: keccak256ToCid(MEthTxTrie, k),
144140
rawdata: rawdata,
145141
}
146142
out = append(out, &EthTxTrie{TrieNode: tn})

0 commit comments

Comments
 (0)