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)
|
return rlp.EncodeToBytes(r)
|
||||||
}
|
}
|
||||||
data := &receiptRLP{r.statusEncoding(), r.CumulativeGasUsed, r.Bloom, r.Logs}
|
data := &receiptRLP{r.statusEncoding(), r.CumulativeGasUsed, r.Bloom, r.Logs}
|
||||||
buf := encodeBufferPool.Get().(*bytes.Buffer)
|
var buf bytes.Buffer
|
||||||
defer encodeBufferPool.Put(buf)
|
err := r.encodeTyped(data, &buf)
|
||||||
buf.Reset()
|
|
||||||
err := r.encodeTyped(data, buf)
|
|
||||||
return buf.Bytes(), err
|
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/multiformats/go-multihash"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// EthRctTrie (eth-tx-trie codec 0x92) represents
|
// 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
|
// decodeEthRctTrieLeaf parses a eth-rct-trie leaf
|
||||||
//from decoded RLP elements
|
//from decoded RLP elements
|
||||||
func decodeEthRctTrieLeaf(i []interface{}) ([]interface{}, error) {
|
func decodeEthRctTrieLeaf(i []interface{}) ([]interface{}, error) {
|
||||||
var r types.Receipt
|
r := new(types.Receipt)
|
||||||
err := rlp.DecodeBytes(i[1].([]byte), &r)
|
if err := r.UnmarshalBinary(i[1].([]byte)); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
c, err := RawdataToCid(MEthTxReceipt, i[1].([]byte), multihash.KECCAK_256)
|
c, err := RawdataToCid(MEthTxReceipt, i[1].([]byte), multihash.KECCAK_256)
|
||||||
@ -73,7 +71,7 @@ func decodeEthRctTrieLeaf(i []interface{}) ([]interface{}, error) {
|
|||||||
return []interface{}{
|
return []interface{}{
|
||||||
i[0].([]byte),
|
i[0].([]byte),
|
||||||
&EthReceipt{
|
&EthReceipt{
|
||||||
Receipt: &r,
|
Receipt: r,
|
||||||
cid: c,
|
cid: c,
|
||||||
rawdata: i[1].([]byte),
|
rawdata: i[1].([]byte),
|
||||||
},
|
},
|
||||||
@ -135,7 +133,7 @@ func (rt *rctTrie) getNodes() ([]*EthRctTrie, error) {
|
|||||||
for _, k := range keys {
|
for _, k := range keys {
|
||||||
rawdata, err := rt.db.Get(k)
|
rawdata, err := rt.db.Get(k)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return nil, err
|
||||||
}
|
}
|
||||||
c, err := RawdataToCid(MEthTxReceiptTrie, rawdata, multihash.KECCAK_256)
|
c, err := RawdataToCid(MEthTxReceiptTrie, rawdata, multihash.KECCAK_256)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -24,7 +24,6 @@ import (
|
|||||||
"github.com/multiformats/go-multihash"
|
"github.com/multiformats/go-multihash"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// EthTxTrie (eth-tx-trie codec 0x92) represents
|
// 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
|
// decodeEthTxTrieLeaf parses a eth-tx-trie leaf
|
||||||
//from decoded RLP elements
|
//from decoded RLP elements
|
||||||
func decodeEthTxTrieLeaf(i []interface{}) ([]interface{}, error) {
|
func decodeEthTxTrieLeaf(i []interface{}) ([]interface{}, error) {
|
||||||
var t types.Transaction
|
t := new(types.Transaction)
|
||||||
err := rlp.DecodeBytes(i[1].([]byte), &t)
|
if err := t.UnmarshalBinary(i[1].([]byte)); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
c, err := RawdataToCid(MEthTx, i[1].([]byte), multihash.KECCAK_256)
|
c, err := RawdataToCid(MEthTx, i[1].([]byte), multihash.KECCAK_256)
|
||||||
@ -73,7 +71,7 @@ func decodeEthTxTrieLeaf(i []interface{}) ([]interface{}, error) {
|
|||||||
return []interface{}{
|
return []interface{}{
|
||||||
i[0].([]byte),
|
i[0].([]byte),
|
||||||
&EthTx{
|
&EthTx{
|
||||||
Transaction: &t,
|
Transaction: t,
|
||||||
cid: c,
|
cid: c,
|
||||||
rawdata: i[1].([]byte),
|
rawdata: i[1].([]byte),
|
||||||
},
|
},
|
||||||
@ -135,7 +133,7 @@ func (tt *txTrie) getNodes() ([]*EthTxTrie, error) {
|
|||||||
for _, k := range keys {
|
for _, k := range keys {
|
||||||
rawdata, err := tt.db.Get(k)
|
rawdata, err := tt.db.Get(k)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return nil, err
|
||||||
}
|
}
|
||||||
c, err := RawdataToCid(MEthTxTrie, rawdata, multihash.KECCAK_256)
|
c, err := RawdataToCid(MEthTxTrie, rawdata, multihash.KECCAK_256)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user