Merge pull request #72 from vulcanize/v1.10.3-statediff-0.0.22
V1.10.3 statediff 0.0.22
This commit is contained in:
commit
a179e1c69e
@ -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
|
||||
}
|
||||
|
||||
|
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12252078
Normal file
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12252078
Normal file
Binary file not shown.
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365585
Normal file
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365585
Normal file
Binary file not shown.
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365586
Normal file
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365586
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
81
statediff/indexer/ipfs/ipld/eth_parser_test.go
Normal file
81
statediff/indexer/ipfs/ipld/eth_parser_test.go
Normal file
@ -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())
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
@ -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)
|
||||
@ -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),
|
||||
},
|
||||
@ -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 {
|
||||
|
@ -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
|
||||
@ -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)
|
||||
@ -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),
|
||||
},
|
||||
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user