diff --git a/statediff/indexer/database/file/mainnet_tests/statediffing_test_file.sql b/statediff/indexer/database/file/mainnet_tests/statediffing_test_file.sql deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/statediff/indexer/ipld/eth_log_trie.go b/statediff/indexer/ipld/eth_log_trie.go index 49b7a7fc6806..edfd35af9cb0 100644 --- a/statediff/indexer/ipld/eth_log_trie.go +++ b/statediff/indexer/ipld/eth_log_trie.go @@ -114,14 +114,8 @@ func (rt *logTrie) getNodeFromDB(key []byte) (*EthLogTrie, error) { if err != nil { return nil, err } - - c, err := RawdataToCid(MEthLogTrie, rawdata, multihash.KECCAK_256) - if err != nil { - return nil, err - } - tn := &TrieNode{ - cid: c, + cid: keccak256ToCid(MEthLogTrie, key), rawdata: rawdata, } return &EthLogTrie{TrieNode: tn}, nil @@ -134,7 +128,6 @@ func (rt *logTrie) getLeafNodes() ([]*EthLogTrie, []*nodeKey, error) { if err != nil { return nil, nil, err } - out := make([]*EthLogTrie, 0, len(keys)) for _, k := range keys { n, err := rt.getNodeFromDB(k.dbKey) diff --git a/statediff/indexer/ipld/eth_parser.go b/statediff/indexer/ipld/eth_parser.go index 0b4780f8a91f..9e6d4787d998 100644 --- a/statediff/indexer/ipld/eth_parser.go +++ b/statediff/indexer/ipld/eth_parser.go @@ -238,14 +238,24 @@ func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*E return ethRctNodes, rctTrieNodes, ethLogTrieNodes, ethLogleafNodeCids, ethRctleafNodeCids, err } +const keccak256Length = 32 + func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, error) { logTr := newLogTrie() + shortLogCIDs := make(map[uint64]cid.Cid, len(logs)) for idx, log := range logs { - ethLog, err := NewLog(log) + logRaw, err := rlp.EncodeToBytes(log) if err != nil { return nil, nil, common.Hash{}, err } - if err = logTr.Add(idx, ethLog.RawData()); err != nil { + if len(logRaw) <= keccak256Length { + logNode, err := NewLog(log) + if err != nil { + return nil, nil, common.Hash{}, err + } + shortLogCIDs[uint64(idx)] = logNode.Cid() + } + if err = logTr.Add(idx, logRaw); err != nil { return nil, nil, common.Hash{}, err } } @@ -259,8 +269,7 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro if err != nil { return nil, nil, common.Hash{}, err } - - leafNodeCids := make([]cid.Cid, len(leafNodes)) + leafNodeCids := make([]cid.Cid, len(logs)) for i, ln := range leafNodes { var idx uint @@ -271,6 +280,9 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro } leafNodeCids[idx] = ln.Cid() } + for idx, lCID := range shortLogCIDs { + leafNodeCids[idx] = lCID + } return logTrieNodes, leafNodeCids, common.BytesToHash(logTr.rootHash()), err } diff --git a/statediff/indexer/ipld/eth_receipt_trie.go b/statediff/indexer/ipld/eth_receipt_trie.go index e187e7d9d6a1..4ceef6f1fdf2 100644 --- a/statediff/indexer/ipld/eth_receipt_trie.go +++ b/statediff/indexer/ipld/eth_receipt_trie.go @@ -166,14 +166,8 @@ func (rt *rctTrie) getNodeFromDB(key []byte) (*EthRctTrie, error) { if err != nil { return nil, err } - - cid, err := RawdataToCid(MEthTxReceiptTrie, rawdata, multihash.KECCAK_256) - if err != nil { - return nil, err - } - tn := &TrieNode{ - cid: cid, + cid: keccak256ToCid(MEthStateTrie, key), rawdata: rawdata, } diff --git a/statediff/indexer/ipld/eth_tx_trie.go b/statediff/indexer/ipld/eth_tx_trie.go index 943cf15ae5f6..bb4f66df06bb 100644 --- a/statediff/indexer/ipld/eth_tx_trie.go +++ b/statediff/indexer/ipld/eth_tx_trie.go @@ -135,12 +135,8 @@ func (tt *txTrie) getNodes() ([]*EthTxTrie, error) { if err != nil { return nil, err } - c, err := RawdataToCid(MEthTxTrie, rawdata, multihash.KECCAK_256) - if err != nil { - return nil, err - } tn := &TrieNode{ - cid: c, + cid: keccak256ToCid(MEthTxTrie, k), rawdata: rawdata, } out = append(out, &EthTxTrie{TrieNode: tn})