Skip to content

Commit

Permalink
Merge pull request #72 from vulcanize/v1.10.3-statediff-0.0.22
Browse files Browse the repository at this point in the history
V1.10.3 statediff 0.0.22
  • Loading branch information
i-norden authored May 13, 2021
2 parents 5e7008c + eae8688 commit a179e1c
Show file tree
Hide file tree
Showing 10 changed files with 91 additions and 16 deletions.
6 changes: 2 additions & 4 deletions core/types/receipt.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,8 @@ func (r *Receipt) MarshalBinary() ([]byte, error) {
return rlp.EncodeToBytes(r)
}
data := &receiptRLP{r.statusEncoding(), r.CumulativeGasUsed, r.Bloom, r.Logs}
buf := encodeBufferPool.Get().(*bytes.Buffer)
defer encodeBufferPool.Put(buf)
buf.Reset()
err := r.encodeTyped(data, buf)
var buf bytes.Buffer
err := r.encodeTyped(data, &buf)
return buf.Bytes(), err
}

Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
81 changes: 81 additions & 0 deletions statediff/indexer/ipfs/ipld/eth_parser_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package ipld

import (
"io/ioutil"
"path/filepath"
"testing"

"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rlp"
)

type kind string

const (
legacy kind = "legacy"
eip1559 kind = "eip2930"
)

var blockFileNames = []string{
"eth-block-12252078",
"eth-block-12365585",
"eth-block-12365586",
}

var receiptsFileNames = []string{
"eth-receipts-12252078",
"eth-receipts-12365585",
"eth-receipts-12365586",
}

var kinds = []kind{
eip1559,
eip1559,
legacy,
}

type testCase struct {
kind kind
block *types.Block
receipts types.Receipts
}

func loadBlockData(t *testing.T) []testCase {
fileDir := "./eip2930_test_data"
testCases := make([]testCase, len(blockFileNames))
for i, blockFileName := range blockFileNames {
blockRLP, err := ioutil.ReadFile(filepath.Join(fileDir, blockFileName))
if err != nil {
t.Fatalf("failed to load blockRLP from file, err %v", err)
}
block := new(types.Block)
if err := rlp.DecodeBytes(blockRLP, block); err != nil {
t.Fatalf("failed to decode blockRLP, err %v", err)
}
receiptsFileName := receiptsFileNames[i]
receiptsRLP, err := ioutil.ReadFile(filepath.Join(fileDir, receiptsFileName))
if err != nil {
t.Fatalf("failed to load receiptsRLP from file, err %s", err)
}
receipts := make(types.Receipts, 0)
if err := rlp.DecodeBytes(receiptsRLP, &receipts); err != nil {
t.Fatalf("failed to decode receiptsRLP, err %s", err)
}
testCases[i] = testCase{
block: block,
receipts: receipts,
kind: kinds[i],
}
}
return testCases
}

func TestFromBlockAndReceipts(t *testing.T) {
testCases := loadBlockData(t)
for _, tc := range testCases {
_, _, _, _, _, _, err := FromBlockAndReceipts(tc.block, tc.receipts)
if err != nil {
t.Fatalf("error generating IPLDs from block and receipts, err %v, kind %s, block hash %s", err, tc.kind, tc.block.Hash())
}
}
}
10 changes: 4 additions & 6 deletions statediff/indexer/ipfs/ipld/eth_receipt_trie.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"github.com/multiformats/go-multihash"

"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rlp"
)

// EthRctTrie (eth-tx-trie codec 0x92) represents
Expand Down Expand Up @@ -61,9 +60,8 @@ func DecodeEthRctTrie(c cid.Cid, b []byte) (*EthRctTrie, error) {
// decodeEthRctTrieLeaf parses a eth-rct-trie leaf
//from decoded RLP elements
func decodeEthRctTrieLeaf(i []interface{}) ([]interface{}, error) {
var r types.Receipt
err := rlp.DecodeBytes(i[1].([]byte), &r)
if err != nil {
r := new(types.Receipt)
if err := r.UnmarshalBinary(i[1].([]byte)); err != nil {
return nil, err
}
c, err := RawdataToCid(MEthTxReceipt, i[1].([]byte), multihash.KECCAK_256)
Expand All @@ -73,7 +71,7 @@ func decodeEthRctTrieLeaf(i []interface{}) ([]interface{}, error) {
return []interface{}{
i[0].([]byte),
&EthReceipt{
Receipt: &r,
Receipt: r,
cid: c,
rawdata: i[1].([]byte),
},
Expand Down Expand Up @@ -135,7 +133,7 @@ func (rt *rctTrie) getNodes() ([]*EthRctTrie, error) {
for _, k := range keys {
rawdata, err := rt.db.Get(k)
if err != nil {
panic(err)
return nil, err
}
c, err := RawdataToCid(MEthTxReceiptTrie, rawdata, multihash.KECCAK_256)
if err != nil {
Expand Down
10 changes: 4 additions & 6 deletions statediff/indexer/ipfs/ipld/eth_tx_trie.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"github.com/multiformats/go-multihash"

"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rlp"
)

// EthTxTrie (eth-tx-trie codec 0x92) represents
Expand Down Expand Up @@ -61,9 +60,8 @@ func DecodeEthTxTrie(c cid.Cid, b []byte) (*EthTxTrie, error) {
// decodeEthTxTrieLeaf parses a eth-tx-trie leaf
//from decoded RLP elements
func decodeEthTxTrieLeaf(i []interface{}) ([]interface{}, error) {
var t types.Transaction
err := rlp.DecodeBytes(i[1].([]byte), &t)
if err != nil {
t := new(types.Transaction)
if err := t.UnmarshalBinary(i[1].([]byte)); err != nil {
return nil, err
}
c, err := RawdataToCid(MEthTx, i[1].([]byte), multihash.KECCAK_256)
Expand All @@ -73,7 +71,7 @@ func decodeEthTxTrieLeaf(i []interface{}) ([]interface{}, error) {
return []interface{}{
i[0].([]byte),
&EthTx{
Transaction: &t,
Transaction: t,
cid: c,
rawdata: i[1].([]byte),
},
Expand Down Expand Up @@ -135,7 +133,7 @@ func (tt *txTrie) getNodes() ([]*EthTxTrie, error) {
for _, k := range keys {
rawdata, err := tt.db.Get(k)
if err != nil {
panic(err)
return nil, err
}
c, err := RawdataToCid(MEthTxTrie, rawdata, multihash.KECCAK_256)
if err != nil {
Expand Down

0 comments on commit a179e1c

Please sign in to comment.